diff --git a/Signal/src/Models/OWSMessagesBubblesSizeCalculator.m b/Signal/src/Models/OWSMessagesBubblesSizeCalculator.m index cabbcd87c..3d4edc8e6 100644 --- a/Signal/src/Models/OWSMessagesBubblesSizeCalculator.m +++ b/Signal/src/Models/OWSMessagesBubblesSizeCalculator.m @@ -75,6 +75,10 @@ NS_ASSUME_NONNULL_BEGIN */ - (BOOL)shouldApplyiOS10EmojiFixToString:(NSString *)string font:(UIFont *)font { + if (!string) { + return NO; + } + BOOL isIOS10OrGreater = [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 10 }]; if (!isIOS10OrGreater) { diff --git a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift b/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift index 0faae288e..b54d44911 100644 --- a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift +++ b/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift @@ -24,12 +24,12 @@ class FakeMessageData: NSObject, JSQMessageData { return 1 } - var bodyText: String = "fake message data text" - func text() -> String { + var bodyText: String? = "fake message data text" + func text() -> String? { return self.bodyText } - init(text: String) { + init(text: String?) { self.bodyText = text; } } @@ -56,6 +56,12 @@ class MesssagesBubblesSizeCalculatorTest: XCTestCase { let layout = FakeiPhone6JSQMessagesCollectionViewFlowLayout() let calculator = MessagesBubblesSizeCalculator() + func testHeightForNilMessage() { + let messageData = FakeMessageData(text:nil) + let actual = calculator.messageBubbleSize(for: messageData, at: indexPath, with: layout) + XCTAssertEqual(16, actual.height); + } + func testHeightForShort1LineMessage() { let messageData = FakeMessageData(text:"foo") let actual = calculator.messageBubbleSize(for: messageData, at: indexPath, with: layout)