From c19a8ce07e55dc362c4475e204258de89e7f52f5 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 17 Jul 2018 16:42:09 -0600 Subject: [PATCH] Fixup tests // FREEBIE --- Signal.xcodeproj/project.pbxproj | 4 - .../MesssagesBubblesSizeCalculatorTest.swift | 117 ------------------ .../ConversationViewItemTest.m | 24 +++- .../test/call/PeerConnectionClientTest.swift | 4 +- Signal/test/util/SearcherTest.swift | 13 ++ 5 files changed, 33 insertions(+), 129 deletions(-) delete mode 100644 Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 325ec37a8..b9d115406 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -308,7 +308,6 @@ 452C7CA72037628B003D51A5 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170D51E315310003FC1F2 /* Weak.swift */; }; 452D1AF12081059C00A67F7F /* StringAdditionsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D1AF02081059C00A67F7F /* StringAdditionsTest.swift */; }; 452D1AF320810B6F00A67F7F /* String+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D1AF220810B6F00A67F7F /* String+OWS.swift */; }; - 452D1EE81DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */; }; 452EA09E1EA7ABE00078744B /* AttachmentPointerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452EA09D1EA7ABE00078744B /* AttachmentPointerView.swift */; }; 452EC6DF205E9E30000E787C /* MediaGalleryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452EC6DE205E9E30000E787C /* MediaGalleryViewController.swift */; }; 452EC6E1205FF5DC000E787C /* Bench.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452EC6E0205FF5DC000E787C /* Bench.swift */; }; @@ -951,7 +950,6 @@ 452C468E1E427E200087B011 /* OutboundCallInitiator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutboundCallInitiator.swift; sourceTree = ""; }; 452D1AF02081059C00A67F7F /* StringAdditionsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringAdditionsTest.swift; sourceTree = ""; }; 452D1AF220810B6F00A67F7F /* String+OWS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+OWS.swift"; sourceTree = ""; }; - 452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MesssagesBubblesSizeCalculatorTest.swift; path = Models/MesssagesBubblesSizeCalculatorTest.swift; sourceTree = ""; }; 452EA09D1EA7ABE00078744B /* AttachmentPointerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentPointerView.swift; sourceTree = ""; }; 452EC6DE205E9E30000E787C /* MediaGalleryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaGalleryViewController.swift; sourceTree = ""; }; 452EC6E0205FF5DC000E787C /* Bench.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bench.swift; sourceTree = ""; }; @@ -2004,7 +2002,6 @@ children = ( 458E38391D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m */, 458967101DC117CC00E9DD21 /* AccountManagerTest.swift */, - 452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */, ); name = Models; sourceTree = ""; @@ -3395,7 +3392,6 @@ 458967111DC117CC00E9DD21 /* AccountManagerTest.swift in Sources */, 340B02BA1FA0D6C700F9CFEC /* ConversationViewItemTest.m in Sources */, 458E383A1D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m in Sources */, - 452D1EE81DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift in Sources */, 45360B901F9527DA00FA666C /* SearcherTest.swift in Sources */, B660F7561C29988E00687D6E /* PushManager.m in Sources */, 34DB0BED2011548B007B313F /* OWSDatabaseConverterTest.m in Sources */, diff --git a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift b/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift deleted file mode 100644 index 30aa5e9b7..000000000 --- a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift +++ /dev/null @@ -1,117 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -import XCTest -import SignalServiceKit -@testable import Signal - -/** - * This is a brittle test, which will break if our layout changes. - * - * It serves mostly as documentation for cases to consider when changing the cell measurement logic. - * Primarily these test cases came out of a bug introduced in iOS10, - * which prevents us from computing proper bounding box for text that uses the UIEmoji font. - * - * If one of these tests breaks, it should be OK to update the expected value so long as you've tested the result renders - * correctly in the running app (the reference sizes were computed in the context of an iphone6 layout. - * @see `FakeiPhone6JSQMessagesCollectionViewFlowLayout` - */ -class MesssagesBubblesSizeCalculatorTest: XCTestCase { - - let thread = TSContactThread()! - let contactsManager = OWSContactsManager() - - func viewItemForText(_ text: String?) -> ConversationViewItem { - let interaction = TSOutgoingMessage(in: thread, messageBody: text, attachmentId: nil) - interaction.save() - - var viewItem: ConversationViewItem! - interaction.dbReadWriteConnection().readWrite { transaction in - viewItem = ConversationViewItem(interaction: interaction, isGroupThread: false, transaction: transaction) - } - - viewItem.shouldShowDate = false - viewItem.shouldHideRecipientStatus = true - return viewItem - } - - func messageBubbleSize(for viewItem: ConversationViewItem) -> CGSize { - viewItem.clearCachedLayoutState() - // These are the expected values on iPhone SE. - let viewWidth = 320 - let contentWidth = 300 - return viewItem.cellSize(forViewWidth: Int32(viewWidth), contentWidth: Int32(contentWidth)) - } - - func testHeightForEmptyMessage() { - let text: String? = "" - let viewItem = self.viewItemForText(text) - let actual = messageBubbleSize(for: viewItem) - XCTAssertEqual(36, actual.height) - } - - func testHeightForShort1LineMessage() { - let text = "foo" - let viewItem = self.viewItemForText(text) - let actual = messageBubbleSize(for: viewItem) - XCTAssertEqual(36, actual.height) - } - - func testHeightForLong1LineMessage() { - let text = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 x" - let viewItem = self.viewItemForText(text) - let actual = messageBubbleSize(for: viewItem) - XCTAssertEqual(58, actual.height) - } - - func testHeightForShort2LineMessage() { - let text = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 x 1" - let viewItem = self.viewItemForText(text) - let actual = messageBubbleSize(for: viewItem) - XCTAssertEqual(58, actual.height) - } - - func testHeightForLong2LineMessage() { - let text = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 x" - let viewItem = self.viewItemForText(text) - let actual = messageBubbleSize(for: viewItem) - XCTAssertEqual(80, actual.height) - } - - func testHeightForiOS10EmojiBug() { - let viewItem = self.viewItemForText("Wunderschönen Guten Morgaaaahhhn 😝 - hast du gut geschlafen ☺️😘") - let actual = messageBubbleSize(for: viewItem) - - XCTAssertEqual(80, actual.height) - } - - func testHeightForiOS10EmojiBug2() { - let viewItem = self.viewItemForText("Test test test test test test test test test test test test 😊❤️❤️") - let actual = messageBubbleSize(for: viewItem) - - XCTAssertEqual(80, actual.height) - } - - func testHeightForChineseWithEmojiBug() { - let viewItem = self.viewItemForText("一二三四五六七八九十甲乙丙😝戊己庚辛壬圭咖啡牛奶餅乾水果蛋糕") - let actual = messageBubbleSize(for: viewItem) - // erroneously seeing 69 with the emoji fix in place. - XCTAssertEqual(80, actual.height) - } - - func testHeightForChineseWithoutEmojiBug() { - let viewItem = self.viewItemForText("一二三四五六七八九十甲乙丙丁戊己庚辛壬圭咖啡牛奶餅乾水果蛋糕") - let actual = messageBubbleSize(for: viewItem) - // erroneously seeing 69 with the emoji fix in place. - XCTAssertEqual(80, actual.height) - } - - func testHeightForiOS10DoubleSpaceNumbersBug() { - let viewItem = self.viewItemForText("12345678901234567890") - let actual = messageBubbleSize(for: viewItem) - // erroneously seeing 51 with emoji fix in place. It's the call to "fix string" - XCTAssertEqual(58, actual.height) - } - -} diff --git a/Signal/test/ViewControllers/ConversationViewItemTest.m b/Signal/test/ViewControllers/ConversationViewItemTest.m index 767babc29..21491b408 100644 --- a/Signal/test/ViewControllers/ConversationViewItemTest.m +++ b/Signal/test/ViewControllers/ConversationViewItemTest.m @@ -4,14 +4,20 @@ #import "ConversationViewItem.h" #import +#import +#import #import #import +#import #import #import #import @interface ConversationViewItemTest : XCTestCase +@property TSThread *thread; +@property ConversationStyle *conversationStyle; + @end @implementation ConversationViewItemTest @@ -19,6 +25,8 @@ - (void)setUp { [super setUp]; + self.thread = [TSContactThread getOrCreateThreadWithContactId:@"+15555555"]; + self.conversationStyle = [[ConversationStyle alloc] initWithThread:self.thread]; } - (void)tearDown @@ -27,8 +35,6 @@ [super tearDown]; } -// Test canPerformAction - - (NSString *)fakeTextMessageText { return @"abc"; @@ -37,11 +43,14 @@ - (ConversationViewItem *)textViewItem { TSOutgoingMessage *message = - [TSOutgoingMessage outgoingMessageInThread:nil messageBody:self.fakeTextMessageText attachmentId:nil]; + [TSOutgoingMessage outgoingMessageInThread:self.thread messageBody:self.fakeTextMessageText attachmentId:nil]; [message save]; __block ConversationViewItem *viewItem = nil; [TSYapDatabaseObject.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { - viewItem = [[ConversationViewItem alloc] initWithInteraction:message isGroupThread:NO transaction:transaction]; + viewItem = [[ConversationViewItem alloc] initWithInteraction:message + isGroupThread:NO + transaction:transaction + conversationStyle:self.conversationStyle]; }]; return viewItem; } @@ -63,12 +72,15 @@ OWSAssert(success); [attachment save]; TSOutgoingMessage *message = - [TSOutgoingMessage outgoingMessageInThread:nil messageBody:nil attachmentId:attachment.uniqueId]; + [TSOutgoingMessage outgoingMessageInThread:self.thread messageBody:nil attachmentId:attachment.uniqueId]; [message save]; __block ConversationViewItem *viewItem = nil; [TSYapDatabaseObject.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { - viewItem = [[ConversationViewItem alloc] initWithInteraction:message isGroupThread:NO transaction:transaction]; + viewItem = [[ConversationViewItem alloc] initWithInteraction:message + isGroupThread:NO + transaction:transaction + conversationStyle:self.conversationStyle]; }]; return viewItem; diff --git a/Signal/test/call/PeerConnectionClientTest.swift b/Signal/test/call/PeerConnectionClientTest.swift index 34ef23466..4dfe219d6 100644 --- a/Signal/test/call/PeerConnectionClientTest.swift +++ b/Signal/test/call/PeerConnectionClientTest.swift @@ -39,10 +39,10 @@ class FakePeerConnectionClientDelegate: PeerConnectionClientDelegate { dataChannelMessages.append(dataChannelMessage) } - func peerConnectionClient(_ peerconnectionClient: PeerConnectionClient, didUpdateLocal videoTrack: RTCVideoTrack?) { + func peerConnectionClient(_ peerconnectionClient: PeerConnectionClient, didUpdateLocalVideoCaptureSession captureSession: AVCaptureSession?) { } - func peerConnectionClient(_ peerconnectionClient: PeerConnectionClient, didUpdateRemote videoTrack: RTCVideoTrack?) { + func peerConnectionClient(_ peerconnectionClient: PeerConnectionClient, didUpdateRemoteVideoTrack videoTrack: RTCVideoTrack?) { } } diff --git a/Signal/test/util/SearcherTest.swift b/Signal/test/util/SearcherTest.swift index d8e1aa5c0..56484d660 100644 --- a/Signal/test/util/SearcherTest.swift +++ b/Signal/test/util/SearcherTest.swift @@ -43,6 +43,7 @@ class StubbableEnvironment: TextSecureKitEnv { @objc class FakeContactsManager: NSObject, ContactsManagerProtocol { + func displayName(forPhoneIdentifier phoneNumber: String?) -> String { if phoneNumber == aliceRecipientId { return "Alice" @@ -70,6 +71,18 @@ class FakeContactsManager: NSObject, ContactsManagerProtocol { return .orderedAscending } + + func cnContact(withId contactId: String?) -> CNContact? { + return nil + } + + func avatarData(forCNContactId contactId: String?) -> Data? { + return nil + } + + func avatarImage(forCNContactId contactId: String?) -> UIImage? { + return nil + } } let bobRecipientId = "+49030183000"