Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(351)

Unified Diff: media/base/clock_unittest.cc

Issue 9155003: Fix media timeline so that thumb never exceeds buffered data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/clock_unittest.cc
diff --git a/media/base/clock_unittest.cc b/media/base/clock_unittest.cc
index dcf39ae6c1494441c3062878116bf03e4d28bda8..92a63261663bb5834e8898a8838cd17303465404 100644
--- a/media/base/clock_unittest.cc
+++ b/media/base/clock_unittest.cc
@@ -156,14 +156,14 @@ TEST(ClockTest, SetTime_Paused) {
// We'll remain paused while we set the time. The time should be simply
// updated without accessing the time provider.
InSequence s;
- StrictMock<base::MockTimeProvider> mock_time;
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(120);
const base::TimeDelta kFirstTime = base::TimeDelta::FromSeconds(4);
const base::TimeDelta kSecondTime = base::TimeDelta::FromSeconds(16);
Clock clock(&base::MockTimeProvider::StaticNow);
- clock.SetTime(kFirstTime);
+ clock.SetTime(kFirstTime, kDuration);
EXPECT_EQ(kFirstTime, clock.Elapsed());
- clock.SetTime(kSecondTime);
+ clock.SetTime(kSecondTime, kDuration);
EXPECT_EQ(kSecondTime, clock.Elapsed());
}
@@ -179,12 +179,50 @@ TEST(ClockTest, SetTime_Playing) {
EXPECT_CALL(mock_time, Now())
.WillOnce(Return(base::Time::FromDoubleT(12)));
const base::TimeDelta kZero;
- const base::TimeDelta kExepected = base::TimeDelta::FromSeconds(16);
+ const base::TimeDelta kExpected = base::TimeDelta::FromSeconds(16);
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(120);
+
+ Clock clock(&base::MockTimeProvider::StaticNow);
+ EXPECT_EQ(kZero, clock.Play());
+ clock.SetTime(base::TimeDelta::FromSeconds(12), kDuration);
+ EXPECT_EQ(kExpected, clock.Elapsed());
+}
+
+TEST(ClockTest, SetMediaDuration_Paused) {
+ InSequence s;
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(120);
+ const base::TimeDelta kTimeOverDuration =
+ kDuration + base::TimeDelta::FromSeconds(4);
+
+ Clock clock(&base::MockTimeProvider::StaticNow);
+ clock.set_media_duration(kDuration);
+ EXPECT_EQ(kDuration, clock.media_duration());
+
+ // Elapsed time should always be capped at the duration of the media.
+ clock.SetTime(kTimeOverDuration, kTimeOverDuration);
+ EXPECT_EQ(kDuration, clock.Elapsed());
+}
+
+TEST(ClockTest, SetMediaDuration_Playing) {
+ InSequence s;
+ StrictMock<base::MockTimeProvider> mock_time;
+ EXPECT_CALL(mock_time, Now())
+ .WillOnce(Return(base::Time::FromDoubleT(4)));
+ EXPECT_CALL(mock_time, Now())
+ .WillOnce(Return(base::Time::FromDoubleT(124)));
+ EXPECT_CALL(mock_time, Now())
+ .WillOnce(Return(base::Time::FromDoubleT(128)));
+ const base::TimeDelta kZero;
+ const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(120);
+ const base::TimeDelta kTimeOverDuration =
+ kDuration + base::TimeDelta::FromSeconds(4);
Clock clock(&base::MockTimeProvider::StaticNow);
EXPECT_EQ(kZero, clock.Play());
- clock.SetTime(base::TimeDelta::FromSeconds(12));
- EXPECT_EQ(kExepected, clock.Elapsed());
+ clock.set_media_duration(kDuration);
+ EXPECT_EQ(kDuration, clock.media_duration());
+ clock.SetTime(kTimeOverDuration, kTimeOverDuration);
+ EXPECT_EQ(kDuration, clock.Elapsed());
}
acolwell GONE FROM CHROMIUM 2012/01/13 22:51:21 Please add some unit tests for set_max_time enforc
vrk (LEFT CHROMIUM) 2012/01/21 00:54:14 Done... and actually this was such an annoying tes
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698