From e7bd33df4521bdd0c374b28d6ede774e81901419 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 5 Dec 2017 12:02:21 -0500 Subject: [PATCH 1/4] Fix tests broken by SAE. --- Signal/test/util/UtilTest.m | 111 +++---------------------- SignalMessaging/environment/Release.m | 8 +- SignalMessaging/utils/ImageCache.swift | 2 +- 3 files changed, 20 insertions(+), 101 deletions(-) diff --git a/Signal/test/util/UtilTest.m b/Signal/test/util/UtilTest.m index 9394b6dca..fc0692a75 100644 --- a/Signal/test/util/UtilTest.m +++ b/Signal/test/util/UtilTest.m @@ -3,9 +3,20 @@ // #import "UtilTest.h" +#import "NSString+OWS.h" +#import "NumberUtil.h" #import "TestUtil.h" +@interface NSString (OWS_Test) + +- (NSString *)removeAllCharactersIn:(NSCharacterSet *)characterSet; + +@end + +#pragma mark - + @implementation UtilTest + -(void) testFloorMultiple { test([NumberUtil largestIntegerThatIsAtMost:0 andIsAMultipleOf:20] == 0); test([NumberUtil largestIntegerThatIsAtMost:1 andIsAMultipleOf:20] == 0); @@ -15,6 +26,7 @@ test([NumberUtil largestIntegerThatIsAtMost:20 andIsAMultipleOf:20] == 20); test([NumberUtil largestIntegerThatIsAtMost:21 andIsAMultipleOf:20] == 20); } + -(void) testCeilingMultiple { test([NumberUtil smallestIntegerThatIsAtLeast:0 andIsAMultipleOf:20] == 0); test([NumberUtil smallestIntegerThatIsAtLeast:1 andIsAMultipleOf:20] == 20); @@ -33,89 +45,7 @@ test([NumberUtil congruentDifferenceMod2ToThe16From:0x8000 to:0] == -0x8000); test([NumberUtil congruentDifferenceMod2ToThe16From:0 to:0] == 0); } --(void) testToRegex { - testThrows(@"(".toRegularExpression); - NSRegularExpression* r = @"a+b".toRegularExpression; - test([r numberOfMatchesInString:@"a" options:NSMatchingAnchored range:NSMakeRange(0, 1)] == 0); - test([r numberOfMatchesInString:@"b" options:NSMatchingAnchored range:NSMakeRange(0, 1)] == 0); - test([r numberOfMatchesInString:@"ba" options:NSMatchingAnchored range:NSMakeRange(0, 1)] == 0); - test([r numberOfMatchesInString:@"ab" options:NSMatchingAnchored range:NSMakeRange(0, 2)] == 1); - test([r numberOfMatchesInString:@"aab" options:NSMatchingAnchored range:NSMakeRange(0, 3)] == 1); - test([r numberOfMatchesInString:@"aabXBNSAUI" options:NSMatchingAnchored range:NSMakeRange(0, 3)] == 1); - test([r numberOfMatchesInString:@"aacb" options:NSMatchingAnchored range:NSMakeRange(0, 3)] == 0); -} --(void) testWithMatchesAgainstReplacedBy { - test([[@"(555)-555-5555" withMatchesAgainst:[@"[^0-9+]" toRegularExpression] replacedBy:@""] isEqualToString:@"5555555555"]); - test([[@"aaaaaa" withMatchesAgainst:@"a".toRegularExpression replacedBy:@""] isEqualToString:@""]); - test([[@"aabaabaa" withMatchesAgainst:@"b".toRegularExpression replacedBy:@"wonder"] isEqualToString:@"aawonderaawonderaa"]); -} --(void) testContainsAnyMatches { - NSRegularExpression* r = [@"^\\+[0-9]{10,}" toRegularExpression]; - test([@"+5555555555" containsAnyMatches:r]); - test([@"+6555595555" containsAnyMatches:r]); - test([@"+65555555557+/few,pf" containsAnyMatches:r]); - test(![@" +5555555555" containsAnyMatches:r]); - test(![@"+555KL55555" containsAnyMatches:r]); - test(![@"+1-555-555-5555" containsAnyMatches:r]); - test(![@"1-(555)-555-5555" containsAnyMatches:r]); -} --(void) testWithPrefixRemovedElseNull { - test([[@"test" withPrefixRemovedElseNull:@""] isEqualToString:@"test"]); - test([[@"test" withPrefixRemovedElseNull:@"t"] isEqualToString:@"est"]); - test([[@"test" withPrefixRemovedElseNull:@"te"] isEqualToString:@"st"]); - test([[@"test" withPrefixRemovedElseNull:@"tes"] isEqualToString:@"t"]); - test([[@"test" withPrefixRemovedElseNull:@"test"] isEqualToString:@""]); - test([@"test" withPrefixRemovedElseNull:@"test2"] == nil); - test([@"test" withPrefixRemovedElseNull:@"a"] == nil); - testThrows([@"test" withPrefixRemovedElseNull:nil]); -} --(void) testFromJson { - test([[@"{}" decodedAsJsonIntoDictionary] isEqualToDictionary:@{}]); - test([[@"{\"a\":\"b\"}" decodedAsJsonIntoDictionary] isEqualToDictionary:@{@"a":@"b"}]); - test([[@"{\"c\":5}" decodedAsJsonIntoDictionary] isEqualToDictionary:@{@"c":@5}]); - test([[@"{\"a\":5,\"b\":true}" decodedAsJsonIntoDictionary] isEqualToDictionary:(@{@"a":@5,@"b":@YES})]); - - testThrows([@"" decodedAsJsonIntoDictionary]); - testThrows([@"}" decodedAsJsonIntoDictionary]); - testThrows([@"{{}" decodedAsJsonIntoDictionary]); -} --(void) testHasLongLongValue { - test((@0).hasLongLongValue); - test((@1).hasLongLongValue); - test((@-11).hasLongLongValue); - test(@LONG_LONG_MAX.hasLongLongValue); - test(@LONG_LONG_MIN.hasLongLongValue); - test(!@ULONG_LONG_MAX.hasLongLongValue); - test(@(pow(2, 62)).hasLongLongValue); - test(!@(pow(2, 63)).hasLongLongValue); - test(!@(-pow(2, 64)).hasLongLongValue); - test(!(@0.5).hasLongLongValue); -} --(void) testTryParseAsUnsignedInteger { - test([@"" tryParseAsUnsignedInteger] == nil); - test([@"88ffhih" tryParseAsUnsignedInteger] == nil); - test([@"0xA" tryParseAsUnsignedInteger] == nil); - test([@"A" tryParseAsUnsignedInteger] == nil); - test([@"-1" tryParseAsUnsignedInteger] == nil); - test([@"-" tryParseAsUnsignedInteger] == nil); - test([[@"0" tryParseAsUnsignedInteger] isEqual:@0]); - test([[@"00" tryParseAsUnsignedInteger] isEqual:@0]); - test([[@"1" tryParseAsUnsignedInteger] isEqual:@1]); - test([[@"01" tryParseAsUnsignedInteger] isEqual:@1]); - test([[@"25" tryParseAsUnsignedInteger] isEqual:@25]); - test([[(@NSUIntegerMax).description tryParseAsUnsignedInteger] isEqual:@NSUIntegerMax]); - if (NSUIntegerMax == 4294967295UL) { - test([@"4294967296" tryParseAsUnsignedInteger] == nil); - } - if (NSUIntegerMax == 18446744073709551615ULL) { - test([@"18446744073709551616" tryParseAsUnsignedInteger] == nil); - } - - NSString* max = (@NSUIntegerMax).description; - NSString* farTooLarge = [max stringByAppendingString:max]; - test([farTooLarge tryParseAsUnsignedInteger] == nil); -} -(void) testRemoveAllCharactersIn { testThrows([@"" removeAllCharactersIn:nil]); @@ -131,27 +61,12 @@ test([[@"A" removeAllCharactersIn:NSCharacterSet.decimalDigitCharacterSet] isEqual:@"A"]); test([[@"abc123%^&" removeAllCharactersIn:NSCharacterSet.decimalDigitCharacterSet] isEqual:@"abc%^&"]); } + -(void) testDigitsOnly { test([@"".digitsOnly isEqual:@""]); test([@"1".digitsOnly isEqual:@"1"]); test([@"a".digitsOnly isEqual:@""]); test([@"(555) 235-7111".digitsOnly isEqual:@"5552357111"]); } --(void) testWithCharactersInRangeReplacedBy { - testThrows([@"" withCharactersInRange:NSMakeRange(0, 0) replacedBy:nil]); - testThrows([@"" withCharactersInRange:NSMakeRange(0, 1) replacedBy:@""]); - testThrows([@"" withCharactersInRange:NSMakeRange(1, 0) replacedBy:@""]); - testThrows([@"" withCharactersInRange:NSMakeRange(1, 1) replacedBy:@""]); - testThrows([@"abc" withCharactersInRange:NSMakeRange(4, 0) replacedBy:@""]); - testThrows([@"abc" withCharactersInRange:NSMakeRange(3, 1) replacedBy:@""]); - testThrows([@"abc" withCharactersInRange:NSMakeRange(4, NSUIntegerMax) replacedBy:@""]); - - test([[@"" withCharactersInRange:NSMakeRange(0, 0) replacedBy:@""] isEqual:@""]); - test([[@"" withCharactersInRange:NSMakeRange(0, 0) replacedBy:@"abc"] isEqual:@"abc"]); - test([[@"abc" withCharactersInRange:NSMakeRange(0, 0) replacedBy:@"123"] isEqual:@"123abc"]); - test([[@"abc" withCharactersInRange:NSMakeRange(3, 0) replacedBy:@"123"] isEqual:@"abc123"]); - test([[@"abc" withCharactersInRange:NSMakeRange(2, 0) replacedBy:@"123"] isEqual:@"ab123c"]); - test([[@"abcdef" withCharactersInRange:NSMakeRange(1, 2) replacedBy:@"1234"] isEqual:@"a1234def"]); -} @end diff --git a/SignalMessaging/environment/Release.m b/SignalMessaging/environment/Release.m index 9daae7734..f36326bc5 100644 --- a/SignalMessaging/environment/Release.m +++ b/SignalMessaging/environment/Release.m @@ -14,11 +14,13 @@ + (Environment *)releaseEnvironment { + // Order matters here. + TSStorageManager *storageManager = [TSStorageManager sharedManager]; TSNetworkManager *networkManager = [TSNetworkManager sharedManager]; OWSContactsManager *contactsManager = [OWSContactsManager new]; ContactsUpdater *contactsUpdater = [ContactsUpdater sharedUpdater]; OWSMessageSender *messageSender = [[OWSMessageSender alloc] initWithNetworkManager:networkManager - storageManager:[TSStorageManager sharedManager] + storageManager:storageManager contactsManager:contactsManager contactsUpdater:contactsUpdater]; @@ -31,11 +33,13 @@ // TODELETE + (Environment *)stagingEnvironment { + // Order matters here. + TSStorageManager *storageManager = [TSStorageManager sharedManager]; TSNetworkManager *networkManager = [TSNetworkManager sharedManager]; OWSContactsManager *contactsManager = [OWSContactsManager new]; ContactsUpdater *contactsUpdater = [ContactsUpdater sharedUpdater]; OWSMessageSender *messageSender = [[OWSMessageSender alloc] initWithNetworkManager:networkManager - storageManager:[TSStorageManager sharedManager] + storageManager:storageManager contactsManager:contactsManager contactsUpdater:contactsUpdater]; diff --git a/SignalMessaging/utils/ImageCache.swift b/SignalMessaging/utils/ImageCache.swift index ff179aca9..2a8520717 100644 --- a/SignalMessaging/utils/ImageCache.swift +++ b/SignalMessaging/utils/ImageCache.swift @@ -22,7 +22,7 @@ public class ImageCache: NSObject { let backingCache: NSCache - override init() { + public override init() { self.backingCache = NSCache() } From 9e44a73068d4bb488853bc26d3e36082a4a86c11 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 5 Dec 2017 12:16:43 -0500 Subject: [PATCH 2/4] Fix tests vs. SAE. --- Signal/test/util/DisplayableTextFilterTest.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Signal/test/util/DisplayableTextFilterTest.swift b/Signal/test/util/DisplayableTextFilterTest.swift index 9fbcf481b..a49c1c5fc 100644 --- a/Signal/test/util/DisplayableTextFilterTest.swift +++ b/Signal/test/util/DisplayableTextFilterTest.swift @@ -82,7 +82,7 @@ class DisplayableTextTest: XCTestCase { XCTAssertTrue("β€οΈπŸ’”πŸ’ŒπŸ’•πŸ’žπŸ’“πŸ’—πŸ’–πŸ’˜πŸ’πŸ’ŸπŸ’œπŸ’›πŸ’šπŸ’™".containsOnlyEmoji) XCTAssertTrue("βœ‹πŸΏπŸ’ͺπŸΏπŸ‘πŸΏπŸ™ŒπŸΏπŸ‘πŸΏπŸ™πŸΏ".containsOnlyEmoji) XCTAssertTrue("πŸšΎπŸ†’πŸ†“πŸ†•πŸ†–πŸ†—πŸ†™πŸ§".containsOnlyEmoji) - XCTAssertTrue("0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9οΈβƒ£πŸ”Ÿ".containsOnlyEmoji) + XCTAssertFalse("0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9οΈβƒ£πŸ”Ÿ".containsOnlyEmoji) XCTAssertTrue("πŸ‡ΊπŸ‡ΈπŸ‡·πŸ‡ΊπŸ‡¦πŸ‡«πŸ‡¦πŸ‡²".containsOnlyEmoji) XCTAssertFalse("πŸ‡ΊπŸ‡ΈπŸ‡·πŸ‡ΊπŸ‡Έ πŸ‡¦πŸ‡«πŸ‡¦πŸ‡²πŸ‡Έ".containsOnlyEmoji) XCTAssertTrue("πŸ‡ΊπŸ‡ΈπŸ‡·πŸ‡ΊπŸ‡ΈπŸ‡¦πŸ‡«πŸ‡¦πŸ‡²".containsOnlyEmoji) From 69e0bcd30801fdcd4e83c5ae2629f6c9aa59369c Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 5 Dec 2017 13:42:50 -0500 Subject: [PATCH 3/4] Fix tests. --- Signal.xcodeproj/project.pbxproj | 98 ------------------- .../environment/PushRegistrationManager.swift | 5 +- Signal/test/Models/AccountManagerTest.swift | 8 +- .../MesssagesBubblesSizeCalculatorTest.swift | 1 + .../test/call/PeerConnectionClientTest.swift | 1 + .../test/util/DisplayableTextFilterTest.swift | 1 + Signal/test/util/ImageCacheTest.swift | 1 + Signal/test/util/SearcherTest.swift | 1 + SignalMessaging/environment/Environment.h | 2 + SignalMessaging/environment/Environment.m | 5 + SignalServiceKit/src/Account/TSAttributes.m | 3 + 11 files changed, 25 insertions(+), 101 deletions(-) diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index af2b0029b..68d62caea 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -191,36 +191,25 @@ 34F308A21ECB469700BB7697 /* OWSBezierPathView.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F308A11ECB469700BB7697 /* OWSBezierPathView.m */; }; 34FD93701E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 34FD936F1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m */; }; 4505C2BF1E648EA300CEBF41 /* ExperienceUpgrade.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4505C2BE1E648EA300CEBF41 /* ExperienceUpgrade.swift */; }; - 4505C2C01E648EA300CEBF41 /* ExperienceUpgrade.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4505C2BE1E648EA300CEBF41 /* ExperienceUpgrade.swift */; }; 4509E79A1DD653700025A59F /* WebRTC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4509E7991DD653700025A59F /* WebRTC.framework */; }; 450D19131F85236600970622 /* RemoteVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 450D19121F85236600970622 /* RemoteVideoView.m */; }; 450DF2051E0D74AC003D14BE /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450DF2041E0D74AC003D14BE /* Platform.swift */; }; 450DF2091E0DD2C6003D14BE /* UserNotificationsAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450DF2081E0DD2C6003D14BE /* UserNotificationsAdaptee.swift */; }; 451686AB1F520CDA00AC3D4B /* MultiDeviceProfileKeyUpdateJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451686AA1F520CDA00AC3D4B /* MultiDeviceProfileKeyUpdateJob.swift */; }; - 451686AC1F520CDA00AC3D4B /* MultiDeviceProfileKeyUpdateJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451686AA1F520CDA00AC3D4B /* MultiDeviceProfileKeyUpdateJob.swift */; }; 4517642A1DE939FD00EDB8B9 /* ContactCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 451764281DE939FD00EDB8B9 /* ContactCell.xib */; }; 4517642B1DE939FD00EDB8B9 /* ContactCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451764291DE939FD00EDB8B9 /* ContactCell.swift */; }; 451A13B11E13DED2000A50FD /* CallNotificationsAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451A13B01E13DED2000A50FD /* CallNotificationsAdapter.swift */; }; - 451A13B21E13DED2000A50FD /* CallNotificationsAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451A13B01E13DED2000A50FD /* CallNotificationsAdapter.swift */; }; - 451DA3C71F148986008E2423 /* SafetyNumberConfirmationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4585C4671ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift */; }; - 451DA3CA1F148A9F008E2423 /* DeviceSleepManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 348F2EAD1F0D21BC00D4ECE0 /* DeviceSleepManager.swift */; }; - 451DA3CB1F148AAD008E2423 /* CallViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B3F83B1E8DF1700035BE1A /* CallViewController.swift */; }; - 451DE9F81DC18C9500810E42 /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45CD81EE1DC030E7004C9430 /* AccountManager.swift */; }; 451DE9FD1DC1A28200810E42 /* SyncPushTokensJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451DE9FC1DC1A28200810E42 /* SyncPushTokensJob.swift */; }; - 451DE9FE1DC1A28200810E42 /* SyncPushTokensJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451DE9FC1DC1A28200810E42 /* SyncPushTokensJob.swift */; }; 452037D11EE84975004E4CDF /* DebugUISessionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 452037D01EE84975004E4CDF /* DebugUISessionState.m */; }; 4520D8D51D417D8E00123472 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4520D8D41D417D8E00123472 /* Photos.framework */; }; 4521C3C01F59F3BA00B4C582 /* TextFieldHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4521C3BF1F59F3BA00B4C582 /* TextFieldHelper.swift */; }; - 4521C3C11F59F3BA00B4C582 /* TextFieldHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4521C3BF1F59F3BA00B4C582 /* TextFieldHelper.swift */; }; 4523149C1F7D7F81003A428C /* OWSMessagesBubbleImageFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4523149B1F7D7F81003A428C /* OWSMessagesBubbleImageFactory.swift */; }; 4523149E1F7E916B003A428C /* SlideOffAnimatedTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4523149D1F7E916B003A428C /* SlideOffAnimatedTransition.swift */; }; 452314A01F7E9E18003A428C /* DirectionalPanGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4523149F1F7E9E18003A428C /* DirectionalPanGestureRecognizer.swift */; }; 452C468F1E427E200087B011 /* OutboundCallInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452C468E1E427E200087B011 /* OutboundCallInitiator.swift */; }; - 452C46901E427E200087B011 /* OutboundCallInitiator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452C468E1E427E200087B011 /* OutboundCallInitiator.swift */; }; 452D1EE81DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452D1EE71DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift */; }; 452EA09E1EA7ABE00078744B /* AttachmentPointerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452EA09D1EA7ABE00078744B /* AttachmentPointerView.swift */; }; 452ECA4D1E087E7200E2F016 /* MessageFetcherJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452ECA4C1E087E7200E2F016 /* MessageFetcherJob.swift */; }; - 452ECA4E1E087E7200E2F016 /* MessageFetcherJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452ECA4C1E087E7200E2F016 /* MessageFetcherJob.swift */; }; 4535186B1FC635DD00210559 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4535186A1FC635DD00210559 /* ShareViewController.swift */; }; 4535186E1FC635DD00210559 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4535186C1FC635DD00210559 /* MainInterface.storyboard */; }; 453518721FC635DD00210559 /* SignalShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 453518681FC635DD00210559 /* SignalShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -230,16 +219,10 @@ 453518A11FC63DD500210559 /* StorageCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 453518A01FC63DD500210559 /* StorageCoordinator.swift */; }; 453518A21FC63E2900210559 /* SignalMessaging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 453518921FC63DBF00210559 /* SignalMessaging.framework */; }; 45360B8D1F9521F800FA666C /* Searcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45360B8C1F9521F800FA666C /* Searcher.swift */; }; - 45360B8E1F9521F800FA666C /* Searcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45360B8C1F9521F800FA666C /* Searcher.swift */; }; 45360B901F9527DA00FA666C /* SearcherTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45360B8F1F9527DA00FA666C /* SearcherTest.swift */; }; - 45360B911F952AA900FA666C /* MarqueeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E5A6981F61E6DD001E4A8A /* MarqueeLabel.swift */; }; - 45360B921F952AB400FA666C /* OWSFlatButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C04D7F1F6195E6004308B3 /* OWSFlatButton.swift */; }; 4539B5861F79348F007141FF /* PushRegistrationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4539B5851F79348F007141FF /* PushRegistrationManager.swift */; }; - 4539B5871F79348F007141FF /* PushRegistrationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4539B5851F79348F007141FF /* PushRegistrationManager.swift */; }; 45464DBC1DFA041F001D3FD6 /* DataChannelMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45464DBB1DFA041F001D3FD6 /* DataChannelMessage.swift */; }; - 454EBAB41F2BE14C00ACE0BB /* OWSAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */; }; 4556FA681F54AA9500AF40DD /* DebugUIProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4556FA671F54AA9500AF40DD /* DebugUIProfile.swift */; }; - 4556FA691F54AA9500AF40DD /* DebugUIProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4556FA671F54AA9500AF40DD /* DebugUIProfile.swift */; }; 455A16DD1F1FEA0000F86704 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 455A16DB1F1FEA0000F86704 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 455A16DE1F1FEA0000F86704 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 455A16DC1F1FEA0000F86704 /* MetalKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 455AC69E1F4F8B0300134004 /* ImageCacheTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 455AC69D1F4F8B0300134004 /* ImageCacheTest.swift */; }; @@ -248,21 +231,13 @@ 45666EC61D99483D008FE134 /* OWSAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666EC51D99483D008FE134 /* OWSAvatarBuilder.m */; }; 45666EC91D994C0D008FE134 /* OWSGroupAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666EC81D994C0D008FE134 /* OWSGroupAvatarBuilder.m */; }; 45666F581D9B2880008FE134 /* OWSScrubbingLogFormatterTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666F571D9B2880008FE134 /* OWSScrubbingLogFormatterTest.m */; }; - 456AC8341E3A775E00A3C7FC /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170D51E315310003FC1F2 /* Weak.swift */; }; 456C38961DC7B882007536A7 /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 451DE9F11DC1585F00810E42 /* PromiseKit.framework */; }; - 456F6E201E2411A000FD2210 /* CallService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4574A5D51DD6704700C6B692 /* CallService.swift */; }; - 456F6E211E2411B400FD2210 /* CallUIAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45794E851E00620000066731 /* CallUIAdapter.swift */; }; - 456F6E221E24132D00FD2210 /* PeerConnectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 458DE9D51DEE3FD00071BB03 /* PeerConnectionClient.swift */; }; - 456F6E231E24133500FD2210 /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450DF2041E0D74AC003D14BE /* Platform.swift */; }; - 456F6E241E24133E00FD2210 /* CallKitCallUIAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F659721E1BD99C00444429 /* CallKitCallUIAdaptee.swift */; }; - 456F6E251E24216100FD2210 /* DataChannelMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45464DBB1DFA041F001D3FD6 /* DataChannelMessage.swift */; }; 456F6E2F1E261D1000FD2210 /* PeerConnectionClientTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 456F6E2E1E261D1000FD2210 /* PeerConnectionClientTest.swift */; }; 4574A5D61DD6704700C6B692 /* CallService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4574A5D51DD6704700C6B692 /* CallService.swift */; }; 4579431E1E7C8CE9008ED0C0 /* Pastelog.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579431D1E7C8CE9008ED0C0 /* Pastelog.m */; }; 45794E861E00620000066731 /* CallUIAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45794E851E00620000066731 /* CallUIAdapter.swift */; }; 45847E871E4283C30080EAB3 /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45847E861E4283C30080EAB3 /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 45855F371D9498A40084F340 /* OWSContactAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45855F361D9498A40084F340 /* OWSContactAvatarBuilder.m */; }; - 45855F381D9498A40084F340 /* OWSContactAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45855F361D9498A40084F340 /* OWSContactAvatarBuilder.m */; }; 4585C4681ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4585C4671ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift */; }; 458967111DC117CC00E9DD21 /* AccountManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 458967101DC117CC00E9DD21 /* AccountManagerTest.swift */; }; 458D51481FCCD82500B5BC53 /* GSR4.crt in Resources */ = {isa = PBXBuildFile; fileRef = 458D51401FCCD82400B5BC53 /* GSR4.crt */; }; @@ -279,46 +254,29 @@ 458E383A1D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 458E38391D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m */; }; 459311FC1D75C948008DD4F0 /* OWSDeviceTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 459311FB1D75C948008DD4F0 /* OWSDeviceTableViewCell.m */; }; 45A663C51F92EC760027B59E /* GroupTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A663C41F92EC760027B59E /* GroupTableViewCell.swift */; }; - 45A663C61F92EC760027B59E /* GroupTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A663C41F92EC760027B59E /* GroupTableViewCell.swift */; }; 45A6DAD61EBBF85500893231 /* ReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6DAD51EBBF85500893231 /* ReminderView.swift */; }; - 45A6DAD71EBBF85500893231 /* ReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6DAD51EBBF85500893231 /* ReminderView.swift */; }; 45AE48511E0732D6004D96C2 /* TurnServerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45AE48501E0732D6004D96C2 /* TurnServerInfo.swift */; }; - 45AE48521E0732D6004D96C2 /* TurnServerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45AE48501E0732D6004D96C2 /* TurnServerInfo.swift */; }; 45B72DDA1FD5E70600151AF6 /* ConversationSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B72DD91FD5E70600151AF6 /* ConversationSearcher.swift */; }; - 45B72DDB1FD5E70600151AF6 /* ConversationSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B72DD91FD5E70600151AF6 /* ConversationSearcher.swift */; }; 45BB93381E688E14001E3939 /* UIDevice+featureSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45BB93371E688E14001E3939 /* UIDevice+featureSupport.swift */; }; - 45BB93391E688E14001E3939 /* UIDevice+featureSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45BB93371E688E14001E3939 /* UIDevice+featureSupport.swift */; }; 45BD60821DE9547E00A8F436 /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45BD60811DE9547E00A8F436 /* Contacts.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 45C0DC1B1E68FE9000E04C47 /* UIApplication+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C0DC1A1E68FE9000E04C47 /* UIApplication+OWS.swift */; }; - 45C0DC1C1E68FE9000E04C47 /* UIApplication+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C0DC1A1E68FE9000E04C47 /* UIApplication+OWS.swift */; }; 45C0DC1E1E69011F00E04C47 /* UIStoryboard+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C0DC1D1E69011F00E04C47 /* UIStoryboard+OWS.swift */; }; - 45C0DC1F1E69011F00E04C47 /* UIStoryboard+OWS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C0DC1D1E69011F00E04C47 /* UIStoryboard+OWS.swift */; }; 45C9DEB81DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C9DEB71DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift */; }; - 45C9DEB91DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C9DEB71DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift */; }; 45CB2FA81CB7146C00E1B343 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 45CB2FA71CB7146C00E1B343 /* Launch Screen.storyboard */; }; 45CD81EF1DC030E7004C9430 /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45CD81EE1DC030E7004C9430 /* AccountManager.swift */; }; 45D231771DC7E8F10034FA89 /* SessionResetJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D231761DC7E8F10034FA89 /* SessionResetJob.swift */; }; - 45D231781DC7E8F10034FA89 /* SessionResetJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D231761DC7E8F10034FA89 /* SessionResetJob.swift */; }; 45DF5DF21DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; }; - 45DF5DF31DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DF5DF11DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift */; }; 45E5A6991F61E6DE001E4A8A /* MarqueeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E5A6981F61E6DD001E4A8A /* MarqueeLabel.swift */; }; 45E615161E8C590B0018AD52 /* DisplayableText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableText.swift */; }; - 45E615171E8C59100018AD52 /* DisplayableText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E615151E8C590B0018AD52 /* DisplayableText.swift */; }; 45E7A6A81E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45E7A6A61E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift */; }; 45F170AC1E2F0351003FC1F2 /* CallAudioSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170AB1E2F0351003FC1F2 /* CallAudioSession.swift */; }; - 45F170AD1E2F0351003FC1F2 /* CallAudioSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170AB1E2F0351003FC1F2 /* CallAudioSession.swift */; }; 45F170BB1E2FC5D3003FC1F2 /* CallAudioService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170BA1E2FC5D3003FC1F2 /* CallAudioService.swift */; }; - 45F170BC1E2FC5D3003FC1F2 /* CallAudioService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170BA1E2FC5D3003FC1F2 /* CallAudioService.swift */; }; 45F170D61E315310003FC1F2 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F170D51E315310003FC1F2 /* Weak.swift */; }; 45F3AEB61DFDE7900080CE33 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F3AEB51DFDE7900080CE33 /* AvatarImageView.swift */; }; - 45F3AEB71DFDE7900080CE33 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F3AEB51DFDE7900080CE33 /* AvatarImageView.swift */; }; 45F659731E1BD99C00444429 /* CallKitCallUIAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F659721E1BD99C00444429 /* CallKitCallUIAdaptee.swift */; }; 45F659821E1BE77000444429 /* NonCallKitCallUIAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F659811E1BE77000444429 /* NonCallKitCallUIAdaptee.swift */; }; - 45F659831E1BE77000444429 /* NonCallKitCallUIAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F659811E1BE77000444429 /* NonCallKitCallUIAdaptee.swift */; }; 45FBC5C81DF8575700E9B410 /* CallKitCallManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC59A1DF8575700E9B410 /* CallKitCallManager.swift */; }; - 45FBC5C91DF8575700E9B410 /* CallKitCallManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC59A1DF8575700E9B410 /* CallKitCallManager.swift */; }; 45FBC5D11DF8592E00E9B410 /* SignalCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC5D01DF8592E00E9B410 /* SignalCall.swift */; }; - 45FBC5D21DF8592E00E9B410 /* SignalCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FBC5D01DF8592E00E9B410 /* SignalCall.swift */; }; 4AC4EA13C8A444455DAB351F /* Pods_SignalMessaging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 264242150E87D10A357DB07B /* Pods_SignalMessaging.framework */; }; 70377AAB1918450100CAF501 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70377AAA1918450100CAF501 /* MobileCoreServices.framework */; }; 768A1A2B17FC9CD300E00ED8 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 768A1A2A17FC9CD300E00ED8 /* libz.dylib */; }; @@ -369,13 +327,6 @@ B660F6DA1C29868000687D6E /* ExceptionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6AB1C29868000687D6E /* ExceptionsTest.m */; }; B660F6DB1C29868000687D6E /* FunctionalUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6AD1C29868000687D6E /* FunctionalUtilTest.m */; }; B660F6E01C29868000687D6E /* UtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6B41C29868000687D6E /* UtilTest.m */; }; - B660F7561C29988E00687D6E /* PushManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B9ECFB198B31BA00C620D3 /* PushManager.m */; }; - B660F7721C29988E00687D6E /* AppStoreRating.m in Sources */ = {isa = PBXBuildFile; fileRef = B6DA6B061B8A2F9A00CA6F98 /* AppStoreRating.m */; }; - B660F77F1C29988E00687D6E /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B90418E5183E9DD40038554A /* DateUtil.m */; }; - B660F7811C29988E00687D6E /* FunctionalUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 76EB04EB18170B33006006FC /* FunctionalUtil.m */; }; - B660F7831C29988E00687D6E /* NumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 76EB04ED18170B33006006FC /* NumberUtil.m */; }; - B660F78A1C29988E00687D6E /* UIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B97940261832BD2400BD66CB /* UIUtil.m */; }; - B660F78C1C29988E00687D6E /* UIDevice+TSHardwareVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = FCC81A971A44558300DFEC7D /* UIDevice+TSHardwareVersion.m */; }; B66DBF4A19D5BBC8006EA940 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B66DBF4919D5BBC8006EA940 /* Images.xcassets */; }; B67EBF5D19194AC60084CCFD /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B67EBF5C19194AC60084CCFD /* Settings.bundle */; }; B69CD25119773E79005CE69A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B69CD25019773E79005CE69A /* XCTest.framework */; }; @@ -2938,69 +2889,20 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 456F6E241E24133E00FD2210 /* CallKitCallUIAdaptee.swift in Sources */, - 456F6E251E24216100FD2210 /* DataChannelMessage.swift in Sources */, - 452ECA4E1E087E7200E2F016 /* MessageFetcherJob.swift in Sources */, - 45F170AD1E2F0351003FC1F2 /* CallAudioSession.swift in Sources */, - 451DA3C71F148986008E2423 /* SafetyNumberConfirmationAlert.swift in Sources */, - 45C0DC1C1E68FE9000E04C47 /* UIApplication+OWS.swift in Sources */, - 45F170BC1E2FC5D3003FC1F2 /* CallAudioService.swift in Sources */, 456F6E2F1E261D1000FD2210 /* PeerConnectionClientTest.swift in Sources */, - 452C46901E427E200087B011 /* OutboundCallInitiator.swift in Sources */, - 451DE9F81DC18C9500810E42 /* AccountManager.swift in Sources */, - 451DA3CA1F148A9F008E2423 /* DeviceSleepManager.swift in Sources */, - 45BB93391E688E14001E3939 /* UIDevice+featureSupport.swift in Sources */, - 4521C3C11F59F3BA00B4C582 /* TextFieldHelper.swift in Sources */, - 45D231781DC7E8F10034FA89 /* SessionResetJob.swift in Sources */, 458967111DC117CC00E9DD21 /* AccountManagerTest.swift in Sources */, - 45F659831E1BE77000444429 /* NonCallKitCallUIAdaptee.swift in Sources */, 340B02BA1FA0D6C700F9CFEC /* ConversationViewItemTest.m in Sources */, 458E383A1D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m in Sources */, 452D1EE81DCA90D100A57EC4 /* MesssagesBubblesSizeCalculatorTest.swift in Sources */, - 451DE9FE1DC1A28200810E42 /* SyncPushTokensJob.swift in Sources */, - 456F6E231E24133500FD2210 /* Platform.swift in Sources */, - 4539B5871F79348F007141FF /* PushRegistrationManager.swift in Sources */, - 45AE48521E0732D6004D96C2 /* TurnServerInfo.swift in Sources */, 45360B901F9527DA00FA666C /* SearcherTest.swift in Sources */, - B660F7561C29988E00687D6E /* PushManager.m in Sources */, - 45360B911F952AA900FA666C /* MarqueeLabel.swift in Sources */, - 45FBC5D21DF8592E00E9B410 /* SignalCall.swift in Sources */, - 451A13B21E13DED2000A50FD /* CallNotificationsAdapter.swift in Sources */, - 45855F381D9498A40084F340 /* OWSContactAvatarBuilder.m in Sources */, - 45DF5DF31DDB843F00C936C7 /* CompareSafetyNumbersActivity.swift in Sources */, - 456AC8341E3A775E00A3C7FC /* Weak.swift in Sources */, - 454EBAB41F2BE14C00ACE0BB /* OWSAnalytics.swift in Sources */, - B660F7721C29988E00687D6E /* AppStoreRating.m in Sources */, - 45360B8E1F9521F800FA666C /* Searcher.swift in Sources */, - 45360B921F952AB400FA666C /* OWSFlatButton.swift in Sources */, 954AEE6A1DF33E01002E5410 /* ContactsPickerTest.swift in Sources */, - 4556FA691F54AA9500AF40DD /* DebugUIProfile.swift in Sources */, 45666F581D9B2880008FE134 /* OWSScrubbingLogFormatterTest.m in Sources */, - B660F77F1C29988E00687D6E /* DateUtil.m in Sources */, - B660F7811C29988E00687D6E /* FunctionalUtil.m in Sources */, - B660F7831C29988E00687D6E /* NumberUtil.m in Sources */, - 45FBC5C91DF8575700E9B410 /* CallKitCallManager.swift in Sources */, - B660F78A1C29988E00687D6E /* UIUtil.m in Sources */, - B660F78C1C29988E00687D6E /* UIDevice+TSHardwareVersion.m in Sources */, - 456F6E211E2411B400FD2210 /* CallUIAdapter.swift in Sources */, - 456F6E221E24132D00FD2210 /* PeerConnectionClient.swift in Sources */, B660F6E01C29868000687D6E /* UtilTest.m in Sources */, - 45F3AEB71DFDE7900080CE33 /* AvatarImageView.swift in Sources */, B660F6DA1C29868000687D6E /* ExceptionsTest.m in Sources */, - 451686AC1F520CDA00AC3D4B /* MultiDeviceProfileKeyUpdateJob.swift in Sources */, - 45C9DEB91DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift in Sources */, B660F6DB1C29868000687D6E /* FunctionalUtilTest.m in Sources */, 45E7A6A81E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift in Sources */, - 451DA3CB1F148AAD008E2423 /* CallViewController.swift in Sources */, - 456F6E201E2411A000FD2210 /* CallService.swift in Sources */, - 45A663C61F92EC760027B59E /* GroupTableViewCell.swift in Sources */, - 45E615171E8C59100018AD52 /* DisplayableText.swift in Sources */, B660F6BB1C29868000687D6E /* OWSContactsManagerTest.m in Sources */, - 45A6DAD71EBBF85500893231 /* ReminderView.swift in Sources */, B660F6D21C29868000687D6E /* PushManagerTest.m in Sources */, - 45C0DC1F1E69011F00E04C47 /* UIStoryboard+OWS.swift in Sources */, - 45B72DDB1FD5E70600151AF6 /* ConversationSearcher.swift in Sources */, - 4505C2C01E648EA300CEBF41 /* ExperienceUpgrade.swift in Sources */, 455AC69E1F4F8B0300134004 /* ImageCacheTest.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Signal/src/environment/PushRegistrationManager.swift b/Signal/src/environment/PushRegistrationManager.swift index d261dd5bc..cd525d9d7 100644 --- a/Signal/src/environment/PushRegistrationManager.swift +++ b/Signal/src/environment/PushRegistrationManager.swift @@ -17,7 +17,7 @@ public enum PushRegistrationError: Error { /** * Singleton used to integrate with push notification services - registration and routing received remote notifications. */ -@objc class PushRegistrationManager: NSObject, PKPushRegistryDelegate { +@objc public class PushRegistrationManager: NSObject, PKPushRegistryDelegate { // MARK - Dependencies private var pushManager: PushManager { @@ -27,7 +27,8 @@ public enum PushRegistrationError: Error { // MARK - Singleton class @objc(sharedManager) - static let shared = PushRegistrationManager() + public static let shared = PushRegistrationManager() + private override init() { super.init() } diff --git a/Signal/test/Models/AccountManagerTest.swift b/Signal/test/Models/AccountManagerTest.swift index 7a9589ffb..73911217a 100644 --- a/Signal/test/Models/AccountManagerTest.swift +++ b/Signal/test/Models/AccountManagerTest.swift @@ -5,6 +5,7 @@ import XCTest import PromiseKit import SignalServiceKit +@testable import Signal struct VerificationFailedError: Error { } struct FailedToGetRPRegistrationTokenError: Error { } @@ -36,6 +37,10 @@ class VerifyingTSAccountManager: FailingTSAccountManager { override func verifyAccount(withCode: String, success: @escaping () -> Void, failure: @escaping (Error) -> Void) { success() } + + override func registerForManualMessageFetching(success successBlock: @escaping () -> Swift.Void, failure failureBlock: @escaping (Error) -> Swift.Void) { + successBlock() + } } class TokenObtainingTSAccountManager: VerifyingTSAccountManager { @@ -88,6 +93,7 @@ class AccountManagerTest: XCTestCase { } func testSuccessfulRegistration() { + Environment.clearCurrentForTests() Environment.setCurrent(Release.releaseEnvironment()) let tsAccountManager = TokenObtainingTSAccountManager(networkManager: TSNetworkManager.shared(), storageManager: TSStorageManager.shared()) @@ -104,7 +110,7 @@ class AccountManagerTest: XCTestCase { XCTFail("Unexpected error: \(error)") } - self.waitForExpectations(timeout: 1.0, handler: nil) + self.waitForExpectations(timeout: 10.0, handler: nil) } func testUpdatePushTokens() { diff --git a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift b/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift index 9ee7327ec..4bf125499 100644 --- a/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift +++ b/Signal/test/Models/MesssagesBubblesSizeCalculatorTest.swift @@ -4,6 +4,7 @@ import XCTest import SignalServiceKit +@testable import Signal /** * This is a brittle test, which will break if our layout changes. diff --git a/Signal/test/call/PeerConnectionClientTest.swift b/Signal/test/call/PeerConnectionClientTest.swift index 53e0afc6c..c4b4926f5 100644 --- a/Signal/test/call/PeerConnectionClientTest.swift +++ b/Signal/test/call/PeerConnectionClientTest.swift @@ -4,6 +4,7 @@ import XCTest import WebRTC +@testable import Signal /** * Playing the role of the call service. diff --git a/Signal/test/util/DisplayableTextFilterTest.swift b/Signal/test/util/DisplayableTextFilterTest.swift index a49c1c5fc..3ec2cc1ac 100644 --- a/Signal/test/util/DisplayableTextFilterTest.swift +++ b/Signal/test/util/DisplayableTextFilterTest.swift @@ -3,6 +3,7 @@ // import XCTest +@testable import Signal class DisplayableTextTest: XCTestCase { diff --git a/Signal/test/util/ImageCacheTest.swift b/Signal/test/util/ImageCacheTest.swift index 5837420ff..8b495e21f 100644 --- a/Signal/test/util/ImageCacheTest.swift +++ b/Signal/test/util/ImageCacheTest.swift @@ -3,6 +3,7 @@ // import XCTest +@testable import Signal class ImageCacheTest: XCTestCase { diff --git a/Signal/test/util/SearcherTest.swift b/Signal/test/util/SearcherTest.swift index 8e12ac952..9394a6cab 100644 --- a/Signal/test/util/SearcherTest.swift +++ b/Signal/test/util/SearcherTest.swift @@ -3,6 +3,7 @@ // import XCTest +@testable import Signal class SearcherTest: XCTestCase { diff --git a/SignalMessaging/environment/Environment.h b/SignalMessaging/environment/Environment.h index 233d04ece..07067dd14 100644 --- a/SignalMessaging/environment/Environment.h +++ b/SignalMessaging/environment/Environment.h @@ -36,6 +36,8 @@ + (Environment *)current; + (void)setCurrent:(Environment *)environment; +// Should only be called by tests. ++ (void)clearCurrentForTests; + (OWSPreferences *)preferences; diff --git a/SignalMessaging/environment/Environment.m b/SignalMessaging/environment/Environment.m index 8204ff971..cf71715c0 100644 --- a/SignalMessaging/environment/Environment.m +++ b/SignalMessaging/environment/Environment.m @@ -43,6 +43,11 @@ static Environment *sharedEnvironment = nil; sharedEnvironment = environment; } ++ (void)clearCurrentForTests +{ + sharedEnvironment = nil; +} + - (instancetype)initWithContactsManager:(OWSContactsManager *)contactsManager contactsUpdater:(ContactsUpdater *)contactsUpdater networkManager:(TSNetworkManager *)networkManager diff --git a/SignalServiceKit/src/Account/TSAttributes.m b/SignalServiceKit/src/Account/TSAttributes.m index 9e0889c5b..da208af3d 100644 --- a/SignalServiceKit/src/Account/TSAttributes.m +++ b/SignalServiceKit/src/Account/TSAttributes.m @@ -20,6 +20,9 @@ NS_ASSUME_NONNULL_BEGIN serverAuthToken:(NSString *)authToken manualMessageFetching:(BOOL)isEnabled { + OWSAssert(signalingKey.length > 0); + OWSAssert(authToken.length > 0); + return @{ @"signalingKey" : signalingKey, @"AuthKey" : authToken, From 53f51bcd0bc44614124318755648558ba7640f30 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 5 Dec 2017 13:49:18 -0500 Subject: [PATCH 4/4] Clean up ahead of PR. --- Signal/test/Models/AccountManagerTest.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Signal/test/Models/AccountManagerTest.swift b/Signal/test/Models/AccountManagerTest.swift index 73911217a..953c572c6 100644 --- a/Signal/test/Models/AccountManagerTest.swift +++ b/Signal/test/Models/AccountManagerTest.swift @@ -110,7 +110,7 @@ class AccountManagerTest: XCTestCase { XCTFail("Unexpected error: \(error)") } - self.waitForExpectations(timeout: 10.0, handler: nil) + self.waitForExpectations(timeout: 1.0, handler: nil) } func testUpdatePushTokens() {