OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "base/idle_timer.h" | 5 #include "base/idle_timer.h" |
6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 using base::Time; | 9 using base::Time; |
10 using base::TimeDelta; | 10 using base::TimeDelta; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 base::OneShotTimer<ResetIdleTask> t2; | 108 base::OneShotTimer<ResetIdleTask> t2; |
109 t2.Start(TimeDelta::FromMilliseconds(500), &reset_task, | 109 t2.Start(TimeDelta::FromMilliseconds(500), &reset_task, |
110 &ResetIdleTask::Run); | 110 &ResetIdleTask::Run); |
111 | 111 |
112 test_task.Start(); | 112 test_task.Start(); |
113 MessageLoop::current()->Run(); | 113 MessageLoop::current()->Run(); |
114 | 114 |
115 EXPECT_EQ(test_task.get_idle_counter(), 2); | 115 EXPECT_EQ(test_task.get_idle_counter(), 2); |
116 } | 116 } |
117 | 117 |
118 TEST_F(IdleTimerTest, NoRepeatNotIdle) { | 118 // TODO(darin): http://crbug.com/3704 |
| 119 TEST_F(IdleTimerTest, DISABLED_NoRepeatNotIdle) { |
119 // Create an IdleTimer, which should fire once after 100ms. | 120 // Create an IdleTimer, which should fire once after 100ms. |
120 // Create a Quit timer which will fire after 1s. | 121 // Create a Quit timer which will fire after 1s. |
121 // Create a timer to reset idle every 50ms. | 122 // Create a timer to reset idle every 50ms. |
122 // Verify that we never fired. | 123 // Verify that we never fired. |
123 | 124 |
124 mock_timer_started = Time::Now(); | 125 mock_timer_started = Time::Now(); |
125 TestIdleTask test_task(false); | 126 TestIdleTask test_task(false); |
126 | 127 |
127 TestFinishedTask finish_task; | 128 TestFinishedTask finish_task; |
128 ResetIdleTask reset_task; | 129 ResetIdleTask reset_task; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 test_task.Start(); | 167 test_task.Start(); |
167 MessageLoop::current()->Run(); | 168 MessageLoop::current()->Run(); |
168 | 169 |
169 // In a perfect world, the idle_counter should be 10. However, | 170 // In a perfect world, the idle_counter should be 10. However, |
170 // since timers aren't guaranteed to fire perfectly, this can | 171 // since timers aren't guaranteed to fire perfectly, this can |
171 // be less. Just expect more than 5 and no more than 10. | 172 // be less. Just expect more than 5 and no more than 10. |
172 EXPECT_GT(test_task.get_idle_counter(), 5); | 173 EXPECT_GT(test_task.get_idle_counter(), 5); |
173 EXPECT_LE(test_task.get_idle_counter(), 10); | 174 EXPECT_LE(test_task.get_idle_counter(), 10); |
174 } | 175 } |
175 | 176 |
176 // TODO(darin): http://code.google.com/p/chromium/issues/detail?id=3780 | 177 // TODO(darin): http://crbug.com/3780 |
177 TEST_F(IdleTimerTest, DISABLED_RepeatIdleReset) { | 178 TEST_F(IdleTimerTest, DISABLED_RepeatIdleReset) { |
178 // Create an IdleTimer, which should fire repeatedly after 100ms. | 179 // Create an IdleTimer, which should fire repeatedly after 100ms. |
179 // Create a Quit timer which will fire after 1s. | 180 // Create a Quit timer which will fire after 1s. |
180 // Create a reset timer, which fires after 550ms | 181 // Create a reset timer, which fires after 550ms |
181 // Verify that we fired 9 times. | 182 // Verify that we fired 9 times. |
182 mock_timer_started = Time::Now(); | 183 mock_timer_started = Time::Now(); |
183 TestIdleTask test_task(true); | 184 TestIdleTask test_task(true); |
184 | 185 |
185 ResetIdleTask reset_task; | 186 ResetIdleTask reset_task; |
186 TestFinishedTask finish_task; | 187 TestFinishedTask finish_task; |
187 | 188 |
188 base::OneShotTimer<TestFinishedTask> t1; | 189 base::OneShotTimer<TestFinishedTask> t1; |
189 t1.Start(TimeDelta::FromMilliseconds(1000), &finish_task, | 190 t1.Start(TimeDelta::FromMilliseconds(1000), &finish_task, |
190 &TestFinishedTask::Run); | 191 &TestFinishedTask::Run); |
191 | 192 |
192 base::OneShotTimer<ResetIdleTask> t2; | 193 base::OneShotTimer<ResetIdleTask> t2; |
193 t2.Start(TimeDelta::FromMilliseconds(550), &reset_task, | 194 t2.Start(TimeDelta::FromMilliseconds(550), &reset_task, |
194 &ResetIdleTask::Run); | 195 &ResetIdleTask::Run); |
195 | 196 |
196 test_task.Start(); | 197 test_task.Start(); |
197 MessageLoop::current()->Run(); | 198 MessageLoop::current()->Run(); |
198 | 199 |
199 // In a perfect world, the idle_counter should be 9. However, | 200 // In a perfect world, the idle_counter should be 9. However, |
200 // since timers aren't guaranteed to fire perfectly, this can | 201 // since timers aren't guaranteed to fire perfectly, this can |
201 // be less. Just expect more than 5 and no more than 9. | 202 // be less. Just expect more than 5 and no more than 9. |
202 EXPECT_GT(test_task.get_idle_counter(), 5); | 203 EXPECT_GT(test_task.get_idle_counter(), 5); |
203 EXPECT_LE(test_task.get_idle_counter(), 9); | 204 EXPECT_LE(test_task.get_idle_counter(), 9); |
204 } | 205 } |
205 | 206 |
206 TEST_F(IdleTimerTest, RepeatNotIdle) { | 207 // TODO(darin): http://crbug.com/3704 |
| 208 TEST_F(IdleTimerTest, DISABLED_RepeatNotIdle) { |
207 // Create an IdleTimer, which should fire repeatedly after 100ms. | 209 // Create an IdleTimer, which should fire repeatedly after 100ms. |
208 // Create a Quit timer which will fire after 1s. | 210 // Create a Quit timer which will fire after 1s. |
209 // Create a timer to reset idle every 50ms. | 211 // Create a timer to reset idle every 50ms. |
210 // Verify that we never fired. | 212 // Verify that we never fired. |
211 | 213 |
212 mock_timer_started = Time::Now(); | 214 mock_timer_started = Time::Now(); |
213 TestIdleTask test_task(true); | 215 TestIdleTask test_task(true); |
214 | 216 |
215 TestFinishedTask finish_task; | 217 TestFinishedTask finish_task; |
216 ResetIdleTask reset_task; | 218 ResetIdleTask reset_task; |
217 | 219 |
218 base::OneShotTimer<TestFinishedTask> t; | 220 base::OneShotTimer<TestFinishedTask> t; |
219 t.Start(TimeDelta::FromMilliseconds(1000), &finish_task, | 221 t.Start(TimeDelta::FromMilliseconds(1000), &finish_task, |
220 &TestFinishedTask::Run); | 222 &TestFinishedTask::Run); |
221 | 223 |
222 base::RepeatingTimer<ResetIdleTask> reset_timer; | 224 base::RepeatingTimer<ResetIdleTask> reset_timer; |
223 reset_timer.Start(TimeDelta::FromMilliseconds(50), &reset_task, | 225 reset_timer.Start(TimeDelta::FromMilliseconds(50), &reset_task, |
224 &ResetIdleTask::Run); | 226 &ResetIdleTask::Run); |
225 | 227 |
226 test_task.Start(); | 228 test_task.Start(); |
227 MessageLoop::current()->Run(); | 229 MessageLoop::current()->Run(); |
228 | 230 |
229 reset_timer.Stop(); | 231 reset_timer.Stop(); |
230 | 232 |
231 EXPECT_EQ(test_task.get_idle_counter(), 0); | 233 EXPECT_EQ(test_task.get_idle_counter(), 0); |
232 } | 234 } |
233 | 235 |
234 } // namespace | 236 } // namespace |
OLD | NEW |