Skip to content

Commit 4ff62df

Browse files
authored
Set GACAppCheckLogger.logLevel in Firebase App Check (#12066)
1 parent 3db9651 commit 4ff62df

File tree

5 files changed

+108
-4
lines changed

5 files changed

+108
-4
lines changed

FirebaseAppCheck/Sources/Core/FIRAppCheck.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ @implementation FIRAppCheck
6565
#pragma mark - Internal
6666

6767
- (nullable instancetype)initWithApp:(FIRApp *)app {
68+
// Set the App Check Core logging level to the current equivalent Firebase logging level.
69+
GACAppCheckLogger.logLevel = FIRGetGACAppCheckLogLevel();
70+
6871
id<FIRAppCheckProviderFactory> providerFactory = [FIRAppCheck providerFactory];
6972

7073
if (providerFactory == nil) {

FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
#import <Foundation/Foundation.h>
1818

19+
#import <AppCheckCore/AppCheckCore.h>
20+
1921
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2022

2123
extern FIRLoggerService kFIRLoggerAppCheck;
@@ -34,3 +36,5 @@ FOUNDATION_EXPORT NSString *const kFIRLoggerAppCheckMessageCodeDebugToken;
3436
FOUNDATION_EXPORT NSString *const kFIRLoggerAppCheckMessageDeviceCheckProviderIncompleteFIROptions;
3537

3638
void FIRAppCheckDebugLog(NSString *messageCode, NSString *message, ...);
39+
40+
GACAppCheckLogLevel FIRGetGACAppCheckLogLevel(void);

FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.m

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
#import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h"
1818

19-
#import <AppCheckCore/AppCheckCore.h>
20-
2119
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
2220

2321
NS_ASSUME_NONNULL_BEGIN
@@ -38,11 +36,29 @@
3836
NSString *const kFIRLoggerAppCheckMessageDeviceCheckProviderIncompleteFIROptions = @"I-FAA006001";
3937

4038
#pragma mark - Log functions
39+
4140
void FIRAppCheckDebugLog(NSString *messageCode, NSString *message, ...) {
4241
va_list args_ptr;
4342
va_start(args_ptr, message);
4443
FIRLogBasic(FIRLoggerLevelDebug, kFIRLoggerAppCheck, messageCode, message, args_ptr);
4544
va_end(args_ptr);
4645
}
4746

47+
#pragma mark - Helper functions
48+
49+
GACAppCheckLogLevel FIRGetGACAppCheckLogLevel(void) {
50+
FIRLoggerLevel loggerLevel = FIRGetLoggerLevel();
51+
switch (loggerLevel) {
52+
case FIRLoggerLevelError:
53+
return GACAppCheckLogLevelError;
54+
case FIRLoggerLevelWarning:
55+
case FIRLoggerLevelNotice:
56+
return GACAppCheckLogLevelWarning;
57+
case FIRLoggerLevelInfo:
58+
return GACAppCheckLogLevelInfo;
59+
case FIRLoggerLevelDebug:
60+
return GACAppCheckLogLevelDebug;
61+
}
62+
}
63+
4864
NS_ASSUME_NONNULL_END
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* Copyright 2023 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#import <XCTest/XCTest.h>
18+
19+
#import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h"
20+
21+
#import <AppCheckCore/AppCheckCore.h>
22+
23+
@interface FIRAppCheckLoggerTests : XCTestCase
24+
@end
25+
26+
@implementation FIRAppCheckLoggerTests
27+
28+
- (void)testGetGACAppCheckLogLevel_Error {
29+
FIRSetLoggerLevel(FIRLoggerLevelError);
30+
31+
GACAppCheckLogLevel logLevel = FIRGetGACAppCheckLogLevel();
32+
33+
XCTAssertEqual(logLevel, GACAppCheckLogLevelError);
34+
}
35+
36+
- (void)testGetGACAppCheckLogLevel_Warning {
37+
FIRSetLoggerLevel(FIRLoggerLevelWarning);
38+
39+
GACAppCheckLogLevel logLevel = FIRGetGACAppCheckLogLevel();
40+
41+
XCTAssertEqual(logLevel, GACAppCheckLogLevelWarning);
42+
}
43+
44+
- (void)testGetGACAppCheckLogLevel_Notice {
45+
FIRSetLoggerLevel(FIRLoggerLevelNotice);
46+
47+
GACAppCheckLogLevel logLevel = FIRGetGACAppCheckLogLevel();
48+
49+
XCTAssertEqual(logLevel, GACAppCheckLogLevelWarning);
50+
}
51+
52+
- (void)testGetGACAppCheckLogLevel_Info {
53+
FIRSetLoggerLevel(FIRLoggerLevelInfo);
54+
55+
GACAppCheckLogLevel logLevel = FIRGetGACAppCheckLogLevel();
56+
57+
XCTAssertEqual(logLevel, GACAppCheckLogLevelInfo);
58+
}
59+
60+
- (void)testGetGACAppCheckLogLevel_Debug {
61+
FIRSetLoggerLevel(FIRLoggerLevelDebug);
62+
63+
GACAppCheckLogLevel logLevel = FIRGetGACAppCheckLogLevel();
64+
65+
XCTAssertEqual(logLevel, GACAppCheckLogLevelDebug);
66+
}
67+
68+
@end

FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckTests.m

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
// The FAC token value returned when an error occurs.
3838
static NSString *const kDummyToken = @"eyJlcnJvciI6IlVOS05PV05fRVJST1IifQ==";
3939

40+
extern void FIRResetLogger(void);
41+
4042
@interface FIRAppCheck (Tests) <FIRAppCheckInterop, GACAppCheckTokenDelegate>
4143
- (instancetype)initWithAppName:(NSString *)appName
4244
appCheckCore:(GACAppCheck *)appCheckCore
@@ -67,6 +69,8 @@ @implementation FIRAppCheckTests
6769
- (void)setUp {
6870
[super setUp];
6971

72+
FIRResetLogger();
73+
7074
self.appName = @"FIRAppCheckTests";
7175
self.mockAppCheckProvider = OCMStrictProtocolMock(@protocol(FIRAppCheckProvider));
7276
self.mockSettings = OCMStrictClassMock([FIRAppCheckSettings class]);
@@ -112,13 +116,19 @@ - (void)testInitWithApp {
112116

113117
[FIRAppCheck setAppCheckProviderFactory:mockProviderFactory];
114118

115-
// 3. Call init.
119+
// 3. Set the Firebase logging level to Debug.
120+
FIRSetLoggerLevel(FIRLoggerLevelDebug);
121+
122+
// 4. Call init.
116123
FIRAppCheck *appCheck = [[FIRAppCheck alloc] initWithApp:app];
117124
XCTAssert([appCheck isKindOfClass:[FIRAppCheck class]]);
118125

119-
// 4. Verify mocks.
126+
// 5. Verify mocks.
120127
OCMVerifyAll(mockProviderFactory);
121128
OCMVerifyAll(mockProvider);
129+
130+
// 6. Verify that the App Check Core logging level is also Debug.
131+
XCTAssertEqual(GACAppCheckLogger.logLevel, GACAppCheckLogLevelDebug);
122132
}
123133

124134
- (void)testAppCheckInstanceForApp {
@@ -134,6 +144,9 @@ - (void)testAppCheckInstanceForApp {
134144
XCTAssertNotNil(app);
135145

136146
XCTAssertNotNil([FIRAppCheck appCheckWithApp:app]);
147+
148+
// Verify that the App Check Core logging level is the default (Warning).
149+
XCTAssertEqual(GACAppCheckLogger.logLevel, GACAppCheckLogLevelWarning);
137150
}
138151

139152
#pragma mark - Public Get Token

0 commit comments

Comments
 (0)