Fix failing test.

pull/1/head
Matthew Chen 6 years ago
parent 8830f0a594
commit 48c4576c06

@ -159,7 +159,7 @@ static NSTimeInterval launchStartedAt;
[AppSetup
setupEnvironmentWithAppSpecificSingletonBlock:^{
// Create AppEnvironment.
[AppEnvironment shared];
[AppEnvironment.shared setup];
[SignalApp.sharedApp setup];
}
migrationCompletion:^{
@ -429,7 +429,7 @@ static NSTimeInterval launchStartedAt;
}
OWSLogInfo(@"registered vanilla push token: %@", deviceToken);
[PushRegistrationManager.sharedManager didReceiveVanillaPushToken:deviceToken];
[PushRegistrationManager.shared didReceiveVanillaPushToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
@ -444,7 +444,7 @@ static NSTimeInterval launchStartedAt;
OWSLogError(@"failed to register vanilla push token with error: %@", error);
#ifdef DEBUG
OWSLogWarn(@"We're in debug mode. Faking success for remote registration with a fake push identifier");
[PushRegistrationManager.sharedManager didReceiveVanillaPushToken:[[NSMutableData dataWithLength:32] copy]];
[PushRegistrationManager.shared didReceiveVanillaPushToken:[[NSMutableData dataWithLength:32] copy]];
#else
OWSProdError([OWSAnalyticsEvents appDelegateErrorFailedToRegisterForRemoteNotifications]);
[PushRegistrationManager.sharedManager didFailToReceiveVanillaPushTokenWithError:error];
@ -462,7 +462,7 @@ static NSTimeInterval launchStartedAt;
}
OWSLogInfo(@"registered user notification settings");
[PushRegistrationManager.sharedManager didRegisterUserNotificationSettings];
[PushRegistrationManager.shared didRegisterUserNotificationSettings];
}
- (BOOL)application:(UIApplication *)application

@ -6,49 +6,58 @@ import Foundation
import SignalServiceKit
import SignalMessaging
@objc public class AppEnvironment : NSObject {
private static var _shared : AppEnvironment = AppEnvironment()
@objc public class AppEnvironment: NSObject {
private static var _shared: AppEnvironment = AppEnvironment()
@objc
public class var shared : AppEnvironment {
public class var shared: AppEnvironment {
get {
return _shared
}
set {
guard CurrentAppContext().isRunningTests else {
owsFailDebug("Can only switch environments in tests.")
return
}
_shared = newValue
}
}
@objc
public var callMessageHandler : WebRTCCallMessageHandler
public var callMessageHandler: WebRTCCallMessageHandler
@objc
public var callService : CallService
public var callService: CallService
@objc
public var outboundCallInitiator : OutboundCallInitiator
public var outboundCallInitiator: OutboundCallInitiator
@objc
public var messageFetcherJob : MessageFetcherJob
public var messageFetcherJob: MessageFetcherJob
@objc
public var notificationsManager : NotificationsManager
public var notificationsManager: NotificationsManager
@objc
public var accountManager: AccountManager
@objc
public var accountManager : AccountManager
public var callNotificationsAdapter: CallNotificationsAdapter
@objc
public var callNotificationsAdapter : CallNotificationsAdapter
public var pushRegistrationManager: PushRegistrationManager
@objc
public init(callMessageHandler : WebRTCCallMessageHandler,
callService : CallService,
outboundCallInitiator : OutboundCallInitiator,
messageFetcherJob : MessageFetcherJob,
notificationsManager : NotificationsManager,
accountManager : AccountManager,
callNotificationsAdapter : CallNotificationsAdapter) {
public init(callMessageHandler: WebRTCCallMessageHandler,
callService: CallService,
outboundCallInitiator: OutboundCallInitiator,
messageFetcherJob: MessageFetcherJob,
notificationsManager: NotificationsManager,
accountManager: AccountManager,
callNotificationsAdapter: CallNotificationsAdapter,
pushRegistrationManager: PushRegistrationManager) {
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
@ -56,15 +65,13 @@ import SignalMessaging
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
super
.init()
self.pushRegistrationManager = pushRegistrationManager
super.init()
SwiftSingletons.register(self)
setup()
}
private override init() {
let accountManager = AccountManager()
let notificationsManager = NotificationsManager()
@ -73,7 +80,8 @@ import SignalMessaging
let callMessageHandler = WebRTCCallMessageHandler()
let outboundCallInitiator = OutboundCallInitiator()
let messageFetcherJob = MessageFetcherJob()
let pushRegistrationManager = PushRegistrationManager()
self.callMessageHandler = callMessageHandler
self.callService = callService
self.outboundCallInitiator = outboundCallInitiator
@ -81,15 +89,15 @@ import SignalMessaging
self.notificationsManager = notificationsManager
self.accountManager = accountManager
self.callNotificationsAdapter = callNotificationsAdapter
self.pushRegistrationManager = pushRegistrationManager
super.init()
SwiftSingletons.register(self)
setup()
}
private func setup() {
@objc
public func setup() {
callService.createCallUIAdapter()
// Hang certain singletons on SSKEnvironment too.

@ -20,16 +20,21 @@ public enum PushRegistrationError: Error {
@objc public class PushRegistrationManager: NSObject, PKPushRegistryDelegate {
// MARK: - Dependencies
private var pushManager: PushManager {
return PushManager.shared()
}
// MARK: - Singleton class
@objc(sharedManager)
public static let shared = PushRegistrationManager()
@objc
public static var shared: PushRegistrationManager {
get {
return AppEnvironment.shared.pushRegistrationManager
}
}
private override init() {
override init() {
super.init()
SwiftSingletons.register(self)

@ -52,6 +52,12 @@ class VerifyingTSAccountManager: FailingTSAccountManager {
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() {
@ -112,6 +118,8 @@ class AccountManagerTest: SignalBaseTest {
let sskEnvironment = SSKEnvironment.shared as! MockSSKEnvironment
sskEnvironment.tsAccountManager = tsAccountManager
AppEnvironment.shared.pushRegistrationManager = VerifyingPushRegistrationManager()
let accountManager = AccountManager()
let expectation = self.expectation(description: "should succeed")

Loading…
Cancel
Save