relatica/test/friendica_version_test.dart

225 wiersze
5.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:relatica/models/friendica_version.dart';
void main() {
group('Comparison tests', () {
test('Unknown less than all', () {
for (final v in knownFriendicaVersions) {
expect(v, greaterThan(unknown));
}
});
test('Newer correct', () {
expect(v2022_02, greaterThan(v2021_01));
});
test('Older correct', () {
expect(v2022_02, lessThan(v2023_01));
});
test('Older or equals', () {
expect(v2022_02, lessThanOrEqualTo(v2022_02));
});
test('Newer or equals', () {
expect(v2022_02, greaterThanOrEqualTo(v2022_02));
});
test('Equals with sub-version', () {
expect(v2020_07_01, greaterThanOrEqualTo(v2020_07_01));
});
test('Newer sub-version', () {
expect(v2020_07_01, greaterThan(v2020_07));
});
test('Older non sub-version', () {
expect(v2020_07, lessThan(v2020_07_01));
});
test('Newer sub-version for both', () {
expect(
FriendicaVersion(DateTime(2020, 01), extra: '2'),
greaterThan(FriendicaVersion(DateTime(2020, 01), extra: '1')),
);
});
test('Newer sub-version alpha for both', () {
expect(
FriendicaVersion(DateTime(2020, 01), extra: 'b'),
greaterThan(FriendicaVersion(DateTime(2020, 01), extra: 'a')),
);
});
});
group('Parsing tests', () {
test('Garbled text and null return "unknown"', () {
expect(
FriendicaVersion.fromVersionString(null),
unknown,
);
expect(
FriendicaVersion.fromVersionString('some version string'),
unknown,
);
expect(
FriendicaVersion.fromVersionString('3.5.1'),
unknown,
);
});
test('Mastodon version from Mastodon Server', () {
final version = FriendicaVersion.fromMastodonVersionString('4.1.0');
expect(version, equals(unknown));
});
test('Mastodon version from Friendica Server', () {
final version = FriendicaVersion.fromMastodonVersionString(
'2.8.0 (compatible; Friendica 2023.01)');
expect(version, equals(FriendicaVersion(DateTime(2023, 01))));
});
test('Standard year/month form', () {
final version = FriendicaVersion.fromVersionString('2018.09');
expect(version, equals(FriendicaVersion(DateTime(2018, 09))));
});
test('Standard year/month form with additional version', () {
final version = FriendicaVersion.fromVersionString('2020.07-1');
expect(version, equals(FriendicaVersion(DateTime(2020, 07), extra: '1')));
});
});
test('Test known version strings', () {
final versionStrings = [
"2.1",
"2.2",
"2.21",
"2.3",
"2.32",
"2.33",
"2.34",
"2.35",
"2.36",
"2.37",
"2.38",
"2.39",
"2.3beta1",
"2.3beta2",
"3.0",
"3.01",
"3.1",
"3.2",
"3.3",
"3.3-RC",
"3.3.1",
"3.3.2",
"3.3.3",
"3.4",
"3.4.1",
"3.4.2",
"3.4.3",
"3.4.3-2",
"3.5",
"3.5.1",
"3.5.2",
"3.5.3",
"3.5.4",
"3.6",
"2018.05",
"2018.09",
"2019.01",
"2019.03",
"2019.04",
"2019.06",
"2019.09",
"2019.12",
"2020.03",
"2020.07",
"2020.07-1",
"2020.09",
"2020.09-1",
"2021.01",
"2021.04",
"2021.07",
"2021.09",
"2022.02",
"2022.03",
"2022.06",
"2022.10",
"2022.12",
"2023.01",
"2023.04",
];
final versions = [
unknown, // 2.1
unknown, // 2.2
unknown, // 2.21
unknown, // 2.3
unknown, // 2.32
unknown, // 2.33
unknown, // 2.34
unknown, // 2.35
unknown, // 2.36
unknown, // 2.37
unknown, // 2.38
unknown, // 2.39
unknown, // 2.3beta1
unknown, // 2.3beta2
unknown, // 3.0
unknown, // 3.01
unknown, // 3.1
unknown, // 3.2
unknown, // 3.3
unknown, // 3.3-RC
unknown, // 3.3.1
unknown, // 3.3.2
unknown, // 3.3.3
unknown, // 3.4
unknown, // 3.4.1
unknown, // 3.4.2
unknown, // 3.4.3
unknown, // 3.4.3-2
unknown, // 3.5
unknown, // 3.5.1
unknown, // 3.5.2
unknown, // 3.5.3
unknown, // 3.5.4
unknown, // 3.6
v2018_05, // 2018.05
v2018_09, // 2018.09
v2019_01, // 2019.01
v2019_03, // 2019.03
v2019_04, // 2019.04
v2019_06, // 2019.06
v2019_09, // 2019.09
v2019_12, // 2019.12
v2020_03, // 2020.03
v2020_07, // 2020.07
v2020_07_01, // 2020.07-1
v2020_09, // 2020.09
v2020_09_01, // 2020.09-1
v2021_01, // 2021.01
v2021_04, // 2021.04
v2021_07, // 2021.07
v2021_09, // 2021.09
v2022_02, // 2022.02
v2022_03, // 2022.03
v2022_06, // 2022.06
v2022_10, // 2022.10
v2022_12, // 2022.12
v2023_01, // 2023.01
v2023_04, // 2023.04
];
expect(versionStrings.length, equals(versions.length));
for (var i = 0; i < versions.length; i++) {
final version = FriendicaVersion.fromVersionString(versionStrings[i]);
expect(version, equals(versions[i]));
}
});
}