Index: media/filters/video_renderer_base_unittest.cc |
diff --git a/media/filters/video_renderer_base_unittest.cc b/media/filters/video_renderer_base_unittest.cc |
index 79b3bf94d3992cdaf0bc6d6ba2ae0c99baaa53be..fd1cccdd224913b7d1cf5f68c2e51ac19de2ea29 100644 |
--- a/media/filters/video_renderer_base_unittest.cc |
+++ b/media/filters/video_renderer_base_unittest.cc |
@@ -5,6 +5,7 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/callback_helpers.h" |
+#include "base/debug/stack_trace.h" |
#include "base/message_loop.h" |
#include "base/stl_util.h" |
#include "base/stringprintf.h" |
@@ -111,14 +112,18 @@ class VideoRendererBaseTest : public ::testing::Test { |
void InitializeRenderer(PipelineStatus expected) { |
SCOPED_TRACE(base::StringPrintf("InitializeRenderer(%d)", expected)); |
+ WaitableMessageLoopEvent event; |
+ CallInitialize(event.GetPipelineStatusCB()); |
+ event.RunAndWaitForStatus(expected); |
+ } |
+ |
+ void CallInitialize(const PipelineStatusCB& status_cb) { |
VideoRendererBase::VideoDecoderList decoders; |
decoders.push_back(decoder_); |
- |
- WaitableMessageLoopEvent event; |
renderer_->Initialize( |
demuxer_stream_, |
decoders, |
- event.GetPipelineStatusCB(), |
+ status_cb, |
base::Bind(&MockStatisticsCB::OnStatistics, |
base::Unretained(&statistics_cb_object_)), |
base::Bind(&VideoRendererBaseTest::OnTimeUpdate, |
@@ -130,7 +135,6 @@ class VideoRendererBaseTest : public ::testing::Test { |
base::Bind(&VideoRendererBaseTest::GetTime, base::Unretained(this)), |
base::Bind(&VideoRendererBaseTest::GetDuration, |
base::Unretained(this))); |
- event.RunAndWaitForStatus(expected); |
} |
void Play() { |
@@ -362,12 +366,41 @@ class VideoRendererBaseTest : public ::testing::Test { |
DISALLOW_COPY_AND_ASSIGN(VideoRendererBaseTest); |
}; |
+TEST_F(VideoRendererBaseTest, DoNothing) {} |
acolwell GONE FROM CHROMIUM
2013/02/21 21:07:16
nit: Add comment indicating why we have a DoNothin
scherkus (not reviewing)
2013/02/22 01:45:49
Done.
|
+ |
+TEST_F(VideoRendererBaseTest, Stop) { |
acolwell GONE FROM CHROMIUM
2013/02/21 21:07:16
nit: s/Stop/StopBeforeInitialize ?
scherkus (not reviewing)
2013/02/22 01:45:49
Settled on StopWithoutInitialize ("before" makes m
|
+ Stop(); |
+} |
+ |
TEST_F(VideoRendererBaseTest, Initialize) { |
Initialize(); |
EXPECT_EQ(0, GetCurrentTimestampInMs()); |
Shutdown(); |
} |
+static void ExpectNotCalled(PipelineStatus) { |
+ base::debug::StackTrace stack; |
+ ADD_FAILURE() << "Expected callback not to be called\n" << stack.ToString(); |
+} |
+ |
+TEST_F(VideoRendererBaseTest, InitializeAndStop) { |
acolwell GONE FROM CHROMIUM
2013/02/21 21:07:16
nit: s/InitializeAndStop/StopWhileInitializing ?
scherkus (not reviewing)
2013/02/22 01:45:49
Done.
|
+ EXPECT_CALL(*decoder_, Initialize(_, _, _)) |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
+ CallInitialize(base::Bind(&ExpectNotCalled)); |
+ Stop(); |
+ |
+ // ~VideoRendererBase() will CHECK() if we left anything initialized. |
+} |
+ |
+TEST_F(VideoRendererBaseTest, FlushAndStop) { |
acolwell GONE FROM CHROMIUM
2013/02/21 21:07:16
nit: s/FlushAndStop/StopWhileFlushing ?
scherkus (not reviewing)
2013/02/22 01:45:49
Done.
|
+ Initialize(); |
+ Pause(); |
+ renderer_->Flush(base::Bind(&ExpectNotCalled, PIPELINE_OK)); |
+ Stop(); |
+ |
+ // ~VideoRendererBase() will CHECK() if we left anything initialized. |
+} |
+ |
TEST_F(VideoRendererBaseTest, Play) { |
Initialize(); |
Play(); |