Chromium Code Reviews| 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..fdb2202d2d141118d6c54b54d2f3e3cb96d79df0 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() { |
| @@ -368,6 +372,29 @@ TEST_F(VideoRendererBaseTest, Initialize) { |
| Shutdown(); |
| } |
| +static void ExpectNotCalled(PipelineStatus) { |
| + base::debug::StackTrace stack; |
| + ADD_FAILURE() << "Expected callback not to be called\n" << stack.ToString(); |
|
scherkus (not reviewing)
2013/02/20 08:26:11
I did this to get the stack trace of the callback
|
| +} |
| + |
|
acolwell GONE FROM CHROMIUM
2013/02/20 17:01:14
You should add a test that allows the renderer to
scherkus (not reviewing)
2013/02/21 20:43:54
Done.
|
| +TEST_F(VideoRendererBaseTest, InitializeAndStop) { |
| + 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) { |
| + Initialize(); |
| + Pause(); |
| + renderer_->Flush(base::Bind(&ExpectNotCalled, PIPELINE_OK)); |
| + Stop(); |
| + |
| + // ~VideoRendererBase() will CHECK() if we left anything initialized. |
| +} |
| + |
| TEST_F(VideoRendererBaseTest, Play) { |
| Initialize(); |
| Play(); |