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 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/run_loop.h" |
10 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
11 #include "base/values.h" | 12 #include "base/values.h" |
12 #include "content/child/child_process.h" | 13 #include "content/child/child_process.h" |
13 #include "content/renderer/media/media_stream.h" | 14 #include "content/renderer/media/media_stream.h" |
14 #include "content/renderer/media/media_stream_audio_source.h" | 15 #include "content/renderer/media/media_stream_audio_source.h" |
15 #include "content/renderer/media/media_stream_source.h" | 16 #include "content/renderer/media/media_stream_source.h" |
16 #include "content/renderer/media/media_stream_video_track.h" | 17 #include "content/renderer/media/media_stream_video_track.h" |
| 18 #include "content/renderer/media/mock_media_constraint_factory.h" |
17 #include "content/renderer/media/mock_media_stream_video_source.h" | 19 #include "content/renderer/media/mock_media_stream_video_source.h" |
18 #include "content/renderer/media/mock_peer_connection_impl.h" | 20 #include "content/renderer/media/mock_peer_connection_impl.h" |
19 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" | 21 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" |
20 #include "content/renderer/media/peer_connection_tracker.h" | 22 #include "content/renderer/media/peer_connection_tracker.h" |
21 #include "content/renderer/media/rtc_media_constraints.h" | 23 #include "content/renderer/media/rtc_media_constraints.h" |
22 #include "content/renderer/media/rtc_peer_connection_handler.h" | 24 #include "content/renderer/media/rtc_peer_connection_handler.h" |
23 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" | 25 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" |
24 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" | 26 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
25 #include "content/renderer/media/webrtc_audio_capturer.h" | 27 #include "content/renderer/media/webrtc_local_audio_track.h" |
26 #include "testing/gmock/include/gmock/gmock.h" | 28 #include "testing/gmock/include/gmock/gmock.h" |
27 #include "testing/gtest/include/gtest/gtest.h" | 29 #include "testing/gtest/include/gtest/gtest.h" |
28 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 30 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
29 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 31 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
30 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 32 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
31 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 33 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
32 #include "third_party/WebKit/public/platform/WebRTCConfiguration.h" | 34 #include "third_party/WebKit/public/platform/WebRTCConfiguration.h" |
33 #include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandler.h" | 35 #include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandler.h" |
34 #include "third_party/WebKit/public/platform/WebRTCDataChannelHandler.h" | 36 #include "third_party/WebKit/public/platform/WebRTCDataChannelHandler.h" |
35 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" | 37 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" |
36 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h" | 38 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h" |
37 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" | 39 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" |
38 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" | 40 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" |
39 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" | 41 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" |
40 #include "third_party/WebKit/public/platform/WebRTCStatsRequest.h" | 42 #include "third_party/WebKit/public/platform/WebRTCStatsRequest.h" |
41 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" | 43 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" |
42 #include "third_party/WebKit/public/platform/WebURL.h" | 44 #include "third_party/WebKit/public/platform/WebURL.h" |
43 #include "third_party/WebKit/public/web/WebHeap.h" | 45 #include "third_party/WebKit/public/web/WebHeap.h" |
44 #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h
" | 46 #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h
" |
45 | 47 |
46 static const char kDummySdp[] = "dummy sdp"; | 48 static const char kDummySdp[] = "dummy sdp"; |
47 static const char kDummySdpType[] = "dummy type"; | 49 static const char kDummySdpType[] = "dummy type"; |
48 | 50 |
49 using blink::WebRTCPeerConnectionHandlerClient; | 51 using blink::WebRTCPeerConnectionHandlerClient; |
50 using testing::NiceMock; | 52 using testing::NiceMock; |
51 using testing::_; | 53 using testing::_; |
52 using testing::Ref; | 54 using testing::Ref; |
| 55 using testing::SaveArg; |
53 | 56 |
54 namespace content { | 57 namespace content { |
55 | 58 |
| 59 ACTION_P2(ExitMessageLoop, message_loop, quit_closure) { |
| 60 message_loop->PostTask(FROM_HERE, quit_closure); |
| 61 } |
| 62 |
56 class MockRTCStatsResponse : public LocalRTCStatsResponse { | 63 class MockRTCStatsResponse : public LocalRTCStatsResponse { |
57 public: | 64 public: |
58 MockRTCStatsResponse() | 65 MockRTCStatsResponse() |
59 : report_count_(0), | 66 : report_count_(0), |
60 statistic_count_(0) { | 67 statistic_count_(0) { |
61 } | 68 } |
62 | 69 |
63 size_t addReport(blink::WebString type, | 70 size_t addReport(blink::WebString type, |
64 blink::WebString id, | 71 blink::WebString id, |
65 double timestamp) override { | 72 double timestamp) override { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 public: | 132 public: |
126 MOCK_METHOD1(UnregisterPeerConnection, | 133 MOCK_METHOD1(UnregisterPeerConnection, |
127 void(RTCPeerConnectionHandler* pc_handler)); | 134 void(RTCPeerConnectionHandler* pc_handler)); |
128 // TODO(jiayl): add coverage for the following methods | 135 // TODO(jiayl): add coverage for the following methods |
129 MOCK_METHOD2(TrackCreateOffer, | 136 MOCK_METHOD2(TrackCreateOffer, |
130 void(RTCPeerConnectionHandler* pc_handler, | 137 void(RTCPeerConnectionHandler* pc_handler, |
131 const RTCMediaConstraints& constraints)); | 138 const RTCMediaConstraints& constraints)); |
132 MOCK_METHOD2(TrackCreateAnswer, | 139 MOCK_METHOD2(TrackCreateAnswer, |
133 void(RTCPeerConnectionHandler* pc_handler, | 140 void(RTCPeerConnectionHandler* pc_handler, |
134 const RTCMediaConstraints& constraints)); | 141 const RTCMediaConstraints& constraints)); |
135 MOCK_METHOD3(TrackSetSessionDescription, | 142 MOCK_METHOD4(TrackSetSessionDescription, |
136 void(RTCPeerConnectionHandler* pc_handler, | 143 void(RTCPeerConnectionHandler* pc_handler, |
137 const blink::WebRTCSessionDescription& desc, | 144 const std::string& sdp, const std::string& type, |
138 Source source)); | 145 Source source)); |
139 MOCK_METHOD3( | 146 MOCK_METHOD3( |
140 TrackUpdateIce, | 147 TrackUpdateIce, |
141 void(RTCPeerConnectionHandler* pc_handler, | 148 void(RTCPeerConnectionHandler* pc_handler, |
142 const webrtc::PeerConnectionInterface::RTCConfiguration& config, | 149 const webrtc::PeerConnectionInterface::RTCConfiguration& config, |
143 const RTCMediaConstraints& options)); | 150 const RTCMediaConstraints& options)); |
144 MOCK_METHOD4(TrackAddIceCandidate, | 151 MOCK_METHOD4(TrackAddIceCandidate, |
145 void(RTCPeerConnectionHandler* pc_handler, | 152 void(RTCPeerConnectionHandler* pc_handler, |
146 const blink::WebRTCICECandidate& candidate, | 153 const blink::WebRTCICECandidate& candidate, |
147 Source source, | 154 Source source, |
(...skipping 28 matching lines...) Expand all Loading... |
176 void(RTCPeerConnectionHandler* pc_handler)); | 183 void(RTCPeerConnectionHandler* pc_handler)); |
177 MOCK_METHOD2(TrackCreateDTMFSender, | 184 MOCK_METHOD2(TrackCreateDTMFSender, |
178 void(RTCPeerConnectionHandler* pc_handler, | 185 void(RTCPeerConnectionHandler* pc_handler, |
179 const blink::WebMediaStreamTrack& track)); | 186 const blink::WebMediaStreamTrack& track)); |
180 }; | 187 }; |
181 | 188 |
182 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { | 189 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { |
183 public: | 190 public: |
184 RTCPeerConnectionHandlerUnderTest( | 191 RTCPeerConnectionHandlerUnderTest( |
185 WebRTCPeerConnectionHandlerClient* client, | 192 WebRTCPeerConnectionHandlerClient* client, |
186 PeerConnectionDependencyFactory* dependency_factory) | 193 PeerConnectionDependencyFactory* dependency_factory, |
187 : RTCPeerConnectionHandler(client, dependency_factory) { | 194 const scoped_refptr<base::SingleThreadTaskRunner>& signaling_thread) |
| 195 : RTCPeerConnectionHandler(client, dependency_factory, signaling_thread) { |
188 } | 196 } |
189 | 197 |
190 MockPeerConnectionImpl* native_peer_connection() { | 198 MockPeerConnectionImpl* native_peer_connection() { |
191 return static_cast<MockPeerConnectionImpl*>( | 199 return static_cast<MockPeerConnectionImpl*>( |
192 RTCPeerConnectionHandler::native_peer_connection()); | 200 RTCPeerConnectionHandler::native_peer_connection()); |
193 } | 201 } |
| 202 |
| 203 webrtc::PeerConnectionObserver* observer() { |
| 204 return native_peer_connection()->observer(); |
| 205 } |
194 }; | 206 }; |
195 | 207 |
196 class RTCPeerConnectionHandlerTest : public ::testing::Test { | 208 class RTCPeerConnectionHandlerTest : public ::testing::Test { |
197 public: | 209 public: |
198 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { | 210 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { |
199 child_process_.reset(new ChildProcess()); | 211 child_process_.reset(new ChildProcess()); |
200 } | 212 } |
201 | 213 |
202 void SetUp() override { | 214 void SetUp() override { |
203 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); | 215 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); |
204 mock_dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); | 216 mock_dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); |
205 pc_handler_.reset( | 217 pc_handler_.reset( |
206 new RTCPeerConnectionHandlerUnderTest(mock_client_.get(), | 218 new RTCPeerConnectionHandlerUnderTest( |
207 mock_dependency_factory_.get())); | 219 mock_client_.get(), mock_dependency_factory_.get(), |
| 220 message_loop_.message_loop_proxy())); |
208 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); | 221 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); |
209 blink::WebRTCConfiguration config; | 222 blink::WebRTCConfiguration config; |
210 blink::WebMediaConstraints constraints; | 223 blink::WebMediaConstraints constraints; |
211 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, | 224 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, |
212 mock_tracker_.get())); | 225 mock_tracker_.get())); |
213 | 226 |
214 mock_peer_connection_ = pc_handler_->native_peer_connection(); | 227 mock_peer_connection_ = pc_handler_->native_peer_connection(); |
215 ASSERT_TRUE(mock_peer_connection_); | 228 ASSERT_TRUE(mock_peer_connection_); |
216 } | 229 } |
217 | 230 |
(...skipping 20 matching lines...) Expand all Loading... |
238 video_source.initialize(blink::WebString::fromUTF8(video_track_label), | 251 video_source.initialize(blink::WebString::fromUTF8(video_track_label), |
239 blink::WebMediaStreamSource::TypeVideo, | 252 blink::WebMediaStreamSource::TypeVideo, |
240 blink::WebString::fromUTF8("video_track")); | 253 blink::WebString::fromUTF8("video_track")); |
241 MockMediaStreamVideoSource* native_video_source = | 254 MockMediaStreamVideoSource* native_video_source = |
242 new MockMediaStreamVideoSource(false); | 255 new MockMediaStreamVideoSource(false); |
243 video_source.setExtraData(native_video_source); | 256 video_source.setExtraData(native_video_source); |
244 | 257 |
245 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( | 258 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
246 static_cast<size_t>(1)); | 259 static_cast<size_t>(1)); |
247 audio_tracks[0].initialize(audio_source.id(), audio_source); | 260 audio_tracks[0].initialize(audio_source.id(), audio_source); |
248 audio_tracks[0].setExtraData( | 261 StreamDeviceInfo device_info(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock device", |
249 new MediaStreamTrack( | 262 "mock_device_id"); |
250 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, | 263 MockMediaConstraintFactory constraint_factory; |
251 NULL), | 264 const blink::WebMediaConstraints constraints = |
252 true)); | 265 constraint_factory.CreateWebMediaConstraints(); |
| 266 scoped_refptr<WebRtcAudioCapturer> capturer( |
| 267 WebRtcAudioCapturer::CreateCapturer( |
| 268 -1, device_info, constraints, nullptr, nullptr)); |
| 269 scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter( |
| 270 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, nullptr)); |
| 271 scoped_ptr<WebRtcLocalAudioTrack> native_track( |
| 272 new WebRtcLocalAudioTrack(adapter.get(), capturer, nullptr)); |
| 273 audio_tracks[0].setExtraData(native_track.release()); |
253 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( | 274 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
254 static_cast<size_t>(1)); | 275 static_cast<size_t>(1)); |
255 blink::WebMediaConstraints constraints; | 276 blink::WebMediaConstraints video_constraints; |
256 constraints.initialize(); | 277 video_constraints.initialize(); |
257 video_tracks[0] = MediaStreamVideoTrack::CreateVideoTrack( | 278 video_tracks[0] = MediaStreamVideoTrack::CreateVideoTrack( |
258 native_video_source, constraints, | 279 native_video_source, video_constraints, |
259 MediaStreamVideoSource::ConstraintsCallback(), true); | 280 MediaStreamVideoSource::ConstraintsCallback(), true); |
260 | 281 |
261 blink::WebMediaStream local_stream; | 282 blink::WebMediaStream local_stream; |
262 local_stream.initialize(base::UTF8ToUTF16(stream_label), audio_tracks, | 283 local_stream.initialize(base::UTF8ToUTF16(stream_label), audio_tracks, |
263 video_tracks); | 284 video_tracks); |
264 local_stream.setExtraData( | 285 local_stream.setExtraData( |
265 new MediaStream(local_stream)); | 286 new MediaStream(local_stream)); |
266 return local_stream; | 287 return local_stream; |
267 } | 288 } |
268 | 289 |
269 // Creates a remote MediaStream and adds it to the mocked native | 290 // Creates a remote MediaStream and adds it to the mocked native |
270 // peer connection. | 291 // peer connection. |
271 scoped_refptr<webrtc::MediaStreamInterface> | 292 scoped_refptr<webrtc::MediaStreamInterface> |
272 AddRemoteMockMediaStream(const std::string& stream_label, | 293 AddRemoteMockMediaStream(const std::string& stream_label, |
273 const std::string& video_track_label, | 294 const std::string& video_track_label, |
274 const std::string& audio_track_label) { | 295 const std::string& audio_track_label) { |
275 scoped_refptr<webrtc::MediaStreamInterface> stream( | 296 scoped_refptr<webrtc::MediaStreamInterface> stream( |
276 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); | 297 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); |
277 if (!video_track_label.empty()) { | 298 if (!video_track_label.empty()) { |
278 webrtc::VideoSourceInterface* source = NULL; | 299 webrtc::VideoSourceInterface* source = NULL; |
279 scoped_refptr<webrtc::VideoTrackInterface> video_track( | 300 scoped_refptr<webrtc::VideoTrackInterface> video_track( |
280 mock_dependency_factory_->CreateLocalVideoTrack( | 301 mock_dependency_factory_->CreateLocalVideoTrack( |
281 video_track_label, source)); | 302 video_track_label, source)); |
282 stream->AddTrack(video_track.get()); | 303 stream->AddTrack(video_track.get()); |
283 } | 304 } |
284 if (!audio_track_label.empty()) { | 305 if (!audio_track_label.empty()) { |
285 scoped_refptr<WebRtcAudioCapturer> capturer; | |
286 scoped_refptr<webrtc::AudioTrackInterface> audio_track( | 306 scoped_refptr<webrtc::AudioTrackInterface> audio_track( |
287 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, NULL)); | 307 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, NULL)); |
288 stream->AddTrack(audio_track.get()); | 308 stream->AddTrack(audio_track.get()); |
289 } | 309 } |
290 mock_peer_connection_->AddRemoteStream(stream.get()); | 310 mock_peer_connection_->AddRemoteStream(stream.get()); |
291 return stream; | 311 return stream; |
292 } | 312 } |
293 | 313 |
294 base::MessageLoop message_loop_; | 314 base::MessageLoop message_loop_; |
295 scoped_ptr<ChildProcess> child_process_; | 315 scoped_ptr<ChildProcess> child_process_; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 } | 354 } |
335 | 355 |
336 TEST_F(RTCPeerConnectionHandlerTest, setLocalDescription) { | 356 TEST_F(RTCPeerConnectionHandlerTest, setLocalDescription) { |
337 blink::WebRTCVoidRequest request; | 357 blink::WebRTCVoidRequest request; |
338 blink::WebRTCSessionDescription description; | 358 blink::WebRTCSessionDescription description; |
339 description.initialize(kDummySdpType, kDummySdp); | 359 description.initialize(kDummySdpType, kDummySdp); |
340 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called | 360 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called |
341 // before |mock_peer_connection| is called. | 361 // before |mock_peer_connection| is called. |
342 testing::InSequence sequence; | 362 testing::InSequence sequence; |
343 EXPECT_CALL(*mock_tracker_.get(), | 363 EXPECT_CALL(*mock_tracker_.get(), |
344 TrackSetSessionDescription(pc_handler_.get(), Ref(description), | 364 TrackSetSessionDescription(pc_handler_.get(), kDummySdp, |
| 365 kDummySdpType, |
345 PeerConnectionTracker::SOURCE_LOCAL)); | 366 PeerConnectionTracker::SOURCE_LOCAL)); |
346 EXPECT_CALL(*mock_peer_connection_, SetLocalDescription(_, _)); | 367 EXPECT_CALL(*mock_peer_connection_, SetLocalDescription(_, _)); |
347 | 368 |
348 pc_handler_->setLocalDescription(request, description); | 369 pc_handler_->setLocalDescription(request, description); |
349 EXPECT_EQ(description.type(), pc_handler_->localDescription().type()); | 370 EXPECT_EQ(description.type(), pc_handler_->localDescription().type()); |
350 EXPECT_EQ(description.sdp(), pc_handler_->localDescription().sdp()); | 371 EXPECT_EQ(description.sdp(), pc_handler_->localDescription().sdp()); |
351 | 372 |
352 std::string sdp_string; | 373 std::string sdp_string; |
353 ASSERT_TRUE(mock_peer_connection_->local_description() != NULL); | 374 ASSERT_TRUE(mock_peer_connection_->local_description() != NULL); |
354 EXPECT_EQ(kDummySdpType, mock_peer_connection_->local_description()->type()); | 375 EXPECT_EQ(kDummySdpType, mock_peer_connection_->local_description()->type()); |
355 mock_peer_connection_->local_description()->ToString(&sdp_string); | 376 mock_peer_connection_->local_description()->ToString(&sdp_string); |
356 EXPECT_EQ(kDummySdp, sdp_string); | 377 EXPECT_EQ(kDummySdp, sdp_string); |
357 } | 378 } |
358 | 379 |
359 TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) { | 380 TEST_F(RTCPeerConnectionHandlerTest, setRemoteDescription) { |
360 blink::WebRTCVoidRequest request; | 381 blink::WebRTCVoidRequest request; |
361 blink::WebRTCSessionDescription description; | 382 blink::WebRTCSessionDescription description; |
362 description.initialize(kDummySdpType, kDummySdp); | 383 description.initialize(kDummySdpType, kDummySdp); |
363 | 384 |
364 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called | 385 // PeerConnectionTracker::TrackSetSessionDescription is expected to be called |
365 // before |mock_peer_connection| is called. | 386 // before |mock_peer_connection| is called. |
366 testing::InSequence sequence; | 387 testing::InSequence sequence; |
367 EXPECT_CALL(*mock_tracker_.get(), | 388 EXPECT_CALL(*mock_tracker_.get(), |
368 TrackSetSessionDescription(pc_handler_.get(), Ref(description), | 389 TrackSetSessionDescription(pc_handler_.get(), kDummySdp, |
| 390 kDummySdpType, |
369 PeerConnectionTracker::SOURCE_REMOTE)); | 391 PeerConnectionTracker::SOURCE_REMOTE)); |
370 EXPECT_CALL(*mock_peer_connection_, SetRemoteDescription(_, _)); | 392 EXPECT_CALL(*mock_peer_connection_, SetRemoteDescription(_, _)); |
371 | 393 |
372 pc_handler_->setRemoteDescription(request, description); | 394 pc_handler_->setRemoteDescription(request, description); |
373 EXPECT_EQ(description.type(), pc_handler_->remoteDescription().type()); | 395 EXPECT_EQ(description.type(), pc_handler_->remoteDescription().type()); |
374 EXPECT_EQ(description.sdp(), pc_handler_->remoteDescription().sdp()); | 396 EXPECT_EQ(description.sdp(), pc_handler_->remoteDescription().sdp()); |
375 | 397 |
376 std::string sdp_string; | 398 std::string sdp_string; |
377 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); | 399 ASSERT_TRUE(mock_peer_connection_->remote_description() != NULL); |
378 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); | 400 EXPECT_EQ(kDummySdpType, mock_peer_connection_->remote_description()->type()); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 mock_peer_connection_->local_streams()->at(0)->GetAudioTracks().size()); | 482 mock_peer_connection_->local_streams()->at(0)->GetAudioTracks().size()); |
461 EXPECT_EQ( | 483 EXPECT_EQ( |
462 1u, | 484 1u, |
463 mock_peer_connection_->local_streams()->at(0)->GetVideoTracks().size()); | 485 mock_peer_connection_->local_streams()->at(0)->GetVideoTracks().size()); |
464 } | 486 } |
465 | 487 |
466 TEST_F(RTCPeerConnectionHandlerTest, GetStatsNoSelector) { | 488 TEST_F(RTCPeerConnectionHandlerTest, GetStatsNoSelector) { |
467 scoped_refptr<MockRTCStatsRequest> request( | 489 scoped_refptr<MockRTCStatsRequest> request( |
468 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 490 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
469 pc_handler_->getStats(request.get()); | 491 pc_handler_->getStats(request.get()); |
470 // Note that callback gets executed synchronously by mock. | 492 base::RunLoop().RunUntilIdle(); |
471 ASSERT_TRUE(request->result()); | 493 ASSERT_TRUE(request->result()); |
472 EXPECT_LT(1, request->result()->report_count()); | 494 EXPECT_LT(1, request->result()->report_count()); |
473 } | 495 } |
474 | 496 |
475 TEST_F(RTCPeerConnectionHandlerTest, GetStatsAfterClose) { | 497 TEST_F(RTCPeerConnectionHandlerTest, GetStatsAfterClose) { |
476 scoped_refptr<MockRTCStatsRequest> request( | 498 scoped_refptr<MockRTCStatsRequest> request( |
477 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 499 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
478 pc_handler_->stop(); | 500 pc_handler_->stop(); |
479 pc_handler_->getStats(request.get()); | 501 pc_handler_->getStats(request.get()); |
480 // Note that callback gets executed synchronously by mock. | 502 base::RunLoop().RunUntilIdle(); |
481 ASSERT_TRUE(request->result()); | 503 ASSERT_TRUE(request->result()); |
482 EXPECT_LT(1, request->result()->report_count()); | 504 EXPECT_LT(1, request->result()->report_count()); |
483 } | 505 } |
484 | 506 |
485 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { | 507 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { |
486 blink::WebMediaStream local_stream( | 508 blink::WebMediaStream local_stream( |
487 CreateLocalMediaStream("local_stream")); | 509 CreateLocalMediaStream("local_stream")); |
488 blink::WebMediaConstraints constraints; | 510 blink::WebMediaConstraints constraints; |
489 pc_handler_->addStream(local_stream, constraints); | 511 pc_handler_->addStream(local_stream, constraints); |
490 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 512 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
491 local_stream.audioTracks(tracks); | 513 local_stream.audioTracks(tracks); |
492 ASSERT_LE(1ul, tracks.size()); | 514 ASSERT_LE(1ul, tracks.size()); |
493 | 515 |
494 scoped_refptr<MockRTCStatsRequest> request( | 516 scoped_refptr<MockRTCStatsRequest> request( |
495 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 517 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
496 request->setSelector(tracks[0]); | 518 request->setSelector(tracks[0]); |
497 pc_handler_->getStats(request.get()); | 519 pc_handler_->getStats(request.get()); |
| 520 base::RunLoop().RunUntilIdle(); |
498 EXPECT_EQ(1, request->result()->report_count()); | 521 EXPECT_EQ(1, request->result()->report_count()); |
499 } | 522 } |
500 | 523 |
501 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { | 524 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { |
502 scoped_refptr<webrtc::MediaStreamInterface> stream( | 525 scoped_refptr<webrtc::MediaStreamInterface> stream( |
503 AddRemoteMockMediaStream("remote_stream", "video", "audio")); | 526 AddRemoteMockMediaStream("remote_stream", "video", "audio")); |
504 pc_handler_->OnAddStream(stream.get()); | 527 pc_handler_->observer()->OnAddStream(stream.get()); |
| 528 base::RunLoop().RunUntilIdle(); |
505 const blink::WebMediaStream& remote_stream = mock_client_->remote_stream(); | 529 const blink::WebMediaStream& remote_stream = mock_client_->remote_stream(); |
506 | 530 |
507 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 531 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
508 remote_stream.audioTracks(tracks); | 532 remote_stream.audioTracks(tracks); |
509 ASSERT_LE(1ul, tracks.size()); | 533 ASSERT_LE(1ul, tracks.size()); |
510 | 534 |
511 scoped_refptr<MockRTCStatsRequest> request( | 535 scoped_refptr<MockRTCStatsRequest> request( |
512 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 536 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
513 request->setSelector(tracks[0]); | 537 request->setSelector(tracks[0]); |
514 pc_handler_->getStats(request.get()); | 538 pc_handler_->getStats(request.get()); |
| 539 base::RunLoop().RunUntilIdle(); |
515 EXPECT_EQ(1, request->result()->report_count()); | 540 EXPECT_EQ(1, request->result()->report_count()); |
516 } | 541 } |
517 | 542 |
518 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { | 543 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { |
519 // The setup is the same as GetStatsWithLocalSelector, but the stream is not | 544 // The setup is the same as GetStatsWithLocalSelector, but the stream is not |
520 // added to the PeerConnection. | 545 // added to the PeerConnection. |
521 blink::WebMediaStream local_stream( | 546 blink::WebMediaStream local_stream( |
522 CreateLocalMediaStream("local_stream_2")); | 547 CreateLocalMediaStream("local_stream_2")); |
523 blink::WebMediaConstraints constraints; | 548 blink::WebMediaConstraints constraints; |
524 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 549 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
525 | 550 |
526 local_stream.audioTracks(tracks); | 551 local_stream.audioTracks(tracks); |
527 blink::WebMediaStreamTrack component = tracks[0]; | 552 blink::WebMediaStreamTrack component = tracks[0]; |
528 mock_peer_connection_->SetGetStatsResult(false); | 553 mock_peer_connection_->SetGetStatsResult(false); |
529 | 554 |
530 scoped_refptr<MockRTCStatsRequest> request( | 555 scoped_refptr<MockRTCStatsRequest> request( |
531 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 556 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
532 request->setSelector(component); | 557 request->setSelector(component); |
533 pc_handler_->getStats(request.get()); | 558 pc_handler_->getStats(request.get()); |
| 559 base::RunLoop().RunUntilIdle(); |
534 EXPECT_EQ(0, request->result()->report_count()); | 560 EXPECT_EQ(0, request->result()->report_count()); |
535 } | 561 } |
536 | 562 |
537 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { | 563 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { |
538 testing::InSequence sequence; | 564 testing::InSequence sequence; |
539 | 565 |
540 webrtc::PeerConnectionInterface::SignalingState new_state = | 566 webrtc::PeerConnectionInterface::SignalingState new_state = |
541 webrtc::PeerConnectionInterface::kHaveRemoteOffer; | 567 webrtc::PeerConnectionInterface::kHaveRemoteOffer; |
542 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 568 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
543 pc_handler_.get(), | 569 pc_handler_.get(), |
544 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); | 570 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); |
545 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 571 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
546 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); | 572 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); |
547 pc_handler_->OnSignalingChange(new_state); | 573 pc_handler_->observer()->OnSignalingChange(new_state); |
548 | 574 |
549 new_state = webrtc::PeerConnectionInterface::kHaveLocalPrAnswer; | 575 new_state = webrtc::PeerConnectionInterface::kHaveLocalPrAnswer; |
550 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 576 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
551 pc_handler_.get(), | 577 pc_handler_.get(), |
552 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); | 578 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); |
553 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 579 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
554 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); | 580 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); |
555 pc_handler_->OnSignalingChange(new_state); | 581 pc_handler_->observer()->OnSignalingChange(new_state); |
556 | 582 |
557 new_state = webrtc::PeerConnectionInterface::kHaveLocalOffer; | 583 new_state = webrtc::PeerConnectionInterface::kHaveLocalOffer; |
558 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 584 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
559 pc_handler_.get(), | 585 pc_handler_.get(), |
560 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); | 586 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); |
561 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 587 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
562 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); | 588 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); |
563 pc_handler_->OnSignalingChange(new_state); | 589 pc_handler_->observer()->OnSignalingChange(new_state); |
564 | 590 |
565 new_state = webrtc::PeerConnectionInterface::kHaveRemotePrAnswer; | 591 new_state = webrtc::PeerConnectionInterface::kHaveRemotePrAnswer; |
566 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 592 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
567 pc_handler_.get(), | 593 pc_handler_.get(), |
568 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); | 594 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); |
569 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 595 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
570 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); | 596 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); |
571 pc_handler_->OnSignalingChange(new_state); | 597 pc_handler_->observer()->OnSignalingChange(new_state); |
572 | 598 |
573 new_state = webrtc::PeerConnectionInterface::kClosed; | 599 new_state = webrtc::PeerConnectionInterface::kClosed; |
574 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 600 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
575 pc_handler_.get(), | 601 pc_handler_.get(), |
576 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); | 602 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); |
577 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 603 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
578 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); | 604 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); |
579 pc_handler_->OnSignalingChange(new_state); | 605 pc_handler_->observer()->OnSignalingChange(new_state); |
580 } | 606 } |
581 | 607 |
582 TEST_F(RTCPeerConnectionHandlerTest, OnIceConnectionChange) { | 608 TEST_F(RTCPeerConnectionHandlerTest, OnIceConnectionChange) { |
583 testing::InSequence sequence; | 609 testing::InSequence sequence; |
584 | 610 |
585 webrtc::PeerConnectionInterface::IceConnectionState new_state = | 611 webrtc::PeerConnectionInterface::IceConnectionState new_state = |
586 webrtc::PeerConnectionInterface::kIceConnectionNew; | 612 webrtc::PeerConnectionInterface::kIceConnectionNew; |
587 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 613 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
588 pc_handler_.get(), | 614 pc_handler_.get(), |
589 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); | 615 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); |
590 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 616 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
591 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); | 617 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); |
592 pc_handler_->OnIceConnectionChange(new_state); | 618 pc_handler_->observer()->OnIceConnectionChange(new_state); |
593 | 619 |
594 new_state = webrtc::PeerConnectionInterface::kIceConnectionChecking; | 620 new_state = webrtc::PeerConnectionInterface::kIceConnectionChecking; |
595 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 621 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
596 pc_handler_.get(), | 622 pc_handler_.get(), |
597 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); | 623 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); |
598 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 624 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
599 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); | 625 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); |
600 pc_handler_->OnIceConnectionChange(new_state); | 626 pc_handler_->observer()->OnIceConnectionChange(new_state); |
601 | 627 |
602 new_state = webrtc::PeerConnectionInterface::kIceConnectionConnected; | 628 new_state = webrtc::PeerConnectionInterface::kIceConnectionConnected; |
603 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 629 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
604 pc_handler_.get(), | 630 pc_handler_.get(), |
605 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); | 631 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); |
606 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 632 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
607 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); | 633 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); |
608 pc_handler_->OnIceConnectionChange(new_state); | 634 pc_handler_->observer()->OnIceConnectionChange(new_state); |
609 | 635 |
610 new_state = webrtc::PeerConnectionInterface::kIceConnectionCompleted; | 636 new_state = webrtc::PeerConnectionInterface::kIceConnectionCompleted; |
611 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 637 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
612 pc_handler_.get(), | 638 pc_handler_.get(), |
613 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); | 639 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); |
614 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 640 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
615 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); | 641 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); |
616 pc_handler_->OnIceConnectionChange(new_state); | 642 pc_handler_->observer()->OnIceConnectionChange(new_state); |
617 | 643 |
618 new_state = webrtc::PeerConnectionInterface::kIceConnectionFailed; | 644 new_state = webrtc::PeerConnectionInterface::kIceConnectionFailed; |
619 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 645 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
620 pc_handler_.get(), | 646 pc_handler_.get(), |
621 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); | 647 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); |
622 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 648 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
623 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); | 649 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); |
624 pc_handler_->OnIceConnectionChange(new_state); | 650 pc_handler_->observer()->OnIceConnectionChange(new_state); |
625 | 651 |
626 new_state = webrtc::PeerConnectionInterface::kIceConnectionDisconnected; | 652 new_state = webrtc::PeerConnectionInterface::kIceConnectionDisconnected; |
627 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 653 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
628 pc_handler_.get(), | 654 pc_handler_.get(), |
629 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); | 655 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); |
630 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 656 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
631 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); | 657 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); |
632 pc_handler_->OnIceConnectionChange(new_state); | 658 pc_handler_->observer()->OnIceConnectionChange(new_state); |
633 | 659 |
634 new_state = webrtc::PeerConnectionInterface::kIceConnectionClosed; | 660 new_state = webrtc::PeerConnectionInterface::kIceConnectionClosed; |
635 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 661 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
636 pc_handler_.get(), | 662 pc_handler_.get(), |
637 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); | 663 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); |
638 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 664 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
639 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); | 665 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); |
640 pc_handler_->OnIceConnectionChange(new_state); | 666 pc_handler_->observer()->OnIceConnectionChange(new_state); |
641 } | 667 } |
642 | 668 |
643 TEST_F(RTCPeerConnectionHandlerTest, OnIceGatheringChange) { | 669 TEST_F(RTCPeerConnectionHandlerTest, OnIceGatheringChange) { |
644 testing::InSequence sequence; | 670 testing::InSequence sequence; |
645 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 671 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
646 pc_handler_.get(), | 672 pc_handler_.get(), |
647 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); | 673 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); |
648 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 674 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
649 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); | 675 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); |
650 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 676 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
651 pc_handler_.get(), | 677 pc_handler_.get(), |
652 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); | 678 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); |
653 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 679 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
654 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); | 680 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); |
655 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 681 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
656 pc_handler_.get(), | 682 pc_handler_.get(), |
657 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); | 683 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); |
658 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 684 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
659 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); | 685 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); |
660 | 686 |
661 webrtc::PeerConnectionInterface::IceGatheringState new_state = | 687 webrtc::PeerConnectionInterface::IceGatheringState new_state = |
662 webrtc::PeerConnectionInterface::kIceGatheringNew; | 688 webrtc::PeerConnectionInterface::kIceGatheringNew; |
663 pc_handler_->OnIceGatheringChange(new_state); | 689 pc_handler_->observer()->OnIceGatheringChange(new_state); |
664 | 690 |
665 new_state = webrtc::PeerConnectionInterface::kIceGatheringGathering; | 691 new_state = webrtc::PeerConnectionInterface::kIceGatheringGathering; |
666 pc_handler_->OnIceGatheringChange(new_state); | 692 pc_handler_->observer()->OnIceGatheringChange(new_state); |
667 | 693 |
668 new_state = webrtc::PeerConnectionInterface::kIceGatheringComplete; | 694 new_state = webrtc::PeerConnectionInterface::kIceGatheringComplete; |
669 pc_handler_->OnIceGatheringChange(new_state); | 695 pc_handler_->observer()->OnIceGatheringChange(new_state); |
670 | 696 |
671 // Check NULL candidate after ice gathering is completed. | 697 // Check NULL candidate after ice gathering is completed. |
672 EXPECT_EQ("", mock_client_->candidate_mid()); | 698 EXPECT_EQ("", mock_client_->candidate_mid()); |
673 EXPECT_EQ(-1, mock_client_->candidate_mlineindex()); | 699 EXPECT_EQ(-1, mock_client_->candidate_mlineindex()); |
674 EXPECT_EQ("", mock_client_->candidate_sdp()); | 700 EXPECT_EQ("", mock_client_->candidate_sdp()); |
675 } | 701 } |
676 | 702 |
677 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { | 703 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { |
678 std::string remote_stream_label("remote_stream"); | 704 std::string remote_stream_label("remote_stream"); |
679 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 705 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
(...skipping 11 matching lines...) Expand all Loading... |
691 | 717 |
692 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( | 718 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( |
693 pc_handler_.get(), | 719 pc_handler_.get(), |
694 testing::Property(&blink::WebMediaStream::id, | 720 testing::Property(&blink::WebMediaStream::id, |
695 base::UTF8ToUTF16(remote_stream_label)), | 721 base::UTF8ToUTF16(remote_stream_label)), |
696 PeerConnectionTracker::SOURCE_REMOTE)); | 722 PeerConnectionTracker::SOURCE_REMOTE)); |
697 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( | 723 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( |
698 testing::Property(&blink::WebMediaStream::id, | 724 testing::Property(&blink::WebMediaStream::id, |
699 base::UTF8ToUTF16(remote_stream_label)))); | 725 base::UTF8ToUTF16(remote_stream_label)))); |
700 | 726 |
701 pc_handler_->OnAddStream(remote_stream.get()); | 727 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
702 pc_handler_->OnRemoveStream(remote_stream.get()); | 728 base::RunLoop().RunUntilIdle(); |
| 729 pc_handler_->observer()->OnRemoveStream(remote_stream.get()); |
| 730 base::RunLoop().RunUntilIdle(); |
703 } | 731 } |
704 | 732 |
705 // This test that WebKit is notified about remote track state changes. | 733 // This test that WebKit is notified about remote track state changes. |
706 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { | 734 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { |
707 std::string remote_stream_label("remote_stream"); | 735 std::string remote_stream_label("remote_stream"); |
708 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 736 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
709 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 737 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
710 | 738 |
711 testing::InSequence sequence; | 739 testing::InSequence sequence; |
712 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 740 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
713 testing::Property(&blink::WebMediaStream::id, | 741 testing::Property(&blink::WebMediaStream::id, |
714 base::UTF8ToUTF16(remote_stream_label)))); | 742 base::UTF8ToUTF16(remote_stream_label)))); |
715 pc_handler_->OnAddStream(remote_stream.get()); | 743 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 744 base::RunLoop().RunUntilIdle(); |
716 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 745 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
717 | 746 |
718 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 747 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
719 webkit_stream.audioTracks(audio_tracks); | 748 webkit_stream.audioTracks(audio_tracks); |
720 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, | 749 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
721 audio_tracks[0].source().readyState()); | 750 audio_tracks[0].source().readyState()); |
722 | 751 |
723 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 752 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
724 webkit_stream.videoTracks(video_tracks); | 753 webkit_stream.videoTracks(video_tracks); |
725 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, | 754 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
726 video_tracks[0].source().readyState()); | 755 video_tracks[0].source().readyState()); |
727 | 756 |
728 remote_stream->GetAudioTracks()[0]->set_state( | 757 remote_stream->GetAudioTracks()[0]->set_state( |
729 webrtc::MediaStreamTrackInterface::kEnded); | 758 webrtc::MediaStreamTrackInterface::kEnded); |
| 759 base::RunLoop().RunUntilIdle(); |
730 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, | 760 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
731 audio_tracks[0].source().readyState()); | 761 audio_tracks[0].source().readyState()); |
732 | 762 |
733 remote_stream->GetVideoTracks()[0]->set_state( | 763 remote_stream->GetVideoTracks()[0]->set_state( |
734 webrtc::MediaStreamTrackInterface::kEnded); | 764 webrtc::MediaStreamTrackInterface::kEnded); |
| 765 base::RunLoop().RunUntilIdle(); |
735 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, | 766 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
736 video_tracks[0].source().readyState()); | 767 video_tracks[0].source().readyState()); |
737 } | 768 } |
738 | 769 |
739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { | 770 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { |
740 std::string remote_stream_label("remote_stream"); | 771 std::string remote_stream_label("remote_stream"); |
| 772 base::RunLoop run_loop; |
| 773 |
| 774 // Grab the added media stream when it's been successfully added to the PC. |
| 775 blink::WebMediaStream webkit_stream; |
| 776 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 777 testing::Property(&blink::WebMediaStream::id, |
| 778 base::UTF8ToUTF16(remote_stream_label)))) |
| 779 .WillOnce( |
| 780 DoAll(SaveArg<0>(&webkit_stream), |
| 781 ExitMessageLoop(&message_loop_, run_loop.QuitClosure()))); |
| 782 |
741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 783 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
742 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 784 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
743 | 785 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 786 run_loop.Run(); |
745 testing::Property(&blink::WebMediaStream::id, | |
746 base::UTF8ToUTF16(remote_stream_label)))); | |
747 pc_handler_->OnAddStream(remote_stream.get()); | |
748 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | |
749 | 787 |
750 { | 788 { |
751 // Test in a small scope so that |audio_tracks| don't hold on to destroyed | 789 // Test in a small scope so that |audio_tracks| don't hold on to destroyed |
752 // source later. | 790 // source later. |
753 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 791 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
754 webkit_stream.audioTracks(audio_tracks); | 792 webkit_stream.audioTracks(audio_tracks); |
755 EXPECT_EQ(1u, audio_tracks.size()); | 793 EXPECT_EQ(1u, audio_tracks.size()); |
756 } | 794 } |
757 | 795 |
758 // Remove the Webrtc audio track from the Webrtc MediaStream. | 796 // Remove the Webrtc audio track from the Webrtc MediaStream. |
759 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = | 797 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = |
760 remote_stream->GetAudioTracks()[0].get(); | 798 remote_stream->GetAudioTracks()[0].get(); |
761 remote_stream->RemoveTrack(webrtc_track.get()); | 799 remote_stream->RemoveTrack(webrtc_track.get()); |
| 800 base::RunLoop().RunUntilIdle(); |
762 | 801 |
763 { | 802 { |
764 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; | 803 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; |
765 webkit_stream.audioTracks(modified_audio_tracks1); | 804 webkit_stream.audioTracks(modified_audio_tracks1); |
766 EXPECT_EQ(0u, modified_audio_tracks1.size()); | 805 EXPECT_EQ(0u, modified_audio_tracks1.size()); |
767 } | 806 } |
768 | 807 |
769 blink::WebHeap::collectGarbageForTesting(); | 808 blink::WebHeap::collectGarbageForTesting(); |
770 | 809 |
771 // Add the WebRtc audio track again. | 810 // Add the WebRtc audio track again. |
772 remote_stream->AddTrack(webrtc_track.get()); | 811 remote_stream->AddTrack(webrtc_track.get()); |
| 812 base::RunLoop().RunUntilIdle(); |
773 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; | 813 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; |
774 webkit_stream.audioTracks(modified_audio_tracks2); | 814 webkit_stream.audioTracks(modified_audio_tracks2); |
775 EXPECT_EQ(1u, modified_audio_tracks2.size()); | 815 EXPECT_EQ(1u, modified_audio_tracks2.size()); |
776 } | 816 } |
777 | 817 |
778 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { | 818 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { |
779 std::string remote_stream_label("remote_stream"); | 819 std::string remote_stream_label("remote_stream"); |
780 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 820 base::RunLoop run_loop; |
781 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); | |
782 | 821 |
| 822 // Grab the added media stream when it's been successfully added to the PC. |
| 823 blink::WebMediaStream webkit_stream; |
783 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 824 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
784 testing::Property(&blink::WebMediaStream::id, | 825 testing::Property(&blink::WebMediaStream::id, |
785 base::UTF8ToUTF16(remote_stream_label)))); | 826 base::UTF8ToUTF16(remote_stream_label)))) |
786 pc_handler_->OnAddStream(remote_stream.get()); | 827 .WillOnce( |
787 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 828 DoAll(SaveArg<0>(&webkit_stream), |
| 829 ExitMessageLoop(&message_loop_, run_loop.QuitClosure()))); |
| 830 |
| 831 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 832 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 833 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 834 run_loop.Run(); |
788 | 835 |
789 { | 836 { |
790 // Test in a small scope so that |video_tracks| don't hold on to destroyed | 837 // Test in a small scope so that |video_tracks| don't hold on to destroyed |
791 // source later. | 838 // source later. |
792 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 839 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
793 webkit_stream.videoTracks(video_tracks); | 840 webkit_stream.videoTracks(video_tracks); |
794 EXPECT_EQ(1u, video_tracks.size()); | 841 EXPECT_EQ(1u, video_tracks.size()); |
795 } | 842 } |
796 | 843 |
797 // Remove the Webrtc video track from the Webrtc MediaStream. | 844 // Remove the Webrtc video track from the Webrtc MediaStream. |
798 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = | 845 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = |
799 remote_stream->GetVideoTracks()[0].get(); | 846 remote_stream->GetVideoTracks()[0].get(); |
800 remote_stream->RemoveTrack(webrtc_track.get()); | 847 remote_stream->RemoveTrack(webrtc_track.get()); |
| 848 base::RunLoop().RunUntilIdle(); |
801 { | 849 { |
802 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; | 850 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; |
803 webkit_stream.videoTracks(modified_video_tracks1); | 851 webkit_stream.videoTracks(modified_video_tracks1); |
804 EXPECT_EQ(0u, modified_video_tracks1.size()); | 852 EXPECT_EQ(0u, modified_video_tracks1.size()); |
805 } | 853 } |
806 | 854 |
807 blink::WebHeap::collectGarbageForTesting(); | 855 blink::WebHeap::collectGarbageForTesting(); |
808 | 856 |
809 // Add the WebRtc video track again. | 857 // Add the WebRtc video track again. |
810 remote_stream->AddTrack(webrtc_track.get()); | 858 remote_stream->AddTrack(webrtc_track.get()); |
| 859 base::RunLoop().RunUntilIdle(); |
811 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; | 860 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; |
812 webkit_stream.videoTracks(modified_video_tracks2); | 861 webkit_stream.videoTracks(modified_video_tracks2); |
813 EXPECT_EQ(1u, modified_video_tracks2.size()); | 862 EXPECT_EQ(1u, modified_video_tracks2.size()); |
814 } | 863 } |
815 | 864 |
| 865 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddTracksFromRemoteStream) { |
| 866 std::string remote_stream_label("remote_stream"); |
| 867 base::RunLoop run_loop; |
| 868 |
| 869 // Grab the added media stream when it's been successfully added to the PC. |
| 870 blink::WebMediaStream webkit_stream; |
| 871 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 872 testing::Property(&blink::WebMediaStream::id, |
| 873 base::UTF8ToUTF16(remote_stream_label)))) |
| 874 .WillOnce( |
| 875 DoAll(SaveArg<0>(&webkit_stream), |
| 876 ExitMessageLoop(&message_loop_, run_loop.QuitClosure()))); |
| 877 |
| 878 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 879 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 880 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 881 run_loop.Run(); |
| 882 |
| 883 { |
| 884 // Test in a small scope so that |audio_tracks| don't hold on to destroyed |
| 885 // source later. |
| 886 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 887 webkit_stream.audioTracks(audio_tracks); |
| 888 EXPECT_EQ(1u, audio_tracks.size()); |
| 889 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 890 webkit_stream.videoTracks(video_tracks); |
| 891 EXPECT_EQ(1u, video_tracks.size()); |
| 892 } |
| 893 |
| 894 // Remove the Webrtc tracks from the MediaStream. |
| 895 auto audio_track = remote_stream->GetAudioTracks()[0]; |
| 896 EXPECT_TRUE(remote_stream->RemoveTrack(audio_track.get())); |
| 897 auto video_track = remote_stream->GetVideoTracks()[0]; |
| 898 EXPECT_TRUE(remote_stream->RemoveTrack(video_track.get())); |
| 899 base::RunLoop().RunUntilIdle(); |
| 900 |
| 901 { |
| 902 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks; |
| 903 webkit_stream.audioTracks(modified_audio_tracks); |
| 904 EXPECT_EQ(0u, modified_audio_tracks.size()); |
| 905 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks; |
| 906 webkit_stream.videoTracks(modified_video_tracks); |
| 907 EXPECT_EQ(0u, modified_video_tracks.size()); |
| 908 } |
| 909 |
| 910 blink::WebHeap::collectGarbageForTesting(); |
| 911 |
| 912 // Add the tracks again. |
| 913 remote_stream->AddTrack(audio_track.get()); |
| 914 base::RunLoop().RunUntilIdle(); |
| 915 remote_stream->AddTrack(video_track.get()); |
| 916 base::RunLoop().RunUntilIdle(); |
| 917 |
| 918 blink::WebHeap::collectGarbageForTesting(); |
| 919 |
| 920 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 921 webkit_stream.audioTracks(audio_tracks); |
| 922 EXPECT_EQ(1u, audio_tracks.size()); |
| 923 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 924 webkit_stream.videoTracks(video_tracks); |
| 925 EXPECT_EQ(1u, video_tracks.size()); |
| 926 } |
| 927 |
816 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { | 928 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { |
817 testing::InSequence sequence; | 929 testing::InSequence sequence; |
818 EXPECT_CALL(*mock_tracker_.get(), | 930 EXPECT_CALL(*mock_tracker_.get(), |
819 TrackAddIceCandidate(pc_handler_.get(), _, | 931 TrackAddIceCandidate(pc_handler_.get(), _, |
820 PeerConnectionTracker::SOURCE_LOCAL, true)); | 932 PeerConnectionTracker::SOURCE_LOCAL, true)); |
821 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); | 933 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); |
822 | 934 |
823 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( | 935 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( |
824 mock_dependency_factory_->CreateIceCandidate("sdpMid", 1, kDummySdp)); | 936 mock_dependency_factory_->CreateIceCandidate("sdpMid", 1, kDummySdp)); |
825 pc_handler_->OnIceCandidate(native_candidate.get()); | 937 pc_handler_->observer()->OnIceCandidate(native_candidate.get()); |
| 938 base::RunLoop().RunUntilIdle(); |
826 EXPECT_EQ("sdpMid", mock_client_->candidate_mid()); | 939 EXPECT_EQ("sdpMid", mock_client_->candidate_mid()); |
827 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); | 940 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); |
828 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); | 941 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); |
829 } | 942 } |
830 | 943 |
831 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { | 944 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { |
832 testing::InSequence sequence; | 945 testing::InSequence sequence; |
833 EXPECT_CALL(*mock_tracker_.get(), | 946 EXPECT_CALL(*mock_tracker_.get(), |
834 TrackOnRenegotiationNeeded(pc_handler_.get())); | 947 TrackOnRenegotiationNeeded(pc_handler_.get())); |
835 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); | 948 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); |
836 pc_handler_->OnRenegotiationNeeded(); | 949 pc_handler_->observer()->OnRenegotiationNeeded(); |
837 } | 950 } |
838 | 951 |
839 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { | 952 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { |
840 blink::WebString label = "d1"; | 953 blink::WebString label = "d1"; |
841 EXPECT_CALL(*mock_tracker_.get(), | 954 EXPECT_CALL(*mock_tracker_.get(), |
842 TrackCreateDataChannel(pc_handler_.get(), | 955 TrackCreateDataChannel(pc_handler_.get(), |
843 testing::NotNull(), | 956 testing::NotNull(), |
844 PeerConnectionTracker::SOURCE_LOCAL)); | 957 PeerConnectionTracker::SOURCE_LOCAL)); |
845 scoped_ptr<blink::WebRTCDataChannelHandler> channel( | 958 scoped_ptr<blink::WebRTCDataChannelHandler> channel( |
846 pc_handler_->createDataChannel("d1", blink::WebRTCDataChannelInit())); | 959 pc_handler_->createDataChannel("d1", blink::WebRTCDataChannelInit())); |
(...skipping 19 matching lines...) Expand all Loading... |
866 EXPECT_CALL(*mock_tracker_.get(), | 979 EXPECT_CALL(*mock_tracker_.get(), |
867 TrackCreateDTMFSender(pc_handler_.get(), | 980 TrackCreateDTMFSender(pc_handler_.get(), |
868 testing::Ref(tracks[0]))); | 981 testing::Ref(tracks[0]))); |
869 | 982 |
870 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( | 983 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
871 pc_handler_->createDTMFSender(tracks[0])); | 984 pc_handler_->createDTMFSender(tracks[0])); |
872 EXPECT_TRUE(sender.get()); | 985 EXPECT_TRUE(sender.get()); |
873 } | 986 } |
874 | 987 |
875 } // namespace content | 988 } // namespace content |
OLD | NEW |