mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 03:32:40 +00:00
Reverting back to string based version compare. Using customized comparator based ond Sparkle verison compare
This commit is contained in:
@@ -1,150 +0,0 @@
|
||||
//
|
||||
// MPTestPluginVersion.m
|
||||
// MacPassTests
|
||||
//
|
||||
// Created by Michael Starke on 05.10.18.
|
||||
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
#import "MPPluginVersion.h"
|
||||
|
||||
@interface MPTestPluginVersion : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPTestPluginVersion
|
||||
|
||||
- (void)testVersionExtraction {
|
||||
MPPluginVersion *version = [[MPPluginVersion alloc] initWithVersionString:@"1."];
|
||||
XCTAssertEqualObjects(@"1", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"1.0.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"0.5"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"5", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.5.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@".5"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"5", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.5.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"5"];
|
||||
XCTAssertEqualObjects(@"5", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"5.0.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@".1."];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.1.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@".1.1"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.1.1", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"..1"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.0.1", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"1.0.0"];
|
||||
XCTAssertEqualObjects(@"1", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"1.0.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"0.1.0"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.1.0", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"1.1.1"];
|
||||
XCTAssertEqualObjects(@"1", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"1.1.1", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"0.0.5"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"5", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.0.5", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"1.0.3"];
|
||||
XCTAssertEqualObjects(@"1", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"0", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"3", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"1.0.3", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"0.1.4"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"4", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.1.4", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"0.1.*"];
|
||||
XCTAssertEqualObjects(@"0", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"1", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"*", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"0.1.*", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"*.1.0"];
|
||||
XCTAssertEqualObjects(@"*", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"*", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"*", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"*.*.*", version.versionString);
|
||||
|
||||
version = [[MPPluginVersion alloc] initWithVersionString:@"1.*.0"];
|
||||
XCTAssertEqualObjects(@"1", version.mayorVersion);
|
||||
XCTAssertEqualObjects(@"*", version.minorVersion);
|
||||
XCTAssertEqualObjects(@"*", version.patchVersion);
|
||||
XCTAssertEqualObjects(@"1.*.*", version.versionString);
|
||||
}
|
||||
|
||||
- (void)testeVersionCompare {
|
||||
|
||||
NSArray *data = @[
|
||||
@[ @"*", @"*", @(NSOrderedSame)],
|
||||
@[ @"1.0.1", @"*", @(NSOrderedSame)],
|
||||
@[ @"*", @"1.0.1", @(NSOrderedSame)],
|
||||
@[ @"1.*", @"1.*", @(NSOrderedSame)],
|
||||
@[ @"1.1.*", @"1.1.*", @(NSOrderedSame)],
|
||||
@[ @"1.1.1", @"1.1.1", @(NSOrderedSame)],
|
||||
@[ @"1.0.1", @"*", @(NSOrderedSame)],
|
||||
@[ @"0.10.*", @"0.10.1", @(NSOrderedSame)],
|
||||
@[ @"10.*.1", @"10.99.*", @(NSOrderedSame)],
|
||||
@[ @"0.9.89", @"0.9.89", @(NSOrderedSame)],
|
||||
@[ @"0.0.1", @"0.0.2", @(NSOrderedAscending)],
|
||||
@[ @"1.10.10", @"1.12.10", @(NSOrderedAscending)],
|
||||
@[ @"20.0.1", @"20.1.0", @(NSOrderedAscending)],
|
||||
@[ @"1.1.1", @"2.*", @(NSOrderedAscending)],
|
||||
@[ @"1.*", @"2.0.*", @(NSOrderedAscending)],
|
||||
@[ @"2.1.1", @"2.0.0", @(NSOrderedDescending)],
|
||||
@[ @"0.1.1", @"0.1.0", @(NSOrderedDescending)],
|
||||
@[ @"1.2.*", @"1.1.*", @(NSOrderedDescending)],
|
||||
@[ @"2.*", @"1.*", @(NSOrderedDescending)]
|
||||
];
|
||||
for(NSUInteger index = 0; index < data.count; index++) {
|
||||
NSArray *set = data[index];
|
||||
MPPluginVersion *versionA = [[MPPluginVersion alloc] initWithVersionString:set[0]];
|
||||
MPPluginVersion *versionB = [[MPPluginVersion alloc] initWithVersionString:set[1]];
|
||||
NSComparisonResult result = [set[2] integerValue];
|
||||
XCTAssertEqual(result, [versionA compare:versionB]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
84
MacPassTests/MPTestPluginVersionComparator.m
Normal file
84
MacPassTests/MPTestPluginVersionComparator.m
Normal file
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// MPTestPluginVersion.m
|
||||
// MacPassTests
|
||||
//
|
||||
// Created by Michael Starke on 05.10.18.
|
||||
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
#import "MPPluginVersionComparator.h"
|
||||
|
||||
@interface MPTestPluginVersion : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPTestPluginVersion
|
||||
|
||||
- (void)testSegmentClasification {
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"1"], kMPVersionCharacterTypeNumeric);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"9"], kMPVersionCharacterTypeNumeric);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"*"], kMPVersionCharacterTypeWildcard);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"a"], kMPVersionCharacterTypeString);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"x"], kMPVersionCharacterTypeString);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"Ñ"], kMPVersionCharacterTypeString);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"."], kMPVersionCharacterTypeSeparator);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"-"], kMPVersionCharacterTypeSeparator);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@":"], kMPVersionCharacterTypeSeparator);
|
||||
XCTAssertEqual([MPPluginVersionComparator typeOfCharacter:@"!"], kMPVersionCharacterTypeSeparator);
|
||||
|
||||
}
|
||||
|
||||
- (void)testVersionSplitting {
|
||||
|
||||
NSArray *data = @[
|
||||
@"10.1.99", @[@"10", @".", @"1", @".", @"99"],
|
||||
@"0.152", @[@"0", @".", @"152"],
|
||||
@"1.1.1beta", @[@"1", @".", @"1", @".", @"1", @"beta"],
|
||||
@"beta2.0", @[@"beta", @"2", @".", @"0"],
|
||||
@"*.*.1", @[@"*", @".", @"*", @".", @"1"],
|
||||
@"1-*", @[@"1", @"-", @"*"],
|
||||
@"1-1-1", @[@"1", @"-", @"1", @"-", @"1"]
|
||||
];
|
||||
for(NSUInteger index = 0; index < data.count; index += 2 ) {
|
||||
NSString *versionString = data[index];
|
||||
NSArray *versionParts = data[index+1];
|
||||
XCTAssertEqualObjects([MPPluginVersionComparator splitVersionString:versionString], versionParts);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)testVersionCompare {
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"" toVersion:@""]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"*" toVersion:@"*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0.1" toVersion:@"*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"*" toVersion:@"1.0.1"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.*" toVersion:@"1.*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.1.*" toVersion:@"1.1.*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.1.1" toVersion:@"1.1.1"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0.1" toVersion:@"*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"0.10.*" toVersion:@"0.10.1"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"10.*.1" toVersion:@"10.99.*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"0.9.89" toVersion:@"0.9.89"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.*" toVersion:@"1.*.1"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.*.2" toVersion:@"1.*"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0" toVersion:@"1."]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0" toVersion:@"1.0.0"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0" toVersion:@"1.0.0.0.0.0.0.0"]);
|
||||
XCTAssertEqual(NSOrderedSame, [MPPluginVersionComparator compareVersion:@"1.0.*" toVersion:@"1.0"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"0.0.1" toVersion:@"0.0.2"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"0.0.1b" toVersion:@"0.0.1"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"1.10.10" toVersion:@"1.12.10"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"20.0.1" toVersion:@"20.1.0"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"1.1.1" toVersion:@"2.*"]);
|
||||
XCTAssertEqual(NSOrderedAscending, [MPPluginVersionComparator compareVersion:@"1.*" toVersion:@"2.0.*"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"2.1.1" toVersion:@"2.0.0"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"2.0.0" toVersion:@"2.0.0b"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"2.0.0" toVersion:@"2.0.0.0.0.beta"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"0.1.1" toVersion:@"0.1.0"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"1.2.*" toVersion:@"1.1.*"]);
|
||||
XCTAssertEqual(NSOrderedDescending, [MPPluginVersionComparator compareVersion:@"2.*" toVersion:@"1.*"]);
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user