From 11d004105e9cf7506e565ae9f0998737aa60a424 Mon Sep 17 00:00:00 2001 From: Ryan Wilson Date: Mon, 17 Jul 2017 14:31:01 -0400 Subject: Add method to check if `defaultApp` is configured. (#139) This lets other SDKs check if the default `FIRApp` is set up without accessing it, which causes unnecessary log messages to appear. --- Example/Core/Tests/FIRAppTest.m | 13 +++++++++++++ Firebase/Core/FIRApp.m | 4 ++++ Firebase/Core/Private/FIRAppInternal.h | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/Example/Core/Tests/FIRAppTest.m b/Example/Core/Tests/FIRAppTest.m index 05bec06..ab83eea 100644 --- a/Example/Core/Tests/FIRAppTest.m +++ b/Example/Core/Tests/FIRAppTest.m @@ -568,6 +568,19 @@ NSString *const kFIRTestAppName2 = @"test-app-name-2"; XCTAssertEqual([[FIRApp defaultApp] getUID], @"highlander"); } +- (void)testIsAppConfigured { + // Ensure it's false before anything is configured. + XCTAssertFalse([FIRApp isDefaultAppConfigured]); + + // Configure it and ensure it's configured. + [FIRApp configure]; + XCTAssertTrue([FIRApp isDefaultAppConfigured]); + + // Reset the apps and ensure it's not configured anymore. + [FIRApp resetApps]; + XCTAssertFalse([FIRApp isDefaultAppConfigured]); +} + #pragma mark - private - (NSDictionary *)expectedUserInfoWithAppName:(NSString *)name diff --git a/Firebase/Core/FIRApp.m b/Firebase/Core/FIRApp.m index 8f82ebe..fc58b9e 100644 --- a/Firebase/Core/FIRApp.m +++ b/Firebase/Core/FIRApp.m @@ -379,6 +379,10 @@ static FIRApp *sDefaultApp; return FIRCreateError(kFirebaseCoreErrorDomain, FIRErrorCodeInvalidAppID, errorDict); } ++ (BOOL)isDefaultAppConfigured { + return (sDefaultApp != nil); +} + - (void)checkExpectedBundleID { NSArray *bundles = [FIRBundleUtil relevantBundles]; NSString *expectedBundleID = [self expectedBundleID]; diff --git a/Firebase/Core/Private/FIRAppInternal.h b/Firebase/Core/Private/FIRAppInternal.h index 11b3bf6..461dd3d 100644 --- a/Firebase/Core/Private/FIRAppInternal.h +++ b/Firebase/Core/Private/FIRAppInternal.h @@ -98,6 +98,10 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(); errorCode:(FIRErrorCode)code service:(NSString *)service reason:(NSString *)reason; +/** + * Checks if the default app is configured without trying to configure it. + */ ++ (BOOL)isDefaultAppConfigured; /** * Used by each SDK to send logs about SDK configuration status to Clearcut. -- cgit v1.2.3