diff --git a/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorage.swift b/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorage.swift index ff266bf87..3fb93bc52 100644 --- a/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorage.swift +++ b/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorage.swift @@ -1,17 +1,13 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - import Foundation import SignalServiceKit @objc -public class LK001UpdateFriendRequestStatusStorage: OWSDatabaseMigration { +public class LK001UpdateFriendRequestStatusStorage : OWSDatabaseMigration { // MARK: - // Increment a similar constant for each migration. - // 100-114 are reserved for signal migrations + // 100-114 are reserved for Signal migrations @objc class func migrationId() -> String { return "001" @@ -25,18 +21,15 @@ public class LK001UpdateFriendRequestStatusStorage: OWSDatabaseMigration { DispatchQueue.global().async { self.dbReadWriteConnection().readWrite { transaction in guard let threads = TSThread.allObjectsInCollection() as? [TSThread] else { - owsFailDebug("Failed to convert objects to TSThread") + owsFailDebug("Failed to convert objects to TSThread.") return } for thread in threads { guard let thread = thread as? TSContactThread, - let friendRequestStatus = LKFriendRequestStatus(rawValue: thread.friendRequestStatus) else { - continue; - } + let friendRequestStatus = LKFriendRequestStatus(rawValue: thread.friendRequestStatus) else { continue } OWSPrimaryStorage.shared().setFriendRequestStatus(friendRequestStatus, for: thread.contactIdentifier(), transaction: transaction) } } - completion() } } diff --git a/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorageTest.swift b/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorageTest.swift index 4699fc590..efd9da286 100644 --- a/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorageTest.swift +++ b/SignalMessaging/Loki/Migrations/LK001UpdateFriendRequestStatusStorageTest.swift @@ -8,11 +8,11 @@ class LK001UpdateFriendRequestStatusStorageTest : XCTestCase { override func setUp() { super.setUp() - // Activate the mock environment + ClearCurrentAppContextForTests() SetCurrentAppContext(TestAppContext()) MockSSKEnvironment.activate() - // Register a mock user + let identityManager = OWSIdentityManager.shared() let seed = Randomness.generateRandomBytes(16)! let keyPair = Curve25519.generateKeyPair(fromSeed: seed + seed) @@ -24,16 +24,16 @@ class LK001UpdateFriendRequestStatusStorageTest : XCTestCase { func test_shouldMigrateFriendRequestStatusCorrectly() { typealias ThreadFriendRequestStatus = NSInteger - let friendRequestMappings: [ThreadFriendRequestStatus: LKFriendRequestStatus] = [ - 0: .none, - 1: .requestSending, - 2: .requestSent, - 3: .requestReceived, - 4: .friends, - 5: .requestExpired - ]; + let friendRequestMappings: [ThreadFriendRequestStatus:LKFriendRequestStatus] = [ + 0 : .none, + 1 : .requestSending, + 2 : .requestSent, + 3 : .requestReceived, + 4 : .friends, + 5 : .requestExpired + ] - var hexEncodedPublicKeyMapping: [String: ThreadFriendRequestStatus] = [:] + var hexEncodedPublicKeyMapping: [String:ThreadFriendRequestStatus] = [:] for (threadFriendRequestStatus, _) in friendRequestMappings { let hexEncodedPublicKey = Curve25519.generateKeyPair().hexEncodedPublicKey hexEncodedPublicKeyMapping[hexEncodedPublicKey] = threadFriendRequestStatus @@ -47,18 +47,18 @@ class LK001UpdateFriendRequestStatusStorageTest : XCTestCase { } } - // Wait for migration to complete + // Wait for the migration to complete let migration = self.expectation(description: "Migration") LK001UpdateFriendRequestStatusStorage().runUp { migration.fulfill() } - self.wait(for: [migration], timeout: 5.0) + wait(for: [ migration ], timeout: 5) storage.dbReadWriteConnection.readWrite { transaction in for (hexEncodedPublicKey, threadFriendRequestStatus) in hexEncodedPublicKeyMapping { let expectedFriendRequestStatus = friendRequestMappings[threadFriendRequestStatus]! let friendRequestStatus = self.storage.getFriendRequestStatus(for: hexEncodedPublicKey, transaction: transaction) - XCTAssertEqual(friendRequestStatus, expectedFriendRequestStatus, "Expected friend request status \(friendRequestStatus.rawValue) to match \(expectedFriendRequestStatus.rawValue)") + XCTAssertEqual(friendRequestStatus, expectedFriendRequestStatus, "Expected friend request status \(friendRequestStatus.rawValue) to match \(expectedFriendRequestStatus.rawValue).") } } } diff --git a/SignalServiceKit/src/Loki/Protocol/Friend Requests/FriendRequestProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Friend Requests/FriendRequestProtocol.swift index 3b3af23e6..c976e26f0 100644 --- a/SignalServiceKit/src/Loki/Protocol/Friend Requests/FriendRequestProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Friend Requests/FriendRequestProtocol.swift @@ -117,7 +117,6 @@ public final class FriendRequestProtocol : NSObject { sendFriendRequestAcceptanceMessage(to: device, using: transaction) } else if friendRequestStatus == .requestSent { // We sent a friend request to this device before, how can we be sure that it hasn't expired? - // TODO: Shouldn't the status then be .expired? } else if friendRequestStatus == .none || friendRequestStatus == .requestExpired { // TODO: We should track these so that we can expire them and resend if needed MultiDeviceProtocol.getAutoGeneratedMultiDeviceFRMessageSend(for: device, in: transaction)