mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-01 07:57:01 +00:00
More unit tests
And minor refactoring of method name
This commit is contained in:
parent
8c6adec552
commit
72d203d00f
@ -199,7 +199,7 @@
|
||||
|
||||
#pragma mark - Time
|
||||
|
||||
- (BOOL)shouldCheckForUpdates {
|
||||
- (BOOL)shouldAutoCheckForUpdates {
|
||||
BOOL checkForUpdate = NO;
|
||||
|
||||
switch (self.updateSetting) {
|
||||
@ -275,7 +275,7 @@
|
||||
self.checkInProgress = YES;
|
||||
|
||||
// do we need to update?
|
||||
if (!manual && ![self shouldCheckForUpdates]) {
|
||||
if (!manual && ![self shouldAutoCheckForUpdates]) {
|
||||
BITHockeyLog(@"INFO: Update check not needed right now");
|
||||
self.checkInProgress = NO;
|
||||
return;
|
||||
@ -342,7 +342,7 @@
|
||||
self.lastCheck = [NSDate distantPast];
|
||||
}
|
||||
|
||||
if ([self isCheckingForUpdateOnLaunch] && [self shouldCheckForUpdates]) {
|
||||
if ([self isCheckingForUpdateOnLaunch] && [self shouldAutoCheckForUpdates]) {
|
||||
[self performSelector:@selector(checkForUpdateDelayed) withObject:nil afterDelay:1.0f];
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
@property (nonatomic, assign) NSLocale *currentLocale;
|
||||
@property (nonatomic, assign) NSUserDefaults *userDefaults;
|
||||
|
||||
- (BOOL)shouldAutoCheckForUpdates;
|
||||
- (BOOL)hasNewVersion:(NSDictionary *)dictionary;
|
||||
- (BOOL)processStoreResponseWithString:(NSString *)responseString;
|
||||
- (void)checkForUpdateDelayed;
|
||||
|
@ -69,6 +69,104 @@
|
||||
|
||||
#pragma mark - Time
|
||||
|
||||
- (void)testUpdateCheckDailyFirstTimeEver {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertTrue(result, @"Checking daily first time ever");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckDailyFirstTimeTodayLastCheckPreviousDay {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.lastCheck = [NSDate dateWithTimeIntervalSinceNow:-(60*60*24)];
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertTrue(result, @"Checking daily first time today with last check done previous day");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckDailySecondTimeOfTheDay {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.lastCheck = [NSDate date];
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertFalse(result, @"Checking daily second time of the day");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckWeeklyFirstTimeEver {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly;
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertTrue(result, @"Checking weekly first time ever");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckWeeklyFirstTimeTodayLastCheckPreviousWeek {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly;
|
||||
_storeUpdateManager.lastCheck = [NSDate dateWithTimeIntervalSinceNow:-(60*60*24*7)];
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertTrue(result, @"Checking weekly first time after one week");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckWeeklyFirstTimeFiveDaysAfterPreviousCheck {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly;
|
||||
_storeUpdateManager.lastCheck = [NSDate dateWithTimeIntervalSinceNow:-(60*60*24*5)];
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertFalse(result, @"Checking weekly first time five days after previous check");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckManuallyFirstTimeEver {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.updateSetting = BITStoreUpdateCheckManually;
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertFalse(result, @"Checking manually first time ever");
|
||||
}
|
||||
|
||||
- (void)testUpdateCheckManuallyFirstTimeTodayLastCheckDonePreviousDay {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
_storeUpdateManager.updateSetting = BITStoreUpdateCheckManually;
|
||||
_storeUpdateManager.lastCheck = [NSDate dateWithTimeIntervalSinceNow:-(60*60*24)];
|
||||
|
||||
[self startManager];
|
||||
|
||||
BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates];
|
||||
|
||||
STAssertFalse(result, @"Checking manually first time ever");
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - JSON Response Processing
|
||||
|
||||
@ -179,4 +277,36 @@
|
||||
STAssertFalse(result, @"There is no udpate available");
|
||||
}
|
||||
|
||||
- (void)testReportedVersionIsBeingIgnored {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"];
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""];
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.2"];
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
|
||||
[self startManager];
|
||||
|
||||
NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"];
|
||||
|
||||
BOOL result = [_storeUpdateManager hasNewVersion:json];
|
||||
|
||||
STAssertFalse(result, @"The newer version is being ignored");
|
||||
}
|
||||
|
||||
- (void)testReportedVersionIsNewerThanTHeIgnoredVersion {
|
||||
NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]);
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"];
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""];
|
||||
[given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.1"];
|
||||
_storeUpdateManager.userDefaults = mockUserDefaults;
|
||||
|
||||
[self startManager];
|
||||
|
||||
NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"];
|
||||
|
||||
BOOL result = [_storeUpdateManager hasNewVersion:json];
|
||||
|
||||
STAssertTrue(result, @"The newer version is not ignored");
|
||||
}
|
||||
|
||||
@end
|
||||
|
Loading…
x
Reference in New Issue
Block a user