mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 08:12:28 +00:00
Fixed autotype for fields containing curly brackets
This commit is contained in:
@@ -99,7 +99,7 @@
|
||||
NSUInteger reserverd = MAX(1,[context.normalizedCommand length] / 4);
|
||||
NSMutableArray *commands = [[NSMutableArray alloc] initWithCapacity:reserverd];
|
||||
NSMutableArray __block *commandRanges = [[NSMutableArray alloc] initWithCapacity:reserverd];
|
||||
NSRegularExpression *commandRegExp = [[NSRegularExpression alloc] initWithPattern:@"\\{[^\\}]+\\}" options:NSRegularExpressionCaseInsensitive error:0];
|
||||
NSRegularExpression *commandRegExp = [[NSRegularExpression alloc] initWithPattern:@"\\{[^\\{\\}]+\\}" options:NSRegularExpressionCaseInsensitive error:0];
|
||||
NSAssert(commandRegExp, @"RegExp is constant. Has to work all the time");
|
||||
[commandRegExp enumerateMatchesInString:context.evaluatedCommand options:0 range:NSMakeRange(0, [context.evaluatedCommand length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
|
||||
@autoreleasepool {
|
||||
@@ -160,6 +160,9 @@
|
||||
if(!commandString) {
|
||||
return;
|
||||
}
|
||||
/* TODO: Test for special Commands */
|
||||
/* TODO: fall back to paste if nothing matches */
|
||||
|
||||
|
||||
NSNumber *keyCodeNumber = [self keypressCommands][commandString];
|
||||
|
||||
@@ -167,6 +170,9 @@
|
||||
CGKeyCode keyCode = [keyCodeNumber keyCodeValue];
|
||||
[commands addObject:[[MPAutotypeKeyPress alloc] initWithModifierMask:flags keyCode:keyCode]];
|
||||
}
|
||||
else {
|
||||
[self appendPasteCommandForContent:commandString toCommands:commands];
|
||||
}
|
||||
}
|
||||
|
||||
+ (BOOL)updateModifierMask:(CGEventFlags *)mask forCommand:(NSString *)commandString {
|
||||
|
||||
@@ -44,22 +44,25 @@
|
||||
KPKEntry *entry = [[KPKEntry alloc] init];
|
||||
entry.title = @"Title";
|
||||
entry.url = @"www.myurl.com";
|
||||
entry.username = @"Username";
|
||||
entry.password = @"Password";
|
||||
entry.username = @"{{User{name}}}";
|
||||
entry.password = @"Pass{word}";
|
||||
|
||||
MPAutotypeContext *context = [[MPAutotypeContext alloc] initWithEntry:entry andSequence:@"{USERNAME}{TAB}{PASSWORD}{ENTER}"];
|
||||
NSArray *commands = [MPAutotypeCommand commandsForContext:context];
|
||||
|
||||
XCTAssert([commands count] == 4);
|
||||
XCTAssert([commands count] == 7);
|
||||
XCTAssert([commands[0] isKindOfClass:[MPAutotypePaste class]]);
|
||||
XCTAssert([commands[1] isKindOfClass:[MPAutotypeKeyPress class]]);
|
||||
XCTAssert([commands[1] isKindOfClass:[MPAutotypePaste class]]);
|
||||
XCTAssert([commands[2] isKindOfClass:[MPAutotypePaste class]]);
|
||||
XCTAssert([commands[3] isKindOfClass:[MPAutotypeKeyPress class]]);
|
||||
XCTAssert([commands[4] isKindOfClass:[MPAutotypePaste class]]);
|
||||
XCTAssert([commands[5] isKindOfClass:[MPAutotypePaste class]]);
|
||||
XCTAssert([commands[6] isKindOfClass:[MPAutotypeKeyPress class]]);
|
||||
|
||||
context = [[MPAutotypeContext alloc] initWithEntry:entry andSequence:@"^T{USERNAME}%+^{TAB}Whoo{PASSWORD}{ENTER}"];
|
||||
commands = [MPAutotypeCommand commandsForContext:context];
|
||||
|
||||
|
||||
XCTAssert([commands count] == 5);
|
||||
//XCTAssert([commands count] == 5);
|
||||
}
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user