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

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

Issue 407583002: Fold AudioRenderer::Stop() into the dtor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments addressed Created 6 years, 5 months 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 | Annotate | Revision Log
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 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 // We expect the time to be updated only after the seek has completed. 301 // We expect the time to be updated only after the seek has completed.
302 EXPECT_NE(seek_time, pipeline_->GetMediaTime()); 302 EXPECT_NE(seek_time, pipeline_->GetMediaTime());
303 message_loop_.RunUntilIdle(); 303 message_loop_.RunUntilIdle();
304 EXPECT_EQ(seek_time, pipeline_->GetMediaTime()); 304 EXPECT_EQ(seek_time, pipeline_->GetMediaTime());
305 } 305 }
306 306
307 void ExpectStop() { 307 void ExpectStop() {
308 if (demuxer_) 308 if (demuxer_)
309 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 309 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
310 310
311 if (audio_stream_)
312 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
313
314 if (video_stream_) 311 if (video_stream_)
315 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 312 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
316 } 313 }
317 314
318 MOCK_METHOD2(OnAddTextTrack, void(const TextTrackConfig&, 315 MOCK_METHOD2(OnAddTextTrack, void(const TextTrackConfig&,
319 const AddTextTrackDoneCB&)); 316 const AddTextTrackDoneCB&));
320 317
321 void DoOnAddTextTrack(const TextTrackConfig& config, 318 void DoOnAddTextTrack(const TextTrackConfig& config,
322 const AddTextTrackDoneCB& done_cb) { 319 const AddTextTrackDoneCB& done_cb) {
323 scoped_ptr<TextTrack> text_track(new MockTextTrack); 320 scoped_ptr<TextTrack> text_track(new MockTextTrack);
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 message_loop_.RunUntilIdle(); 672 message_loop_.RunUntilIdle();
676 673
677 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 674 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
678 675
679 // Preroll() isn't called as the demuxer errors out first. 676 // Preroll() isn't called as the demuxer errors out first.
680 EXPECT_CALL(*audio_renderer_, StopRendering()); 677 EXPECT_CALL(*audio_renderer_, StopRendering());
681 EXPECT_CALL(*audio_renderer_, Flush(_)) 678 EXPECT_CALL(*audio_renderer_, Flush(_))
682 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, 679 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
683 BUFFERING_HAVE_NOTHING), 680 BUFFERING_HAVE_NOTHING),
684 RunClosure<0>())); 681 RunClosure<0>()));
685 EXPECT_CALL(*audio_renderer_, Stop(_))
686 .WillOnce(RunClosure<0>());
687 682
688 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 683 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
689 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 684 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
690 EXPECT_CALL(*demuxer_, Stop(_)) 685 EXPECT_CALL(*demuxer_, Stop(_))
691 .WillOnce(RunClosure<0>()); 686 .WillOnce(RunClosure<0>());
692 687
693 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, 688 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek,
694 base::Unretained(&callbacks_))); 689 base::Unretained(&callbacks_)));
695 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ)); 690 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ));
696 message_loop_.RunUntilIdle(); 691 message_loop_.RunUntilIdle();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); 726 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run));
732 727
733 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 728 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
734 729
735 // Seek() isn't called as the demuxer errors out first. 730 // Seek() isn't called as the demuxer errors out first.
736 EXPECT_CALL(*audio_renderer_, StopRendering()); 731 EXPECT_CALL(*audio_renderer_, StopRendering());
737 EXPECT_CALL(*audio_renderer_, Flush(_)) 732 EXPECT_CALL(*audio_renderer_, Flush(_))
738 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, 733 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
739 BUFFERING_HAVE_NOTHING), 734 BUFFERING_HAVE_NOTHING),
740 RunClosure<0>())); 735 RunClosure<0>()));
741 EXPECT_CALL(*audio_renderer_, Stop(_))
742 .WillOnce(RunClosure<0>());
743 736
744 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 737 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
745 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 738 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
746 EXPECT_CALL(*demuxer_, Stop(_)) 739 EXPECT_CALL(*demuxer_, Stop(_))
747 .WillOnce(RunClosure<0>()); 740 .WillOnce(RunClosure<0>());
748 741
749 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, 742 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek,
750 base::Unretained(&callbacks_))); 743 base::Unretained(&callbacks_)));
751 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ)); 744 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ));
752 message_loop_.RunUntilIdle(); 745 message_loop_.RunUntilIdle();
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), 946 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
954 RunCallback<1>(PIPELINE_OK))); 947 RunCallback<1>(PIPELINE_OK)));
955 EXPECT_CALL(callbacks_, OnStop()); 948 EXPECT_CALL(callbacks_, OnStop());
956 } else { 949 } else {
957 status = PIPELINE_ERROR_INITIALIZATION_FAILED; 950 status = PIPELINE_ERROR_INITIALIZATION_FAILED;
958 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) 951 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _))
959 .WillOnce(RunCallback<1>(status)); 952 .WillOnce(RunCallback<1>(status));
960 } 953 }
961 954
962 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 955 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
963 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
964 return status; 956 return status;
965 } 957 }
966 958
967 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) 959 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _))
968 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_), 960 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_),
969 RunCallback<1>(PIPELINE_OK))); 961 RunCallback<1>(PIPELINE_OK)));
970 962
971 if (state == kInitVideoRenderer) { 963 if (state == kInitVideoRenderer) {
972 if (stop_or_error == kStop) { 964 if (stop_or_error == kStop) {
973 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 965 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
974 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), 966 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
975 RunCallback<2>(PIPELINE_OK))); 967 RunCallback<2>(PIPELINE_OK)));
976 EXPECT_CALL(callbacks_, OnStop()); 968 EXPECT_CALL(callbacks_, OnStop());
977 } else { 969 } else {
978 status = PIPELINE_ERROR_INITIALIZATION_FAILED; 970 status = PIPELINE_ERROR_INITIALIZATION_FAILED;
979 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 971 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
980 .WillOnce(RunCallback<2>(status)); 972 .WillOnce(RunCallback<2>(status));
981 } 973 }
982 974
983 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 975 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
984 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
985 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 976 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
986 return status; 977 return status;
987 } 978 }
988 979
989 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 980 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
990 .WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_), 981 .WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_),
991 RunCallback<2>(PIPELINE_OK))); 982 RunCallback<2>(PIPELINE_OK)));
992 983
993 EXPECT_CALL(callbacks_, OnMetadata(_)); 984 EXPECT_CALL(callbacks_, OnMetadata(_));
994 985
(...skipping 13 matching lines...) Expand all
1008 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); 999 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
1009 1000
1010 return status; 1001 return status;
1011 } 1002 }
1012 1003
1013 void DoSeek(TeardownState state, StopOrError stop_or_error) { 1004 void DoSeek(TeardownState state, StopOrError stop_or_error) {
1014 InSequence s; 1005 InSequence s;
1015 PipelineStatus status = SetSeekExpectations(state, stop_or_error); 1006 PipelineStatus status = SetSeekExpectations(state, stop_or_error);
1016 1007
1017 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1008 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1018 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1019 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1009 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1020 EXPECT_CALL(callbacks_, OnSeek(status)); 1010 EXPECT_CALL(callbacks_, OnSeek(status));
1021 1011
1022 if (status == PIPELINE_OK) { 1012 if (status == PIPELINE_OK) {
1023 EXPECT_CALL(callbacks_, OnStop()); 1013 EXPECT_CALL(callbacks_, OnStop());
1024 } 1014 }
1025 1015
1026 pipeline_->Seek(base::TimeDelta::FromSeconds(10), base::Bind( 1016 pipeline_->Seek(base::TimeDelta::FromSeconds(10), base::Bind(
1027 &CallbackHelper::OnSeek, base::Unretained(&callbacks_))); 1017 &CallbackHelper::OnSeek, base::Unretained(&callbacks_)));
1028 message_loop_.RunUntilIdle(); 1018 message_loop_.RunUntilIdle();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 } 1069 }
1080 1070
1081 NOTREACHED() << "State not supported: " << state; 1071 NOTREACHED() << "State not supported: " << state;
1082 return status; 1072 return status;
1083 } 1073 }
1084 1074
1085 void DoStopOrError(StopOrError stop_or_error) { 1075 void DoStopOrError(StopOrError stop_or_error) {
1086 InSequence s; 1076 InSequence s;
1087 1077
1088 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1078 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1089 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1090 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1079 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1091 1080
1092 switch (stop_or_error) { 1081 switch (stop_or_error) {
1093 case kStop: 1082 case kStop:
1094 EXPECT_CALL(callbacks_, OnStop()); 1083 EXPECT_CALL(callbacks_, OnStop());
1095 pipeline_->Stop(base::Bind( 1084 pipeline_->Stop(base::Bind(
1096 &CallbackHelper::OnStop, base::Unretained(&callbacks_))); 1085 &CallbackHelper::OnStop, base::Unretained(&callbacks_)));
1097 break; 1086 break;
1098 1087
1099 case kError: 1088 case kError:
(...skipping 30 matching lines...) Expand all
1130 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); 1119 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer);
1131 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); 1120 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer);
1132 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); 1121 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer);
1133 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); 1122 INSTANTIATE_TEARDOWN_TEST(Error, Flushing);
1134 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1123 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1135 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1124 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1136 1125
1137 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); 1126 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing);
1138 1127
1139 } // namespace media 1128 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698