Index: media/base/pipeline_unittest.cc |
diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc |
index ad2e2fedac1ff6b3b3edee2e105d60db37dbc7ab..8c82933c0549dee099e05c8b6f512ac3718556d3 100644 |
--- a/media/base/pipeline_unittest.cc |
+++ b/media/base/pipeline_unittest.cc |
@@ -9,10 +9,11 @@ |
#include "base/stl_util.h" |
#include "base/threading/simple_thread.h" |
#include "media/base/clock.h" |
+#include "media/base/gmock_callback_support.h" |
#include "media/base/media_log.h" |
-#include "media/base/pipeline.h" |
#include "media/base/mock_callback.h" |
#include "media/base/mock_filters.h" |
+#include "media/base/pipeline.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/gfx/size.h" |
@@ -50,22 +51,6 @@ ACTION_P2(SetError, pipeline, status) { |
pipeline->SetErrorForTesting(status); |
} |
-ACTION(RunPipelineStatusCB) { |
- arg1.Run(PIPELINE_OK); |
-} |
- |
-ACTION(RunPipelineStatusCB2) { |
- arg2.Run(PIPELINE_OK); |
-} |
- |
-ACTION_P(RunPipelineStatusCBWithStatus, status) { |
- arg1.Run(status); |
-} |
- |
-ACTION_P(RunPipelineStatusCB2WithStatus, status) { |
- arg2.Run(status); |
-} |
- |
// Used for setting expectations on pipeline callbacks. Using a StrictMock |
// also lets us test for missing callbacks. |
class CallbackHelper { |
@@ -111,13 +96,15 @@ class PipelineTest : public ::testing::Test { |
// Shutdown sequence. |
if (pipeline_->IsRunning()) { |
EXPECT_CALL(*mocks_->demuxer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
if (audio_stream_) |
- EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)) |
+ .WillOnce(RunClosure<0>()); |
if (video_stream_) |
- EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Stop(_)) |
+ .WillOnce(RunClosure<0>()); |
} |
// Expect a stop callback if we were started. |
@@ -137,7 +124,7 @@ class PipelineTest : public ::testing::Test { |
const base::TimeDelta& duration) { |
EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _)) |
.WillOnce(DoAll(SetDemuxerProperties(duration), |
- RunPipelineStatusCB())); |
+ RunCallback<1>(PIPELINE_OK))); |
// Configure the demuxer to return the streams. |
for (size_t i = 0; i < streams->size(); ++i) { |
@@ -164,15 +151,15 @@ class PipelineTest : public ::testing::Test { |
void InitializeVideoRenderer(const scoped_refptr<DemuxerStream>& stream) { |
EXPECT_CALL(*mocks_->video_renderer(), |
Initialize(stream, _, _, _, _, _, _, _, _, _)) |
- .WillOnce(RunPipelineStatusCB2()); |
+ .WillOnce(RunCallback<2>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->video_renderer(), SetPlaybackRate(0.0f)); |
// Startup sequence. |
EXPECT_CALL(*mocks_->video_renderer(), |
Preroll(mocks_->demuxer()->GetStartTime(), _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->video_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
} |
// Sets up expectations to allow the audio renderer to initialize. |
@@ -181,13 +168,13 @@ class PipelineTest : public ::testing::Test { |
if (disable_after_init_cb) { |
EXPECT_CALL(*mocks_->audio_renderer(), |
Initialize(stream, _, _, _, _, _, _, _, _)) |
- .WillOnce(DoAll(RunPipelineStatusCB2(), |
- WithArg<7>(RunClosure()))); // |disabled_cb|. |
+ .WillOnce(DoAll(RunCallback<2>(PIPELINE_OK), |
+ WithArg<7>(RunClosure<0>()))); // |disabled_cb|. |
} else { |
EXPECT_CALL(*mocks_->audio_renderer(), |
Initialize(stream, _, _, _, _, _, _, _, _)) |
.WillOnce(DoAll(SaveArg<5>(&audio_time_cb_), |
- RunPipelineStatusCB2())); |
+ RunCallback<2>(PIPELINE_OK))); |
} |
} |
@@ -206,9 +193,9 @@ class PipelineTest : public ::testing::Test { |
// Startup sequence. |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(base::TimeDelta(), _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
} |
EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); |
} |
@@ -244,32 +231,32 @@ class PipelineTest : public ::testing::Test { |
void ExpectSeek(const base::TimeDelta& seek_time) { |
// Every filter should receive a call to Seek(). |
EXPECT_CALL(*mocks_->demuxer(), Seek(seek_time, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->demuxer(), SetPlaybackRate(_)); |
if (audio_stream_) { |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(seek_time, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->audio_renderer(), SetPlaybackRate(_)); |
EXPECT_CALL(*mocks_->audio_renderer(), SetVolume(_)); |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
} |
if (video_stream_) { |
EXPECT_CALL(*mocks_->video_renderer(), Pause(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->video_renderer(), Flush(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->video_renderer(), Preroll(seek_time, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->video_renderer(), SetPlaybackRate(_)); |
EXPECT_CALL(*mocks_->video_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
} |
EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); |
@@ -365,18 +352,18 @@ TEST_F(PipelineTest, NeverInitializes) { |
TEST_F(PipelineTest, URLNotFound) { |
EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(PIPELINE_ERROR_URL_NOT_FOUND)); |
+ .WillOnce(RunCallback<1>(PIPELINE_ERROR_URL_NOT_FOUND)); |
EXPECT_CALL(*mocks_->demuxer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
InitializePipeline(PIPELINE_ERROR_URL_NOT_FOUND); |
} |
TEST_F(PipelineTest, NoStreams) { |
EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->demuxer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
InitializePipeline(PIPELINE_ERROR_COULD_NOT_RENDER); |
} |
@@ -670,16 +657,16 @@ TEST_F(PipelineTest, ErrorDuringSeek) { |
// Preroll() isn't called as the demuxer errors out first. |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->demuxer(), Seek(seek_time, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(PIPELINE_ERROR_READ)); |
+ .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); |
EXPECT_CALL(*mocks_->demuxer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, |
base::Unretained(&callbacks_))); |
@@ -725,16 +712,16 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) { |
// Seek() isn't called as the demuxer errors out first. |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->demuxer(), Seek(seek_time, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(PIPELINE_ERROR_READ)); |
+ .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); |
EXPECT_CALL(*mocks_->demuxer(), Stop(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, |
base::Unretained(&callbacks_))); |
@@ -814,19 +801,19 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) { |
base::Closure closure = base::Bind(&RunTimeCB, audio_time_cb_, 300, 700); |
EXPECT_CALL(*mocks_->demuxer(), Seek(seek_time, _)) |
.WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run), |
- RunPipelineStatusCB())); |
+ RunCallback<1>(PIPELINE_OK))); |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(seek_time, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->demuxer(), SetPlaybackRate(_)); |
EXPECT_CALL(*mocks_->audio_renderer(), SetPlaybackRate(_)); |
EXPECT_CALL(*mocks_->audio_renderer(), SetVolume(_)); |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); |
EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); |
@@ -969,15 +956,16 @@ class PipelineTeardownTest : public PipelineTest { |
if (state == kInitDemuxer) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunPipelineStatusCB())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), |
+ RunCallback<1>(PIPELINE_OK))); |
EXPECT_CALL(callbacks_, OnStop()); |
} else { |
status = DEMUXER_ERROR_COULD_NOT_OPEN; |
EXPECT_CALL(*mocks_->demuxer(), Initialize(_, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(status)); |
+ .WillOnce(RunCallback<1>(status)); |
} |
- EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure<0>()); |
return status; |
} |
@@ -992,54 +980,56 @@ class PipelineTeardownTest : public PipelineTest { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->audio_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunPipelineStatusCB2())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), |
+ RunCallback<2>(PIPELINE_OK))); |
EXPECT_CALL(callbacks_, OnStop()); |
} else { |
status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
EXPECT_CALL(*mocks_->audio_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _)) |
- .WillOnce(RunPipelineStatusCB2WithStatus(status)); |
+ .WillOnce(RunCallback<2>(status)); |
} |
- EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
return status; |
} |
EXPECT_CALL(*mocks_->audio_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _)) |
- .WillOnce(RunPipelineStatusCB2()); |
+ .WillOnce(RunCallback<2>(PIPELINE_OK)); |
if (state == kInitVideoRenderer) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->video_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _, _)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunPipelineStatusCB2())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), |
+ RunCallback<2>(PIPELINE_OK))); |
EXPECT_CALL(callbacks_, OnStop()); |
} else { |
status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
EXPECT_CALL(*mocks_->video_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _, _)) |
- .WillOnce(RunPipelineStatusCB2WithStatus(status)); |
+ .WillOnce(RunCallback<2>(status)); |
} |
- EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
return status; |
} |
EXPECT_CALL(*mocks_->video_renderer(), |
Initialize(_, _, _, _, _, _, _, _, _, _)) |
- .WillOnce(RunPipelineStatusCB2()); |
+ .WillOnce(RunCallback<2>(PIPELINE_OK)); |
EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kHaveMetadata)); |
// If we get here it's a successful initialization. |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(base::TimeDelta(), _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->video_renderer(), Preroll(base::TimeDelta(), _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->demuxer(), SetPlaybackRate(0.0f)); |
EXPECT_CALL(*mocks_->audio_renderer(), SetPlaybackRate(0.0f)); |
@@ -1047,9 +1037,9 @@ class PipelineTeardownTest : public PipelineTest { |
EXPECT_CALL(*mocks_->audio_renderer(), SetVolume(1.0f)); |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
EXPECT_CALL(*mocks_->video_renderer(), Play(_)) |
- .WillOnce(RunClosure()); |
+ .WillOnce(RunClosure<0>()); |
if (status == PIPELINE_OK) |
EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); |
@@ -1061,9 +1051,9 @@ class PipelineTeardownTest : public PipelineTest { |
InSequence s; |
PipelineStatus status = SetSeekExpectations(state, stop_or_error); |
- EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
EXPECT_CALL(callbacks_, OnSeek(status)); |
if (status == PIPELINE_OK) { |
@@ -1084,68 +1074,70 @@ class PipelineTeardownTest : public PipelineTest { |
if (state == kPausing) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); |
} else { |
status = PIPELINE_ERROR_READ; |
EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)) |
- .WillOnce(DoAll(SetError(pipeline_, status), RunClosure())); |
+ .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); |
} |
return status; |
} |
- EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->video_renderer(), Pause(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Pause(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Pause(_)).WillOnce(RunClosure<0>()); |
if (state == kFlushing) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); |
} else { |
status = PIPELINE_ERROR_READ; |
EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)) |
- .WillOnce(DoAll(SetError(pipeline_, status), RunClosure())); |
+ .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); |
} |
return status; |
} |
- EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->video_renderer(), Flush(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Flush(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Flush(_)).WillOnce(RunClosure<0>()); |
if (state == kSeeking) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->demuxer(), Seek(_, _)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunPipelineStatusCB())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), |
+ RunCallback<1>(PIPELINE_OK))); |
} else { |
status = PIPELINE_ERROR_READ; |
EXPECT_CALL(*mocks_->demuxer(), Seek(_, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(status)); |
+ .WillOnce(RunCallback<1>(status)); |
} |
return status; |
} |
EXPECT_CALL(*mocks_->demuxer(), Seek(_, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
if (state == kPrerolling) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(_, _)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunPipelineStatusCB())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), |
+ RunCallback<1>(PIPELINE_OK))); |
} else { |
status = PIPELINE_ERROR_READ; |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(_, _)) |
- .WillOnce(RunPipelineStatusCBWithStatus(status)); |
+ .WillOnce(RunCallback<1>(status)); |
} |
return status; |
} |
EXPECT_CALL(*mocks_->audio_renderer(), Preroll(_, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
EXPECT_CALL(*mocks_->video_renderer(), Preroll(_, _)) |
- .WillOnce(RunPipelineStatusCB()); |
+ .WillOnce(RunCallback<1>(PIPELINE_OK)); |
// Playback rate and volume are updated prior to starting. |
EXPECT_CALL(*mocks_->demuxer(), SetPlaybackRate(0.0f)); |
@@ -1156,11 +1148,11 @@ class PipelineTeardownTest : public PipelineTest { |
if (state == kStarting) { |
if (stop_or_error == kStop) { |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure())); |
+ .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); |
} else { |
status = PIPELINE_ERROR_READ; |
EXPECT_CALL(*mocks_->audio_renderer(), Play(_)) |
- .WillOnce(DoAll(SetError(pipeline_, status), RunClosure())); |
+ .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); |
} |
return status; |
} |
@@ -1172,9 +1164,9 @@ class PipelineTeardownTest : public PipelineTest { |
void DoStopOrError(StopOrError stop_or_error) { |
InSequence s; |
- EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure()); |
- EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure()); |
+ EXPECT_CALL(*mocks_->demuxer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->audio_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
+ EXPECT_CALL(*mocks_->video_renderer(), Stop(_)).WillOnce(RunClosure<0>()); |
if (stop_or_error == kStop) { |
EXPECT_CALL(callbacks_, OnStop()); |