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 ae21320be17a6456525454d07731dad892111feb..486c85e6f249e77fbe8de411e2d83ce80e8057f9 100644 |
--- a/media/filters/video_renderer_base_unittest.cc |
+++ b/media/filters/video_renderer_base_unittest.cc |
@@ -6,6 +6,7 @@ |
#include "base/stl_util-inl.h" |
#include "media/base/callback.h" |
#include "media/base/data_buffer.h" |
+#include "media/base/limits.h" |
#include "media/base/mock_filter_host.h" |
#include "media/base/mock_filters.h" |
#include "media/base/video_frame.h" |
@@ -75,6 +76,7 @@ class VideoRendererBaseTest : public ::testing::Test { |
EXPECT_CALL(*renderer_, OnStop(NotNull())) |
.WillOnce(DoAll(OnStop(), Return())) |
.RetiresOnSaturation(); |
+ |
EXPECT_CALL(callback_, OnFilterCallback()); |
EXPECT_CALL(callback_, OnCallbackDestroyed()); |
renderer_->Stop(callback_.NewCallback()); |
@@ -175,6 +177,10 @@ TEST_F(VideoRendererBaseTest, Initialize_Successful) { |
EXPECT_CALL(callback_, OnFilterCallback()); |
EXPECT_CALL(callback_, OnCallbackDestroyed()); |
+ // Initialize, we shouldn't have any reads. |
+ renderer_->Initialize(decoder_, callback_.NewCallback()); |
+ EXPECT_EQ(0u, read_queue_.size()); |
+ |
// Verify the following expectations haven't run until we complete the reads. |
EXPECT_CALL(*renderer_, CheckPoint(0)); |
@@ -185,27 +191,40 @@ TEST_F(VideoRendererBaseTest, Initialize_Successful) { |
EXPECT_CALL(seek_callback, OnFilterCallback()); |
EXPECT_CALL(seek_callback, OnCallbackDestroyed()); |
- // Initialize, we shouldn't have any reads. |
- renderer_->Initialize(decoder_, callback_.NewCallback()); |
- EXPECT_EQ(0u, read_queue_.size()); |
- |
// Now seek to trigger prerolling. |
renderer_->Seek(base::TimeDelta(), seek_callback.NewCallback()); |
- EXPECT_LT(0u, read_queue_.size()); |
// Verify our seek callback hasn't been executed yet. |
renderer_->CheckPoint(0); |
// Now satisfy the read requests. Our callback should be executed after |
// exiting this loop. |
- while (!read_queue_.empty()) { |
+ for (unsigned int i = 0; i < Limits::kMaxVideoFrames; i++) { |
const base::TimeDelta kZero; |
scoped_refptr<VideoFrame> frame; |
VideoFrame::CreateFrame(VideoFrame::RGB32, kWidth, kHeight, kZero, |
kZero, &frame); |
decoder_->fill_buffer_done_callback()->Run(frame); |
- read_queue_.pop_front(); |
} |
+ |
+ MockFilterCallback play_callback; |
+ EXPECT_CALL(play_callback, OnFilterCallback()); |
+ EXPECT_CALL(play_callback, OnCallbackDestroyed()); |
+ |
+ renderer_->Play(play_callback.NewCallback()); |
+ |
+ StrictMock<MockFilterCallback> pause_callback; |
+ EXPECT_CALL(pause_callback, OnFilterCallback()); |
+ EXPECT_CALL(pause_callback, OnCallbackDestroyed()); |
+ renderer_->Pause(pause_callback.NewCallback()); |
+ |
+ EXPECT_CALL(*decoder_, ProvidesBuffer()) |
+ .WillRepeatedly(Return(true)); |
+ |
+ StrictMock<MockFilterCallback> flush_callback; |
+ EXPECT_CALL(flush_callback, OnFilterCallback()); |
+ EXPECT_CALL(flush_callback, OnCallbackDestroyed()); |
+ renderer_->Flush(flush_callback.NewCallback()); |
} |
} // namespace media |