diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-30 21:27:34 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-30 21:27:34 +0000 |
commit | c6c2b472bc6a260975e9fe9ab82e05867f0cac70 (patch) | |
tree | ba08dce285ee587910ef34b7cf21e5d931e81aa6 /base/idletimer_unittest.cc | |
parent | 65055ebfc2f1af07452599ac1117a1bc9b61dd8f (diff) | |
download | chromium_src-c6c2b472bc6a260975e9fe9ab82e05867f0cac70.zip chromium_src-c6c2b472bc6a260975e9fe9ab82e05867f0cac70.tar.gz chromium_src-c6c2b472bc6a260975e9fe9ab82e05867f0cac70.tar.bz2 |
Remove IdleTimer, which no one uses.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/244049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27658 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/idletimer_unittest.cc')
-rw-r--r-- | base/idletimer_unittest.cc | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/base/idletimer_unittest.cc b/base/idletimer_unittest.cc deleted file mode 100644 index 07a8bbd..0000000 --- a/base/idletimer_unittest.cc +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/idle_timer.h" -#include "base/message_loop.h" -#include "testing/gtest/include/gtest/gtest.h" - -using base::Time; -using base::TimeDelta; -using base::IdleTimer; - - -// If the timers fire too quickly, it can be tricky to make timer tests -// reliable on all buildbots. This constant sets a minimum timer delta where -// we expect that we should be able to reliably count timers without problems -// due to slight clock/scheduling variances. -const int kSafeTestIntervalMs = 500; - -namespace { - -// We Mock the GetLastInputInfo function to return -// the time stored here. -static Time mock_timer_started; - -bool MockIdleTimeSource(int32 *milliseconds_interval_since_last_event) { - TimeDelta delta = Time::Now() - mock_timer_started; - *milliseconds_interval_since_last_event = - static_cast<int32>(delta.InMilliseconds()); - return true; -} - -// TestIdle task fires after 100ms of idle time. -class TestIdleTask : public IdleTimer { - public: - TestIdleTask(bool repeat) - : IdleTimer(TimeDelta::FromMilliseconds(kSafeTestIntervalMs), repeat), - idle_counter_(0) { - set_idle_time_source(MockIdleTimeSource); - } - - int get_idle_counter() { return idle_counter_; } - - virtual void OnIdle() { - idle_counter_++; - } - - private: - int idle_counter_; -}; - -// A task to help us quit the test. -class TestFinishedTask { - public: - TestFinishedTask() {} - void Run() { - MessageLoop::current()->Quit(); - } -}; - -// A timer which resets the idle clock. -class ResetIdleTask { - public: - ResetIdleTask() {} - void Run() { - mock_timer_started = Time::Now(); - } -}; - -class IdleTimerTest : public testing::Test { - private: - // IdleTimer requires a UI message loop on the current thread. - MessageLoopForUI message_loop_; -}; - -/////////////////////////////////////////////////////////////////////////////// -// NoRepeat tests: -// A non-repeating idle timer will fire once on idle, and -// then will not fire again unless it goes non-idle first. - -TEST_F(IdleTimerTest, NoRepeatIdle) { - // Create an IdleTimer, which should fire once after 500ms. - // Create a Quit timer which will fire after 1s. - // Verify that we fired exactly once. - - mock_timer_started = Time::Now(); - TestIdleTask test_task(false); - - TestFinishedTask finish_task; - base::OneShotTimer<TestFinishedTask> timer; - timer.Start(TimeDelta::FromMilliseconds(2 * kSafeTestIntervalMs), - &finish_task, &TestFinishedTask::Run); - - test_task.Start(); - MessageLoop::current()->Run(); - - EXPECT_EQ(test_task.get_idle_counter(), 1); -} - -TEST_F(IdleTimerTest, NoRepeatFlipIdleOnce) { - // Create an IdleTimer, which should fire once after 500ms. - // Create a Quit timer which will fire after 5s. - // Create a timer to reset once, idle after 2s. - // Verify that we fired exactly twice. - - mock_timer_started = Time::Now(); - TestIdleTask test_task(false); - - TestFinishedTask finish_task; - ResetIdleTask reset_task; - - base::OneShotTimer<TestFinishedTask> t1; - t1.Start(TimeDelta::FromMilliseconds(10 * kSafeTestIntervalMs), &finish_task, - &TestFinishedTask::Run); - - base::OneShotTimer<ResetIdleTask> t2; - t2.Start(TimeDelta::FromMilliseconds(4 * kSafeTestIntervalMs), &reset_task, - &ResetIdleTask::Run); - - test_task.Start(); - MessageLoop::current()->Run(); - - EXPECT_EQ(test_task.get_idle_counter(), 2); -} - -TEST_F(IdleTimerTest, NoRepeatNotIdle) { - // Create an IdleTimer, which should fire once after 500ms. - // Create a Quit timer which will fire after 5s. - // Create a timer to reset idle every 50ms. - // Verify that we never fired. - - mock_timer_started = Time::Now(); - TestIdleTask test_task(false); - - TestFinishedTask finish_task; - ResetIdleTask reset_task; - - base::OneShotTimer<TestFinishedTask> t; - t.Start(TimeDelta::FromMilliseconds(10 * kSafeTestIntervalMs), &finish_task, - &TestFinishedTask::Run); - - base::RepeatingTimer<ResetIdleTask> reset_timer; - reset_timer.Start(TimeDelta::FromMilliseconds(50), &reset_task, - &ResetIdleTask::Run); - - test_task.Start(); - - MessageLoop::current()->Run(); - - reset_timer.Stop(); - - EXPECT_EQ(test_task.get_idle_counter(), 0); -} - -/////////////////////////////////////////////////////////////////////////////// -// Repeat tests: -// A repeating idle timer will fire repeatedly on each interval, as long -// as it has been idle. So, if the machine remains idle, it will continue -// firing over and over. - -TEST_F(IdleTimerTest, Repeat) { - // Create an IdleTimer, which should fire repeatedly after 500ms. - // Create a Quit timer which will fire after 1.5s. - // Verify that we fired 2-3 times. - mock_timer_started = Time::Now(); - TestIdleTask test_task(true); - - TestFinishedTask finish_task; - - base::OneShotTimer<TestFinishedTask> t; - t.Start(TimeDelta::FromMilliseconds(kSafeTestIntervalMs * 3), &finish_task, - &TestFinishedTask::Run); - - test_task.Start(); - MessageLoop::current()->Run(); - - // In a perfect world, the idle_counter should be 2. However, - // due to timer 'slop', accept 2 or 3. - EXPECT_GE(test_task.get_idle_counter(), 2); - EXPECT_LE(test_task.get_idle_counter(), 3); -} - -TEST_F(IdleTimerTest, RepeatIdleReset) { - // Create an IdleTimer, which should fire repeatedly after 500ms. - // Create a Quit timer which will fire after 5s. - // Create a reset timer, which fires after 2500ms - // Verify that we fired 8-10 times. - mock_timer_started = Time::Now(); - TestIdleTask test_task(true); - - ResetIdleTask reset_task; - TestFinishedTask finish_task; - - base::OneShotTimer<TestFinishedTask> t1; - t1.Start(TimeDelta::FromMilliseconds(10 * kSafeTestIntervalMs), &finish_task, - &TestFinishedTask::Run); - - base::OneShotTimer<ResetIdleTask> t2; - t2.Start(TimeDelta::FromMilliseconds(5 * kSafeTestIntervalMs), &reset_task, - &ResetIdleTask::Run); - - test_task.Start(); - MessageLoop::current()->Run(); - - // In a perfect world, the idle_counter should be 9. However, - // since timers aren't guaranteed to fire perfectly, this can - // be less. Accept 8-10. - EXPECT_GE(test_task.get_idle_counter(), 8); - EXPECT_LE(test_task.get_idle_counter(), 10); -} - -TEST_F(IdleTimerTest, RepeatNotIdle) { - // Create an IdleTimer, which should fire repeatedly after 500ms. - // Create a Quit timer which will fire after 4s. - // Create a timer to reset idle every 50ms. - // Verify that we never fired. - - mock_timer_started = Time::Now(); - TestIdleTask test_task(true); - - TestFinishedTask finish_task; - ResetIdleTask reset_task; - - base::OneShotTimer<TestFinishedTask> t; - t.Start(TimeDelta::FromMilliseconds(8 * kSafeTestIntervalMs), &finish_task, - &TestFinishedTask::Run); - - base::RepeatingTimer<ResetIdleTask> reset_timer; - reset_timer.Start(TimeDelta::FromMilliseconds(50), &reset_task, - &ResetIdleTask::Run); - - test_task.Start(); - MessageLoop::current()->Run(); - - reset_timer.Stop(); - - EXPECT_EQ(test_task.get_idle_counter(), 0); -} - -} // namespace |