mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-13 19:22:25 +00:00
Using better key mapper test to not depend on current input source
This commit is contained in:
@@ -20,32 +20,22 @@
|
|||||||
|
|
||||||
- (void)testKeyMapper {
|
- (void)testKeyMapper {
|
||||||
|
|
||||||
/* Test only works for german keyboard layout! */
|
|
||||||
MPModifiedKey key = [MPKeyMapper modifiedKeyForCharacter:@"A"];
|
|
||||||
XCTAssertEqual(kVK_ANSI_A, key.keyCode);
|
|
||||||
XCTAssertEqual(kCGEventFlagMaskShift, key.modifier);
|
|
||||||
|
|
||||||
key = [MPKeyMapper modifiedKeyForCharacter:@"»"];
|
|
||||||
XCTAssertEqual(kVK_ANSI_Q, key.keyCode);
|
|
||||||
XCTAssertEqual((kCGEventFlagMaskShift | kCGEventFlagMaskAlternate), key.modifier);
|
|
||||||
|
|
||||||
key = [MPKeyMapper modifiedKeyForCharacter:@""];
|
|
||||||
XCTAssertEqual(kVK_ANSI_RightBracket, key.keyCode);
|
|
||||||
XCTAssertEqual((kCGEventFlagMaskShift | kCGEventFlagMaskAlternate), key.modifier);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
XCTAssertEqualObjects(@"a",[MPKeyMapper stringForKey:kVK_ANSI_A modifier:0]);
|
We could set certain keyboard layouts to run this test invariantly
|
||||||
XCTAssertEqualObjects(@"A",[MPKeyMapper stringForKey:kVK_ANSI_A modifier:kCGEventFlagMaskShift]);
|
The simpler aproach is to go full circle to check if the desired character is the actual character we get
|
||||||
|
*/
|
||||||
XCTAssertEqualObjects(@"8",[MPKeyMapper stringForKey:kVK_ANSI_8 modifier:0]);
|
|
||||||
XCTAssertEqualObjects(@"(",[MPKeyMapper stringForKey:kVK_ANSI_8 modifier:kCGEventFlagMaskShift]);
|
|
||||||
XCTAssertEqualObjects(@"{",[MPKeyMapper stringForKey:kVK_ANSI_8 modifier:kCGEventFlagMaskAlternate]);
|
|
||||||
|
|
||||||
XCTAssertEqualObjects(@"n",[MPKeyMapper stringForKey:kVK_ANSI_N modifier:0]);
|
/* Ì - has no key for US and DVORAK layout */
|
||||||
XCTAssertEqualObjects(@"N",[MPKeyMapper stringForKey:kVK_ANSI_N modifier:kCGEventFlagMaskShift]);
|
NSString *test = @"aB(]©®@fl~±»";
|
||||||
XCTAssertEqualObjects(@"~",[MPKeyMapper stringForKey:kVK_ANSI_N modifier:kCGEventFlagMaskAlternate]);
|
|
||||||
*/
|
[test enumerateSubstringsInRange:NSMakeRange(0, test.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop) {
|
||||||
|
/* we only support non-composed characters*/
|
||||||
|
if(substring.length == 1) {
|
||||||
|
MPModifiedKey key = [MPKeyMapper modifiedKeyForCharacter:substring];
|
||||||
|
NSString *result = [MPKeyMapper stringForModifiedKey:key];
|
||||||
|
XCTAssertEqualObjects(substring, result);
|
||||||
|
}
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Reference in New Issue
Block a user