OLD | NEW |
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 842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 class PipelineTeardownTest : public PipelineTest { | 853 class PipelineTeardownTest : public PipelineTest { |
854 public: | 854 public: |
855 enum TeardownState { | 855 enum TeardownState { |
856 kInitDemuxer, | 856 kInitDemuxer, |
857 kInitAudioRenderer, | 857 kInitAudioRenderer, |
858 kInitVideoRenderer, | 858 kInitVideoRenderer, |
859 kPausing, | 859 kPausing, |
860 kFlushing, | 860 kFlushing, |
861 kSeeking, | 861 kSeeking, |
862 kPrerolling, | 862 kPrerolling, |
863 kStarting, | |
864 kPlaying, | 863 kPlaying, |
865 }; | 864 }; |
866 | 865 |
867 enum StopOrError { | 866 enum StopOrError { |
868 kStop, | 867 kStop, |
869 kError, | 868 kError, |
870 kErrorAndStop, | 869 kErrorAndStop, |
871 }; | 870 }; |
872 | 871 |
873 PipelineTeardownTest() {} | 872 PipelineTeardownTest() {} |
874 virtual ~PipelineTeardownTest() {} | 873 virtual ~PipelineTeardownTest() {} |
875 | 874 |
876 void RunTest(TeardownState state, StopOrError stop_or_error) { | 875 void RunTest(TeardownState state, StopOrError stop_or_error) { |
877 switch (state) { | 876 switch (state) { |
878 case kInitDemuxer: | 877 case kInitDemuxer: |
879 case kInitAudioRenderer: | 878 case kInitAudioRenderer: |
880 case kInitVideoRenderer: | 879 case kInitVideoRenderer: |
881 DoInitialize(state, stop_or_error); | 880 DoInitialize(state, stop_or_error); |
882 break; | 881 break; |
883 | 882 |
884 case kPausing: | 883 case kPausing: |
885 case kFlushing: | 884 case kFlushing: |
886 case kSeeking: | 885 case kSeeking: |
887 case kPrerolling: | 886 case kPrerolling: |
888 case kStarting: | |
889 DoInitialize(state, stop_or_error); | 887 DoInitialize(state, stop_or_error); |
890 DoSeek(state, stop_or_error); | 888 DoSeek(state, stop_or_error); |
891 break; | 889 break; |
892 | 890 |
893 case kPlaying: | 891 case kPlaying: |
894 DoInitialize(state, stop_or_error); | 892 DoInitialize(state, stop_or_error); |
895 DoStopOrError(stop_or_error); | 893 DoStopOrError(stop_or_error); |
896 break; | 894 break; |
897 } | 895 } |
898 } | 896 } |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1098 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
1101 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1099 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
1102 EXPECT_CALL(*video_renderer_, Preroll(_, _)) | 1100 EXPECT_CALL(*video_renderer_, Preroll(_, _)) |
1103 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1101 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
1104 | 1102 |
1105 // Playback rate and volume are updated prior to starting. | 1103 // Playback rate and volume are updated prior to starting. |
1106 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); | 1104 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); |
1107 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); | 1105 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); |
1108 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); | 1106 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); |
1109 | 1107 |
1110 if (state == kStarting) { | |
1111 if (stop_or_error == kStop) { | |
1112 EXPECT_CALL(*audio_renderer_, Play()) | |
1113 .WillOnce(Stop(pipeline_.get(), stop_cb)); | |
1114 } else { | |
1115 status = PIPELINE_ERROR_READ; | |
1116 EXPECT_CALL(*audio_renderer_, Play()) | |
1117 .WillOnce(SetError(pipeline_.get(), status)); | |
1118 } | |
1119 return status; | |
1120 } | |
1121 | |
1122 NOTREACHED() << "State not supported: " << state; | 1108 NOTREACHED() << "State not supported: " << state; |
1123 return status; | 1109 return status; |
1124 } | 1110 } |
1125 | 1111 |
1126 void DoStopOrError(StopOrError stop_or_error) { | 1112 void DoStopOrError(StopOrError stop_or_error) { |
1127 InSequence s; | 1113 InSequence s; |
1128 | 1114 |
1129 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 1115 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
1130 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 1116 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
1131 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 1117 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
(...skipping 29 matching lines...) Expand all Loading... |
1161 RunTest(k##state, k##stop_or_error); \ | 1147 RunTest(k##state, k##stop_or_error); \ |
1162 } | 1148 } |
1163 | 1149 |
1164 INSTANTIATE_TEARDOWN_TEST(Stop, InitDemuxer); | 1150 INSTANTIATE_TEARDOWN_TEST(Stop, InitDemuxer); |
1165 INSTANTIATE_TEARDOWN_TEST(Stop, InitAudioRenderer); | 1151 INSTANTIATE_TEARDOWN_TEST(Stop, InitAudioRenderer); |
1166 INSTANTIATE_TEARDOWN_TEST(Stop, InitVideoRenderer); | 1152 INSTANTIATE_TEARDOWN_TEST(Stop, InitVideoRenderer); |
1167 INSTANTIATE_TEARDOWN_TEST(Stop, Pausing); | 1153 INSTANTIATE_TEARDOWN_TEST(Stop, Pausing); |
1168 INSTANTIATE_TEARDOWN_TEST(Stop, Flushing); | 1154 INSTANTIATE_TEARDOWN_TEST(Stop, Flushing); |
1169 INSTANTIATE_TEARDOWN_TEST(Stop, Seeking); | 1155 INSTANTIATE_TEARDOWN_TEST(Stop, Seeking); |
1170 INSTANTIATE_TEARDOWN_TEST(Stop, Prerolling); | 1156 INSTANTIATE_TEARDOWN_TEST(Stop, Prerolling); |
1171 INSTANTIATE_TEARDOWN_TEST(Stop, Starting); | |
1172 INSTANTIATE_TEARDOWN_TEST(Stop, Playing); | 1157 INSTANTIATE_TEARDOWN_TEST(Stop, Playing); |
1173 | 1158 |
1174 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); | 1159 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); |
1175 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); | 1160 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); |
1176 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); | 1161 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); |
1177 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); | 1162 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); |
1178 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); | 1163 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); |
1179 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); | 1164 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); |
1180 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); | 1165 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); |
1181 INSTANTIATE_TEARDOWN_TEST(Error, Starting); | |
1182 INSTANTIATE_TEARDOWN_TEST(Error, Playing); | 1166 INSTANTIATE_TEARDOWN_TEST(Error, Playing); |
1183 | 1167 |
1184 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); | 1168 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); |
1185 | 1169 |
1186 } // namespace media | 1170 } // namespace media |
OLD | NEW |