From 758afabde3ed99aefc850fec1cc9ec8fd63f2387 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Tue, 4 Dec 2018 13:40:24 -0800 Subject: [PATCH] Fix isTruncated logic in ASTextNode2 (#1259) * Fix isTruncated logic in ASTextNode2 * Add truncation tests --- Source/ASTextNode2.mm | 2 +- Tests/ASTextNode2Tests.mm | 9 +++++++++ Tests/ASTextNodeTests.mm | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Source/ASTextNode2.mm b/Source/ASTextNode2.mm index 14c2afd93f..975843fff8 100644 --- a/Source/ASTextNode2.mm +++ b/Source/ASTextNode2.mm @@ -1145,7 +1145,7 @@ static NSAttributedString *DefaultTruncationAttributedString() - (BOOL)isTruncated { - return ASLockedSelf([self locked_textLayoutForSize:[self _locked_threadSafeBounds].size].truncatedLine == nil); + return ASLockedSelf([self locked_textLayoutForSize:[self _locked_threadSafeBounds].size].truncatedLine != nil); } - (BOOL)shouldTruncateForConstrainedSize:(ASSizeRange)constrainedSize diff --git a/Tests/ASTextNode2Tests.mm b/Tests/ASTextNode2Tests.mm index 2bc513af02..c54cae2ecf 100644 --- a/Tests/ASTextNode2Tests.mm +++ b/Tests/ASTextNode2Tests.mm @@ -12,6 +12,7 @@ #import #import +#import #import @@ -63,6 +64,14 @@ _textNode.attributedText = _attributedText; } +- (void)testTruncation +{ + XCTAssertTrue([(ASTextNode *)_textNode shouldTruncateForConstrainedSize:ASSizeRangeMake(CGSizeMake(100, 100))], @"Text Node should truncate"); + + _textNode.frame = CGRectMake(0, 0, 100, 100); + XCTAssertTrue(_textNode.isTruncated, @"Text Node should be truncated"); +} + - (void)testAccessibility { XCTAssertTrue(_textNode.isAccessibilityElement, @"Should be an accessibility element"); diff --git a/Tests/ASTextNodeTests.mm b/Tests/ASTextNodeTests.mm index 0dc5137a6f..4580ade980 100644 --- a/Tests/ASTextNodeTests.mm +++ b/Tests/ASTextNodeTests.mm @@ -16,6 +16,7 @@ #import #import #import +#import #import #import @@ -102,6 +103,14 @@ #pragma mark - ASTextNode +- (void)testTruncation +{ + XCTAssertTrue([_textNode shouldTruncateForConstrainedSize:ASSizeRangeMake(CGSizeMake(100, 100))], @""); + + _textNode.frame = CGRectMake(0, 0, 100, 100); + XCTAssertTrue(_textNode.isTruncated, @"Text Node should be truncated"); +} + - (void)testSettingTruncationMessage { NSAttributedString *truncation = [[NSAttributedString alloc] initWithString:@"..." attributes:nil];