|
46 | 46 | NSString *FIRCLSDefaultMockBuildInstanceID = @"12345abcdef";
|
47 | 47 | NSString *FIRCLSDifferentMockBuildInstanceID = @"98765zyxwv";
|
48 | 48 |
|
| 49 | +NSString *FIRCLSDefaultMockAppDisplayVersion = @"1.2.3-beta.2"; |
| 50 | +NSString *FIRCLSDifferentMockAppDisplayVersion = @"1.2.3-beta.3"; |
| 51 | + |
| 52 | +NSString *FIRCLSDefaultMockAppBuildVersion = @"1024"; |
| 53 | +NSString *FIRCLSDifferentMockAppBuildVersion = @"2048"; |
| 54 | + |
49 | 55 | NSString *const TestGoogleAppID = @"1:test:google:app:id";
|
50 | 56 | NSString *const TestChangedGoogleAppID = @"2:changed:google:app:id";
|
51 | 57 |
|
@@ -77,6 +83,8 @@ - (void)setUp {
|
77 | 83 |
|
78 | 84 | _appIDModel = [[FABMockApplicationIdentifierModel alloc] init];
|
79 | 85 | _appIDModel.buildInstanceID = FIRCLSDefaultMockBuildInstanceID;
|
| 86 | + _appIDModel.displayVersion = FIRCLSDefaultMockAppDisplayVersion; |
| 87 | + _appIDModel.buildVersion = FIRCLSDefaultMockAppBuildVersion; |
80 | 88 |
|
81 | 89 | _settings = [[FIRCLSSettings alloc] initWithFileManager:_fileManager appIDModel:_appIDModel];
|
82 | 90 | }
|
@@ -291,6 +299,45 @@ - (void)testCacheExpiredFromBuildInstanceID {
|
291 | 299 | XCTAssertEqual(self.settings.errorLogBufferSize, 128000);
|
292 | 300 | }
|
293 | 301 |
|
| 302 | +- (void)testCacheExpiredFromAppVersion { |
| 303 | + NSError *error = nil; |
| 304 | + [self writeSettings:FIRCLSTestSettingsActivated error:&error]; |
| 305 | + XCTAssertNil(error, "%@", error); |
| 306 | + |
| 307 | + // 1 delete for clearing the cache key, plus 2 for the deletes from reloading and clearing the |
| 308 | + // cache and cache key |
| 309 | + self.fileManager.expectedRemoveCount = 3; |
| 310 | + |
| 311 | + NSTimeInterval currentTimestamp = [NSDate timeIntervalSinceReferenceDate]; |
| 312 | + [self.settings cacheSettingsWithGoogleAppID:TestGoogleAppID currentTimestamp:currentTimestamp]; |
| 313 | + |
| 314 | + // Change the App Version |
| 315 | + self.appIDModel.displayVersion = FIRCLSDifferentMockAppDisplayVersion; |
| 316 | + self.appIDModel.buildVersion = FIRCLSDifferentMockAppBuildVersion; |
| 317 | + |
| 318 | + [self.settings reloadFromCacheWithGoogleAppID:TestGoogleAppID currentTimestamp:currentTimestamp]; |
| 319 | + |
| 320 | + XCTAssertEqual(self.settings.isCacheExpired, YES); |
| 321 | + |
| 322 | + // Since the TTL just expired, do not clear settings |
| 323 | + XCTAssertEqualObjects(self.settings.orgID, @"010101000000111111111111"); |
| 324 | + XCTAssertEqualObjects(self.settings.fetchedBundleID, @"com.lets.test.crashlytics"); |
| 325 | + XCTAssertEqual(self.settings.errorLogBufferSize, 64 * 1000); |
| 326 | + |
| 327 | + // Pretend we fetched settings again, but they had different values |
| 328 | + [self writeSettings:FIRCLSTestSettingsInverse error:&error]; |
| 329 | + XCTAssertNil(error, "%@", error); |
| 330 | + |
| 331 | + // Cache the settings |
| 332 | + [self.settings cacheSettingsWithGoogleAppID:TestGoogleAppID currentTimestamp:currentTimestamp]; |
| 333 | + |
| 334 | + // We should have the updated values that were fetched, and should not be expired |
| 335 | + XCTAssertEqual(self.settings.isCacheExpired, NO); |
| 336 | + XCTAssertEqualObjects(self.settings.orgID, @"01e101a0000011b113115111"); |
| 337 | + XCTAssertEqualObjects(self.settings.fetchedBundleID, @"im.from.the.server"); |
| 338 | + XCTAssertEqual(self.settings.errorLogBufferSize, 128000); |
| 339 | +} |
| 340 | + |
294 | 341 | - (void)testGoogleAppIDChanged {
|
295 | 342 | NSError *error = nil;
|
296 | 343 | [self writeSettings:FIRCLSTestSettingsInverse error:&error];
|
|
0 commit comments