Skip to content
Snippets Groups Projects
Commit d76d1e5a authored by George Nachman's avatar George Nachman
Browse files

Fix failing tests. In macOS 10.13, U+200C does not combine with U+200B.

parent cf3c8a06
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -1908,33 +1908,37 @@ NSLog(@"Known bug: %s should be true, but %s is.", #expressionThatShouldBeTrue,
XCTAssert(line[0].backgroundColor == 6);
XCTAssert(line[0].backgroundColorMode == ColorModeNormal);
 
NSString *a = [ScreenCharToStr(line + 0) decomposedStringWithCompatibilityMapping];
int i = 0;
NSString *a = [ScreenCharToStr(line + i++) decomposedStringWithCompatibilityMapping];
NSString *e = [@"´" decomposedStringWithCompatibilityMapping];
XCTAssert([a isEqualToString:e]);
 
a = [ScreenCharToStr(line + 1) decomposedStringWithCompatibilityMapping];
a = [ScreenCharToStr(line + i++) decomposedStringWithCompatibilityMapping];
e = [@"á" decomposedStringWithCompatibilityMapping];
XCTAssert([a isEqualToString:e]);
 
a = [ScreenCharToStr(line + 2) decomposedStringWithCompatibilityMapping];
a = [ScreenCharToStr(line + i++) decomposedStringWithCompatibilityMapping];
e = [@"á̧" decomposedStringWithCompatibilityMapping];
XCTAssert([a isEqualToString:e]);
 
a = ScreenCharToStr(line + 3);
a = ScreenCharToStr(line + i++);
e = @"𐅐";
XCTAssert([a isEqualToString:e]);
 
XCTAssert([ScreenCharToStr(line + 4) isEqualToString:@"E"]);
XCTAssert(line[5].code == DWC_RIGHT);
XCTAssert([ScreenCharToStr(line + 6) isEqualToString:@"�"]);
XCTAssert([ScreenCharToStr(line + 7) isEqualToString:@"\u200b"]); // zero-width space advances cursor by default.
XCTAssert([ScreenCharToStr(line + 8) isEqualToString:@"g"]);
XCTAssert([ScreenCharToStr(line + 9) isEqualToString:@"ł"]);
XCTAssert([ScreenCharToStr(line + 10) isEqualToString:@"🖕🏾"]);
XCTAssert([ScreenCharToStr(line + 11) isEqualToString:@"g"]);
XCTAssert([ScreenCharToStr(line + 12) isEqualToString:@"🏾"]); // Skin tone modifier only combines with certain emoji
XCTAssert(line[13].code == 0);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"E"]);
XCTAssert(line[i++].code == DWC_RIGHT);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"�"]);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"\u200b"]); // zero-width space advances cursor by default.
if (@available(macOS 10.13, *)) {
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"\u200c\u200d"]); // Funny way macoS 10.13 works
}
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"g"]);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"ł"]);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"🖕🏾"]);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"g"]);
XCTAssert([ScreenCharToStr(line + i++) isEqualToString:@"🏾"]); // Skin tone modifier only combines with certain emoji
XCTAssert(line[i++].code == 0);
}
 
- (void)testLinefeed {
Loading
Loading
Loading
Loading
@@ -40,6 +40,13 @@
}
 
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory {
BOOL timedOut;
return [self fileExistsAtPath:path isDirectory:isDirectory timedOut:&timedOut];
}
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory timedOut:(BOOL *)timedOut {
*timedOut = NO;
if ([_files containsObject:path]) {
if (isDirectory) {
*isDirectory = NO;
Loading
Loading
@@ -57,7 +64,9 @@
return NO;
}
 
- (BOOL)fileExistsAtPathLocally:(NSString *)filename additionalNetworkPaths:(NSArray *)additionalNetworkPaths {
- (BOOL)fileExistsAtPathLocally:(NSString *)filename
additionalNetworkPaths:(NSArray<NSString *> *)additionalNetworkPaths
timedOut:(BOOL *)timedOutPtr {
NSMutableArray *networkPaths = [[_networkMountPoints mutableCopy] autorelease];
[networkPaths addObjectsFromArray:additionalNetworkPaths];
for (NSString *networkPath in networkPaths) {
Loading
Loading
@@ -70,7 +79,8 @@
}
 
- (BOOL)fileExistsAtPath:(NSString *)path {
return [self fileExistsAtPath:path isDirectory:NULL];
BOOL timedOut;
return [self fileExistsAtPath:path isDirectory:NULL timedOut:&timedOut];
}
 
@end
Loading
Loading
@@ -168,17 +178,21 @@
#pragma mark - Get Full Path
 
- (void)testGetFullPathFailsOnNil {
BOOL timedOut;
XCTAssert([_semanticHistoryController getFullPath:nil
workingDirectory:@"/"
lineNumber:NULL
columnNumber:NULL] == nil);
columnNumber:NULL
timedOut:&timedOut] == nil);
}
 
- (void)testGetFullPathFailsOnEmpty {
BOOL timedOut;
XCTAssert([_semanticHistoryController getFullPath:@""
workingDirectory:@"/"
lineNumber:NULL
columnNumber:NULL] == nil);
columnNumber:NULL
timedOut:&timedOut] == nil);
}
 
- (void)testGetFullPathFindsExistingFileAtAbsolutePath {
Loading
Loading
@@ -187,10 +201,12 @@
static NSString *const kFilename = @"/path/to/file";
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -204,10 +220,12 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -221,10 +239,12 @@
NSString *kFilenameWithParens = [NSString stringWithFormat:@"%C%@%C", [delimiters characterAtIndex:0], kFilename, [delimiters characterAtIndex:1]];
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithParens
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
assert([expected isEqualToString:actual]);
assert(lineNumber.length == 0);
Loading
Loading
@@ -239,10 +259,12 @@
NSString *kFilenameWithParens = [kFilename stringByAppendingString:punctuation];
static NSString *const kWorkingDirectory = @"/working/directory";
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithParens
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -256,10 +278,12 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [kFilename stringByAppendingString:@":123"];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -272,10 +296,12 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [kFilename stringByAppendingString:@":123:456"];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -288,10 +314,12 @@
static NSString *const kWorkingDirectory = @"/working/directory";
NSString *kFilenameWithLineNumber = [NSString stringWithFormat:@"(%@:123.)", kFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilenameWithLineNumber
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.integerValue == 123);
Loading
Loading
@@ -302,10 +330,12 @@
NSString *columnNumber = nil;
static NSString *const kWorkingDirectory = @"/working/directory";
static NSString *const kFilename = @"(:123.)";
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
XCTAssert(actual == nil);
}
 
Loading
Loading
@@ -317,10 +347,12 @@
NSString *kAbsoluteFilename = @"/working/directory/path/to/file";
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
[_semanticHistoryController.fakeFileManager.files addObject:@"/working/directory/./path/to/file"];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -334,10 +366,12 @@
NSString *kAbsoluteFilename = @"/working/directory/path/to/file";
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
[_semanticHistoryController.fakeFileManager.files addObject:@"/working/directory/blah/../path/to/file"];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -351,10 +385,12 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:[@"a/" stringByAppendingString:kRelativeFilename]
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -368,10 +404,12 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:[@"b/" stringByAppendingString:kRelativeFilename]
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
XCTAssert(lineNumber.length == 0);
Loading
Loading
@@ -385,10 +423,12 @@
NSString *kAbsoluteFilename =
[kWorkingDirectory stringByAppendingPathComponent:kRelativeFilename];
[_semanticHistoryController.fakeFileManager.files addObject:kAbsoluteFilename];
BOOL timedOut;
NSString *actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
NSString *expected = kAbsoluteFilename;
XCTAssert([expected isEqualToString:actual]);
 
Loading
Loading
@@ -396,7 +436,8 @@
actual = [_semanticHistoryController getFullPath:kRelativeFilename
workingDirectory:kWorkingDirectory
lineNumber:&lineNumber
columnNumber:&columnNumber];
columnNumber:&columnNumber
timedOut:&timedOut];
XCTAssert(actual == nil);
}
 
Loading
Loading
Loading
Loading
@@ -60,6 +60,7 @@ NSString *const kSemanticHistoryWorkingDirectorySubstitutionKey = @"semanticHist
columnNumber:(NSString **)columnNumber
timedOut:(BOOL *)timedOut {
DLog(@"Check if %@ is a valid path in %@", path, workingDirectory);
*timedOut = NO;
NSString *origPath = path;
// TODO(chendo): Move regex, define capture semantics in config file/prefs
if (!path || [path length] == 0) {
Loading
Loading
tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png

8.65 KiB | W: 146px | H: 110px

tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png

8.67 KiB | W: 146px | H: 110px

tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png
tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png
tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png
tests/Goldens/PTYTextViewTest-golden-testDoubleWidthCharacter.png
  • 2-up
  • Swipe
  • Onion skin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment