FIRMessagingCheckinPreferencesTest.m 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * Copyright 2021 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. #import <XCTest/XCTest.h>
  17. #import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinPreferences.h"
  18. #import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinService.h"
  19. static NSString *const kDeviceAuthId = @"1234";
  20. static NSString *const kSecretToken = @"567890";
  21. @interface FIRMessagingCheckinPreferencesTest : XCTestCase
  22. @end
  23. @implementation FIRMessagingCheckinPreferencesTest
  24. - (void)setUp {
  25. [super setUp];
  26. }
  27. - (void)tearDown {
  28. [super tearDown];
  29. }
  30. - (void)testInvalidCheckinInfo {
  31. FIRMessagingCheckinPreferences *preferences =
  32. [[FIRMessagingCheckinPreferences alloc] initWithDeviceID:@"" secretToken:@""];
  33. XCTAssertFalse([preferences hasValidCheckinInfo]);
  34. }
  35. - (void)testCheckinPreferencesReset {
  36. FIRMessagingCheckinPreferences *checkin =
  37. [[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kDeviceAuthId
  38. secretToken:kSecretToken];
  39. [checkin reset];
  40. XCTAssertNil(checkin.deviceID);
  41. XCTAssertNil(checkin.secretToken);
  42. XCTAssertFalse([checkin hasValidCheckinInfo]);
  43. }
  44. - (void)testInvalidCheckinInfoDueToLocaleChanged {
  45. // Set to a different locale than the current locale.
  46. [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hant"
  47. forKey:kFIRMessagingInstanceIDUserDefaultsKeyLocale];
  48. FIRMessagingCheckinPreferences *checkin =
  49. [[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kDeviceAuthId
  50. secretToken:kSecretToken];
  51. XCTAssertFalse([checkin hasValidCheckinInfo],
  52. @"Should consider checkin info invalid as locale has changed.");
  53. // set back the original locale
  54. [[NSUserDefaults standardUserDefaults] setObject:FIRMessagingCurrentLocale()
  55. forKey:kFIRMessagingInstanceIDUserDefaultsKeyLocale];
  56. }
  57. - (void)testCheckinPreferenceRefreshTokenWeekly {
  58. FIRMessagingCheckinPreferences *checkin =
  59. [[FIRMessagingCheckinPreferences alloc] initWithDeviceID:kDeviceAuthId
  60. secretToken:kSecretToken];
  61. int64_t now = FIRMessagingCurrentTimestampInMilliseconds();
  62. [checkin updateWithCheckinPlistContents:@{kFIRMessagingLastCheckinTimeKey : @(now)}];
  63. XCTAssertTrue([checkin hasValidCheckinInfo]);
  64. // Set last checkin time long time ago.
  65. now = FIRMessagingCurrentTimestampInMilliseconds();
  66. [checkin updateWithCheckinPlistContents:@{
  67. kFIRMessagingLastCheckinTimeKey : @(now - kFIRMessagingDefaultCheckinInterval * 1000 - 1)
  68. }];
  69. XCTAssertFalse([checkin hasValidCheckinInfo]);
  70. }
  71. @end