Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: media/base/pipeline_unittest.cc

Issue 23702007: Render inband text tracks in the media pipeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: incorporate aaron's comments (11/04) Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 base::Unretained(&callbacks_))); 115 base::Unretained(&callbacks_)));
116 message_loop_.RunUntilIdle(); 116 message_loop_.RunUntilIdle();
117 } 117 }
118 118
119 protected: 119 protected:
120 // Sets up expectations to allow the demuxer to initialize. 120 // Sets up expectations to allow the demuxer to initialize.
121 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; 121 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector;
122 void InitializeDemuxer(MockDemuxerStreamVector* streams, 122 void InitializeDemuxer(MockDemuxerStreamVector* streams,
123 const base::TimeDelta& duration) { 123 const base::TimeDelta& duration) {
124 EXPECT_CALL(callbacks_, OnDurationChange()); 124 EXPECT_CALL(callbacks_, OnDurationChange());
125 EXPECT_CALL(*demuxer_, Initialize(_, _)) 125 EXPECT_CALL(*demuxer_, Initialize(_, _, _))
126 .WillOnce(DoAll(SetDemuxerProperties(duration), 126 .WillOnce(DoAll(SetDemuxerProperties(duration),
127 RunCallback<1>(PIPELINE_OK))); 127 RunCallback<1>(PIPELINE_OK)));
128 128
129 // Configure the demuxer to return the streams. 129 // Configure the demuxer to return the streams.
130 for (size_t i = 0; i < streams->size(); ++i) { 130 for (size_t i = 0; i < streams->size(); ++i) {
131 DemuxerStream* stream = (*streams)[i]; 131 DemuxerStream* stream = (*streams)[i];
132 EXPECT_CALL(*demuxer_, GetStream(stream->type())) 132 EXPECT_CALL(*demuxer_, GetStream(stream->type()))
133 .WillRepeatedly(Return(stream)); 133 .WillRepeatedly(Return(stream));
134 } 134 }
135 } 135 }
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 331
332 // Should always get set to zero. 332 // Should always get set to zero.
333 gfx::Size size(1, 1); 333 gfx::Size size(1, 1);
334 pipeline_->GetNaturalVideoSize(&size); 334 pipeline_->GetNaturalVideoSize(&size);
335 EXPECT_EQ(0, size.width()); 335 EXPECT_EQ(0, size.width());
336 EXPECT_EQ(0, size.height()); 336 EXPECT_EQ(0, size.height());
337 } 337 }
338 338
339 TEST_F(PipelineTest, NeverInitializes) { 339 TEST_F(PipelineTest, NeverInitializes) {
340 // Don't execute the callback passed into Initialize(). 340 // Don't execute the callback passed into Initialize().
341 EXPECT_CALL(*demuxer_, Initialize(_, _)); 341 EXPECT_CALL(*demuxer_, Initialize(_, _, _));
342 342
343 // This test hangs during initialization by never calling 343 // This test hangs during initialization by never calling
344 // InitializationComplete(). StrictMock<> will ensure that the callback is 344 // InitializationComplete(). StrictMock<> will ensure that the callback is
345 // never executed. 345 // never executed.
346 pipeline_->Start( 346 pipeline_->Start(
347 filter_collection_.Pass(), 347 filter_collection_.Pass(),
348 base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)), 348 base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
349 base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)), 349 base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
350 base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)), 350 base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
351 base::Bind(&CallbackHelper::OnBufferingState, 351 base::Bind(&CallbackHelper::OnBufferingState,
352 base::Unretained(&callbacks_)), 352 base::Unretained(&callbacks_)),
353 base::Bind(&CallbackHelper::OnDurationChange, 353 base::Bind(&CallbackHelper::OnDurationChange,
354 base::Unretained(&callbacks_))); 354 base::Unretained(&callbacks_)));
355 message_loop_.RunUntilIdle(); 355 message_loop_.RunUntilIdle();
356 356
357 357
358 // Because our callback will get executed when the test tears down, we'll 358 // Because our callback will get executed when the test tears down, we'll
359 // verify that nothing has been called, then set our expectation for the call 359 // verify that nothing has been called, then set our expectation for the call
360 // made during tear down. 360 // made during tear down.
361 Mock::VerifyAndClear(&callbacks_); 361 Mock::VerifyAndClear(&callbacks_);
362 EXPECT_CALL(callbacks_, OnStart(PIPELINE_OK)); 362 EXPECT_CALL(callbacks_, OnStart(PIPELINE_OK));
363 } 363 }
364 364
365 TEST_F(PipelineTest, URLNotFound) { 365 TEST_F(PipelineTest, URLNotFound) {
366 EXPECT_CALL(*demuxer_, Initialize(_, _)) 366 EXPECT_CALL(*demuxer_, Initialize(_, _, _))
367 .WillOnce(RunCallback<1>(PIPELINE_ERROR_URL_NOT_FOUND)); 367 .WillOnce(RunCallback<1>(PIPELINE_ERROR_URL_NOT_FOUND));
368 EXPECT_CALL(*demuxer_, Stop(_)) 368 EXPECT_CALL(*demuxer_, Stop(_))
369 .WillOnce(RunClosure<0>()); 369 .WillOnce(RunClosure<0>());
370 370
371 InitializePipeline(PIPELINE_ERROR_URL_NOT_FOUND); 371 InitializePipeline(PIPELINE_ERROR_URL_NOT_FOUND);
372 } 372 }
373 373
374 TEST_F(PipelineTest, NoStreams) { 374 TEST_F(PipelineTest, NoStreams) {
375 EXPECT_CALL(*demuxer_, Initialize(_, _)) 375 EXPECT_CALL(*demuxer_, Initialize(_, _, _))
376 .WillOnce(RunCallback<1>(PIPELINE_OK)); 376 .WillOnce(RunCallback<1>(PIPELINE_OK));
377 EXPECT_CALL(*demuxer_, Stop(_)) 377 EXPECT_CALL(*demuxer_, Stop(_))
378 .WillOnce(RunClosure<0>()); 378 .WillOnce(RunClosure<0>());
379 379
380 InitializePipeline(PIPELINE_ERROR_COULD_NOT_RENDER); 380 InitializePipeline(PIPELINE_ERROR_COULD_NOT_RENDER);
381 } 381 }
382 382
383 TEST_F(PipelineTest, AudioStream) { 383 TEST_F(PipelineTest, AudioStream) {
384 CreateAudioStream(); 384 CreateAudioStream();
385 MockDemuxerStreamVector streams; 385 MockDemuxerStreamVector streams;
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 } 916 }
917 917
918 PipelineStatus SetInitializeExpectations(TeardownState state, 918 PipelineStatus SetInitializeExpectations(TeardownState state,
919 StopOrError stop_or_error) { 919 StopOrError stop_or_error) {
920 PipelineStatus status = PIPELINE_OK; 920 PipelineStatus status = PIPELINE_OK;
921 base::Closure stop_cb = base::Bind( 921 base::Closure stop_cb = base::Bind(
922 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); 922 &CallbackHelper::OnStop, base::Unretained(&callbacks_));
923 923
924 if (state == kInitDemuxer) { 924 if (state == kInitDemuxer) {
925 if (stop_or_error == kStop) { 925 if (stop_or_error == kStop) {
926 EXPECT_CALL(*demuxer_, Initialize(_, _)) 926 EXPECT_CALL(*demuxer_, Initialize(_, _, _))
927 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), 927 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
928 RunCallback<1>(PIPELINE_OK))); 928 RunCallback<1>(PIPELINE_OK)));
929 EXPECT_CALL(callbacks_, OnStop()); 929 EXPECT_CALL(callbacks_, OnStop());
930 } else { 930 } else {
931 status = DEMUXER_ERROR_COULD_NOT_OPEN; 931 status = DEMUXER_ERROR_COULD_NOT_OPEN;
932 EXPECT_CALL(*demuxer_, Initialize(_, _)) 932 EXPECT_CALL(*demuxer_, Initialize(_, _, _))
933 .WillOnce(RunCallback<1>(status)); 933 .WillOnce(RunCallback<1>(status));
934 } 934 }
935 935
936 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 936 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
937 return status; 937 return status;
938 } 938 }
939 939
940 CreateAudioStream(); 940 CreateAudioStream();
941 CreateVideoStream(); 941 CreateVideoStream();
942 MockDemuxerStreamVector streams; 942 MockDemuxerStreamVector streams;
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); 1175 INSTANTIATE_TEARDOWN_TEST(Error, Pausing);
1176 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); 1176 INSTANTIATE_TEARDOWN_TEST(Error, Flushing);
1177 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1177 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1178 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); 1178 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling);
1179 INSTANTIATE_TEARDOWN_TEST(Error, Starting); 1179 INSTANTIATE_TEARDOWN_TEST(Error, Starting);
1180 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1180 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1181 1181
1182 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); 1182 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing);
1183 1183
1184 } // namespace media 1184 } // namespace media
OLDNEW
« no previous file with comments | « media/base/pipeline.cc ('k') | media/base/stream_parser.h » ('j') | media/base/text_renderer.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698