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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "content/renderer/media/media_stream_extra_data.h" | 9 #include "content/renderer/media/media_stream_extra_data.h" |
10 #include "content/renderer/media/mock_media_stream_dependency_factory.h" | 10 #include "content/renderer/media/mock_media_stream_dependency_factory.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 ASSERT_TRUE(mock_peer_connection_); | 59 ASSERT_TRUE(mock_peer_connection_); |
60 } | 60 } |
61 | 61 |
62 // Creates a WebKit local MediaStream. | 62 // Creates a WebKit local MediaStream. |
63 WebKit::WebMediaStreamDescriptor CreateLocalMediaStream( | 63 WebKit::WebMediaStreamDescriptor CreateLocalMediaStream( |
64 const std::string& stream_label) { | 64 const std::string& stream_label) { |
65 std::string video_track_label("video-label"); | 65 std::string video_track_label("video-label"); |
66 std::string audio_track_label("audio-label"); | 66 std::string audio_track_label("audio-label"); |
67 | 67 |
68 talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream( | 68 talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream( |
69 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); | 69 mock_dependency_factory_->CreateLocalMediaStream(stream_label).get()); |
70 talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track( | 70 talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track( |
71 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label, | 71 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label, |
72 NULL)); | 72 NULL).get()); |
73 native_stream->AddTrack(audio_track); | 73 native_stream->AddTrack(audio_track.get()); |
74 talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track( | 74 talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track( |
75 mock_dependency_factory_->CreateLocalVideoTrack( | 75 mock_dependency_factory_->CreateLocalVideoTrack( |
76 video_track_label, 0)); | 76 video_track_label, 0).get()); |
77 native_stream->AddTrack(video_track); | 77 native_stream->AddTrack(video_track.get()); |
78 | 78 |
79 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources( | 79 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources( |
80 static_cast<size_t>(1)); | 80 static_cast<size_t>(1)); |
81 audio_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label), | 81 audio_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label), |
82 WebKit::WebMediaStreamSource::TypeAudio, | 82 WebKit::WebMediaStreamSource::TypeAudio, |
83 WebKit::WebString::fromUTF8("audio_track")); | 83 WebKit::WebString::fromUTF8("audio_track")); |
84 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources( | 84 WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources( |
85 static_cast<size_t>(1)); | 85 static_cast<size_t>(1)); |
86 video_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label), | 86 video_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label), |
87 WebKit::WebMediaStreamSource::TypeVideo, | 87 WebKit::WebMediaStreamSource::TypeVideo, |
88 WebKit::WebString::fromUTF8("video_track")); | 88 WebKit::WebString::fromUTF8("video_track")); |
89 WebKit::WebMediaStreamDescriptor local_stream; | 89 WebKit::WebMediaStreamDescriptor local_stream; |
90 local_stream.initialize(UTF8ToUTF16(stream_label), audio_sources, | 90 local_stream.initialize(UTF8ToUTF16(stream_label), audio_sources, |
91 video_sources); | 91 video_sources); |
92 local_stream.setExtraData(new MediaStreamExtraData(native_stream)); | 92 local_stream.setExtraData(new MediaStreamExtraData(native_stream.get())); |
93 return local_stream; | 93 return local_stream; |
94 } | 94 } |
95 | 95 |
96 // Creates a remote MediaStream and adds it to the mocked native | 96 // Creates a remote MediaStream and adds it to the mocked native |
97 // peer connection. | 97 // peer connection. |
98 talk_base::scoped_refptr<webrtc::MediaStreamInterface> | 98 talk_base::scoped_refptr<webrtc::MediaStreamInterface> |
99 AddRemoteMockMediaStream(const std::string& stream_label, | 99 AddRemoteMockMediaStream(const std::string& stream_label, |
100 const std::string& video_track_label, | 100 const std::string& video_track_label, |
101 const std::string& audio_track_label) { | 101 const std::string& audio_track_label) { |
102 // We use a local stream as a remote since for testing purposes we really | 102 // We use a local stream as a remote since for testing purposes we really |
103 // only need the MediaStreamInterface. | 103 // only need the MediaStreamInterface. |
104 talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> stream( | 104 talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> stream( |
105 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); | 105 mock_dependency_factory_->CreateLocalMediaStream(stream_label).get()); |
106 if (!video_track_label.empty()) { | 106 if (!video_track_label.empty()) { |
107 talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track( | 107 talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track( |
108 mock_dependency_factory_->CreateLocalVideoTrack( | 108 mock_dependency_factory_->CreateLocalVideoTrack( |
109 video_track_label, 0)); | 109 video_track_label, 0).get()); |
110 stream->AddTrack(video_track); | 110 stream->AddTrack(video_track.get()); |
111 } | 111 } |
112 if (!audio_track_label.empty()) { | 112 if (!audio_track_label.empty()) { |
113 talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track( | 113 talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track( |
114 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label, | 114 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label, |
115 NULL)); | 115 NULL).get()); |
116 stream->AddTrack(audio_track); | 116 stream->AddTrack(audio_track.get()); |
117 } | 117 } |
118 mock_peer_connection_->AddRemoteStream(stream); | 118 mock_peer_connection_->AddRemoteStream(stream.get()); |
119 return stream; | 119 return stream; |
120 } | 120 } |
121 | 121 |
122 scoped_ptr<MockWebPeerConnection00HandlerClient> mock_client_; | 122 scoped_ptr<MockWebPeerConnection00HandlerClient> mock_client_; |
123 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_; | 123 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_; |
124 scoped_ptr<PeerConnectionHandlerJsepUnderTest> pc_handler_; | 124 scoped_ptr<PeerConnectionHandlerJsepUnderTest> pc_handler_; |
125 | 125 |
126 // Weak reference to the mocked native peer connection implementation. | 126 // Weak reference to the mocked native peer connection implementation. |
127 MockPeerConnectionImpl* mock_peer_connection_; | 127 MockPeerConnectionImpl* mock_peer_connection_; |
128 }; | 128 }; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 WebKit::WebMediaStreamDescriptor local_stream( | 221 WebKit::WebMediaStreamDescriptor local_stream( |
222 CreateLocalMediaStream(stream_label)); | 222 CreateLocalMediaStream(stream_label)); |
223 | 223 |
224 pc_handler_->addStream(local_stream); | 224 pc_handler_->addStream(local_stream); |
225 EXPECT_EQ(stream_label, mock_peer_connection_->stream_label()); | 225 EXPECT_EQ(stream_label, mock_peer_connection_->stream_label()); |
226 | 226 |
227 // On add stream. ( Remote stream received) | 227 // On add stream. ( Remote stream received) |
228 std::string remote_stream_label("remote_stream"); | 228 std::string remote_stream_label("remote_stream"); |
229 talk_base::scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 229 talk_base::scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
230 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 230 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
231 pc_handler_->OnAddStream(remote_stream); | 231 pc_handler_->OnAddStream(remote_stream.get()); |
232 EXPECT_EQ(remote_stream_label, mock_client_->stream_label()); | 232 EXPECT_EQ(remote_stream_label, mock_client_->stream_label()); |
233 | 233 |
234 // Remove stream. | 234 // Remove stream. |
235 WebKit::WebVector<WebKit::WebMediaStreamDescriptor> empty_streams( | 235 WebKit::WebVector<WebKit::WebMediaStreamDescriptor> empty_streams( |
236 static_cast<size_t>(0)); | 236 static_cast<size_t>(0)); |
237 pc_handler_->removeStream(local_stream); | 237 pc_handler_->removeStream(local_stream); |
238 EXPECT_EQ("", mock_peer_connection_->stream_label()); | 238 EXPECT_EQ("", mock_peer_connection_->stream_label()); |
239 | 239 |
240 // On remove stream. | 240 // On remove stream. |
241 pc_handler_->OnRemoveStream(remote_stream); | 241 pc_handler_->OnRemoveStream(remote_stream.get()); |
242 EXPECT_TRUE(mock_client_->stream_label().empty()); | 242 EXPECT_TRUE(mock_client_->stream_label().empty()); |
243 | 243 |
244 // Add stream again. | 244 // Add stream again. |
245 pc_handler_->addStream(local_stream); | 245 pc_handler_->addStream(local_stream); |
246 EXPECT_EQ(stream_label, mock_peer_connection_->stream_label()); | 246 EXPECT_EQ(stream_label, mock_peer_connection_->stream_label()); |
247 | 247 |
248 // On state change. | 248 // On state change. |
249 mock_peer_connection_->SetReadyState( | 249 mock_peer_connection_->SetReadyState( |
250 webrtc::PeerConnectionInterface::kActive); | 250 webrtc::PeerConnectionInterface::kActive); |
251 webrtc::PeerConnectionObserver::StateType state = | 251 webrtc::PeerConnectionObserver::StateType state = |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 talk_base::scoped_refptr<webrtc::MediaStreamInterface> stream_1( | 292 talk_base::scoped_refptr<webrtc::MediaStreamInterface> stream_1( |
293 AddRemoteMockMediaStream(stream_label_1, video_track_label_1, | 293 AddRemoteMockMediaStream(stream_label_1, video_track_label_1, |
294 audio_track_label_1)); | 294 audio_track_label_1)); |
295 std::string stream_label_2 = "remote_stream_2"; | 295 std::string stream_label_2 = "remote_stream_2"; |
296 std::string video_track_label_2 = "remote_video_track_2"; | 296 std::string video_track_label_2 = "remote_video_track_2"; |
297 std::string audio_track_label_2 = "remote_audio_track_2"; | 297 std::string audio_track_label_2 = "remote_audio_track_2"; |
298 talk_base::scoped_refptr<webrtc::MediaStreamInterface> stream_2( | 298 talk_base::scoped_refptr<webrtc::MediaStreamInterface> stream_2( |
299 AddRemoteMockMediaStream(stream_label_2, video_track_label_2, | 299 AddRemoteMockMediaStream(stream_label_2, video_track_label_2, |
300 audio_track_label_2)); | 300 audio_track_label_2)); |
301 | 301 |
302 pc_handler_->OnAddStream(stream_1); | 302 pc_handler_->OnAddStream(stream_1.get()); |
303 EXPECT_EQ(stream_label_1, mock_client_->stream_label()); | 303 EXPECT_EQ(stream_label_1, mock_client_->stream_label()); |
304 | 304 |
305 pc_handler_->OnAddStream(stream_2); | 305 pc_handler_->OnAddStream(stream_2.get()); |
306 EXPECT_EQ(stream_label_2, mock_client_->stream_label()); | 306 EXPECT_EQ(stream_label_2, mock_client_->stream_label()); |
307 } | 307 } |
308 | 308 |
309 } // namespace content | 309 } // namespace content |
OLD | NEW |