| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include <memory> |
| 7 #include <vector> | 8 #include <vector> |
| 8 | 9 |
| 9 #include "base/bind.h" | 10 #include "base/bind.h" |
| 10 #include "base/macros.h" | 11 #include "base/macros.h" |
| 11 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 12 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 13 #include "base/test/simple_test_tick_clock.h" | 14 #include "base/test/simple_test_tick_clock.h" |
| 14 #include "media/base/gmock_callback_support.h" | 15 #include "media/base/gmock_callback_support.h" |
| 15 #include "media/base/mock_filters.h" | 16 #include "media/base/mock_filters.h" |
| 16 #include "media/base/test_helpers.h" | 17 #include "media/base/test_helpers.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 private: | 59 private: |
| 59 DISALLOW_COPY_AND_ASSIGN(CallbackHelper); | 60 DISALLOW_COPY_AND_ASSIGN(CallbackHelper); |
| 60 }; | 61 }; |
| 61 | 62 |
| 62 RendererImplTest() | 63 RendererImplTest() |
| 63 : demuxer_(new StrictMock<MockDemuxer>()), | 64 : demuxer_(new StrictMock<MockDemuxer>()), |
| 64 video_renderer_(new StrictMock<MockVideoRenderer>()), | 65 video_renderer_(new StrictMock<MockVideoRenderer>()), |
| 65 audio_renderer_(new StrictMock<MockAudioRenderer>()), | 66 audio_renderer_(new StrictMock<MockAudioRenderer>()), |
| 66 renderer_impl_( | 67 renderer_impl_( |
| 67 new RendererImpl(message_loop_.task_runner(), | 68 new RendererImpl(message_loop_.task_runner(), |
| 68 scoped_ptr<AudioRenderer>(audio_renderer_), | 69 std::unique_ptr<AudioRenderer>(audio_renderer_), |
| 69 scoped_ptr<VideoRenderer>(video_renderer_))), | 70 std::unique_ptr<VideoRenderer>(video_renderer_))), |
| 70 cdm_context_(new StrictMock<MockCdmContext>()), | 71 cdm_context_(new StrictMock<MockCdmContext>()), |
| 71 initialization_status_(PIPELINE_OK) { | 72 initialization_status_(PIPELINE_OK) { |
| 72 // SetDemuxerExpectations() adds overriding expectations for expected | 73 // SetDemuxerExpectations() adds overriding expectations for expected |
| 73 // non-NULL streams. | 74 // non-NULL streams. |
| 74 DemuxerStream* null_pointer = NULL; | 75 DemuxerStream* null_pointer = NULL; |
| 75 EXPECT_CALL(*demuxer_, GetStream(_)) | 76 EXPECT_CALL(*demuxer_, GetStream(_)) |
| 76 .WillRepeatedly(Return(null_pointer)); | 77 .WillRepeatedly(Return(null_pointer)); |
| 77 } | 78 } |
| 78 | 79 |
| 79 virtual ~RendererImplTest() { Destroy(); } | 80 virtual ~RendererImplTest() { Destroy(); } |
| 80 | 81 |
| 81 protected: | 82 protected: |
| 82 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; | 83 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; |
| 83 | 84 |
| 84 void Destroy() { | 85 void Destroy() { |
| 85 renderer_impl_.reset(); | 86 renderer_impl_.reset(); |
| 86 base::RunLoop().RunUntilIdle(); | 87 base::RunLoop().RunUntilIdle(); |
| 87 } | 88 } |
| 88 | 89 |
| 89 scoped_ptr<StrictMock<MockDemuxerStream> > CreateStream( | 90 std::unique_ptr<StrictMock<MockDemuxerStream>> CreateStream( |
| 90 DemuxerStream::Type type) { | 91 DemuxerStream::Type type) { |
| 91 scoped_ptr<StrictMock<MockDemuxerStream> > stream( | 92 std::unique_ptr<StrictMock<MockDemuxerStream>> stream( |
| 92 new StrictMock<MockDemuxerStream>(type)); | 93 new StrictMock<MockDemuxerStream>(type)); |
| 93 return stream; | 94 return stream; |
| 94 } | 95 } |
| 95 | 96 |
| 96 // Sets up expectations to allow the audio renderer to initialize. | 97 // Sets up expectations to allow the audio renderer to initialize. |
| 97 void SetAudioRendererInitializeExpectations(PipelineStatus status) { | 98 void SetAudioRendererInitializeExpectations(PipelineStatus status) { |
| 98 EXPECT_CALL(*audio_renderer_, | 99 EXPECT_CALL(*audio_renderer_, |
| 99 Initialize(audio_stream_.get(), _, _, _, _, _, _, _)) | 100 Initialize(audio_stream_.get(), _, _, _, _, _, _, _)) |
| 100 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_), | 101 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_), |
| 101 SaveArg<5>(&audio_ended_cb_), | 102 SaveArg<5>(&audio_ended_cb_), |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 base::Bind(&CallbackHelper::OnCdmAttached, | 265 base::Bind(&CallbackHelper::OnCdmAttached, |
| 265 base::Unretained(&callbacks_))); | 266 base::Unretained(&callbacks_))); |
| 266 base::RunLoop().RunUntilIdle(); | 267 base::RunLoop().RunUntilIdle(); |
| 267 } | 268 } |
| 268 | 269 |
| 269 // Fixture members. | 270 // Fixture members. |
| 270 base::MessageLoop message_loop_; | 271 base::MessageLoop message_loop_; |
| 271 StrictMock<CallbackHelper> callbacks_; | 272 StrictMock<CallbackHelper> callbacks_; |
| 272 base::SimpleTestTickClock test_tick_clock_; | 273 base::SimpleTestTickClock test_tick_clock_; |
| 273 | 274 |
| 274 scoped_ptr<StrictMock<MockDemuxer> > demuxer_; | 275 std::unique_ptr<StrictMock<MockDemuxer>> demuxer_; |
| 275 StrictMock<MockVideoRenderer>* video_renderer_; | 276 StrictMock<MockVideoRenderer>* video_renderer_; |
| 276 StrictMock<MockAudioRenderer>* audio_renderer_; | 277 StrictMock<MockAudioRenderer>* audio_renderer_; |
| 277 scoped_ptr<RendererImpl> renderer_impl_; | 278 std::unique_ptr<RendererImpl> renderer_impl_; |
| 278 scoped_ptr<StrictMock<MockCdmContext>> cdm_context_; | 279 std::unique_ptr<StrictMock<MockCdmContext>> cdm_context_; |
| 279 | 280 |
| 280 StrictMock<MockTimeSource> time_source_; | 281 StrictMock<MockTimeSource> time_source_; |
| 281 scoped_ptr<StrictMock<MockDemuxerStream> > audio_stream_; | 282 std::unique_ptr<StrictMock<MockDemuxerStream>> audio_stream_; |
| 282 scoped_ptr<StrictMock<MockDemuxerStream> > video_stream_; | 283 std::unique_ptr<StrictMock<MockDemuxerStream>> video_stream_; |
| 283 MockDemuxerStreamVector streams_; | 284 MockDemuxerStreamVector streams_; |
| 284 BufferingStateCB audio_buffering_state_cb_; | 285 BufferingStateCB audio_buffering_state_cb_; |
| 285 BufferingStateCB video_buffering_state_cb_; | 286 BufferingStateCB video_buffering_state_cb_; |
| 286 base::Closure audio_ended_cb_; | 287 base::Closure audio_ended_cb_; |
| 287 base::Closure video_ended_cb_; | 288 base::Closure video_ended_cb_; |
| 288 PipelineStatusCB audio_error_cb_; | 289 PipelineStatusCB audio_error_cb_; |
| 289 VideoDecoderConfig video_decoder_config_; | 290 VideoDecoderConfig video_decoder_config_; |
| 290 PipelineStatus initialization_status_; | 291 PipelineStatus initialization_status_; |
| 291 | 292 |
| 292 private: | 293 private: |
| (...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 .WillOnce( | 719 .WillOnce( |
| 719 SetBufferingState(&audio_buffering_state_cb_, BUFFERING_HAVE_ENOUGH)); | 720 SetBufferingState(&audio_buffering_state_cb_, BUFFERING_HAVE_ENOUGH)); |
| 720 EXPECT_CALL(*video_renderer_, StartPlayingFrom(kStartTime)); | 721 EXPECT_CALL(*video_renderer_, StartPlayingFrom(kStartTime)); |
| 721 renderer_impl_->StartPlayingFrom(kStartTime); | 722 renderer_impl_->StartPlayingFrom(kStartTime); |
| 722 | 723 |
| 723 // Nothing else should primed on the message loop. | 724 // Nothing else should primed on the message loop. |
| 724 base::RunLoop().RunUntilIdle(); | 725 base::RunLoop().RunUntilIdle(); |
| 725 } | 726 } |
| 726 | 727 |
| 727 } // namespace media | 728 } // namespace media |
| OLD | NEW |