OLD | NEW |
| (Empty) |
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 | |
5 #include "components/sync_driver/device_info_util.h" | |
6 | |
7 #include <string> | |
8 | |
9 #include "components/sync/protocol/sync.pb.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 using base::Time; | |
13 using base::TimeDelta; | |
14 using sync_pb::DeviceInfoSpecifics; | |
15 | |
16 namespace sync_driver { | |
17 | |
18 namespace { | |
19 | |
20 class DeviceInfoUtilTest : public testing::Test { | |
21 protected: | |
22 DeviceInfoUtilTest() { | |
23 // Test cases assume |small_| and |big_| are smaller and bigger, | |
24 // respectively, | |
25 // than both constants. | |
26 EXPECT_LT(small_, DeviceInfoUtil::kActiveThreshold); | |
27 EXPECT_LT(small_, DeviceInfoUtil::kPulseInterval); | |
28 EXPECT_GT(big_, DeviceInfoUtil::kActiveThreshold); | |
29 EXPECT_GT(big_, DeviceInfoUtil::kPulseInterval); | |
30 } | |
31 | |
32 const Time now_ = Time::Now(); | |
33 const TimeDelta small_ = TimeDelta::FromMilliseconds(1); | |
34 const TimeDelta big_ = TimeDelta::FromDays(1000); | |
35 }; | |
36 | |
37 } // namespace | |
38 | |
39 TEST_F(DeviceInfoUtilTest, CalculatePulseDelaySame) { | |
40 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
41 DeviceInfoUtil::CalculatePulseDelay(Time(), Time())); | |
42 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
43 DeviceInfoUtil::CalculatePulseDelay(now_, now_)); | |
44 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
45 DeviceInfoUtil::CalculatePulseDelay(now_ + big_, now_ + big_)); | |
46 } | |
47 | |
48 TEST_F(DeviceInfoUtilTest, CalculatePulseDelayMiddle) { | |
49 EXPECT_EQ(DeviceInfoUtil::kPulseInterval - small_, | |
50 DeviceInfoUtil::CalculatePulseDelay(Time(), Time() + small_)); | |
51 EXPECT_EQ(small_, | |
52 DeviceInfoUtil::CalculatePulseDelay( | |
53 Time(), Time() + DeviceInfoUtil::kPulseInterval - small_)); | |
54 } | |
55 | |
56 TEST_F(DeviceInfoUtilTest, CalculatePulseDelayStale) { | |
57 EXPECT_EQ(TimeDelta(), DeviceInfoUtil::CalculatePulseDelay( | |
58 Time(), Time() + DeviceInfoUtil::kPulseInterval)); | |
59 EXPECT_EQ(TimeDelta(), | |
60 DeviceInfoUtil::CalculatePulseDelay( | |
61 Time(), Time() + DeviceInfoUtil::kPulseInterval + small_)); | |
62 EXPECT_EQ(TimeDelta(), | |
63 DeviceInfoUtil::CalculatePulseDelay( | |
64 Time(), Time() + DeviceInfoUtil::kPulseInterval + small_)); | |
65 EXPECT_EQ(TimeDelta(), DeviceInfoUtil::CalculatePulseDelay( | |
66 now_, now_ + DeviceInfoUtil::kPulseInterval)); | |
67 } | |
68 | |
69 TEST_F(DeviceInfoUtilTest, CalculatePulseDelayFuture) { | |
70 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
71 DeviceInfoUtil::CalculatePulseDelay(Time() + small_, Time())); | |
72 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
73 DeviceInfoUtil::CalculatePulseDelay( | |
74 Time() + DeviceInfoUtil::kPulseInterval, Time())); | |
75 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
76 DeviceInfoUtil::CalculatePulseDelay(Time() + big_, Time())); | |
77 EXPECT_EQ(DeviceInfoUtil::kPulseInterval, | |
78 DeviceInfoUtil::CalculatePulseDelay(now_ + big_, now_)); | |
79 } | |
80 | |
81 TEST_F(DeviceInfoUtilTest, IsActive) { | |
82 EXPECT_TRUE(DeviceInfoUtil::IsActive(Time(), Time())); | |
83 EXPECT_TRUE(DeviceInfoUtil::IsActive(now_, now_)); | |
84 EXPECT_TRUE(DeviceInfoUtil::IsActive(now_, now_ + small_)); | |
85 EXPECT_TRUE(DeviceInfoUtil::IsActive( | |
86 now_, now_ + DeviceInfoUtil::kActiveThreshold - small_)); | |
87 EXPECT_FALSE( | |
88 DeviceInfoUtil::IsActive(now_, now_ + DeviceInfoUtil::kActiveThreshold)); | |
89 EXPECT_FALSE(DeviceInfoUtil::IsActive( | |
90 now_, now_ + DeviceInfoUtil::kActiveThreshold + small_)); | |
91 EXPECT_FALSE(DeviceInfoUtil::IsActive( | |
92 now_, now_ + DeviceInfoUtil::kActiveThreshold + big_)); | |
93 EXPECT_TRUE(DeviceInfoUtil::IsActive(now_ + small_, now_)); | |
94 EXPECT_TRUE(DeviceInfoUtil::IsActive(now_ + big_, now_)); | |
95 } | |
96 | |
97 TEST_F(DeviceInfoUtilTest, TagRoundTrip) { | |
98 DeviceInfoSpecifics specifics; | |
99 ASSERT_EQ("", DeviceInfoUtil::TagToCacheGuid( | |
100 DeviceInfoUtil::SpecificsToTag(specifics))); | |
101 | |
102 std::string cache_guid("guid"); | |
103 specifics.set_cache_guid(cache_guid); | |
104 ASSERT_EQ(cache_guid, DeviceInfoUtil::TagToCacheGuid( | |
105 DeviceInfoUtil::SpecificsToTag(specifics))); | |
106 | |
107 specifics.set_cache_guid(DeviceInfoUtil::kClientTagPrefix); | |
108 ASSERT_EQ(DeviceInfoUtil::kClientTagPrefix, | |
109 DeviceInfoUtil::TagToCacheGuid( | |
110 DeviceInfoUtil::SpecificsToTag(specifics))); | |
111 } | |
112 | |
113 } // namespace sync_driver | |
OLD | NEW |