From 521a2fcf9dee8978ab3ce7f43b1a6693ef64a4a4 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Sat, 25 Apr 2020 12:35:17 +1000 Subject: [PATCH 1/2] Remove redundant Signal tests These tests were for features that we'll never use (e.g. phone number related stuff) --- Signal.xcodeproj/project.pbxproj | 24 -- Signal/test/Models/AccountManagerTest.swift | 157 ------------- Signal/test/PhoneNumberValidatorTest.swift | 69 ------ .../ContactDiscoveryOperationTest.swift | 60 ----- Signal/test/contact/ContactsPickerTest.swift | 83 ------- .../tests/Contacts/ContactSortingTest.m | 122 ---------- .../tests/Contacts/PhoneNumberTest.m | 202 ----------------- .../tests/Contacts/PhoneNumberUtilTest.m | 209 ------------------ .../tests/Messages/OWSSignalAddressTest.swift | 40 ---- .../tests/Util/OWSAnalyticsTests.m | 45 ---- 10 files changed, 1011 deletions(-) delete mode 100644 Signal/test/Models/AccountManagerTest.swift delete mode 100644 Signal/test/PhoneNumberValidatorTest.swift delete mode 100644 Signal/test/contact/ContactDiscoveryOperationTest.swift delete mode 100644 Signal/test/contact/ContactsPickerTest.swift delete mode 100644 SignalServiceKit/tests/Contacts/ContactSortingTest.m delete mode 100644 SignalServiceKit/tests/Contacts/PhoneNumberTest.m delete mode 100644 SignalServiceKit/tests/Contacts/PhoneNumberUtilTest.m delete mode 100644 SignalServiceKit/tests/Messages/OWSSignalAddressTest.swift delete mode 100644 SignalServiceKit/tests/Util/OWSAnalyticsTests.m diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 8c064b928..00055f3ad 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -408,7 +408,6 @@ 457F671B20746193000EABCD /* QuotedReplyPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 457F671A20746193000EABCD /* QuotedReplyPreview.swift */; }; 45847E871E4283C30080EAB3 /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 45847E861E4283C30080EAB3 /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 4585C4681ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4585C4671ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift */; }; - 458967111DC117CC00E9DD21 /* AccountManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 458967101DC117CC00E9DD21 /* AccountManagerTest.swift */; }; 458DE9D61DEE3FD00071BB03 /* PeerConnectionClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 458DE9D51DEE3FD00071BB03 /* PeerConnectionClient.swift */; }; 458E38371D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 458E38361D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m */; }; 458E383A1D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 458E38391D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m */; }; @@ -490,9 +489,7 @@ 4C3EF802210918740007EBF7 /* SSKProtoEnvelopeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3EF801210918740007EBF7 /* SSKProtoEnvelopeTest.swift */; }; 4C4AE6A1224AF35700D4AF6F /* SendMediaNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4AE69F224AF21900D4AF6F /* SendMediaNavigationController.swift */; }; 4C4AEC4520EC343B0020E72B /* DismissableTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4AEC4420EC343B0020E72B /* DismissableTextField.swift */; }; - 4C4BC6C32102D697004040C9 /* ContactDiscoveryOperationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4BC6C22102D697004040C9 /* ContactDiscoveryOperationTest.swift */; }; 4C5250D221E7BD7D00CE3D95 /* PhoneNumberValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C5250D121E7BD7D00CE3D95 /* PhoneNumberValidator.swift */; }; - 4C5250D421E7C51900CE3D95 /* PhoneNumberValidatorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C5250D321E7C51900CE3D95 /* PhoneNumberValidatorTest.swift */; }; 4C586926224FAB83003FD070 /* AVAudioSession+OWS.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C586925224FAB83003FD070 /* AVAudioSession+OWS.m */; }; 4C618199219DF03A009BD6B5 /* OWSButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C618198219DF03A009BD6B5 /* OWSButton.swift */; }; 4C61819F219E1796009BD6B5 /* typing-animation-dark.gif in Resources */ = {isa = PBXBuildFile; fileRef = 4C61819E219E1795009BD6B5 /* typing-animation-dark.gif */; }; @@ -525,7 +522,6 @@ 7BDCFC08242186E700641C39 /* NotificationServiceExtensionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDCFC07242186E700641C39 /* NotificationServiceExtensionContext.swift */; }; 7BDCFC092421894900641C39 /* MessageFetcherJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452ECA4C1E087E7200E2F016 /* MessageFetcherJob.swift */; }; 7BDCFC0B2421EB7600641C39 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B6F509951AA53F760068F56A /* Localizable.strings */; }; - 954AEE6A1DF33E01002E5410 /* ContactsPickerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AEE681DF33D32002E5410 /* ContactsPickerTest.swift */; }; A10FDF79184FB4BB007FF963 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76C87F18181EFCE600C4ACAB /* MediaPlayer.framework */; }; A11CD70D17FA230600A2D1B1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A11CD70C17FA230600A2D1B1 /* QuartzCore.framework */; }; A123C14916F902EE000AE905 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A163E8AA16F3F6A90094D68B /* Security.framework */; }; @@ -1238,7 +1234,6 @@ 45855F361D9498A40084F340 /* OWSContactAvatarBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSContactAvatarBuilder.m; sourceTree = ""; }; 4585C4671ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SafetyNumberConfirmationAlert.swift; sourceTree = ""; }; 4589670F1DC117CC00E9DD21 /* SignalTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SignalTests-Bridging-Header.h"; sourceTree = ""; }; - 458967101DC117CC00E9DD21 /* AccountManagerTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountManagerTest.swift; path = Models/AccountManagerTest.swift; sourceTree = ""; }; 458DE9D51DEE3FD00071BB03 /* PeerConnectionClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerConnectionClient.swift; sourceTree = ""; }; 458E38351D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSDeviceProvisioningURLParser.h; sourceTree = ""; }; 458E38361D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSDeviceProvisioningURLParser.m; sourceTree = ""; }; @@ -1334,9 +1329,7 @@ 4C3EF801210918740007EBF7 /* SSKProtoEnvelopeTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SSKProtoEnvelopeTest.swift; sourceTree = ""; }; 4C4AE69F224AF21900D4AF6F /* SendMediaNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMediaNavigationController.swift; sourceTree = ""; }; 4C4AEC4420EC343B0020E72B /* DismissableTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissableTextField.swift; sourceTree = ""; }; - 4C4BC6C22102D697004040C9 /* ContactDiscoveryOperationTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ContactDiscoveryOperationTest.swift; path = contact/ContactDiscoveryOperationTest.swift; sourceTree = ""; }; 4C5250D121E7BD7D00CE3D95 /* PhoneNumberValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneNumberValidator.swift; sourceTree = ""; }; - 4C5250D321E7C51900CE3D95 /* PhoneNumberValidatorTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneNumberValidatorTest.swift; sourceTree = ""; }; 4C586924224FAB83003FD070 /* AVAudioSession+OWS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "AVAudioSession+OWS.h"; path = "util/UI Categories/AVAudioSession+OWS.h"; sourceTree = ""; }; 4C586925224FAB83003FD070 /* AVAudioSession+OWS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "AVAudioSession+OWS.m"; path = "util/UI Categories/AVAudioSession+OWS.m"; sourceTree = ""; }; 4C618198219DF03A009BD6B5 /* OWSButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWSButton.swift; sourceTree = ""; }; @@ -1379,7 +1372,6 @@ 8981C8F64D94D3C52EB67A2C /* Pods-SignalTests.test.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalTests.test.xcconfig"; path = "Pods/Target Support Files/Pods-SignalTests/Pods-SignalTests.test.xcconfig"; sourceTree = ""; }; 8EEE74B0753448C085B48721 /* Pods-SignalMessaging.app store release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalMessaging.app store release.xcconfig"; path = "Pods/Target Support Files/Pods-SignalMessaging/Pods-SignalMessaging.app store release.xcconfig"; sourceTree = ""; }; 948239851C08032C842937CC /* Pods-SignalMessaging.test.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalMessaging.test.xcconfig"; path = "Pods/Target Support Files/Pods-SignalMessaging/Pods-SignalMessaging.test.xcconfig"; sourceTree = ""; }; - 954AEE681DF33D32002E5410 /* ContactsPickerTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsPickerTest.swift; sourceTree = ""; }; 9B533A9FA46206D3D99C9ADA /* Pods-SignalMessaging.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalMessaging.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SignalMessaging/Pods-SignalMessaging.debug.xcconfig"; sourceTree = ""; }; A11CD70C17FA230600A2D1B1 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; A163E8AA16F3F6A90094D68B /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; @@ -2474,11 +2466,8 @@ 458E38381D6699110094BD24 /* Models */ = { isa = PBXGroup; children = ( - 4C5250D321E7C51900CE3D95 /* PhoneNumberValidatorTest.swift */, 4C04F58321C860C50090D0BB /* MantlePerfTest.swift */, - 4C4BC6C22102D697004040C9 /* ContactDiscoveryOperationTest.swift */, 458E38391D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m */, - 458967101DC117CC00E9DD21 /* AccountManagerTest.swift */, ); name = Models; sourceTree = ""; @@ -2713,7 +2702,6 @@ children = ( 34C6B0A41FA0E46F00D35993 /* Assets */, B660F6731C29867F00687D6E /* call */, - B660F6751C29867F00687D6E /* contact */, 34843B29214FE295004DED45 /* mocks */, 458E38381D6699110094BD24 /* Models */, 34843B2321432293004DED45 /* SignalBaseTest.h */, @@ -2737,14 +2725,6 @@ path = call; sourceTree = ""; }; - B660F6751C29867F00687D6E /* contact */ = { - isa = PBXGroup; - children = ( - 954AEE681DF33D32002E5410 /* ContactsPickerTest.swift */, - ); - path = contact; - sourceTree = ""; - }; B660F69D1C29868000687D6E /* Supporting Files */ = { isa = PBXGroup; children = ( @@ -4282,7 +4262,6 @@ buildActionMask = 2147483647; files = ( 456F6E2F1E261D1000FD2210 /* PeerConnectionClientTest.swift in Sources */, - 458967111DC117CC00E9DD21 /* AccountManagerTest.swift in Sources */, 3491D9A121022DB7001EF5A1 /* CDSSigningCertificateTest.m in Sources */, 34BBC861220E883300857249 /* ImageEditorModelTest.swift in Sources */, 340B02BA1FA0D6C700F9CFEC /* ConversationViewItemTest.m in Sources */, @@ -4296,7 +4275,6 @@ 34843B2C214FE296004DED45 /* MockEnvironment.m in Sources */, 45360B911F952AA900FA666C /* MarqueeLabel.swift in Sources */, 454EBAB41F2BE14C00ACE0BB /* OWSAnalytics.swift in Sources */, - 954AEE6A1DF33E01002E5410 /* ContactsPickerTest.swift in Sources */, 45666F581D9B2880008FE134 /* OWSScrubbingLogFormatterTest.m in Sources */, B660F6E01C29868000687D6E /* UtilTest.m in Sources */, 4C3EF7FD2107DDEE0007EBF7 /* ParamParserTest.swift in Sources */, @@ -4304,9 +4282,7 @@ 45E7A6A81E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift in Sources */, 34843B2421432293004DED45 /* SignalBaseTest.m in Sources */, 4C3EF802210918740007EBF7 /* SSKProtoEnvelopeTest.swift in Sources */, - 4C5250D421E7C51900CE3D95 /* PhoneNumberValidatorTest.swift in Sources */, 452D1AF12081059C00A67F7F /* StringAdditionsTest.swift in Sources */, - 4C4BC6C32102D697004040C9 /* ContactDiscoveryOperationTest.swift in Sources */, 455AC69E1F4F8B0300134004 /* ImageCacheTest.swift in Sources */, 34E8A8D12085238A00B272B1 /* ProtoParsingTest.m in Sources */, ); diff --git a/Signal/test/Models/AccountManagerTest.swift b/Signal/test/Models/AccountManagerTest.swift deleted file mode 100644 index 7dc1e731c..000000000 --- a/Signal/test/Models/AccountManagerTest.swift +++ /dev/null @@ -1,157 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -import XCTest -import PromiseKit -import SignalServiceKit -@testable import Session - -struct VerificationFailedError: Error { } -struct FailedToGetRPRegistrationTokenError: Error { } - -enum PushNotificationRequestResult: String { - case FailTSOnly = "FailTSOnly", - FailRPOnly = "FailRPOnly", - FailBoth = "FailBoth", - Succeed = "Succeed" -} - -class FailingTSAccountManager: TSAccountManager { - override public init(primaryStorage: OWSPrimaryStorage) { - AssertIsOnMainThread() - - super.init(primaryStorage: primaryStorage) - - self.phoneNumberAwaitingVerification = "+13235555555" - } - - override func verifyAccount(withCode: String, - pin: String?, - success: @escaping () -> Void, failure: @escaping (Error) -> Void) { - failure(VerificationFailedError()) - } - - override func registerForPushNotifications(pushToken: String, voipToken: String, isForcedUpdate: Bool, success successHandler: @escaping () -> Void, failure failureHandler: @escaping (Error) -> Void) { - if pushToken == PushNotificationRequestResult.FailTSOnly.rawValue || pushToken == PushNotificationRequestResult.FailBoth.rawValue { - failureHandler(OWSErrorMakeUnableToProcessServerResponseError()) - } else { - successHandler() - } - } -} - -class VerifyingTSAccountManager: FailingTSAccountManager { - override func verifyAccount(withCode: String, - pin: String?, - success: @escaping () -> Void, failure: @escaping (Error) -> Void) { - success() - } - - override func performUpdateAccountAttributes() -> AnyPromise { - return AnyPromise(Promise.value(())) - } -} - -class TokenObtainingTSAccountManager: VerifyingTSAccountManager { -} - -class VerifyingPushRegistrationManager: PushRegistrationManager { - public override func requestPushTokens() -> Promise<(pushToken: String, voipToken: String)> { - return Promise.value(("a", "b")) - } -} - -class AccountManagerTest: SignalBaseTest { - - override func setUp() { - super.setUp() - - let tsAccountManager = FailingTSAccountManager(primaryStorage: OWSPrimaryStorage.shared()) - let sskEnvironment = SSKEnvironment.shared as! MockSSKEnvironment - sskEnvironment.tsAccountManager = tsAccountManager - } - - override func tearDown() { - super.tearDown() - } - - func testRegisterWhenEmptyCode() { - let accountManager = AccountManager() - - let expectation = self.expectation(description: "should fail") - - firstly { - accountManager.register(verificationCode: "", pin: "") - }.done { - XCTFail("Should fail") - }.catch { error in - let nserror = error as NSError - if OWSErrorCode(rawValue: nserror.code) == OWSErrorCode.userError { - expectation.fulfill() - } else { - XCTFail("Unexpected error: \(error)") - } - }.retainUntilComplete() - - self.waitForExpectations(timeout: 1.0, handler: nil) - } - - func testRegisterWhenVerificationFails() { - let accountManager = AccountManager() - - let expectation = self.expectation(description: "should fail") - - firstly { - accountManager.register(verificationCode: "123456", pin: "") - }.done { - XCTFail("Should fail") - }.catch { error in - if error is VerificationFailedError { - expectation.fulfill() - } else { - XCTFail("Unexpected error: \(error)") - } - }.retainUntilComplete() - - self.waitForExpectations(timeout: 1.0, handler: nil) - } - - func testSuccessfulRegistration() { - let tsAccountManager = TokenObtainingTSAccountManager(primaryStorage: OWSPrimaryStorage.shared()) - let sskEnvironment = SSKEnvironment.shared as! MockSSKEnvironment - sskEnvironment.tsAccountManager = tsAccountManager - - AppEnvironment.shared.pushRegistrationManager = VerifyingPushRegistrationManager() - - let accountManager = AccountManager() - - let expectation = self.expectation(description: "should succeed") - - firstly { - accountManager.register(verificationCode: "123456", pin: "") - }.done { - expectation.fulfill() - }.catch { error in - XCTFail("Unexpected error: \(error)") - }.retainUntilComplete() - - self.waitForExpectations(timeout: 1.0, handler: nil) - } - - func testUpdatePushTokens() { - let accountManager = AccountManager() - - let expectation = self.expectation(description: "should fail") - - firstly { - accountManager.updatePushTokens(pushToken: PushNotificationRequestResult.FailTSOnly.rawValue, voipToken: "whatever", isForcedUpdate: false) - }.done { - XCTFail("Expected to fail.") - }.catch { _ in - expectation.fulfill() - }.retainUntilComplete() - - self.waitForExpectations(timeout: 1.0, handler: nil) - } -} diff --git a/Signal/test/PhoneNumberValidatorTest.swift b/Signal/test/PhoneNumberValidatorTest.swift deleted file mode 100644 index cf9be658f..000000000 --- a/Signal/test/PhoneNumberValidatorTest.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// Copyright (c) 2019 Open Whisper Systems. All rights reserved. -// - -import XCTest -import Session - -class PhoneNumberValidatorTest: SignalBaseTest { - - func assertValid(e164: String, - file: StaticString = #file, - line: UInt = #line) { - let validator = PhoneNumberValidator() - guard let phoneNumber = PhoneNumber(fromE164: e164) else { - XCTFail("unparseable phone number", file: file, line: line) - return - } - let isValid = validator.isValidForRegistration(phoneNumber: phoneNumber) - XCTAssertTrue(isValid, file: file, line: line) - } - - func assertInvalid(e164: String, - file: StaticString = #file, - line: UInt = #line) { - let validator = PhoneNumberValidator() - guard let phoneNumber = PhoneNumber(fromE164: e164) else { - XCTFail("unparseable phone number", file: file, line: line) - return - } - let isValid = validator.isValidForRegistration(phoneNumber: phoneNumber) - XCTAssertFalse(isValid, file: file, line: line) - } - - func testUnitedStates() { - // valid us number - assertValid(e164: "+13235551234") - - // too short - assertInvalid(e164: "+1323555123") - - // too long - assertInvalid(e164: "+132355512345") - - // not a US phone number - assertValid(e164: "+3235551234") - } - - func testBrazil() { - // valid mobile - assertValid(e164: "+5532912345678") - - // valid landline - assertValid(e164: "+553212345678") - - // mobile length, but with out the leading '9' - assertInvalid(e164: "+5532812345678") - - // too short - assertInvalid(e164: "+5532812345678") - - // too long landline - assertInvalid(e164: "+5532123456789") - assertInvalid(e164: "+55321234567890") - - // too long mobile - assertInvalid(e164: "+55329123456789") - assertInvalid(e164: "+553291234567890") - } -} diff --git a/Signal/test/contact/ContactDiscoveryOperationTest.swift b/Signal/test/contact/ContactDiscoveryOperationTest.swift deleted file mode 100644 index 6289dfbc1..000000000 --- a/Signal/test/contact/ContactDiscoveryOperationTest.swift +++ /dev/null @@ -1,60 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -import XCTest -@testable import SignalServiceKit - -class ContactDiscoveryOperationTest: SignalBaseTest { - - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - func tesBoolArrayFromEmptyData() { - let data = Data() - let bools = CDSBatchOperation.boolArray(data: data) - XCTAssert(bools == []) - } - - func testBoolArrayFromFalseByte() { - let data = Data(repeating: 0x00, count: 4) - let bools = CDSBatchOperation.boolArray(data: data) - XCTAssert(bools == [false, false, false, false]) - } - - func testBoolArrayFromTrueByte() { - let data = Data(repeating: 0x01, count: 4) - let bools = CDSBatchOperation.boolArray(data: data) - XCTAssert(bools == [true, true, true, true]) - } - - func testBoolArrayFromMixedBytes() { - let data = Data(bytes: [0x01, 0x00, 0x01, 0x01]) - let bools = CDSBatchOperation.boolArray(data: data) - XCTAssert(bools == [true, false, true, true]) - } - - func testEncodeNumber() { - let recipientIds = [ "+1011" ] - let actual = try! CDSBatchOperation.encodePhoneNumbers(recipientIds: recipientIds) - let expected: Data = Data(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf3]) - - XCTAssertEqual(expected, actual) - } - - func testEncodeMultipleNumber() { - let recipientIds = [ "+1011", "+15551231234"] - let actual = try! CDSBatchOperation.encodePhoneNumbers(recipientIds: recipientIds) - let expected: Data = Data(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf3, - 0x00, 0x00, 0x00, 0x03, 0x9e, 0xec, 0xf5, 0x02]) - - XCTAssertEqual(expected, actual) - } -} diff --git a/Signal/test/contact/ContactsPickerTest.swift b/Signal/test/contact/ContactsPickerTest.swift deleted file mode 100644 index 5730e57c6..000000000 --- a/Signal/test/contact/ContactsPickerTest.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// Copyright (c) 2019 Open Whisper Systems. All rights reserved. -// - -import XCTest -import Contacts -@testable import Session - -final class ContactsPickerTest: SignalBaseTest { - private var prevLang: Any? - - override func setUp() { - super.setUp() - - prevLang = getLang() - } - - override func tearDown() { - super.tearDown() - - if let prevLang = prevLang { - setLang(value: prevLang) - } - } - - func testContactSectionMatchesEmailFirstLetterWhenOnlyEmailContact() { - setLangEN() - - let emailOnlyContactB = CNMutableContact() - emailOnlyContactB.emailAddresses.append(CNLabeledValue(label: nil, value: "bla@bla.com")) - - let emailOnlyContactD = CNMutableContact() - emailOnlyContactD.emailAddresses.append(CNLabeledValue(label: nil, value: "dude@bla.com")) - - let contactsPicker = ContactsPicker(allowsMultipleSelection: false, subtitleCellType: .phoneNumber) - let collatedContacts = contactsPicker.collatedContacts([emailOnlyContactB, emailOnlyContactD]) - - let sectionTitles = contactsPicker.collationForTests.sectionTitles - if let bIndex = sectionTitles.firstIndex(of: "B") { - let bSectionContacts = collatedContacts[bIndex] - XCTAssertEqual(bSectionContacts.first, emailOnlyContactB) - } - - if let dIndex = sectionTitles.firstIndex(of: "D") { - let dSectionContacts = collatedContacts[dIndex] - XCTAssertEqual(dSectionContacts.first, emailOnlyContactD) - } - } - - func testContactSectionMatchesNameFirstLetterWhenNameExistsInContact() { - setLangEN() - - let nameAndEmailContact = CNMutableContact() - nameAndEmailContact.givenName = "Alice" - nameAndEmailContact.emailAddresses.append(CNLabeledValue(label: nil, value: "nameAndEmail@bla.com")) - - let contactsPicker = ContactsPicker(allowsMultipleSelection: false, subtitleCellType: .phoneNumber) - let collatedContacts = contactsPicker.collatedContacts([nameAndEmailContact]) - - let sectionTitles = contactsPicker.collationForTests.sectionTitles - if let aIndex = sectionTitles.firstIndex(of: "A") { - let aSectionContacts = collatedContacts[aIndex] - XCTAssertEqual(aSectionContacts.first, nameAndEmailContact) - } - } - - private func setLangEN() { - setLang(value: "en") - } - - private func setLang(value: Any) { - UserDefaults.standard.set(value, forKey: "AppleLanguages") - UserDefaults.standard.synchronize() - } - - private func setLang(value: String) { - setLang(value: [value]) - } - - private func getLang() -> Any? { - return UserDefaults.standard.value(forKey: "AppleLanguages") - } -} diff --git a/SignalServiceKit/tests/Contacts/ContactSortingTest.m b/SignalServiceKit/tests/Contacts/ContactSortingTest.m deleted file mode 100644 index 4e3c2bfe6..000000000 --- a/SignalServiceKit/tests/Contacts/ContactSortingTest.m +++ /dev/null @@ -1,122 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "Contact.h" -#import "SSKBaseTestObjC.h" - -@import Contacts; - -NS_ASSUME_NONNULL_BEGIN - -@interface ContactSortingTest : SSKBaseTestObjC - -@end - -@implementation ContactSortingTest - -- (void)setUp -{ - [super setUp]; - - srandom((unsigned int)time(NULL)); -} - -- (void)testSortingNamesByFirstLast -{ - NSComparator comparator = [Contact comparatorSortingNamesByFirstThenLast:YES]; - NSArray*sortedContacts = [self.class contactArrayForNames:@[@[@"Adam", @"Smith"], - @[@"Adam", @"West"], - @[@"", @"Daisy"], - @[@"Daisy", @"Chain"], - @[@"Daisy", @"Duke"], - @[@"James", @"Smith"], - @[@"James", @"Van"], - @[@"James", @"Van Der Beek"], - @[@"Kevin", @"Smith"], - @[@"Mae", @"West"], - @[@"Mary", @"Oliver"], - @[@"Mary Jo", @"Catlett"], - ]]; - NSUInteger numContacts = sortedContacts.count; - - for (NSUInteger i = 0; i < 20; i++) { - NSArray *shuffledContacts = [self.class shuffleArray:sortedContacts]; - NSArray *resortedContacts = [shuffledContacts sortedArrayUsingComparator:comparator]; - for (NSUInteger j = 0; j < numContacts; j++) { - Contact *a = sortedContacts[j]; - Contact *b = resortedContacts[j]; - BOOL correct = ([a.firstName isEqualToString:b.firstName] && [a.lastName isEqualToString:b.lastName]); - if (!correct) { - XCTFail(@"Contacts failed to sort names by first, last"); - break; - } - } - } -} - -- (void)testSortingNamesByLastFirst -{ - NSComparator comparator = [Contact comparatorSortingNamesByFirstThenLast:NO]; - NSArray*sortedContacts = [self.class contactArrayForNames:@[@[@"Mary Jo", @"Catlett"], - @[@"Daisy", @"Chain"], - @[@"", @"Daisy"], - @[@"Daisy", @"Duke"], - @[@"Mary", @"Oliver"], - @[@"Adam", @"Smith"], - @[@"James", @"Smith"], - @[@"Kevin", @"Smith"], - @[@"James", @"Van"], - @[@"James", @"Van Der Beek"], - @[@"Adam", @"West"], - @[@"Mae", @"West"], - ]]; - NSUInteger numContacts = sortedContacts.count; - - for (NSUInteger i = 0; i < 20; i++) { - NSArray *shuffledContacts = [self.class shuffleArray:sortedContacts]; - NSArray *resortedContacts = [shuffledContacts sortedArrayUsingComparator:comparator]; - for (NSUInteger j = 0; j < numContacts; j++) { - Contact *a = sortedContacts[j]; - Contact *b = resortedContacts[j]; - BOOL correct = ([a.firstName isEqualToString:b.firstName] && [a.lastName isEqualToString:b.lastName]); - if (!correct) { - XCTFail(@"Contacts failed to sort names by last, first"); - break; - } - } - } -} - -+ (NSArray *)contactArrayForNames:(NSArray*>*)namePairs -{ - NSMutableArray*contacts = [[NSMutableArray alloc] initWithCapacity:namePairs.count]; - for (NSArray*namePair in namePairs) { - - CNMutableContact *cnContact = [CNMutableContact new]; - cnContact.givenName = namePair[0]; - cnContact.familyName = namePair[1]; - - Contact *c = [[Contact alloc] initWithSystemContact:cnContact]; - - [contacts addObject:c]; - } - - return [contacts copy]; // Return an immutable for good hygene -} - -+ (NSArray*)shuffleArray:(NSArray *)array -{ - NSMutableArray *shuffled = [[NSMutableArray alloc] initWithArray:array]; - - for(NSUInteger i = [array count]; i > 1; i--) { - NSUInteger j = arc4random_uniform((uint32_t)i); - [shuffled exchangeObjectAtIndex:(i - 1) withObjectAtIndex:j]; - } - - return [shuffled copy]; // Return an immutable for good hygene -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/tests/Contacts/PhoneNumberTest.m b/SignalServiceKit/tests/Contacts/PhoneNumberTest.m deleted file mode 100644 index 81b64fe8d..000000000 --- a/SignalServiceKit/tests/Contacts/PhoneNumberTest.m +++ /dev/null @@ -1,202 +0,0 @@ -// -// Copyright (c) 2019 Open Whisper Systems. All rights reserved. -// - -#import "PhoneNumber.h" -#import "SSKBaseTestObjC.h" - -@interface PhoneNumberTest : SSKBaseTestObjC - -@end - -#pragma mark - - -@implementation PhoneNumberTest - --(void)testE164 { - XCTAssertEqualObjects(@"+19025555555", [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"+1 (902) 555-5555"] toE164]); - XCTAssertEqualObjects(@"+19025555555", [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"1 (902) 555-5555"] toE164]); - XCTAssertEqualObjects(@"+19025555555", [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"1-902-555-5555"] toE164]); - - // Phone numbers missing a calling code. - XCTAssertEqualObjects(@"+19025555555", [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"9025555555"] toE164]); - - // Phone numbers with a calling code but without a plus - XCTAssertEqualObjects(@"+19025555555", [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"19025555555"] toE164]); - - // Empty input. - XCTAssertEqualObjects(nil, [[PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@""] toE164]); -} - -- (void)testTryParsePhoneNumberFromUserSpecifiedTextAssumesLocalRegion { - PhoneNumber *actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"3235551234"]; - XCTAssertEqualObjects(@"+13235551234", [actual toE164]); -} - -- (void)testTryParsePhoneNumberFromUserSpecifiedTextWithExplicitRegionCode { - PhoneNumber *actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"+33 1 70 39 38 00"]; - XCTAssertEqualObjects(@"+33170393800", [actual toE164]); -} - -- (void)testTryParsePhoneNumberFromUserSpecifiedTextWithoutPlus { - PhoneNumber *actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"33 1 70 39 38 00"]; - - // This might not be desired, but documents existing behavior. - // You *must* include a plus when dialing outside of your locale. - XCTAssertEqualObjects(@"+133170393800", [actual toE164]); -} - -- (void)testTryParsePhoneNumberFromUserSpecifiedTextRemovesAnyFormatting { - PhoneNumber *actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"323 555 1234"]; - XCTAssertEqualObjects(@"+13235551234", [actual toE164]); - - actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"323-555-1234"]; - XCTAssertEqualObjects(@"+13235551234", [actual toE164]); - - actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"323.555.1234"]; - XCTAssertEqualObjects(@"+13235551234", [actual toE164]); - - actual = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:@"1-323-555-1234"]; - XCTAssertEqualObjects(@"+13235551234", [actual toE164]); -} - -- (NSArray *)unpackTryParsePhoneNumbersFromsUserSpecifiedText:(NSString *)text - clientPhoneNumber:(NSString *)clientPhoneNumber -{ - NSArray *phoneNumbers = - [PhoneNumber tryParsePhoneNumbersFromsUserSpecifiedText:text clientPhoneNumber:clientPhoneNumber]; - NSMutableArray *result = [NSMutableArray new]; - for (PhoneNumber *phoneNumber in phoneNumbers) { - [result addObject:phoneNumber.toE164]; - } - return result; -} - -- (void)testTryParsePhoneNumbersFromsUserSpecifiedText_SimpleUSA -{ - NSArray *parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"323 555 1234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - XCTAssertEqualObjects(parsed.firstObject, @"+13235551234"); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"323-555-1234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - XCTAssertEqualObjects(parsed.firstObject, @"+13235551234"); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"323.555.1234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - XCTAssertEqualObjects(parsed.firstObject, @"+13235551234"); - - parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"1-323-555-1234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - XCTAssertEqualObjects(parsed.firstObject, @"+13235551234"); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"+13235551234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - XCTAssertEqualObjects(parsed.firstObject, @"+13235551234"); -} - -- (void)testTryParsePhoneNumbersFromsUserSpecifiedText_Mexico1 -{ - NSArray *parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"528341639157" clientPhoneNumber:@"+528341639144"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+528341639157"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"8341639157" clientPhoneNumber:@"+528341639144"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+528341639157"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"341639157" clientPhoneNumber:@"+528341639144"]; - XCTAssertTrue(parsed.count >= 1); - // The parsing logic should try adding Mexico's national prefix for cell numbers "1" - // after the country code. - XCTAssertTrue([parsed containsObject:@"+52341639157"]); - XCTAssertTrue([parsed containsObject:@"+521341639157"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"528341639157" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+528341639157"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"13235551234" clientPhoneNumber:@"+528341639144"]; - XCTAssertTrue(parsed.count >= 1); - XCTAssertTrue([parsed containsObject:@"+13235551234"]); -} - -- (void)testMissingAreaCode_USA -{ - // Add area code to numbers that look like "local" numbers - NSArray *parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"555-1234" clientPhoneNumber:@"+13233214321"]; - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"5551234" clientPhoneNumber:@"+13233214321"]; - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"555 1234" clientPhoneNumber:@"+13233214321"]; - XCTAssertTrue([parsed containsObject:@"+13235551234"]); - - // Don't touch numbers that look like e164, even if they're the same length as a "local" us number - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"+5551234" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue([parsed containsObject:@"+5551234"]); - - // Don't touch numbers that already have an area code - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"570 555 1234" clientPhoneNumber:@"+13233214321"]; - XCTAssertTrue([parsed containsObject:@"+15705551234"]); - - // Don't touch numbers that are already in e164 - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"+33170393800" clientPhoneNumber:@"+13213214321"]; - XCTAssertTrue([parsed containsObject:@"+33170393800"]); -} - -- (void)testMissingAreaCode_Brazil -{ - // Add area code to land-line numbers that look like "local" numbers - NSArray *parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"87654321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+552187654321"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"8765-4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+552187654321"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"8765 4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+552187654321"]); - - // Add area code to mobile numbers that look like "local" numbers - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"987654321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+5521987654321"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"9 8765-4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+5521987654321"]); - - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"9 8765 4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+5521987654321"]); - - // Don't touch numbers that look like e164, even if they're the same length as a "local" us number - parsed = [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"+3365-4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+33654321"]); - - // Don't touch land-line numbers that already have an area code - parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"22 8765 4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+552287654321"]); - - // Don't touch mobile numbers that already have an area code - parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"22 9 8765 4321" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+5522987654321"]); - - // Don't touch numbers that are already in e164 - parsed = - [self unpackTryParsePhoneNumbersFromsUserSpecifiedText:@"+33170393800" clientPhoneNumber:@"+5521912345678"]; - XCTAssertTrue([parsed containsObject:@"+33170393800"]); -} - - -@end diff --git a/SignalServiceKit/tests/Contacts/PhoneNumberUtilTest.m b/SignalServiceKit/tests/Contacts/PhoneNumberUtilTest.m deleted file mode 100644 index ef3041afd..000000000 --- a/SignalServiceKit/tests/Contacts/PhoneNumberUtilTest.m +++ /dev/null @@ -1,209 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "PhoneNumberUtil.h" -#import "SSKBaseTestObjC.h" - -@interface PhoneNumberUtilTest : SSKBaseTestObjC - -@end - -@implementation PhoneNumberUtilTest - -#ifdef BROKEN_TESTS - -- (void)testQueryMatching -{ - XCTAssertTrue([PhoneNumberUtil name:@"dave" matchesQuery:@"dave"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"big dave"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"big dave dave"]); - XCTAssertTrue([PhoneNumberUtil name:@"big big dave" matchesQuery:@"big dave"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"dave big"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"dave"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"big"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"big "]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@" big "]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"dav"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" matchesQuery:@"bi dav"]); - XCTAssertTrue([PhoneNumberUtil name:@"big dave" - matchesQuery:@"big big big big big big big big big big dave dave dave dave dave"]); - - XCTAssertFalse([PhoneNumberUtil name:@"big dave" matchesQuery:@"ave"]); - XCTAssertFalse([PhoneNumberUtil name:@"big dave" matchesQuery:@"dare"]); - XCTAssertFalse([PhoneNumberUtil name:@"big dave" matchesQuery:@"mike"]); - XCTAssertFalse([PhoneNumberUtil name:@"dave" matchesQuery:@"big"]); -} - -- (void)testTranslateCursorPosition -{ - XCTAssertThrows([PhoneNumberUtil translateCursorPosition:0 from:nil to:@"" stickingRightward:true]); - XCTAssertThrows([PhoneNumberUtil translateCursorPosition:0 from:@"" to:nil stickingRightward:true]); - XCTAssertThrows([PhoneNumberUtil translateCursorPosition:1 from:@"" to:@"" stickingRightward:true]); - - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"" to:@"" stickingRightward:true]); - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"12" to:@"1" stickingRightward:true]); - XCTAssertEqual(1, [PhoneNumberUtil translateCursorPosition:1 from:@"12" to:@"1" stickingRightward:true]); - XCTAssertEqual(1, [PhoneNumberUtil translateCursorPosition:2 from:@"12" to:@"1" stickingRightward:true]); - - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"1" to:@"12" stickingRightward:false]); - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"1" to:@"12" stickingRightward:true]); - XCTAssertEqual(1, [PhoneNumberUtil translateCursorPosition:1 from:@"1" to:@"12" stickingRightward:false]); - XCTAssertEqual(2, [PhoneNumberUtil translateCursorPosition:1 from:@"1" to:@"12" stickingRightward:true]); - - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"12" to:@"132" stickingRightward:false]); - XCTAssertEqual(0, [PhoneNumberUtil translateCursorPosition:0 from:@"12" to:@"132" stickingRightward:true]); - XCTAssertEqual(1, [PhoneNumberUtil translateCursorPosition:1 from:@"12" to:@"132" stickingRightward:false]); - XCTAssertEqual(2, [PhoneNumberUtil translateCursorPosition:1 from:@"12" to:@"132" stickingRightward:true]); - XCTAssertEqual(3, [PhoneNumberUtil translateCursorPosition:2 from:@"12" to:@"132" stickingRightward:false]); - XCTAssertEqual(3, [PhoneNumberUtil translateCursorPosition:2 from:@"12" to:@"132" stickingRightward:true]); - - XCTAssertEqual(0, - [PhoneNumberUtil translateCursorPosition:0 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(1, - [PhoneNumberUtil translateCursorPosition:1 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(2, - [PhoneNumberUtil translateCursorPosition:2 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:3 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:4 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:5 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(6, - [PhoneNumberUtil translateCursorPosition:6 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(7, - [PhoneNumberUtil translateCursorPosition:7 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(8, - [PhoneNumberUtil translateCursorPosition:8 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - XCTAssertEqual(8, - [PhoneNumberUtil translateCursorPosition:9 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:true]); - - XCTAssertEqual(0, - [PhoneNumberUtil translateCursorPosition:0 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(1, - [PhoneNumberUtil translateCursorPosition:1 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(2, - [PhoneNumberUtil translateCursorPosition:2 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:3 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:4 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:5 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(4, - [PhoneNumberUtil translateCursorPosition:6 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(7, - [PhoneNumberUtil translateCursorPosition:7 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(8, - [PhoneNumberUtil translateCursorPosition:8 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - XCTAssertEqual(8, - [PhoneNumberUtil translateCursorPosition:9 from:@"(55) 123-4567" to:@"(551) 234-567" stickingRightward:false]); - - XCTAssertEqual(0, - [PhoneNumberUtil translateCursorPosition:0 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - XCTAssertEqual(1, - [PhoneNumberUtil translateCursorPosition:1 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - XCTAssertEqual(2, - [PhoneNumberUtil translateCursorPosition:2 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:3 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - XCTAssertEqual(6, - [PhoneNumberUtil translateCursorPosition:4 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - XCTAssertEqual(7, - [PhoneNumberUtil translateCursorPosition:5 from:@"(5551) 234-567" to:@"(555) 123-4567" stickingRightward:true]); - - XCTAssertEqual(0, - [PhoneNumberUtil translateCursorPosition:0 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); - XCTAssertEqual(1, - [PhoneNumberUtil translateCursorPosition:1 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); - XCTAssertEqual(2, - [PhoneNumberUtil translateCursorPosition:2 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); - XCTAssertEqual(3, - [PhoneNumberUtil translateCursorPosition:3 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); - XCTAssertEqual(4, - [PhoneNumberUtil translateCursorPosition:4 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); - XCTAssertEqual(7, - [PhoneNumberUtil translateCursorPosition:5 - from:@"(5551) 234-567" - to:@"(555) 123-4567" - stickingRightward:false]); -} - -- (void)testCallingCodeFromCountryCode -{ - XCTAssertEqualObjects([PhoneNumberUtil callingCodeFromCountryCode:@"US"], @"+1"); - XCTAssertEqualObjects([PhoneNumberUtil callingCodeFromCountryCode:@"GB"], @"+44"); - // Invalid country code. - XCTAssertEqualObjects([PhoneNumberUtil callingCodeFromCountryCode:@"EK"], @"+0"); - XCTAssertEqualObjects([PhoneNumberUtil callingCodeFromCountryCode:@"ZZZ"], @"+0"); - XCTAssertEqualObjects([PhoneNumberUtil callingCodeFromCountryCode:nil], @"+0"); -} - -- (void)testCountryNameFromCountryCode -{ - XCTAssertEqualObjects([PhoneNumberUtil countryNameFromCountryCode:@"US"], @"United States"); - XCTAssertEqualObjects([PhoneNumberUtil countryNameFromCountryCode:@"GB"], @"United Kingdom"); - // Invalid country code. - XCTAssertEqualObjects([PhoneNumberUtil countryNameFromCountryCode:@"EK"], @"EK"); - XCTAssertEqualObjects([PhoneNumberUtil countryNameFromCountryCode:@"ZZZ"], @"ZZZ"); - XCTAssertThrows([PhoneNumberUtil countryNameFromCountryCode:nil]); -} - -- (void)testCountryCodesForSearchTerm -{ - // Empty search. - XCTAssertGreaterThan([PhoneNumberUtil countryCodesForSearchTerm:nil].count, (NSUInteger)30); - XCTAssertGreaterThan([PhoneNumberUtil countryCodesForSearchTerm:@""].count, (NSUInteger)30); - XCTAssertGreaterThan([PhoneNumberUtil countryCodesForSearchTerm:@" "].count, (NSUInteger)30); - - // Searches with no results. - XCTAssertEqual([PhoneNumberUtil countryCodesForSearchTerm:@" . "].count, (NSUInteger)0); - XCTAssertEqual([PhoneNumberUtil countryCodesForSearchTerm:@" XXXXX "].count, (NSUInteger)0); - XCTAssertEqual([PhoneNumberUtil countryCodesForSearchTerm:@" ! "].count, (NSUInteger)0); - - // Search by country code. - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@"GB"], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@"gb"], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@"GB "], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@" GB"], (@[ @"GB" ])); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" G"] containsObject:@"GB"]); - XCTAssertFalse([[PhoneNumberUtil countryCodesForSearchTerm:@" B"] containsObject:@"GB"]); - - // Search by country name. - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@"united kingdom"], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@" UNITED KINGDOM "], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@" UNITED KING "], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@" UNI KING "], (@[ @"GB" ])); - XCTAssertEqualObjects([PhoneNumberUtil countryCodesForSearchTerm:@" u k "], (@[ @"GB" ])); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" u"] containsObject:@"GB"]); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" k"] containsObject:@"GB"]); - XCTAssertFalse([[PhoneNumberUtil countryCodesForSearchTerm:@" m"] containsObject:@"GB"]); - - // Search by calling code. - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" +44 "] containsObject:@"GB"]); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" 44 "] containsObject:@"GB"]); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" +4 "] containsObject:@"GB"]); - XCTAssertTrue([[PhoneNumberUtil countryCodesForSearchTerm:@" 4 "] containsObject:@"GB"]); - XCTAssertFalse([[PhoneNumberUtil countryCodesForSearchTerm:@" +123 "] containsObject:@"GB"]); - XCTAssertFalse([[PhoneNumberUtil countryCodesForSearchTerm:@" +444 "] containsObject:@"GB"]); -} - -#endif - -@end diff --git a/SignalServiceKit/tests/Messages/OWSSignalAddressTest.swift b/SignalServiceKit/tests/Messages/OWSSignalAddressTest.swift deleted file mode 100644 index e529770e9..000000000 --- a/SignalServiceKit/tests/Messages/OWSSignalAddressTest.swift +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -import Foundation -import SignalServiceKit -import XCTest - -class OWSSignalAddressTest: SSKBaseTestSwift { - - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - func testInitializer() { - let recipientId = "+13213214321" - let deviceId: UInt = 1 - let address = try! OWSSignalAddress(recipientId: recipientId, deviceId: deviceId) - XCTAssertEqual(address.recipientId, recipientId) - XCTAssertEqual(address.deviceId, deviceId) - } - - func testInitializer_badRecipientId() { - let recipientId = "" - let deviceId: UInt = 1 - XCTAssertThrowsError(try OWSSignalAddress(recipientId: recipientId, deviceId: deviceId)) - } - - func testInitializer_badDeviceId() { - let recipientId = "+13213214321" - let deviceId: UInt = 0 - XCTAssertThrowsError(try OWSSignalAddress(recipientId: recipientId, deviceId: deviceId)) - } -} diff --git a/SignalServiceKit/tests/Util/OWSAnalyticsTests.m b/SignalServiceKit/tests/Util/OWSAnalyticsTests.m deleted file mode 100644 index cc2285b22..000000000 --- a/SignalServiceKit/tests/Util/OWSAnalyticsTests.m +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "OWSAnalytics.h" -#import "SSKBaseTestObjC.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface OWSAnalyticsTests : SSKBaseTestObjC - -@end - -#pragma mark - - -@implementation OWSAnalyticsTests - -- (void)testOrderOfMagnitudeOf -{ - XCTAssertEqual(0, [OWSAnalytics orderOfMagnitudeOf:-1]); - XCTAssertEqual(0, [OWSAnalytics orderOfMagnitudeOf:0]); - XCTAssertEqual(1, [OWSAnalytics orderOfMagnitudeOf:1]); - XCTAssertEqual(1, [OWSAnalytics orderOfMagnitudeOf:5]); - XCTAssertEqual(1, [OWSAnalytics orderOfMagnitudeOf:9]); - XCTAssertEqual(10, [OWSAnalytics orderOfMagnitudeOf:10]); - XCTAssertEqual(10, [OWSAnalytics orderOfMagnitudeOf:11]); - XCTAssertEqual(10, [OWSAnalytics orderOfMagnitudeOf:19]); - XCTAssertEqual(10, [OWSAnalytics orderOfMagnitudeOf:99]); - XCTAssertEqual(100, [OWSAnalytics orderOfMagnitudeOf:100]); - XCTAssertEqual(100, [OWSAnalytics orderOfMagnitudeOf:303]); - XCTAssertEqual(100, [OWSAnalytics orderOfMagnitudeOf:999]); - XCTAssertEqual(1000, [OWSAnalytics orderOfMagnitudeOf:1000]); - XCTAssertEqual(1000, [OWSAnalytics orderOfMagnitudeOf:3030]); - XCTAssertEqual(10000, [OWSAnalytics orderOfMagnitudeOf:10000]); - XCTAssertEqual(10000, [OWSAnalytics orderOfMagnitudeOf:30303]); - XCTAssertEqual(10000, [OWSAnalytics orderOfMagnitudeOf:99999]); - XCTAssertEqual(100000, [OWSAnalytics orderOfMagnitudeOf:100000]); - XCTAssertEqual(100000, [OWSAnalytics orderOfMagnitudeOf:303030]); - XCTAssertEqual(100000, [OWSAnalytics orderOfMagnitudeOf:999999]); -} - -@end - -NS_ASSUME_NONNULL_END From ac6acb36dc589048285e47db98deebcc4fdc14bb Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Sat, 25 Apr 2020 12:35:58 +1000 Subject: [PATCH 2/2] Update Pods --- Pods | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pods b/Pods index 58e7f2e84..cfe360853 160000 --- a/Pods +++ b/Pods @@ -1 +1 @@ -Subproject commit 58e7f2e84662e05d5d3f8664a4f93e4fd28f5b3f +Subproject commit cfe3608532c42224ce3f5c24295616862f884fc7