device_info_util_unittest.cc 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. // Copyright 2016 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/sync_device_info/device_info_util.h"
  5. #include "base/time/time.h"
  6. #include "components/sync/protocol/device_info_specifics.pb.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. using base::Time;
  9. using sync_pb::DeviceInfoSpecifics;
  10. namespace syncer {
  11. namespace {
  12. class DeviceInfoUtilTest : public testing::Test {
  13. protected:
  14. DeviceInfoUtilTest() {
  15. // Test cases assume |small_| and |big_| are smaller and bigger,
  16. // respectively,
  17. // than both constants.
  18. EXPECT_LT(small_, DeviceInfoUtil::kActiveThreshold);
  19. EXPECT_LT(small_, DeviceInfoUtil::GetPulseInterval());
  20. EXPECT_GT(big_, DeviceInfoUtil::kActiveThreshold);
  21. EXPECT_GT(big_, DeviceInfoUtil::GetPulseInterval());
  22. }
  23. const Time now_ = Time::Now();
  24. const base::TimeDelta small_ = base::Milliseconds(1);
  25. const base::TimeDelta big_ = base::Days(1000);
  26. };
  27. } // namespace
  28. TEST_F(DeviceInfoUtilTest, CalculatePulseDelaySame) {
  29. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  30. DeviceInfoUtil::CalculatePulseDelay(Time(), Time()));
  31. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  32. DeviceInfoUtil::CalculatePulseDelay(now_, now_));
  33. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  34. DeviceInfoUtil::CalculatePulseDelay(now_ + big_, now_ + big_));
  35. }
  36. TEST_F(DeviceInfoUtilTest, CalculatePulseDelayMiddle) {
  37. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval() - small_,
  38. DeviceInfoUtil::CalculatePulseDelay(Time(), Time() + small_));
  39. EXPECT_EQ(small_,
  40. DeviceInfoUtil::CalculatePulseDelay(
  41. Time(), Time() + DeviceInfoUtil::GetPulseInterval() - small_));
  42. }
  43. TEST_F(DeviceInfoUtilTest, CalculatePulseDelayStale) {
  44. EXPECT_EQ(base::TimeDelta(),
  45. DeviceInfoUtil::CalculatePulseDelay(
  46. Time(), Time() + DeviceInfoUtil::GetPulseInterval()));
  47. EXPECT_EQ(base::TimeDelta(),
  48. DeviceInfoUtil::CalculatePulseDelay(
  49. Time(), Time() + DeviceInfoUtil::GetPulseInterval() + small_));
  50. EXPECT_EQ(base::TimeDelta(),
  51. DeviceInfoUtil::CalculatePulseDelay(
  52. Time(), Time() + DeviceInfoUtil::GetPulseInterval() + small_));
  53. EXPECT_EQ(base::TimeDelta(),
  54. DeviceInfoUtil::CalculatePulseDelay(
  55. now_, now_ + DeviceInfoUtil::GetPulseInterval()));
  56. }
  57. TEST_F(DeviceInfoUtilTest, CalculatePulseDelayFuture) {
  58. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  59. DeviceInfoUtil::CalculatePulseDelay(Time() + small_, Time()));
  60. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  61. DeviceInfoUtil::CalculatePulseDelay(
  62. Time() + DeviceInfoUtil::GetPulseInterval(), Time()));
  63. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  64. DeviceInfoUtil::CalculatePulseDelay(Time() + big_, Time()));
  65. EXPECT_EQ(DeviceInfoUtil::GetPulseInterval(),
  66. DeviceInfoUtil::CalculatePulseDelay(now_ + big_, now_));
  67. }
  68. TEST_F(DeviceInfoUtilTest, IsActive) {
  69. EXPECT_TRUE(DeviceInfoUtil::IsActive(Time(), Time()));
  70. EXPECT_TRUE(DeviceInfoUtil::IsActive(now_, now_));
  71. EXPECT_TRUE(DeviceInfoUtil::IsActive(now_, now_ + small_));
  72. EXPECT_TRUE(DeviceInfoUtil::IsActive(
  73. now_, now_ + DeviceInfoUtil::kActiveThreshold - small_));
  74. EXPECT_FALSE(
  75. DeviceInfoUtil::IsActive(now_, now_ + DeviceInfoUtil::kActiveThreshold));
  76. EXPECT_FALSE(DeviceInfoUtil::IsActive(
  77. now_, now_ + DeviceInfoUtil::kActiveThreshold + small_));
  78. EXPECT_FALSE(DeviceInfoUtil::IsActive(
  79. now_, now_ + DeviceInfoUtil::kActiveThreshold + big_));
  80. EXPECT_TRUE(DeviceInfoUtil::IsActive(now_ + small_, now_));
  81. EXPECT_TRUE(DeviceInfoUtil::IsActive(now_ + big_, now_));
  82. }
  83. TEST_F(DeviceInfoUtilTest, TagRoundTrip) {
  84. DeviceInfoSpecifics specifics;
  85. ASSERT_EQ("", DeviceInfoUtil::TagToCacheGuid(
  86. DeviceInfoUtil::SpecificsToTag(specifics)));
  87. std::string cache_guid("guid");
  88. specifics.set_cache_guid(cache_guid);
  89. ASSERT_EQ(cache_guid, DeviceInfoUtil::TagToCacheGuid(
  90. DeviceInfoUtil::SpecificsToTag(specifics)));
  91. specifics.set_cache_guid(DeviceInfoUtil::kClientTagPrefix);
  92. ASSERT_EQ(DeviceInfoUtil::kClientTagPrefix,
  93. DeviceInfoUtil::TagToCacheGuid(
  94. DeviceInfoUtil::SpecificsToTag(specifics)));
  95. }
  96. } // namespace syncer