Skip to content

Commit ddf0890

Browse files
committed
Fix crash on nil message
// FREEBIE
1 parent 157b5ef commit ddf0890

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

Signal/src/Models/OWSMessagesBubblesSizeCalculator.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ - (CGSize)messageBubbleSizeForMessageData:(id<JSQMessageData>)messageData
7575
*/
7676
- (BOOL)shouldApplyiOS10EmojiFixToString:(NSString *)string font:(UIFont *)font
7777
{
78+
if (!string) {
79+
return NO;
80+
}
81+
7882
BOOL isIOS10OrGreater =
7983
[[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 10 }];
8084
if (!isIOS10OrGreater) {

Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ class FakeMessageData: NSObject, JSQMessageData {
2424
return 1
2525
}
2626

27-
var bodyText: String = "fake message data text"
28-
func text() -> String {
27+
var bodyText: String? = "fake message data text"
28+
func text() -> String? {
2929
return self.bodyText
3030
}
3131

32-
init(text: String) {
32+
init(text: String?) {
3333
self.bodyText = text;
3434
}
3535
}
@@ -56,6 +56,12 @@ class MesssagesBubblesSizeCalculatorTest: XCTestCase {
5656
let layout = FakeiPhone6JSQMessagesCollectionViewFlowLayout()
5757
let calculator = MessagesBubblesSizeCalculator()
5858

59+
func testHeightForNilMessage() {
60+
let messageData = FakeMessageData(text:nil)
61+
let actual = calculator.messageBubbleSize(for: messageData, at: indexPath, with: layout)
62+
XCTAssertEqual(16, actual.height);
63+
}
64+
5965
func testHeightForShort1LineMessage() {
6066
let messageData = FakeMessageData(text:"foo")
6167
let actual = calculator.messageBubbleSize(for: messageData, at: indexPath, with: layout)

0 commit comments

Comments
 (0)