OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/quic/quic_alarm.h" | 5 #include "net/quic/quic_alarm.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 void SetImpl() override {} | 73 void SetImpl() override {} |
74 | 74 |
75 void CancelImpl() override {} | 75 void CancelImpl() override {} |
76 }; | 76 }; |
77 | 77 |
78 class QuicAlarmTest : public ::testing::Test { | 78 class QuicAlarmTest : public ::testing::Test { |
79 public: | 79 public: |
80 QuicAlarmTest() | 80 QuicAlarmTest() |
81 : delegate_(new MockDelegate()), | 81 : delegate_(new MockDelegate()), |
82 alarm_(delegate_), | 82 alarm_(delegate_), |
83 deadline_(QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7))), | 83 deadline_(QuicTime::Zero() + QuicTime::Delta::FromSeconds(7)), |
84 deadline2_(QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(14))), | 84 deadline2_(QuicTime::Zero() + QuicTime::Delta::FromSeconds(14)), |
85 new_deadline_(QuicTime::Zero()) {} | 85 new_deadline_(QuicTime::Zero()) {} |
86 | 86 |
87 void ResetAlarm() { alarm_.Set(new_deadline_); } | 87 void ResetAlarm() { alarm_.Set(new_deadline_); } |
88 | 88 |
89 MockDelegate* delegate_; // not owned | 89 MockDelegate* delegate_; // not owned |
90 TestAlarm alarm_; | 90 TestAlarm alarm_; |
91 QuicTime deadline_; | 91 QuicTime deadline_; |
92 QuicTime deadline2_; | 92 QuicTime deadline2_; |
93 QuicTime new_deadline_; | 93 QuicTime new_deadline_; |
94 }; | 94 }; |
95 | 95 |
96 TEST_F(QuicAlarmTest, IsSet) { | 96 TEST_F(QuicAlarmTest, IsSet) { |
97 EXPECT_FALSE(alarm_.IsSet()); | 97 EXPECT_FALSE(alarm_.IsSet()); |
98 } | 98 } |
99 | 99 |
100 TEST_F(QuicAlarmTest, Set) { | 100 TEST_F(QuicAlarmTest, Set) { |
101 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 101 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
102 alarm_.Set(deadline); | 102 alarm_.Set(deadline); |
103 EXPECT_TRUE(alarm_.IsSet()); | 103 EXPECT_TRUE(alarm_.IsSet()); |
104 EXPECT_TRUE(alarm_.scheduled()); | 104 EXPECT_TRUE(alarm_.scheduled()); |
105 EXPECT_EQ(deadline, alarm_.deadline()); | 105 EXPECT_EQ(deadline, alarm_.deadline()); |
106 } | 106 } |
107 | 107 |
108 TEST_F(QuicAlarmTest, Cancel) { | 108 TEST_F(QuicAlarmTest, Cancel) { |
109 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 109 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
110 alarm_.Set(deadline); | 110 alarm_.Set(deadline); |
111 alarm_.Cancel(); | 111 alarm_.Cancel(); |
112 EXPECT_FALSE(alarm_.IsSet()); | 112 EXPECT_FALSE(alarm_.IsSet()); |
113 EXPECT_FALSE(alarm_.scheduled()); | 113 EXPECT_FALSE(alarm_.scheduled()); |
114 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); | 114 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); |
115 } | 115 } |
116 | 116 |
117 TEST_F(QuicAlarmTest, Update) { | 117 TEST_F(QuicAlarmTest, Update) { |
118 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 118 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
119 alarm_.Set(deadline); | 119 alarm_.Set(deadline); |
120 QuicTime new_deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(8)); | 120 QuicTime new_deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(8); |
121 alarm_.Update(new_deadline, QuicTime::Delta::Zero()); | 121 alarm_.Update(new_deadline, QuicTime::Delta::Zero()); |
122 EXPECT_TRUE(alarm_.IsSet()); | 122 EXPECT_TRUE(alarm_.IsSet()); |
123 EXPECT_TRUE(alarm_.scheduled()); | 123 EXPECT_TRUE(alarm_.scheduled()); |
124 EXPECT_EQ(new_deadline, alarm_.deadline()); | 124 EXPECT_EQ(new_deadline, alarm_.deadline()); |
125 } | 125 } |
126 | 126 |
127 TEST_F(QuicAlarmTest, UpdateWithZero) { | 127 TEST_F(QuicAlarmTest, UpdateWithZero) { |
128 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 128 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
129 alarm_.Set(deadline); | 129 alarm_.Set(deadline); |
130 alarm_.Update(QuicTime::Zero(), QuicTime::Delta::Zero()); | 130 alarm_.Update(QuicTime::Zero(), QuicTime::Delta::Zero()); |
131 EXPECT_FALSE(alarm_.IsSet()); | 131 EXPECT_FALSE(alarm_.IsSet()); |
132 EXPECT_FALSE(alarm_.scheduled()); | 132 EXPECT_FALSE(alarm_.scheduled()); |
133 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); | 133 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); |
134 } | 134 } |
135 | 135 |
136 TEST_F(QuicAlarmTest, Fire) { | 136 TEST_F(QuicAlarmTest, Fire) { |
137 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 137 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
138 alarm_.Set(deadline); | 138 alarm_.Set(deadline); |
139 alarm_.FireAlarm(); | 139 alarm_.FireAlarm(); |
140 EXPECT_FALSE(alarm_.IsSet()); | 140 EXPECT_FALSE(alarm_.IsSet()); |
141 EXPECT_FALSE(alarm_.scheduled()); | 141 EXPECT_FALSE(alarm_.scheduled()); |
142 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); | 142 EXPECT_EQ(QuicTime::Zero(), alarm_.deadline()); |
143 } | 143 } |
144 | 144 |
145 TEST_F(QuicAlarmTest, FireAndResetViaSet) { | 145 TEST_F(QuicAlarmTest, FireAndResetViaSet) { |
146 alarm_.Set(deadline_); | 146 alarm_.Set(deadline_); |
147 new_deadline_ = deadline2_; | 147 new_deadline_ = deadline2_; |
148 EXPECT_CALL(*delegate_, OnAlarm()) | 148 EXPECT_CALL(*delegate_, OnAlarm()) |
149 .WillOnce(Invoke(this, &QuicAlarmTest::ResetAlarm)); | 149 .WillOnce(Invoke(this, &QuicAlarmTest::ResetAlarm)); |
150 alarm_.FireAlarm(); | 150 alarm_.FireAlarm(); |
151 EXPECT_TRUE(alarm_.IsSet()); | 151 EXPECT_TRUE(alarm_.IsSet()); |
152 EXPECT_TRUE(alarm_.scheduled()); | 152 EXPECT_TRUE(alarm_.scheduled()); |
153 EXPECT_EQ(deadline2_, alarm_.deadline()); | 153 EXPECT_EQ(deadline2_, alarm_.deadline()); |
154 } | 154 } |
155 | 155 |
156 TEST_F(QuicAlarmTest, FireDestroysAlarm) { | 156 TEST_F(QuicAlarmTest, FireDestroysAlarm) { |
157 DestructiveDelegate* delegate(new DestructiveDelegate); | 157 DestructiveDelegate* delegate(new DestructiveDelegate); |
158 DestructiveAlarm* alarm = new DestructiveAlarm(delegate); | 158 DestructiveAlarm* alarm = new DestructiveAlarm(delegate); |
159 delegate->set_alarm(alarm); | 159 delegate->set_alarm(alarm); |
160 QuicTime deadline = QuicTime::Zero().Add(QuicTime::Delta::FromSeconds(7)); | 160 QuicTime deadline = QuicTime::Zero() + QuicTime::Delta::FromSeconds(7); |
161 alarm->Set(deadline); | 161 alarm->Set(deadline); |
162 // This should not crash, even though it will destroy alarm. | 162 // This should not crash, even though it will destroy alarm. |
163 alarm->FireAlarm(); | 163 alarm->FireAlarm(); |
164 } | 164 } |
165 | 165 |
166 } // namespace | 166 } // namespace |
167 } // namespace test | 167 } // namespace test |
168 } // namespace net | 168 } // namespace net |
OLD | NEW |