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

Side by Side Diff: content/renderer/media/media_stream_impl_unittest.cc

Issue 63253002: Rename WebKit namespace to blink (part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 | 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "content/renderer/media/media_stream_extra_data.h" 7 #include "content/renderer/media/media_stream_extra_data.h"
8 #include "content/renderer/media/media_stream_impl.h" 8 #include "content/renderer/media/media_stream_impl.h"
9 #include "content/renderer/media/mock_media_stream_dependency_factory.h" 9 #include "content/renderer/media/mock_media_stream_dependency_factory.h"
10 #include "content/renderer/media/mock_media_stream_dispatcher.h" 10 #include "content/renderer/media/mock_media_stream_dispatcher.h"
(...skipping 16 matching lines...) Expand all
27 REQUEST_FAILED, 27 REQUEST_FAILED,
28 }; 28 };
29 29
30 MediaStreamImplUnderTest(MediaStreamDispatcher* media_stream_dispatcher, 30 MediaStreamImplUnderTest(MediaStreamDispatcher* media_stream_dispatcher,
31 MediaStreamDependencyFactory* dependency_factory) 31 MediaStreamDependencyFactory* dependency_factory)
32 : MediaStreamImpl(NULL, media_stream_dispatcher, dependency_factory), 32 : MediaStreamImpl(NULL, media_stream_dispatcher, dependency_factory),
33 state_(REQUEST_NOT_STARTED) { 33 state_(REQUEST_NOT_STARTED) {
34 } 34 }
35 35
36 void RequestUserMedia() { 36 void RequestUserMedia() {
37 WebKit::WebUserMediaRequest user_media_request; 37 blink::WebUserMediaRequest user_media_request;
38 state_ = REQUEST_NOT_COMPLETE; 38 state_ = REQUEST_NOT_COMPLETE;
39 requestUserMedia(user_media_request); 39 requestUserMedia(user_media_request);
40 } 40 }
41 41
42 virtual void CompleteGetUserMediaRequest( 42 virtual void CompleteGetUserMediaRequest(
43 const WebKit::WebMediaStream& stream, 43 const blink::WebMediaStream& stream,
44 WebKit::WebUserMediaRequest* request_info, 44 blink::WebUserMediaRequest* request_info,
45 bool request_succeeded) OVERRIDE { 45 bool request_succeeded) OVERRIDE {
46 last_generated_stream_ = stream; 46 last_generated_stream_ = stream;
47 state_ = request_succeeded ? REQUEST_SUCCEEDED : REQUEST_FAILED; 47 state_ = request_succeeded ? REQUEST_SUCCEEDED : REQUEST_FAILED;
48 } 48 }
49 49
50 virtual WebKit::WebMediaStream GetMediaStream( 50 virtual blink::WebMediaStream GetMediaStream(
51 const GURL& url) OVERRIDE { 51 const GURL& url) OVERRIDE {
52 return last_generated_stream_; 52 return last_generated_stream_;
53 } 53 }
54 54
55 using MediaStreamImpl::OnLocalMediaStreamStop; 55 using MediaStreamImpl::OnLocalMediaStreamStop;
56 using MediaStreamImpl::OnLocalSourceStop; 56 using MediaStreamImpl::OnLocalSourceStop;
57 57
58 const WebKit::WebMediaStream& last_generated_stream() { 58 const blink::WebMediaStream& last_generated_stream() {
59 return last_generated_stream_; 59 return last_generated_stream_;
60 } 60 }
61 61
62 RequestState request_state() const { return state_; } 62 RequestState request_state() const { return state_; }
63 63
64 private: 64 private:
65 WebKit::WebMediaStream last_generated_stream_; 65 blink::WebMediaStream last_generated_stream_;
66 RequestState state_; 66 RequestState state_;
67 }; 67 };
68 68
69 class MediaStreamImplTest : public ::testing::Test { 69 class MediaStreamImplTest : public ::testing::Test {
70 public: 70 public:
71 virtual void SetUp() { 71 virtual void SetUp() {
72 // Create our test object. 72 // Create our test object.
73 ms_dispatcher_.reset(new MockMediaStreamDispatcher()); 73 ms_dispatcher_.reset(new MockMediaStreamDispatcher());
74 dependency_factory_.reset(new MockMediaStreamDependencyFactory()); 74 dependency_factory_.reset(new MockMediaStreamDependencyFactory());
75 ms_impl_.reset(new MediaStreamImplUnderTest(ms_dispatcher_.get(), 75 ms_impl_.reset(new MediaStreamImplUnderTest(ms_dispatcher_.get(),
76 dependency_factory_.get())); 76 dependency_factory_.get()));
77 } 77 }
78 78
79 WebKit::WebMediaStream RequestLocalMediaStream() { 79 blink::WebMediaStream RequestLocalMediaStream() {
80 ms_impl_->RequestUserMedia(); 80 ms_impl_->RequestUserMedia();
81 FakeMediaStreamDispatcherComplete(); 81 FakeMediaStreamDispatcherComplete();
82 ChangeVideoSourceStateToLive(); 82 ChangeVideoSourceStateToLive();
83 ChangeAudioSourceStateToLive(); 83 ChangeAudioSourceStateToLive();
84 84
85 EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_SUCCEEDED, 85 EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_SUCCEEDED,
86 ms_impl_->request_state()); 86 ms_impl_->request_state());
87 87
88 WebKit::WebMediaStream desc = ms_impl_->last_generated_stream(); 88 blink::WebMediaStream desc = ms_impl_->last_generated_stream();
89 content::MediaStreamExtraData* extra_data = 89 content::MediaStreamExtraData* extra_data =
90 static_cast<content::MediaStreamExtraData*>(desc.extraData()); 90 static_cast<content::MediaStreamExtraData*>(desc.extraData());
91 if (!extra_data || !extra_data->stream().get()) { 91 if (!extra_data || !extra_data->stream().get()) {
92 ADD_FAILURE(); 92 ADD_FAILURE();
93 return desc; 93 return desc;
94 } 94 }
95 95
96 EXPECT_EQ(1u, extra_data->stream()->GetAudioTracks().size()); 96 EXPECT_EQ(1u, extra_data->stream()->GetAudioTracks().size());
97 EXPECT_EQ(1u, extra_data->stream()->GetVideoTracks().size()); 97 EXPECT_EQ(1u, extra_data->stream()->GetVideoTracks().size());
98 EXPECT_NE(extra_data->stream()->GetAudioTracks()[0]->id(), 98 EXPECT_NE(extra_data->stream()->GetAudioTracks()[0]->id(),
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 132 }
133 133
134 protected: 134 protected:
135 scoped_ptr<MockMediaStreamDispatcher> ms_dispatcher_; 135 scoped_ptr<MockMediaStreamDispatcher> ms_dispatcher_;
136 scoped_ptr<MediaStreamImplUnderTest> ms_impl_; 136 scoped_ptr<MediaStreamImplUnderTest> ms_impl_;
137 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_; 137 scoped_ptr<MockMediaStreamDependencyFactory> dependency_factory_;
138 }; 138 };
139 139
140 TEST_F(MediaStreamImplTest, GenerateMediaStream) { 140 TEST_F(MediaStreamImplTest, GenerateMediaStream) {
141 // Generate a stream with both audio and video. 141 // Generate a stream with both audio and video.
142 WebKit::WebMediaStream mixed_desc = RequestLocalMediaStream(); 142 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
143 } 143 }
144 144
145 // Test that the same source object is used if two MediaStreams are generated 145 // Test that the same source object is used if two MediaStreams are generated
146 // using the same source. 146 // using the same source.
147 TEST_F(MediaStreamImplTest, GenerateTwoMediaStreamsWithSameSource) { 147 TEST_F(MediaStreamImplTest, GenerateTwoMediaStreamsWithSameSource) {
148 WebKit::WebMediaStream desc1 = RequestLocalMediaStream(); 148 blink::WebMediaStream desc1 = RequestLocalMediaStream();
149 WebKit::WebMediaStream desc2 = RequestLocalMediaStream(); 149 blink::WebMediaStream desc2 = RequestLocalMediaStream();
150 150
151 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc1_video_tracks; 151 blink::WebVector<blink::WebMediaStreamTrack> desc1_video_tracks;
152 desc1.videoTracks(desc1_video_tracks); 152 desc1.videoTracks(desc1_video_tracks);
153 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc2_video_tracks; 153 blink::WebVector<blink::WebMediaStreamTrack> desc2_video_tracks;
154 desc2.videoTracks(desc2_video_tracks); 154 desc2.videoTracks(desc2_video_tracks);
155 EXPECT_EQ(desc1_video_tracks[0].source().id(), 155 EXPECT_EQ(desc1_video_tracks[0].source().id(),
156 desc2_video_tracks[0].source().id()); 156 desc2_video_tracks[0].source().id());
157 157
158 EXPECT_EQ(desc1_video_tracks[0].source().extraData(), 158 EXPECT_EQ(desc1_video_tracks[0].source().extraData(),
159 desc2_video_tracks[0].source().extraData()); 159 desc2_video_tracks[0].source().extraData());
160 160
161 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc1_audio_tracks; 161 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks;
162 desc1.audioTracks(desc1_audio_tracks); 162 desc1.audioTracks(desc1_audio_tracks);
163 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc2_audio_tracks; 163 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks;
164 desc2.audioTracks(desc2_audio_tracks); 164 desc2.audioTracks(desc2_audio_tracks);
165 EXPECT_EQ(desc1_audio_tracks[0].source().id(), 165 EXPECT_EQ(desc1_audio_tracks[0].source().id(),
166 desc2_audio_tracks[0].source().id()); 166 desc2_audio_tracks[0].source().id());
167 167
168 EXPECT_EQ(desc1_audio_tracks[0].source().extraData(), 168 EXPECT_EQ(desc1_audio_tracks[0].source().extraData(),
169 desc2_audio_tracks[0].source().extraData()); 169 desc2_audio_tracks[0].source().extraData());
170 } 170 }
171 171
172 // Test that the same source object is not used if two MediaStreams are 172 // Test that the same source object is not used if two MediaStreams are
173 // generated using different sources. 173 // generated using different sources.
174 TEST_F(MediaStreamImplTest, GenerateTwoMediaStreamsWithDifferentSources) { 174 TEST_F(MediaStreamImplTest, GenerateTwoMediaStreamsWithDifferentSources) {
175 WebKit::WebMediaStream desc1 = RequestLocalMediaStream(); 175 blink::WebMediaStream desc1 = RequestLocalMediaStream();
176 // Make sure another device is selected (another |session_id|) in the next 176 // Make sure another device is selected (another |session_id|) in the next
177 // gUM request. 177 // gUM request.
178 ms_dispatcher_->IncrementSessionId(); 178 ms_dispatcher_->IncrementSessionId();
179 WebKit::WebMediaStream desc2 = RequestLocalMediaStream(); 179 blink::WebMediaStream desc2 = RequestLocalMediaStream();
180 180
181 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc1_video_tracks; 181 blink::WebVector<blink::WebMediaStreamTrack> desc1_video_tracks;
182 desc1.videoTracks(desc1_video_tracks); 182 desc1.videoTracks(desc1_video_tracks);
183 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc2_video_tracks; 183 blink::WebVector<blink::WebMediaStreamTrack> desc2_video_tracks;
184 desc2.videoTracks(desc2_video_tracks); 184 desc2.videoTracks(desc2_video_tracks);
185 EXPECT_NE(desc1_video_tracks[0].source().id(), 185 EXPECT_NE(desc1_video_tracks[0].source().id(),
186 desc2_video_tracks[0].source().id()); 186 desc2_video_tracks[0].source().id());
187 187
188 EXPECT_NE(desc1_video_tracks[0].source().extraData(), 188 EXPECT_NE(desc1_video_tracks[0].source().extraData(),
189 desc2_video_tracks[0].source().extraData()); 189 desc2_video_tracks[0].source().extraData());
190 190
191 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc1_audio_tracks; 191 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks;
192 desc1.audioTracks(desc1_audio_tracks); 192 desc1.audioTracks(desc1_audio_tracks);
193 WebKit::WebVector<WebKit::WebMediaStreamTrack> desc2_audio_tracks; 193 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks;
194 desc2.audioTracks(desc2_audio_tracks); 194 desc2.audioTracks(desc2_audio_tracks);
195 EXPECT_NE(desc1_audio_tracks[0].source().id(), 195 EXPECT_NE(desc1_audio_tracks[0].source().id(),
196 desc2_audio_tracks[0].source().id()); 196 desc2_audio_tracks[0].source().id());
197 197
198 EXPECT_NE(desc1_audio_tracks[0].source().extraData(), 198 EXPECT_NE(desc1_audio_tracks[0].source().extraData(),
199 desc2_audio_tracks[0].source().extraData()); 199 desc2_audio_tracks[0].source().extraData());
200 } 200 }
201 201
202 TEST_F(MediaStreamImplTest, StopLocalMediaStream) { 202 TEST_F(MediaStreamImplTest, StopLocalMediaStream) {
203 // Generate a stream with both audio and video. 203 // Generate a stream with both audio and video.
204 WebKit::WebMediaStream mixed_desc = RequestLocalMediaStream(); 204 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
205 205
206 // Stop generated local streams. 206 // Stop generated local streams.
207 ms_impl_->OnLocalMediaStreamStop(mixed_desc.id().utf8()); 207 ms_impl_->OnLocalMediaStreamStop(mixed_desc.id().utf8());
208 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 208 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
209 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 209 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
210 } 210 }
211 211
212 // This test that a source is not stopped even if the MediaStream is stopped if 212 // This test that a source is not stopped even if the MediaStream is stopped if
213 // there are two MediaStreams using the same device. The source is stopped 213 // there are two MediaStreams using the same device. The source is stopped
214 // if there are no more MediaStreams using the device. 214 // if there are no more MediaStreams using the device.
215 TEST_F(MediaStreamImplTest, StopLocalMediaStreamWhenTwoStreamUseSameDevices) { 215 TEST_F(MediaStreamImplTest, StopLocalMediaStreamWhenTwoStreamUseSameDevices) {
216 // Generate a stream with both audio and video. 216 // Generate a stream with both audio and video.
217 WebKit::WebMediaStream desc1 = RequestLocalMediaStream(); 217 blink::WebMediaStream desc1 = RequestLocalMediaStream();
218 WebKit::WebMediaStream desc2 = RequestLocalMediaStream(); 218 blink::WebMediaStream desc2 = RequestLocalMediaStream();
219 219
220 ms_impl_->OnLocalMediaStreamStop(desc2.id().utf8()); 220 ms_impl_->OnLocalMediaStreamStop(desc2.id().utf8());
221 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter()); 221 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter());
222 EXPECT_EQ(0, ms_dispatcher_->stop_video_device_counter()); 222 EXPECT_EQ(0, ms_dispatcher_->stop_video_device_counter());
223 223
224 ms_impl_->OnLocalMediaStreamStop(desc1.id().utf8()); 224 ms_impl_->OnLocalMediaStreamStop(desc1.id().utf8());
225 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 225 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
226 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 226 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
227 } 227 }
228 228
229 // Test that the source is stopped even if there are two MediaStreams using 229 // Test that the source is stopped even if there are two MediaStreams using
230 // the same source. 230 // the same source.
231 TEST_F(MediaStreamImplTest, StopSource) { 231 TEST_F(MediaStreamImplTest, StopSource) {
232 // Generate a stream with both audio and video. 232 // Generate a stream with both audio and video.
233 WebKit::WebMediaStream desc1 = RequestLocalMediaStream(); 233 blink::WebMediaStream desc1 = RequestLocalMediaStream();
234 WebKit::WebMediaStream desc2 = RequestLocalMediaStream(); 234 blink::WebMediaStream desc2 = RequestLocalMediaStream();
235 235
236 // Stop the video source. 236 // Stop the video source.
237 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; 237 blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
238 desc1.videoTracks(video_tracks); 238 desc1.videoTracks(video_tracks);
239 ms_impl_->OnLocalSourceStop(video_tracks[0].source()); 239 ms_impl_->OnLocalSourceStop(video_tracks[0].source());
240 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter()); 240 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter());
241 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 241 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
242 242
243 // Stop the audio source. 243 // Stop the audio source.
244 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; 244 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
245 desc1.audioTracks(audio_tracks); 245 desc1.audioTracks(audio_tracks);
246 ms_impl_->OnLocalSourceStop(audio_tracks[0].source()); 246 ms_impl_->OnLocalSourceStop(audio_tracks[0].source());
247 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 247 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
248 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 248 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
249 } 249 }
250 250
251 // Test that the MediaStreams are deleted if the owning WebFrame is deleted. 251 // Test that the MediaStreams are deleted if the owning WebFrame is deleted.
252 // In the unit test the owning frame is NULL. 252 // In the unit test the owning frame is NULL.
253 TEST_F(MediaStreamImplTest, FrameWillClose) { 253 TEST_F(MediaStreamImplTest, FrameWillClose) {
254 // Test a stream with both audio and video. 254 // Test a stream with both audio and video.
255 WebKit::WebMediaStream mixed_desc = RequestLocalMediaStream(); 255 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
256 256
257 // Test that the MediaStreams are deleted if the owning WebFrame is deleted. 257 // Test that the MediaStreams are deleted if the owning WebFrame is deleted.
258 // In the unit test the owning frame is NULL. 258 // In the unit test the owning frame is NULL.
259 ms_impl_->FrameWillClose(NULL); 259 ms_impl_->FrameWillClose(NULL);
260 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 260 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
261 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 261 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
262 } 262 }
263 263
264 // This test what happens if a source to a MediaSteam fails to start. 264 // This test what happens if a source to a MediaSteam fails to start.
265 TEST_F(MediaStreamImplTest, MediaSourceFailToStart) { 265 TEST_F(MediaStreamImplTest, MediaSourceFailToStart) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 312 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
313 ChangeAudioSourceStateToLive(); 313 ChangeAudioSourceStateToLive();
314 ChangeVideoSourceStateToLive(); 314 ChangeVideoSourceStateToLive();
315 EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_NOT_COMPLETE, 315 EXPECT_EQ(MediaStreamImplUnderTest::REQUEST_NOT_COMPLETE,
316 ms_impl_->request_state()); 316 ms_impl_->request_state());
317 } 317 }
318 318
319 // This test what happens if stop is called on a stream after the frame has 319 // This test what happens if stop is called on a stream after the frame has
320 // been reloaded. 320 // been reloaded.
321 TEST_F(MediaStreamImplTest, StopStreamAfterReload) { 321 TEST_F(MediaStreamImplTest, StopStreamAfterReload) {
322 WebKit::WebMediaStream mixed_desc = RequestLocalMediaStream(); 322 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
323 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter()); 323 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
324 ms_impl_->FrameWillClose(NULL); 324 ms_impl_->FrameWillClose(NULL);
325 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 325 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
326 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 326 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
327 ms_impl_->OnLocalMediaStreamStop(mixed_desc.id().utf8()); 327 ms_impl_->OnLocalMediaStreamStop(mixed_desc.id().utf8());
328 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 328 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
329 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 329 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
330 } 330 }
331 331
332 } // namespace content 332 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_impl.cc ('k') | content/renderer/media/media_stream_registry_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698