18
18
19
19
#import < OCMock/OCMock.h>
20
20
21
+ #import < TargetConditionals.h>
22
+
21
23
#import " FirebaseAppCheck/Sources/Core/TokenRefresh/FIRAppCheckTokenRefresher.h"
22
24
#import " FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRAppCheck.h"
23
25
#import " FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRAppCheckProviderFactory.h"
32
34
33
35
NS_ASSUME_NONNULL_BEGIN
34
36
37
+ #if FIR_DEVICE_CHECK_SUPPORTED_TARGETS
38
+
35
39
@interface DummyAppCheckProvider : NSObject <FIRAppCheckProvider>
36
40
@end
37
41
@@ -62,6 +66,8 @@ @interface FIRAppCheckIntegrationTests : XCTestCase
62
66
@property (nonatomic , nullable ) id mockAppCheckProvider;
63
67
@property (nonatomic , nullable ) id mockTokenRefresher;
64
68
69
+ - (void )testDefaultAppCheckProvider FIR_DEVICE_CHECK_PROVIDER_AVAILABILITY;
70
+
65
71
@end
66
72
67
73
@implementation FIRAppCheckIntegrationTests
@@ -79,7 +85,7 @@ - (void)setUp {
79
85
- (void )tearDown {
80
86
[FIRApp resetApps ];
81
87
82
- if (@available (iOS 11.0 , macOS 10.15 , macCatalyst 13.0 , tvOS 11.0 , *)) {
88
+ if (@available (iOS 11.0 , macOS 10.15 , macCatalyst 13.0 , tvOS 11.0 , watchOS 9.0 , *)) {
83
89
// Recover default provider factory.
84
90
[FIRAppCheck setAppCheckProviderFactory: [[FIRDeviceCheckProviderFactory alloc ] init ]];
85
91
}
@@ -95,40 +101,44 @@ - (void)tearDown {
95
101
}
96
102
97
103
- (void )testDefaultAppCheckProvider {
98
- if (@available (iOS 11.0 , tvOS 11.0 , macOS 10.15 , *)) {
99
- NSString *appName = @" testDefaultAppCheckProvider" ;
104
+ NSString *appName = @" testDefaultAppCheckProvider" ;
100
105
101
- // 1. Expect FIRDeviceCheckProvider to be instantiated.
106
+ // 1. Expect FIRDeviceCheckProvider to be instantiated.
102
107
103
- id deviceCheckProviderMock = OCMClassMock ([FIRDeviceCheckProvider class ]);
104
- id appValidationArg = [OCMArg checkWithBlock: ^BOOL (FIRApp *app) {
105
- XCTAssertEqualObjects (app.name , appName);
106
- return YES ;
107
- }];
108
+ id deviceCheckProviderMock = OCMClassMock ([FIRDeviceCheckProvider class ]);
109
+ id appValidationArg = [OCMArg checkWithBlock: ^BOOL (FIRApp *app) {
110
+ XCTAssertEqualObjects (app.name , appName);
111
+ return YES ;
112
+ }];
108
113
109
- OCMStub ([deviceCheckProviderMock alloc ]).andReturn (deviceCheckProviderMock);
110
- OCMExpect ([deviceCheckProviderMock initWithApp: appValidationArg])
111
- .andReturn (deviceCheckProviderMock);
114
+ OCMStub ([deviceCheckProviderMock alloc ]).andReturn (deviceCheckProviderMock);
115
+ OCMExpect ([deviceCheckProviderMock initWithApp: appValidationArg])
116
+ .andReturn (deviceCheckProviderMock);
112
117
113
- // 2. Configure Firebase
114
- [self configureAppWithName: appName];
118
+ // 2. Configure Firebase
119
+ [self configureAppWithName: appName];
115
120
116
- FIRApp *app = [FIRApp appNamed: appName];
117
- XCTAssertNotNil (FIR_COMPONENT (FIRAppCheckInterop, app.container ));
121
+ FIRApp *app = [FIRApp appNamed: appName];
122
+ XCTAssertNotNil (FIR_COMPONENT (FIRAppCheckInterop, app.container ));
118
123
119
- // 3. Verify
120
- OCMVerifyAll (deviceCheckProviderMock);
124
+ // 3. Verify
125
+ OCMVerifyAll (deviceCheckProviderMock);
121
126
122
- // 4. Cleanup
123
- // Recover default provider factory.
124
- [FIRAppCheck setAppCheckProviderFactory: [[FIRDeviceCheckProviderFactory alloc ] init ]];
125
- [deviceCheckProviderMock stopMocking ];
126
- } else {
127
- // Fallback on earlier versions
128
- }
127
+ // 4. Cleanup
128
+ // Recover default provider factory.
129
+ [FIRAppCheck setAppCheckProviderFactory: [[FIRDeviceCheckProviderFactory alloc ] init ]];
130
+ [deviceCheckProviderMock stopMocking ];
129
131
}
130
132
131
- #if !TARGET_OS_MACCATALYST // Catalyst should be possible with Xcode 12.5+
133
+ // Tests that use the Keychain require a host app and Swift Package Manager
134
+ // does not support adding a host app to test targets.
135
+ #if !SWIFT_PACKAGE
136
+
137
+ // Skip keychain tests on Catalyst and macOS. Tests are skipped because they
138
+ // involve interactions with the keychain that require a provisioning profile.
139
+ // See go/firebase-macos-keychain-popups for more details.
140
+ #if !TARGET_OS_MACCATALYST && !TARGET_OS_OSX
141
+
132
142
- (void )testSetAppCheckProviderFactoryWithDefaultApp {
133
143
NSString *appName = kFIRDefaultAppName ;
134
144
@@ -172,7 +182,10 @@ - (void)testSetAppCheckProviderFactoryWithDefaultApp {
172
182
OCMVerifyAll (self.mockProviderFactory );
173
183
OCMVerifyAll (self.mockAppCheckProvider );
174
184
}
175
- #endif // !TARGET_OS_MACCATALYST
185
+
186
+ #endif // !TARGET_OS_MACCATALYST && !TARGET_OS_OSX
187
+
188
+ #endif // !SWIFT_PACKAGE
176
189
177
190
#pragma mark - Helpers
178
191
@@ -213,4 +226,6 @@ - (void)disableTokenRefresher {
213
226
214
227
@end
215
228
229
+ #endif // FIR_DEVICE_CHECK_SUPPORTED_TARGETS
230
+
216
231
NS_ASSUME_NONNULL_END
0 commit comments