Skip to content

Commit 267fc6d

Browse files
fix breakage in FM tests (#7823)
1 parent 165c5f5 commit 267fc6d

File tree

4 files changed

+68
-82
lines changed

4 files changed

+68
-82
lines changed

FirebaseMessaging/Sources/FIRMessagingUtilities.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#import <GoogleUtilities/GULAppEnvironmentUtil.h>
2020
#import <GoogleUtilities/GULUserDefaults.h>
21-
#import "FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h"
21+
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
2222
#import "FirebaseMessaging/Sources/FIRMessagingLogger.h"
2323

2424
static const uint64_t kBytesToMegabytesDivisor = 1024 * 1024LL;

FirebaseMessaging/Tests/UnitTests/FIRMessagingCheckinStoreTest.m

Lines changed: 59 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ @interface FIRMessaging (ExposedForTest)
4040
+ (BOOL)createSubDirectory:(NSString *)subDirectoryName;
4141
@end
4242

43+
@interface FIRMessagingBackupExcludedPlist (ExposedForTest)
44+
- (BOOL)deleteFile:(NSError **)error;
45+
@end
46+
4347
// Testing constants
4448
static NSString *const kFakeCheckinPlistName = @"com.google.test.TestCheckin";
4549
static NSString *const kSubDirectoryName = @"FirebaseInstanceIDCheckinTest";
@@ -53,21 +57,23 @@ + (BOOL)createSubDirectory:(NSString *)subDirectoryName;
5357

5458
@interface FIRMessagingCheckinStoreTest : XCTestCase
5559

60+
@property(nonatomic, strong) FIRMessagingCheckinStore *checkinStore;
61+
@property(nonatomic, strong) FIRMessagingBackupExcludedPlist *plist;
5662
@end
5763

5864
@implementation FIRMessagingCheckinStoreTest
5965

6066
- (void)setUp {
6167
[super setUp];
6268
[FIRMessaging createSubDirectory:kSubDirectoryName];
69+
self.checkinStore = [[FIRMessagingCheckinStore alloc] init];
70+
self.plist = [[FIRMessagingBackupExcludedPlist alloc] initWithFileName:kFakeCheckinPlistName
71+
subDirectory:kSubDirectoryName];
72+
self.checkinStore.plist = self.plist;
6373
}
6474

6575
- (void)tearDown {
66-
NSString *path = [self pathForCheckinPlist];
67-
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
68-
NSError *error;
69-
[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
70-
}
76+
[self.plist deleteFile:nil];
7177
[super tearDown];
7278
}
7379

@@ -79,23 +85,22 @@ - (void)testInvalidCheckinPreferencesOnKeychainFail {
7985
expectationWithDescription:@"Checkin preference should be invalid after keychain failure"];
8086

8187
FIRMessagingFakeKeychain *fakeKeychain = [[FIRMessagingFakeKeychain alloc] init];
82-
FIRMessagingCheckinStore *checkinStore = [[FIRMessagingCheckinStore alloc] init];
83-
checkinStore.keychain = fakeKeychain;
88+
self.checkinStore.keychain = fakeKeychain;
8489
__block FIRMessagingCheckinPreferences *preferences =
8590
[[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kAuthID secretToken:kSecret];
8691
[preferences updateWithCheckinPlistContents:[[self class] newCheckinPlistPreferences]];
87-
[checkinStore saveCheckinPreferences:preferences
88-
handler:^(NSError *error) {
89-
XCTAssertNil(error);
90-
fakeKeychain.cannotReadFromKeychain = YES;
91-
preferences = [checkinStore cachedCheckinPreferences];
92-
93-
XCTAssertNil(preferences.deviceID);
94-
XCTAssertNil(preferences.secretToken);
95-
XCTAssertFalse([preferences hasValidCheckinInfo]);
96-
97-
[checkinInvalidExpectation fulfill];
98-
}];
92+
[self.checkinStore saveCheckinPreferences:preferences
93+
handler:^(NSError *error) {
94+
XCTAssertNil(error);
95+
fakeKeychain.cannotReadFromKeychain = YES;
96+
preferences = [self->_checkinStore cachedCheckinPreferences];
97+
98+
XCTAssertNil(preferences.deviceID);
99+
XCTAssertNil(preferences.secretToken);
100+
XCTAssertFalse([preferences hasValidCheckinInfo]);
101+
102+
[checkinInvalidExpectation fulfill];
103+
}];
99104
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
100105
}
101106

@@ -108,56 +113,49 @@ - (void)testCheckinSaveFailsOnKeychainWriteFailure {
108113
[self expectationWithDescription:@"Checkin save should fail after keychain write failure"];
109114
FIRMessagingFakeKeychain *fakeKeychain = [[FIRMessagingFakeKeychain alloc] init];
110115
fakeKeychain.cannotWriteToKeychain = YES;
111-
112-
FIRMessagingCheckinStore *checkinStore = [[FIRMessagingCheckinStore alloc] init];
113-
checkinStore.keychain = fakeKeychain;
116+
self.checkinStore.keychain = fakeKeychain;
114117

115118
__block FIRMessagingCheckinPreferences *preferences =
116119
[[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kAuthID secretToken:kSecret];
117120
[preferences updateWithCheckinPlistContents:[[self class] newCheckinPlistPreferences]];
118-
[checkinStore saveCheckinPreferences:preferences
119-
handler:^(NSError *error) {
120-
XCTAssertNotNil(error);
121-
122-
preferences = [checkinStore cachedCheckinPreferences];
123-
XCTAssertNil(preferences.deviceID);
124-
XCTAssertNil(preferences.secretToken);
125-
XCTAssertFalse([preferences hasValidCheckinInfo]);
126-
[checkinSaveFailsExpectation fulfill];
127-
}];
121+
[self.checkinStore saveCheckinPreferences:preferences
122+
handler:^(NSError *error) {
123+
XCTAssertNotNil(error);
124+
125+
preferences = [self->_checkinStore cachedCheckinPreferences];
126+
XCTAssertNil(preferences.deviceID);
127+
XCTAssertNil(preferences.secretToken);
128+
XCTAssertFalse([preferences hasValidCheckinInfo]);
129+
[checkinSaveFailsExpectation fulfill];
130+
}];
128131
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
129132
}
130133

131134
- (void)testCheckinSaveFailsOnPlistWriteFailure {
132135
XCTestExpectation *checkinSaveFailsExpectation =
133136
[self expectationWithDescription:@"Checkin save should fail after plist write failure"];
134-
FIRMessagingBackupExcludedPlist *checkinPlist =
135-
[[FIRMessagingBackupExcludedPlist alloc] initWithFileName:kFakeCheckinPlistName
136-
subDirectory:kSubDirectoryName];
137-
id plistMock = OCMPartialMock(checkinPlist);
137+
138+
id plistMock = OCMPartialMock(self.plist);
138139
NSError *error = [NSError errorWithDomain:kFakeErrorDomain code:kFakeErrorCode userInfo:nil];
139140
OCMStub([plistMock writeDictionary:[OCMArg any] error:[OCMArg setTo:error]]).andReturn(NO);
140141

141142
FIRMessagingFakeKeychain *fakeKeychain = [[FIRMessagingFakeKeychain alloc] init];
142-
143-
FIRMessagingCheckinStore *checkinStore = [[FIRMessagingCheckinStore alloc] init];
144-
checkinStore.keychain = fakeKeychain;
145-
checkinStore.plist = checkinPlist;
143+
self.checkinStore.keychain = fakeKeychain;
146144

147145
__block FIRMessagingCheckinPreferences *preferences =
148146
[[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kAuthID secretToken:kSecret];
149147
[preferences updateWithCheckinPlistContents:[[self class] newCheckinPlistPreferences]];
150-
[checkinStore saveCheckinPreferences:preferences
151-
handler:^(NSError *error) {
152-
XCTAssertNotNil(error);
153-
XCTAssertEqual(error.code, kFakeErrorCode);
154-
155-
preferences = [checkinStore cachedCheckinPreferences];
156-
XCTAssertNil(preferences.deviceID);
157-
XCTAssertNil(preferences.secretToken);
158-
XCTAssertFalse([preferences hasValidCheckinInfo]);
159-
[checkinSaveFailsExpectation fulfill];
160-
}];
148+
[self.checkinStore saveCheckinPreferences:preferences
149+
handler:^(NSError *error) {
150+
XCTAssertNotNil(error);
151+
XCTAssertEqual(error.code, kFakeErrorCode);
152+
153+
preferences = [self->_checkinStore cachedCheckinPreferences];
154+
XCTAssertNil(preferences.deviceID);
155+
XCTAssertNil(preferences.secretToken);
156+
XCTAssertFalse([preferences hasValidCheckinInfo]);
157+
[checkinSaveFailsExpectation fulfill];
158+
}];
161159
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
162160
}
163161

@@ -166,38 +164,25 @@ - (void)testCheckinSaveSuccess {
166164
[self expectationWithDescription:@"Checkin save should succeed"];
167165

168166
FIRMessagingFakeKeychain *fakeKeychain = [[FIRMessagingFakeKeychain alloc] init];
169-
FIRMessagingCheckinStore *checkinStore = [[FIRMessagingCheckinStore alloc] init];
170-
checkinStore.keychain = fakeKeychain;
167+
self.checkinStore.keychain = fakeKeychain;
171168

172169
__block FIRMessagingCheckinPreferences *preferences =
173170
[[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kAuthID secretToken:kSecret];
174171
[preferences updateWithCheckinPlistContents:[[self class] newCheckinPlistPreferences]];
175-
[checkinStore saveCheckinPreferences:preferences
176-
handler:^(NSError *error) {
177-
XCTAssertNil(error);
178-
179-
preferences = [checkinStore cachedCheckinPreferences];
180-
XCTAssertEqualObjects(preferences.deviceID, kAuthID);
181-
XCTAssertEqualObjects(preferences.secretToken, kSecret);
182-
[checkinSaveSuccessExpectation fulfill];
183-
}];
172+
[self.checkinStore saveCheckinPreferences:preferences
173+
handler:^(NSError *error) {
174+
XCTAssertNil(error);
175+
176+
preferences = [self->_checkinStore cachedCheckinPreferences];
177+
XCTAssertEqualObjects(preferences.deviceID, kAuthID);
178+
XCTAssertEqualObjects(preferences.secretToken, kSecret);
179+
[checkinSaveSuccessExpectation fulfill];
180+
}];
184181
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
185182
}
186183

187184
#pragma mark - Private Helpers
188185

189-
- (BOOL)savePreferencesToPlist:(NSDictionary *)preferences {
190-
NSString *path = [self pathForCheckinPlist];
191-
return [preferences writeToFile:path atomically:YES];
192-
}
193-
194-
- (NSString *)pathForCheckinPlist {
195-
NSArray *paths =
196-
NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES);
197-
NSString *plistNameWithExtension = [NSString stringWithFormat:@"%@.plist", kFakeCheckinPlistName];
198-
return [paths[0] stringByAppendingPathComponent:plistNameWithExtension];
199-
}
200-
201186
+ (NSDictionary *)checkinPreferences {
202187
return @{
203188
kFIRMessagingDeviceAuthIdKey : kAuthID,

FirebaseMessaging/Tests/UnitTests/FIRMessagingTokenOperationsTest.m

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,12 @@ - (void)setUp {
114114
}
115115

116116
- (void)tearDown {
117-
[_mockInstallations stopMocking];
118-
_mockInstallations = nil;
119117
_authService = nil;
120118
[_mockCheckinService stopMocking];
121119
_mockCheckinService = nil;
122120
_checkinService = nil;
123121
_mockTokenStore = nil;
122+
[_mockInstallations stopMocking];
124123
}
125124

126125
- (void)testThatTokenOperationsAuthHeaderStringMatchesCheckin {

FirebaseMessaging/Tests/UnitTests/FIRMessagingTokenStoreTest.m

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ @interface FIRMessagingTokenStore ()
5252

5353
@end
5454

55+
@interface FIRMessagingBackupExcludedPlist (ExposedForTest)
56+
57+
- (BOOL)deleteFile:(NSError **)error;
58+
59+
@end
60+
5561
@interface FIRMessagingTokenStoreTest : XCTestCase
5662

5763
@property(strong, nonatomic) FIRMessagingBackupExcludedPlist *checkinPlist;
@@ -86,11 +92,7 @@ - (void)setUp {
8692
}
8793

8894
- (void)tearDown {
89-
NSString *path = [self pathForCheckinPlist];
90-
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
91-
NSError *error;
92-
[[NSFileManager defaultManager] removeItemAtPath:path error:&error];
93-
}
95+
[self.checkinPlist deleteFile:nil];
9496
[_tokenStore removeAllTokensWithHandler:nil];
9597
[_mockCheckinStore stopMocking];
9698
[_mockTokenStore stopMocking];

0 commit comments

Comments
 (0)