| Index: base/timer/timer_unittest.cc
|
| diff --git a/base/timer/timer_unittest.cc b/base/timer/timer_unittest.cc
|
| index 1c49269bfe95111f2cb94f55fbad2a65dec9e20c..6e6226a2c78900a551795a4a72a354b232ec1efb 100644
|
| --- a/base/timer/timer_unittest.cc
|
| +++ b/base/timer/timer_unittest.cc
|
| @@ -598,6 +598,70 @@ TEST(TimerTest, RetainNonRepeatIsRunning) {
|
| EXPECT_TRUE(timer.IsRunning());
|
| }
|
|
|
| +//-----------------------------------------------------------------------------
|
| +
|
| +TEST(TimerTest, RetainRepeatGetTimeToCallback) {
|
| + MessageLoop loop;
|
| + Timer timer(FROM_HERE, TimeDelta::FromDays(1), Bind(&TimerTestCallback),
|
| + true);
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Reset();
|
| + EXPECT_NE(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Stop();
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Reset();
|
| + EXPECT_NE(TimeDelta::Max(), timer.GetTimeToCallback());
|
| +}
|
| +
|
| +TEST(TimerTest, RetainNonRepeatGetTimeToCallback) {
|
| + MessageLoop loop;
|
| + Timer timer(FROM_HERE, TimeDelta::FromDays(1), Bind(&TimerTestCallback),
|
| + false);
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Reset();
|
| + EXPECT_NE(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Stop();
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Reset();
|
| + EXPECT_NE(TimeDelta::Max(), timer.GetTimeToCallback());
|
| +}
|
| +
|
| +TEST(TimerTest, OneShotTimerWithTickClockGetTimeToCallback) {
|
| + scoped_refptr<TestMockTimeTaskRunner> task_runner(
|
| + new TestMockTimeTaskRunner(Time::Now(), TimeTicks::Now()));
|
| + std::unique_ptr<TickClock> tick_clock(task_runner->GetMockTickClock());
|
| + MessageLoop message_loop;
|
| + message_loop.SetTaskRunner(task_runner);
|
| + Receiver receiver;
|
| + OneShotTimer timer(tick_clock.get());
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| + timer.Start(FROM_HERE, TimeDelta::FromSeconds(2),
|
| + Bind(&Receiver::OnCalled, Unretained(&receiver)));
|
| + EXPECT_EQ(TimeDelta::FromSeconds(2), timer.GetTimeToCallback());
|
| + task_runner->FastForwardBy(TimeDelta::FromSeconds(1));
|
| + EXPECT_EQ(TimeDelta::FromSeconds(1), timer.GetTimeToCallback());
|
| + task_runner->FastForwardBy(TimeDelta::FromSeconds(1));
|
| + EXPECT_TRUE(receiver.WasCalled());
|
| + EXPECT_EQ(TimeDelta::Max(), timer.GetTimeToCallback());
|
| +}
|
| +
|
| +TEST(TimerTest, RepeatingTimerWithTickClockTimeToCallback) {
|
| + scoped_refptr<TestMockTimeTaskRunner> task_runner(
|
| + new TestMockTimeTaskRunner(Time::Now(), TimeTicks::Now()));
|
| + std::unique_ptr<TickClock> tick_clock(task_runner->GetMockTickClock());
|
| + MessageLoop message_loop;
|
| + message_loop.SetTaskRunner(task_runner);
|
| + Receiver receiver;
|
| + RepeatingTimer timer(tick_clock.get());
|
| + timer.Start(FROM_HERE, TimeDelta::FromSeconds(2),
|
| + Bind(&Receiver::OnCalled, Unretained(&receiver)));
|
| + EXPECT_EQ(TimeDelta::FromSeconds(2), timer.GetTimeToCallback());
|
| + task_runner->FastForwardBy(TimeDelta::FromSeconds(1));
|
| + EXPECT_EQ(TimeDelta::FromSeconds(1), timer.GetTimeToCallback());
|
| + task_runner->FastForwardBy(TimeDelta::FromSeconds(1));
|
| + EXPECT_EQ(TimeDelta::FromSeconds(2), timer.GetTimeToCallback());
|
| +}
|
| +
|
| namespace {
|
|
|
| bool g_callback_happened1 = false;
|
|
|