mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 14:02:28 +00:00
Removed MPToken. Functionality will be added to KeePassKit
This commit is contained in:
@@ -43,7 +43,6 @@
|
|||||||
4C2E382316D1421B00037A9D /* MPIconHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2E382216D1421B00037A9D /* MPIconHelper.m */; };
|
4C2E382316D1421B00037A9D /* MPIconHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2E382216D1421B00037A9D /* MPIconHelper.m */; };
|
||||||
4C2E382616D1470200037A9D /* MPViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2E382516D1470200037A9D /* MPViewController.m */; };
|
4C2E382616D1470200037A9D /* MPViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2E382516D1470200037A9D /* MPViewController.m */; };
|
||||||
4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C32B0E61A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m */; };
|
4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C32B0E61A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m */; };
|
||||||
4C34BF541FB20D09002384CB /* MPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C34BF531FB20D09002384CB /* MPToken.m */; };
|
|
||||||
4C3666411787327E00B249F1 /* MPDocument+Attachments.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3666401787327E00B249F1 /* MPDocument+Attachments.m */; };
|
4C3666411787327E00B249F1 /* MPDocument+Attachments.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3666401787327E00B249F1 /* MPDocument+Attachments.m */; };
|
||||||
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; };
|
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; };
|
||||||
4C3826721AD04B51007D7D67 /* addFolderTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */; };
|
4C3826721AD04B51007D7D67 /* addFolderTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826711AD04B51007D7D67 /* addFolderTemplate.pdf */; };
|
||||||
@@ -96,7 +95,6 @@
|
|||||||
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3B42861F935316007B04FD /* MPDayCountFormatter.m */; };
|
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3B42861F935316007B04FD /* MPDayCountFormatter.m */; };
|
||||||
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
|
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
|
||||||
4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */; };
|
4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */; };
|
||||||
4C40DDBC1FB219EF00E0B2F6 /* MPTestToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C40DDBB1FB219EF00E0B2F6 /* MPTestToken.m */; };
|
|
||||||
4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; };
|
4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; };
|
||||||
4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; };
|
4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; };
|
||||||
4C45FB1D178E09ED0010007D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; };
|
4C45FB1D178E09ED0010007D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; };
|
||||||
@@ -365,8 +363,6 @@
|
|||||||
4C2E382516D1470200037A9D /* MPViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPViewController.m; sourceTree = "<group>"; };
|
4C2E382516D1470200037A9D /* MPViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPViewController.m; sourceTree = "<group>"; };
|
||||||
4C32B0E51A1D4436007E12F1 /* KPKFormat+MPUTIDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKFormat+MPUTIDetection.h"; sourceTree = "<group>"; };
|
4C32B0E51A1D4436007E12F1 /* KPKFormat+MPUTIDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKFormat+MPUTIDetection.h"; sourceTree = "<group>"; };
|
||||||
4C32B0E61A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKFormat+MPUTIDetection.m"; sourceTree = "<group>"; };
|
4C32B0E61A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KPKFormat+MPUTIDetection.m"; sourceTree = "<group>"; };
|
||||||
4C34BF521FB20D09002384CB /* MPToken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPToken.h; sourceTree = "<group>"; };
|
|
||||||
4C34BF531FB20D09002384CB /* MPToken.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPToken.m; sourceTree = "<group>"; };
|
|
||||||
4C3666401787327E00B249F1 /* MPDocument+Attachments.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Attachments.m"; sourceTree = "<group>"; };
|
4C3666401787327E00B249F1 /* MPDocument+Attachments.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+Attachments.m"; sourceTree = "<group>"; };
|
||||||
4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = "<group>"; };
|
4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = "<group>"; };
|
||||||
4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = "<group>"; };
|
4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = "<group>"; };
|
||||||
@@ -423,7 +419,6 @@
|
|||||||
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
|
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
|
||||||
4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPValueTransformerHelper.h; sourceTree = "<group>"; };
|
4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPValueTransformerHelper.h; sourceTree = "<group>"; };
|
||||||
4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPValueTransformerHelper.m; sourceTree = "<group>"; };
|
4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPValueTransformerHelper.m; sourceTree = "<group>"; };
|
||||||
4C40DDBB1FB219EF00E0B2F6 /* MPTestToken.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPTestToken.m; sourceTree = "<group>"; };
|
|
||||||
4C4161021F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
4C4161021F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatabaseSettingsWindow.strings; sourceTree = "<group>"; };
|
||||||
4C4161031F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordEditWindow.strings; sourceTree = "<group>"; };
|
4C4161031F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PasswordEditWindow.strings; sourceTree = "<group>"; };
|
||||||
4C4161041F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
4C4161041F50333B003BC0AF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
||||||
@@ -1093,7 +1088,6 @@
|
|||||||
4C45FB2F178E0CE20010007D /* MPTestDocument.m */,
|
4C45FB2F178E0CE20010007D /* MPTestDocument.m */,
|
||||||
4C6BC65F1A36717E00BDDF3D /* MPDatabaseSearch.m */,
|
4C6BC65F1A36717E00BDDF3D /* MPDatabaseSearch.m */,
|
||||||
4C8030491E2FBAA300133E4C /* MPTestKeyMapper.m */,
|
4C8030491E2FBAA300133E4C /* MPTestKeyMapper.m */,
|
||||||
4C40DDBB1FB219EF00E0B2F6 /* MPTestToken.m */,
|
|
||||||
4C45FB1F178E09ED0010007D /* Supporting Files */,
|
4C45FB1F178E09ED0010007D /* Supporting Files */,
|
||||||
);
|
);
|
||||||
path = MacPassTests;
|
path = MacPassTests;
|
||||||
@@ -1369,8 +1363,6 @@
|
|||||||
4CA3530A18A53CB800839B0F /* MPKeyMapper.m */,
|
4CA3530A18A53CB800839B0F /* MPKeyMapper.m */,
|
||||||
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */,
|
4C1F7FA01E3A12E600D6A40E /* MPModifiedKey.h */,
|
||||||
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */,
|
4C1F7FA11E3A12E600D6A40E /* MPModifiedKey.m */,
|
||||||
4C34BF521FB20D09002384CB /* MPToken.h */,
|
|
||||||
4C34BF531FB20D09002384CB /* MPToken.m */,
|
|
||||||
);
|
);
|
||||||
name = Autotype;
|
name = Autotype;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1800,7 +1792,6 @@
|
|||||||
4C8DEAA21C314D2C00D24C32 /* MPTestAutotypeDelay.m in Sources */,
|
4C8DEAA21C314D2C00D24C32 /* MPTestAutotypeDelay.m in Sources */,
|
||||||
4C45FB30178E0CE20010007D /* MPTestDocument.m in Sources */,
|
4C45FB30178E0CE20010007D /* MPTestDocument.m in Sources */,
|
||||||
4C6BC6601A36717E00BDDF3D /* MPDatabaseSearch.m in Sources */,
|
4C6BC6601A36717E00BDDF3D /* MPDatabaseSearch.m in Sources */,
|
||||||
4C40DDBC1FB219EF00E0B2F6 /* MPTestToken.m in Sources */,
|
|
||||||
4C10207F1B750E2F00BFCD59 /* MPTestAutotype.m in Sources */,
|
4C10207F1B750E2F00BFCD59 /* MPTestAutotype.m in Sources */,
|
||||||
4C80304A1E2FBAA300133E4C /* MPTestKeyMapper.m in Sources */,
|
4C80304A1E2FBAA300133E4C /* MPTestKeyMapper.m in Sources */,
|
||||||
);
|
);
|
||||||
@@ -1865,7 +1856,6 @@
|
|||||||
4C88C66918D9F8D600F43852 /* MPTemporaryFileStorageCenter.m in Sources */,
|
4C88C66918D9F8D600F43852 /* MPTemporaryFileStorageCenter.m in Sources */,
|
||||||
4C7B63741C0CB51F00D7038C /* TTTDateTransformers.m in Sources */,
|
4C7B63741C0CB51F00D7038C /* TTTDateTransformers.m in Sources */,
|
||||||
4CF5BE6D1BF33E3000048505 /* NSApplication+MPAdditions.m in Sources */,
|
4CF5BE6D1BF33E3000048505 /* NSApplication+MPAdditions.m in Sources */,
|
||||||
4C34BF541FB20D09002384CB /* MPToken.m in Sources */,
|
|
||||||
4CE30ACC1A312B7F0063FCC6 /* MPReferenceBuilderViewController.m in Sources */,
|
4CE30ACC1A312B7F0063FCC6 /* MPReferenceBuilderViewController.m in Sources */,
|
||||||
4C6F228C19A4AA700012310C /* MPAutotypeDelay.m in Sources */,
|
4C6F228C19A4AA700012310C /* MPAutotypeDelay.m in Sources */,
|
||||||
4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */,
|
4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */,
|
||||||
|
|||||||
@@ -109,10 +109,10 @@
|
|||||||
|
|
||||||
- (NSTokenStyle)tokenField:(NSTokenField *)tokenField styleForRepresentedObject:(id)representedObject {
|
- (NSTokenStyle)tokenField:(NSTokenField *)tokenField styleForRepresentedObject:(id)representedObject {
|
||||||
if(tokenField == self.availableCommandsTokenField) {
|
if(tokenField == self.availableCommandsTokenField) {
|
||||||
return NSTokenStyleDefault;
|
return NSTokenStyleSquared;
|
||||||
}
|
}
|
||||||
if([representedObject hasPrefix:@"{"] || [representedObject hasSuffix:@"}"]) {
|
if([representedObject hasPrefix:@"{"] || [representedObject hasSuffix:@"}"]) {
|
||||||
return NSTokenStyleDefault;
|
return NSTokenStyleSquared;
|
||||||
}
|
}
|
||||||
return NSTokenStyleNone;
|
return NSTokenStyleNone;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
//
|
|
||||||
// MPToken.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 07.11.17.
|
|
||||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
@interface MPToken : NSObject
|
|
||||||
|
|
||||||
@property (readonly, copy) NSString *value;
|
|
||||||
|
|
||||||
+ (NSArray<MPToken *> *)tokenizeString:(NSString *)string;
|
|
||||||
- (instancetype)initWithValue:(NSString *)value NS_DESIGNATED_INITIALIZER;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
@@ -1,147 +0,0 @@
|
|||||||
//
|
|
||||||
// MPToken.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 07.11.17.
|
|
||||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "MPToken.h"
|
|
||||||
|
|
||||||
#import <KeePassKit/KeePassKit.h>
|
|
||||||
#import <Carbon/Carbon.h>
|
|
||||||
|
|
||||||
@interface NSString (MPTokenExtension)
|
|
||||||
@property (nonatomic, readonly) BOOL isOpenCurlyBraket;
|
|
||||||
@property (nonatomic, readonly) BOOL isClosingCurlyBraket;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation NSString (MPTokenExtension)
|
|
||||||
|
|
||||||
- (BOOL)isOpenCurlyBraket {
|
|
||||||
return [self isEqualToString:@"{"];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)isClosingCurlyBraket {
|
|
||||||
return [self isEqualToString:@"}"];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface MPToken ()
|
|
||||||
|
|
||||||
@property (copy) NSString *value;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, MPTokenizeState) {
|
|
||||||
MPTokenizeStateNormal,
|
|
||||||
MPTokenizeStateCompoundToken,
|
|
||||||
MPTokenizerStateError
|
|
||||||
};
|
|
||||||
|
|
||||||
@implementation MPToken
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mapping for modifier to CGEventFlags.
|
|
||||||
*
|
|
||||||
* @return dictionary with commands as keys and CGEventFlags as wrapped values
|
|
||||||
*/
|
|
||||||
+ (NSDictionary *)_modifierCommands {
|
|
||||||
static NSDictionary *modifierCommands;
|
|
||||||
static dispatch_once_t onceToken;
|
|
||||||
dispatch_once(&onceToken, ^{
|
|
||||||
modifierCommands = @{
|
|
||||||
kKPKAutotypeAlt : @(kCGEventFlagMaskAlternate),
|
|
||||||
kKPKAutotypeControl : @(kCGEventFlagMaskControl),
|
|
||||||
kKPKAutotypeShift : @(kCGEventFlagMaskShift)
|
|
||||||
};
|
|
||||||
});
|
|
||||||
return modifierCommands;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSArray<MPToken *> *)tokenizeString:(NSString *)string {
|
|
||||||
if(!string) {
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
__block NSMutableString *tokenValue = [[NSMutableString alloc] init];
|
|
||||||
__block MPTokenizeState state = MPTokenizeStateNormal;
|
|
||||||
__block NSMutableArray *tokens = [[NSMutableArray alloc] initWithCapacity:MAX(1,string.length)];
|
|
||||||
[string enumerateSubstringsInRange:NSMakeRange(0, string.length)
|
|
||||||
options:NSStringEnumerationByComposedCharacterSequences
|
|
||||||
usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop) {
|
|
||||||
switch(state) {
|
|
||||||
case MPTokenizeStateNormal: {
|
|
||||||
if(substring.isOpenCurlyBraket) {
|
|
||||||
[tokenValue setString:@"{"];
|
|
||||||
state = MPTokenizeStateCompoundToken;
|
|
||||||
}
|
|
||||||
else if(substring.isClosingCurlyBraket) {
|
|
||||||
state = MPTokenizerStateError;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
MPToken *token = [[MPToken alloc] initWithValue:substring];
|
|
||||||
if(token) {
|
|
||||||
[tokens addObject:token];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
state = MPTokenizerStateError;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MPTokenizeStateCompoundToken: {
|
|
||||||
if(substring.isOpenCurlyBraket) {
|
|
||||||
state = MPTokenizerStateError;
|
|
||||||
}
|
|
||||||
else if(substring.isClosingCurlyBraket) {
|
|
||||||
state = MPTokenizeStateNormal;
|
|
||||||
[tokenValue appendString:@"}"];
|
|
||||||
MPToken *token = [[MPToken alloc] initWithValue:tokenValue];
|
|
||||||
if(token) {
|
|
||||||
[tokens addObject:token];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
state = MPTokenizerStateError;
|
|
||||||
}
|
|
||||||
/* clear tokenvalue */
|
|
||||||
[tokenValue setString:@""];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[tokenValue appendString:substring];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MPTokenizerStateError:
|
|
||||||
default:
|
|
||||||
state = MPTokenizerStateError;
|
|
||||||
*stop = YES;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
return [tokens copy];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (instancetype)init {
|
|
||||||
self = [self initWithValue:@""];
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (instancetype)initWithValue:(NSString *)value {
|
|
||||||
if(!value) {
|
|
||||||
[[NSException exceptionWithName:NSInvalidArgumentException reason:@"Token vale cannot be nil!" userInfo:nil] raise];
|
|
||||||
self = nil;
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
self = [super init];
|
|
||||||
if(self) {
|
|
||||||
_value = [value copy];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)description {
|
|
||||||
return self.value.description;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
//
|
|
||||||
// MPTestToken.m
|
|
||||||
// MacPassTests
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 07.11.17.
|
|
||||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <XCTest/XCTest.h>
|
|
||||||
#import "MPToken.h"
|
|
||||||
|
|
||||||
@interface MPTestToken : XCTestCase
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation MPTestToken
|
|
||||||
|
|
||||||
- (void)setUp {
|
|
||||||
[super setUp];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tearDown {
|
|
||||||
[super tearDown];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testTokenizing {
|
|
||||||
NSArray <MPToken *> *tokens = [MPToken tokenizeString:@"{^}{USERNAME}^S+H{SPACE}"];
|
|
||||||
XCTAssertEqual(7, tokens.count);
|
|
||||||
|
|
||||||
XCTAssertEqual(7, tokens.count);
|
|
||||||
XCTAssertEqualObjects(@"{^}", tokens[0].value);
|
|
||||||
XCTAssertEqualObjects(@"{USERNAME}", tokens[1].value);
|
|
||||||
XCTAssertEqualObjects(@"^", tokens[2].value);
|
|
||||||
XCTAssertEqualObjects(@"S", tokens[3].value);
|
|
||||||
XCTAssertEqualObjects(@"+", tokens[4].value);
|
|
||||||
XCTAssertEqualObjects(@"H", tokens[5].value);
|
|
||||||
XCTAssertEqualObjects(@"{SPACE}", tokens[6].value);
|
|
||||||
|
|
||||||
tokens = [MPToken tokenizeString:@"{^}{USERNAME 2}^S+H{SPACE 2}"];
|
|
||||||
XCTAssertEqual(7, tokens.count);
|
|
||||||
XCTAssertEqualObjects(@"{^}", tokens[0].value);
|
|
||||||
XCTAssertEqualObjects(@"{USERNAME 2}", tokens[1].value);
|
|
||||||
XCTAssertEqualObjects(@"^", tokens[2].value);
|
|
||||||
XCTAssertEqualObjects(@"S", tokens[3].value);
|
|
||||||
XCTAssertEqualObjects(@"+", tokens[4].value);
|
|
||||||
XCTAssertEqualObjects(@"H", tokens[5].value);
|
|
||||||
XCTAssertEqualObjects(@"{SPACE 2}", tokens[6].value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
||||||
Reference in New Issue
Block a user