kopia lustrzana https://gitlab.com/mysocialportal/relatica
225 wiersze
5.2 KiB
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]));
|
|
}
|
|
});
|
|
}
|