Index: media/base/wall_clock_time_source_unittest.cc |
diff --git a/media/base/wall_clock_time_source_unittest.cc b/media/base/wall_clock_time_source_unittest.cc |
index d9b632ffd2b187ba7c80a327d9808244c4e2bf9a..f5f0bb3088adcf9cec9f5544236c74dd153b7bd0 100644 |
--- a/media/base/wall_clock_time_source_unittest.cc |
+++ b/media/base/wall_clock_time_source_unittest.cc |
@@ -28,22 +28,26 @@ class WallClockTimeSourceTest : public testing::Test { |
return time_source_.SetMediaTime(base::TimeDelta::FromSeconds(seconds)); |
} |
- bool IsWallClockNowForMediaTimeInSeconds(int seconds) { |
+ base::TimeTicks ConvertMediaTime(base::TimeDelta timestamp, |
+ bool* is_time_moving) { |
std::vector<base::TimeTicks> wall_clock_times; |
- EXPECT_TRUE(time_source_.GetWallClockTimes( |
- std::vector<base::TimeDelta>(1, base::TimeDelta::FromSeconds(seconds)), |
- &wall_clock_times)); |
- return tick_clock_->NowTicks() == wall_clock_times.front(); |
+ *is_time_moving = time_source_.GetWallClockTimes( |
+ std::vector<base::TimeDelta>(1, timestamp), &wall_clock_times); |
+ return wall_clock_times[0]; |
+ } |
+ |
+ bool IsWallClockNowForMediaTimeInSeconds(int seconds) { |
+ bool is_time_moving = false; |
+ return tick_clock_->NowTicks() == |
+ ConvertMediaTime(base::TimeDelta::FromSeconds(seconds), |
+ &is_time_moving); |
} |
bool IsTimeStopped() { |
- std::vector<base::TimeTicks> wall_clock_times; |
+ bool is_time_moving = false; |
// Convert any random value, it shouldn't matter for this call. |
- const bool time_stopped = !time_source_.GetWallClockTimes( |
- std::vector<base::TimeDelta>(1, base::TimeDelta::FromSeconds(1)), |
- &wall_clock_times); |
- EXPECT_EQ(time_stopped, wall_clock_times.empty()); |
- return time_stopped; |
+ ConvertMediaTime(base::TimeDelta::FromSeconds(1), &is_time_moving); |
+ return !is_time_moving; |
} |
protected: |
@@ -118,4 +122,44 @@ TEST_F(WallClockTimeSourceTest, StopTicking) { |
EXPECT_TRUE(IsTimeStopped()); |
} |
+TEST_F(WallClockTimeSourceTest, ConvertsTimestampsWhenStopped) { |
+ const base::TimeDelta kOneSecond = base::TimeDelta::FromSeconds(1); |
+ bool is_time_moving = false; |
+ EXPECT_EQ(base::TimeTicks(), |
+ ConvertMediaTime(base::TimeDelta(), &is_time_moving)); |
+ EXPECT_FALSE(is_time_moving); |
+ EXPECT_NE(base::TimeTicks(), ConvertMediaTime(kOneSecond, &is_time_moving)); |
+ EXPECT_FALSE(is_time_moving); |
+ time_source_.StartTicking(); |
+ time_source_.StopTicking(); |
+ EXPECT_EQ(tick_clock_->NowTicks(), |
+ ConvertMediaTime(base::TimeDelta(), &is_time_moving)); |
+ EXPECT_FALSE(is_time_moving); |
+ EXPECT_EQ(tick_clock_->NowTicks() + kOneSecond, |
+ ConvertMediaTime(kOneSecond, &is_time_moving)); |
+ EXPECT_FALSE(is_time_moving); |
+} |
+ |
+TEST_F(WallClockTimeSourceTest, EmptyMediaTimestampsReturnMediaWallClockTime) { |
+ std::vector<base::TimeTicks> wall_clock_times; |
+ bool is_time_moving = time_source_.GetWallClockTimes( |
+ std::vector<base::TimeDelta>(), &wall_clock_times); |
+ EXPECT_FALSE(is_time_moving); |
+ EXPECT_EQ(base::TimeTicks(), wall_clock_times[0]); |
+ |
+ wall_clock_times.clear(); |
+ time_source_.StartTicking(); |
+ is_time_moving = time_source_.GetWallClockTimes( |
+ std::vector<base::TimeDelta>(), &wall_clock_times); |
+ EXPECT_TRUE(is_time_moving); |
+ EXPECT_EQ(tick_clock_->NowTicks(), wall_clock_times[0]); |
+ |
+ wall_clock_times.clear(); |
+ time_source_.StopTicking(); |
+ is_time_moving = time_source_.GetWallClockTimes( |
+ std::vector<base::TimeDelta>(), &wall_clock_times); |
+ EXPECT_FALSE(is_time_moving); |
+ EXPECT_EQ(tick_clock_->NowTicks(), wall_clock_times[0]); |
+} |
+ |
} // namespace media |