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" |
17 #include "content/renderer/media/mock_media_stream_video_source.h" | 18 #include "content/renderer/media/mock_media_stream_video_source.h" |
18 #include "content/renderer/media/mock_peer_connection_impl.h" | 19 #include "content/renderer/media/mock_peer_connection_impl.h" |
19 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" | 20 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 void(RTCPeerConnectionHandler* pc_handler)); | 177 void(RTCPeerConnectionHandler* pc_handler)); |
177 MOCK_METHOD2(TrackCreateDTMFSender, | 178 MOCK_METHOD2(TrackCreateDTMFSender, |
178 void(RTCPeerConnectionHandler* pc_handler, | 179 void(RTCPeerConnectionHandler* pc_handler, |
179 const blink::WebMediaStreamTrack& track)); | 180 const blink::WebMediaStreamTrack& track)); |
180 }; | 181 }; |
181 | 182 |
182 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { | 183 class RTCPeerConnectionHandlerUnderTest : public RTCPeerConnectionHandler { |
183 public: | 184 public: |
184 RTCPeerConnectionHandlerUnderTest( | 185 RTCPeerConnectionHandlerUnderTest( |
185 WebRTCPeerConnectionHandlerClient* client, | 186 WebRTCPeerConnectionHandlerClient* client, |
186 PeerConnectionDependencyFactory* dependency_factory) | 187 PeerConnectionDependencyFactory* dependency_factory, |
187 : RTCPeerConnectionHandler(client, dependency_factory) { | 188 const scoped_refptr<base::SingleThreadTaskRunner>& signaling_thread) |
| 189 : RTCPeerConnectionHandler(client, dependency_factory, signaling_thread) { |
188 } | 190 } |
189 | 191 |
190 MockPeerConnectionImpl* native_peer_connection() { | 192 MockPeerConnectionImpl* native_peer_connection() { |
191 return static_cast<MockPeerConnectionImpl*>( | 193 return static_cast<MockPeerConnectionImpl*>( |
192 RTCPeerConnectionHandler::native_peer_connection()); | 194 RTCPeerConnectionHandler::native_peer_connection()); |
193 } | 195 } |
| 196 |
| 197 webrtc::PeerConnectionObserver* observer() { |
| 198 return native_peer_connection()->observer(); |
| 199 } |
194 }; | 200 }; |
195 | 201 |
196 class RTCPeerConnectionHandlerTest : public ::testing::Test { | 202 class RTCPeerConnectionHandlerTest : public ::testing::Test { |
197 public: | 203 public: |
198 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { | 204 RTCPeerConnectionHandlerTest() : mock_peer_connection_(NULL) { |
199 child_process_.reset(new ChildProcess()); | 205 child_process_.reset(new ChildProcess()); |
200 } | 206 } |
201 | 207 |
202 void SetUp() override { | 208 void SetUp() override { |
203 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); | 209 mock_client_.reset(new NiceMock<MockWebRTCPeerConnectionHandlerClient>()); |
204 mock_dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); | 210 mock_dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); |
205 pc_handler_.reset( | 211 pc_handler_.reset( |
206 new RTCPeerConnectionHandlerUnderTest(mock_client_.get(), | 212 new RTCPeerConnectionHandlerUnderTest( |
207 mock_dependency_factory_.get())); | 213 mock_client_.get(), mock_dependency_factory_.get(), |
| 214 message_loop_.message_loop_proxy())); |
208 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); | 215 mock_tracker_.reset(new NiceMock<MockPeerConnectionTracker>()); |
209 blink::WebRTCConfiguration config; | 216 blink::WebRTCConfiguration config; |
210 blink::WebMediaConstraints constraints; | 217 blink::WebMediaConstraints constraints; |
211 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, | 218 EXPECT_TRUE(pc_handler_->InitializeForTest(config, constraints, |
212 mock_tracker_.get())); | 219 mock_tracker_.get())); |
213 | 220 |
214 mock_peer_connection_ = pc_handler_->native_peer_connection(); | 221 mock_peer_connection_ = pc_handler_->native_peer_connection(); |
215 ASSERT_TRUE(mock_peer_connection_); | 222 ASSERT_TRUE(mock_peer_connection_); |
216 } | 223 } |
217 | 224 |
(...skipping 24 matching lines...) Expand all Loading... |
242 new MockMediaStreamVideoSource(false); | 249 new MockMediaStreamVideoSource(false); |
243 video_source.setExtraData(native_video_source); | 250 video_source.setExtraData(native_video_source); |
244 | 251 |
245 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( | 252 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
246 static_cast<size_t>(1)); | 253 static_cast<size_t>(1)); |
247 audio_tracks[0].initialize(audio_source.id(), audio_source); | 254 audio_tracks[0].initialize(audio_source.id(), audio_source); |
248 audio_tracks[0].setExtraData( | 255 audio_tracks[0].setExtraData( |
249 new MediaStreamTrack( | 256 new MediaStreamTrack( |
250 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, | 257 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, |
251 NULL), | 258 NULL), |
252 true)); | 259 true)); |
253 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( | 260 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
254 static_cast<size_t>(1)); | 261 static_cast<size_t>(1)); |
255 blink::WebMediaConstraints constraints; | 262 blink::WebMediaConstraints constraints; |
256 constraints.initialize(); | 263 constraints.initialize(); |
257 video_tracks[0] = MediaStreamVideoTrack::CreateVideoTrack( | 264 video_tracks[0] = MediaStreamVideoTrack::CreateVideoTrack( |
258 native_video_source, constraints, | 265 native_video_source, constraints, |
259 MediaStreamVideoSource::ConstraintsCallback(), true); | 266 MediaStreamVideoSource::ConstraintsCallback(), true); |
260 | 267 |
261 blink::WebMediaStream local_stream; | 268 blink::WebMediaStream local_stream; |
262 local_stream.initialize(base::UTF8ToUTF16(stream_label), audio_tracks, | 269 local_stream.initialize(base::UTF8ToUTF16(stream_label), audio_tracks, |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 mock_peer_connection_->local_streams()->at(0)->GetAudioTracks().size()); | 467 mock_peer_connection_->local_streams()->at(0)->GetAudioTracks().size()); |
461 EXPECT_EQ( | 468 EXPECT_EQ( |
462 1u, | 469 1u, |
463 mock_peer_connection_->local_streams()->at(0)->GetVideoTracks().size()); | 470 mock_peer_connection_->local_streams()->at(0)->GetVideoTracks().size()); |
464 } | 471 } |
465 | 472 |
466 TEST_F(RTCPeerConnectionHandlerTest, GetStatsNoSelector) { | 473 TEST_F(RTCPeerConnectionHandlerTest, GetStatsNoSelector) { |
467 scoped_refptr<MockRTCStatsRequest> request( | 474 scoped_refptr<MockRTCStatsRequest> request( |
468 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 475 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
469 pc_handler_->getStats(request.get()); | 476 pc_handler_->getStats(request.get()); |
470 // Note that callback gets executed synchronously by mock. | 477 base::RunLoop().RunUntilIdle(); |
471 ASSERT_TRUE(request->result()); | 478 ASSERT_TRUE(request->result()); |
472 EXPECT_LT(1, request->result()->report_count()); | 479 EXPECT_LT(1, request->result()->report_count()); |
473 } | 480 } |
474 | 481 |
475 TEST_F(RTCPeerConnectionHandlerTest, GetStatsAfterClose) { | 482 TEST_F(RTCPeerConnectionHandlerTest, GetStatsAfterClose) { |
476 scoped_refptr<MockRTCStatsRequest> request( | 483 scoped_refptr<MockRTCStatsRequest> request( |
477 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 484 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
478 pc_handler_->stop(); | 485 pc_handler_->stop(); |
479 pc_handler_->getStats(request.get()); | 486 pc_handler_->getStats(request.get()); |
480 // Note that callback gets executed synchronously by mock. | 487 base::RunLoop().RunUntilIdle(); |
481 ASSERT_TRUE(request->result()); | 488 ASSERT_TRUE(request->result()); |
482 EXPECT_LT(1, request->result()->report_count()); | 489 EXPECT_LT(1, request->result()->report_count()); |
483 } | 490 } |
484 | 491 |
485 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { | 492 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithLocalSelector) { |
486 blink::WebMediaStream local_stream( | 493 blink::WebMediaStream local_stream( |
487 CreateLocalMediaStream("local_stream")); | 494 CreateLocalMediaStream("local_stream")); |
488 blink::WebMediaConstraints constraints; | 495 blink::WebMediaConstraints constraints; |
489 pc_handler_->addStream(local_stream, constraints); | 496 pc_handler_->addStream(local_stream, constraints); |
490 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 497 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
491 local_stream.audioTracks(tracks); | 498 local_stream.audioTracks(tracks); |
492 ASSERT_LE(1ul, tracks.size()); | 499 ASSERT_LE(1ul, tracks.size()); |
493 | 500 |
494 scoped_refptr<MockRTCStatsRequest> request( | 501 scoped_refptr<MockRTCStatsRequest> request( |
495 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 502 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
496 request->setSelector(tracks[0]); | 503 request->setSelector(tracks[0]); |
497 pc_handler_->getStats(request.get()); | 504 pc_handler_->getStats(request.get()); |
| 505 base::RunLoop().RunUntilIdle(); |
498 EXPECT_EQ(1, request->result()->report_count()); | 506 EXPECT_EQ(1, request->result()->report_count()); |
499 } | 507 } |
500 | 508 |
501 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { | 509 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { |
502 scoped_refptr<webrtc::MediaStreamInterface> stream( | 510 scoped_refptr<webrtc::MediaStreamInterface> stream( |
503 AddRemoteMockMediaStream("remote_stream", "video", "audio")); | 511 AddRemoteMockMediaStream("remote_stream", "video", "audio")); |
504 pc_handler_->OnAddStream(stream.get()); | 512 pc_handler_->observer()->OnAddStream(stream.get()); |
| 513 base::RunLoop().RunUntilIdle(); |
505 const blink::WebMediaStream& remote_stream = mock_client_->remote_stream(); | 514 const blink::WebMediaStream& remote_stream = mock_client_->remote_stream(); |
506 | 515 |
507 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 516 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
508 remote_stream.audioTracks(tracks); | 517 remote_stream.audioTracks(tracks); |
509 ASSERT_LE(1ul, tracks.size()); | 518 ASSERT_LE(1ul, tracks.size()); |
510 | 519 |
511 scoped_refptr<MockRTCStatsRequest> request( | 520 scoped_refptr<MockRTCStatsRequest> request( |
512 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 521 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
513 request->setSelector(tracks[0]); | 522 request->setSelector(tracks[0]); |
514 pc_handler_->getStats(request.get()); | 523 pc_handler_->getStats(request.get()); |
| 524 base::RunLoop().RunUntilIdle(); |
515 EXPECT_EQ(1, request->result()->report_count()); | 525 EXPECT_EQ(1, request->result()->report_count()); |
516 } | 526 } |
517 | 527 |
518 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { | 528 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithBadSelector) { |
519 // The setup is the same as GetStatsWithLocalSelector, but the stream is not | 529 // The setup is the same as GetStatsWithLocalSelector, but the stream is not |
520 // added to the PeerConnection. | 530 // added to the PeerConnection. |
521 blink::WebMediaStream local_stream( | 531 blink::WebMediaStream local_stream( |
522 CreateLocalMediaStream("local_stream_2")); | 532 CreateLocalMediaStream("local_stream_2")); |
523 blink::WebMediaConstraints constraints; | 533 blink::WebMediaConstraints constraints; |
524 blink::WebVector<blink::WebMediaStreamTrack> tracks; | 534 blink::WebVector<blink::WebMediaStreamTrack> tracks; |
525 | 535 |
526 local_stream.audioTracks(tracks); | 536 local_stream.audioTracks(tracks); |
527 blink::WebMediaStreamTrack component = tracks[0]; | 537 blink::WebMediaStreamTrack component = tracks[0]; |
528 mock_peer_connection_->SetGetStatsResult(false); | 538 mock_peer_connection_->SetGetStatsResult(false); |
529 | 539 |
530 scoped_refptr<MockRTCStatsRequest> request( | 540 scoped_refptr<MockRTCStatsRequest> request( |
531 new rtc::RefCountedObject<MockRTCStatsRequest>()); | 541 new rtc::RefCountedObject<MockRTCStatsRequest>()); |
532 request->setSelector(component); | 542 request->setSelector(component); |
533 pc_handler_->getStats(request.get()); | 543 pc_handler_->getStats(request.get()); |
| 544 base::RunLoop().RunUntilIdle(); |
534 EXPECT_EQ(0, request->result()->report_count()); | 545 EXPECT_EQ(0, request->result()->report_count()); |
535 } | 546 } |
536 | 547 |
537 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { | 548 TEST_F(RTCPeerConnectionHandlerTest, OnSignalingChange) { |
538 testing::InSequence sequence; | 549 testing::InSequence sequence; |
539 | 550 |
540 webrtc::PeerConnectionInterface::SignalingState new_state = | 551 webrtc::PeerConnectionInterface::SignalingState new_state = |
541 webrtc::PeerConnectionInterface::kHaveRemoteOffer; | 552 webrtc::PeerConnectionInterface::kHaveRemoteOffer; |
542 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 553 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
543 pc_handler_.get(), | 554 pc_handler_.get(), |
544 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); | 555 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); |
545 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 556 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
546 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); | 557 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemoteOffer)); |
547 pc_handler_->OnSignalingChange(new_state); | 558 pc_handler_->observer()->OnSignalingChange(new_state); |
548 | 559 |
549 new_state = webrtc::PeerConnectionInterface::kHaveLocalPrAnswer; | 560 new_state = webrtc::PeerConnectionInterface::kHaveLocalPrAnswer; |
550 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 561 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
551 pc_handler_.get(), | 562 pc_handler_.get(), |
552 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); | 563 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); |
553 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 564 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
554 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); | 565 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalPrAnswer)); |
555 pc_handler_->OnSignalingChange(new_state); | 566 pc_handler_->observer()->OnSignalingChange(new_state); |
556 | 567 |
557 new_state = webrtc::PeerConnectionInterface::kHaveLocalOffer; | 568 new_state = webrtc::PeerConnectionInterface::kHaveLocalOffer; |
558 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 569 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
559 pc_handler_.get(), | 570 pc_handler_.get(), |
560 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); | 571 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); |
561 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 572 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
562 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); | 573 WebRTCPeerConnectionHandlerClient::SignalingStateHaveLocalOffer)); |
563 pc_handler_->OnSignalingChange(new_state); | 574 pc_handler_->observer()->OnSignalingChange(new_state); |
564 | 575 |
565 new_state = webrtc::PeerConnectionInterface::kHaveRemotePrAnswer; | 576 new_state = webrtc::PeerConnectionInterface::kHaveRemotePrAnswer; |
566 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 577 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
567 pc_handler_.get(), | 578 pc_handler_.get(), |
568 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); | 579 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); |
569 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 580 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
570 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); | 581 WebRTCPeerConnectionHandlerClient::SignalingStateHaveRemotePrAnswer)); |
571 pc_handler_->OnSignalingChange(new_state); | 582 pc_handler_->observer()->OnSignalingChange(new_state); |
572 | 583 |
573 new_state = webrtc::PeerConnectionInterface::kClosed; | 584 new_state = webrtc::PeerConnectionInterface::kClosed; |
574 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( | 585 EXPECT_CALL(*mock_tracker_.get(), TrackSignalingStateChange( |
575 pc_handler_.get(), | 586 pc_handler_.get(), |
576 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); | 587 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); |
577 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( | 588 EXPECT_CALL(*mock_client_.get(), didChangeSignalingState( |
578 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); | 589 WebRTCPeerConnectionHandlerClient::SignalingStateClosed)); |
579 pc_handler_->OnSignalingChange(new_state); | 590 pc_handler_->observer()->OnSignalingChange(new_state); |
580 } | 591 } |
581 | 592 |
582 TEST_F(RTCPeerConnectionHandlerTest, OnIceConnectionChange) { | 593 TEST_F(RTCPeerConnectionHandlerTest, OnIceConnectionChange) { |
583 testing::InSequence sequence; | 594 testing::InSequence sequence; |
584 | 595 |
585 webrtc::PeerConnectionInterface::IceConnectionState new_state = | 596 webrtc::PeerConnectionInterface::IceConnectionState new_state = |
586 webrtc::PeerConnectionInterface::kIceConnectionNew; | 597 webrtc::PeerConnectionInterface::kIceConnectionNew; |
587 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 598 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
588 pc_handler_.get(), | 599 pc_handler_.get(), |
589 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); | 600 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); |
590 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 601 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
591 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); | 602 WebRTCPeerConnectionHandlerClient::ICEConnectionStateStarting)); |
592 pc_handler_->OnIceConnectionChange(new_state); | 603 pc_handler_->observer()->OnIceConnectionChange(new_state); |
593 | 604 |
594 new_state = webrtc::PeerConnectionInterface::kIceConnectionChecking; | 605 new_state = webrtc::PeerConnectionInterface::kIceConnectionChecking; |
595 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 606 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
596 pc_handler_.get(), | 607 pc_handler_.get(), |
597 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); | 608 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); |
598 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 609 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
599 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); | 610 WebRTCPeerConnectionHandlerClient::ICEConnectionStateChecking)); |
600 pc_handler_->OnIceConnectionChange(new_state); | 611 pc_handler_->observer()->OnIceConnectionChange(new_state); |
601 | 612 |
602 new_state = webrtc::PeerConnectionInterface::kIceConnectionConnected; | 613 new_state = webrtc::PeerConnectionInterface::kIceConnectionConnected; |
603 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 614 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
604 pc_handler_.get(), | 615 pc_handler_.get(), |
605 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); | 616 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); |
606 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 617 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
607 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); | 618 WebRTCPeerConnectionHandlerClient::ICEConnectionStateConnected)); |
608 pc_handler_->OnIceConnectionChange(new_state); | 619 pc_handler_->observer()->OnIceConnectionChange(new_state); |
609 | 620 |
610 new_state = webrtc::PeerConnectionInterface::kIceConnectionCompleted; | 621 new_state = webrtc::PeerConnectionInterface::kIceConnectionCompleted; |
611 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 622 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
612 pc_handler_.get(), | 623 pc_handler_.get(), |
613 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); | 624 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); |
614 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 625 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
615 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); | 626 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted)); |
616 pc_handler_->OnIceConnectionChange(new_state); | 627 pc_handler_->observer()->OnIceConnectionChange(new_state); |
617 | 628 |
618 new_state = webrtc::PeerConnectionInterface::kIceConnectionFailed; | 629 new_state = webrtc::PeerConnectionInterface::kIceConnectionFailed; |
619 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 630 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
620 pc_handler_.get(), | 631 pc_handler_.get(), |
621 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); | 632 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); |
622 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 633 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
623 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); | 634 WebRTCPeerConnectionHandlerClient::ICEConnectionStateFailed)); |
624 pc_handler_->OnIceConnectionChange(new_state); | 635 pc_handler_->observer()->OnIceConnectionChange(new_state); |
625 | 636 |
626 new_state = webrtc::PeerConnectionInterface::kIceConnectionDisconnected; | 637 new_state = webrtc::PeerConnectionInterface::kIceConnectionDisconnected; |
627 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 638 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
628 pc_handler_.get(), | 639 pc_handler_.get(), |
629 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); | 640 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); |
630 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 641 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
631 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); | 642 WebRTCPeerConnectionHandlerClient::ICEConnectionStateDisconnected)); |
632 pc_handler_->OnIceConnectionChange(new_state); | 643 pc_handler_->observer()->OnIceConnectionChange(new_state); |
633 | 644 |
634 new_state = webrtc::PeerConnectionInterface::kIceConnectionClosed; | 645 new_state = webrtc::PeerConnectionInterface::kIceConnectionClosed; |
635 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( | 646 EXPECT_CALL(*mock_tracker_.get(), TrackIceConnectionStateChange( |
636 pc_handler_.get(), | 647 pc_handler_.get(), |
637 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); | 648 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); |
638 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( | 649 EXPECT_CALL(*mock_client_.get(), didChangeICEConnectionState( |
639 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); | 650 WebRTCPeerConnectionHandlerClient::ICEConnectionStateClosed)); |
640 pc_handler_->OnIceConnectionChange(new_state); | 651 pc_handler_->observer()->OnIceConnectionChange(new_state); |
641 } | 652 } |
642 | 653 |
643 TEST_F(RTCPeerConnectionHandlerTest, OnIceGatheringChange) { | 654 TEST_F(RTCPeerConnectionHandlerTest, OnIceGatheringChange) { |
644 testing::InSequence sequence; | 655 testing::InSequence sequence; |
645 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 656 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
646 pc_handler_.get(), | 657 pc_handler_.get(), |
647 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); | 658 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); |
648 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 659 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
649 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); | 660 WebRTCPeerConnectionHandlerClient::ICEGatheringStateNew)); |
650 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 661 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
651 pc_handler_.get(), | 662 pc_handler_.get(), |
652 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); | 663 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); |
653 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 664 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
654 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); | 665 WebRTCPeerConnectionHandlerClient::ICEGatheringStateGathering)); |
655 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( | 666 EXPECT_CALL(*mock_tracker_.get(), TrackIceGatheringStateChange( |
656 pc_handler_.get(), | 667 pc_handler_.get(), |
657 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); | 668 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); |
658 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( | 669 EXPECT_CALL(*mock_client_.get(), didChangeICEGatheringState( |
659 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); | 670 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); |
660 | 671 |
661 webrtc::PeerConnectionInterface::IceGatheringState new_state = | 672 webrtc::PeerConnectionInterface::IceGatheringState new_state = |
662 webrtc::PeerConnectionInterface::kIceGatheringNew; | 673 webrtc::PeerConnectionInterface::kIceGatheringNew; |
663 pc_handler_->OnIceGatheringChange(new_state); | 674 pc_handler_->observer()->OnIceGatheringChange(new_state); |
664 | 675 |
665 new_state = webrtc::PeerConnectionInterface::kIceGatheringGathering; | 676 new_state = webrtc::PeerConnectionInterface::kIceGatheringGathering; |
666 pc_handler_->OnIceGatheringChange(new_state); | 677 pc_handler_->observer()->OnIceGatheringChange(new_state); |
667 | 678 |
668 new_state = webrtc::PeerConnectionInterface::kIceGatheringComplete; | 679 new_state = webrtc::PeerConnectionInterface::kIceGatheringComplete; |
669 pc_handler_->OnIceGatheringChange(new_state); | 680 pc_handler_->observer()->OnIceGatheringChange(new_state); |
670 | 681 |
671 // Check NULL candidate after ice gathering is completed. | 682 // Check NULL candidate after ice gathering is completed. |
672 EXPECT_EQ("", mock_client_->candidate_mid()); | 683 EXPECT_EQ("", mock_client_->candidate_mid()); |
673 EXPECT_EQ(-1, mock_client_->candidate_mlineindex()); | 684 EXPECT_EQ(-1, mock_client_->candidate_mlineindex()); |
674 EXPECT_EQ("", mock_client_->candidate_sdp()); | 685 EXPECT_EQ("", mock_client_->candidate_sdp()); |
675 } | 686 } |
676 | 687 |
677 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { | 688 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { |
678 std::string remote_stream_label("remote_stream"); | 689 std::string remote_stream_label("remote_stream"); |
679 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 690 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
(...skipping 11 matching lines...) Expand all Loading... |
691 | 702 |
692 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( | 703 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( |
693 pc_handler_.get(), | 704 pc_handler_.get(), |
694 testing::Property(&blink::WebMediaStream::id, | 705 testing::Property(&blink::WebMediaStream::id, |
695 base::UTF8ToUTF16(remote_stream_label)), | 706 base::UTF8ToUTF16(remote_stream_label)), |
696 PeerConnectionTracker::SOURCE_REMOTE)); | 707 PeerConnectionTracker::SOURCE_REMOTE)); |
697 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( | 708 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( |
698 testing::Property(&blink::WebMediaStream::id, | 709 testing::Property(&blink::WebMediaStream::id, |
699 base::UTF8ToUTF16(remote_stream_label)))); | 710 base::UTF8ToUTF16(remote_stream_label)))); |
700 | 711 |
701 pc_handler_->OnAddStream(remote_stream.get()); | 712 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
702 pc_handler_->OnRemoveStream(remote_stream.get()); | 713 base::RunLoop().RunUntilIdle(); |
| 714 pc_handler_->observer()->OnRemoveStream(remote_stream.get()); |
| 715 base::RunLoop().RunUntilIdle(); |
703 } | 716 } |
704 | 717 |
705 // This test that WebKit is notified about remote track state changes. | 718 // This test that WebKit is notified about remote track state changes. |
706 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { | 719 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { |
707 std::string remote_stream_label("remote_stream"); | 720 std::string remote_stream_label("remote_stream"); |
708 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 721 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
709 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 722 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
710 | 723 |
711 testing::InSequence sequence; | 724 testing::InSequence sequence; |
712 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 725 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
713 testing::Property(&blink::WebMediaStream::id, | 726 testing::Property(&blink::WebMediaStream::id, |
714 base::UTF8ToUTF16(remote_stream_label)))); | 727 base::UTF8ToUTF16(remote_stream_label)))); |
715 pc_handler_->OnAddStream(remote_stream.get()); | 728 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 729 base::RunLoop().RunUntilIdle(); |
716 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 730 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
717 | 731 |
718 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 732 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
719 webkit_stream.audioTracks(audio_tracks); | 733 webkit_stream.audioTracks(audio_tracks); |
720 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, | 734 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
721 audio_tracks[0].source().readyState()); | 735 audio_tracks[0].source().readyState()); |
722 | 736 |
723 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 737 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
724 webkit_stream.videoTracks(video_tracks); | 738 webkit_stream.videoTracks(video_tracks); |
725 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, | 739 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
726 video_tracks[0].source().readyState()); | 740 video_tracks[0].source().readyState()); |
727 | 741 |
728 remote_stream->GetAudioTracks()[0]->set_state( | 742 remote_stream->GetAudioTracks()[0]->set_state( |
729 webrtc::MediaStreamTrackInterface::kEnded); | 743 webrtc::MediaStreamTrackInterface::kEnded); |
| 744 base::RunLoop().RunUntilIdle(); |
730 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, | 745 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
731 audio_tracks[0].source().readyState()); | 746 audio_tracks[0].source().readyState()); |
732 | 747 |
733 remote_stream->GetVideoTracks()[0]->set_state( | 748 remote_stream->GetVideoTracks()[0]->set_state( |
734 webrtc::MediaStreamTrackInterface::kEnded); | 749 webrtc::MediaStreamTrackInterface::kEnded); |
| 750 base::RunLoop().RunUntilIdle(); |
735 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, | 751 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, |
736 video_tracks[0].source().readyState()); | 752 video_tracks[0].source().readyState()); |
737 } | 753 } |
738 | 754 |
739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { | 755 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { |
740 std::string remote_stream_label("remote_stream"); | 756 std::string remote_stream_label("remote_stream"); |
741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 757 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
742 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 758 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
743 | 759 |
744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 760 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
745 testing::Property(&blink::WebMediaStream::id, | 761 testing::Property(&blink::WebMediaStream::id, |
746 base::UTF8ToUTF16(remote_stream_label)))); | 762 base::UTF8ToUTF16(remote_stream_label)))); |
747 pc_handler_->OnAddStream(remote_stream.get()); | 763 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 764 base::RunLoop().RunUntilIdle(); |
748 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 765 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
749 | 766 |
750 { | 767 { |
751 // Test in a small scope so that |audio_tracks| don't hold on to destroyed | 768 // Test in a small scope so that |audio_tracks| don't hold on to destroyed |
752 // source later. | 769 // source later. |
753 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 770 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
754 webkit_stream.audioTracks(audio_tracks); | 771 webkit_stream.audioTracks(audio_tracks); |
755 EXPECT_EQ(1u, audio_tracks.size()); | 772 EXPECT_EQ(1u, audio_tracks.size()); |
756 } | 773 } |
757 | 774 |
758 // Remove the Webrtc audio track from the Webrtc MediaStream. | 775 // Remove the Webrtc audio track from the Webrtc MediaStream. |
759 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = | 776 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = |
760 remote_stream->GetAudioTracks()[0].get(); | 777 remote_stream->GetAudioTracks()[0].get(); |
761 remote_stream->RemoveTrack(webrtc_track.get()); | 778 remote_stream->RemoveTrack(webrtc_track.get()); |
| 779 base::RunLoop().RunUntilIdle(); |
762 | 780 |
763 { | 781 { |
764 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; | 782 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; |
765 webkit_stream.audioTracks(modified_audio_tracks1); | 783 webkit_stream.audioTracks(modified_audio_tracks1); |
766 EXPECT_EQ(0u, modified_audio_tracks1.size()); | 784 EXPECT_EQ(0u, modified_audio_tracks1.size()); |
767 } | 785 } |
768 | 786 |
769 blink::WebHeap::collectGarbageForTesting(); | 787 blink::WebHeap::collectGarbageForTesting(); |
770 | 788 |
771 // Add the WebRtc audio track again. | 789 // Add the WebRtc audio track again. |
772 remote_stream->AddTrack(webrtc_track.get()); | 790 remote_stream->AddTrack(webrtc_track.get()); |
| 791 base::RunLoop().RunUntilIdle(); |
773 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; | 792 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; |
774 webkit_stream.audioTracks(modified_audio_tracks2); | 793 webkit_stream.audioTracks(modified_audio_tracks2); |
775 EXPECT_EQ(1u, modified_audio_tracks2.size()); | 794 EXPECT_EQ(1u, modified_audio_tracks2.size()); |
776 } | 795 } |
777 | 796 |
778 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { | 797 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { |
779 std::string remote_stream_label("remote_stream"); | 798 std::string remote_stream_label("remote_stream"); |
780 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 799 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
781 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); | 800 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); |
782 | 801 |
783 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 802 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
784 testing::Property(&blink::WebMediaStream::id, | 803 testing::Property(&blink::WebMediaStream::id, |
785 base::UTF8ToUTF16(remote_stream_label)))); | 804 base::UTF8ToUTF16(remote_stream_label)))); |
786 pc_handler_->OnAddStream(remote_stream.get()); | 805 pc_handler_->observer()->OnAddStream(remote_stream.get()); |
| 806 base::RunLoop().RunUntilIdle(); |
787 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 807 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
788 | 808 |
789 { | 809 { |
790 // Test in a small scope so that |video_tracks| don't hold on to destroyed | 810 // Test in a small scope so that |video_tracks| don't hold on to destroyed |
791 // source later. | 811 // source later. |
792 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 812 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
793 webkit_stream.videoTracks(video_tracks); | 813 webkit_stream.videoTracks(video_tracks); |
794 EXPECT_EQ(1u, video_tracks.size()); | 814 EXPECT_EQ(1u, video_tracks.size()); |
795 } | 815 } |
796 | 816 |
797 // Remove the Webrtc video track from the Webrtc MediaStream. | 817 // Remove the Webrtc video track from the Webrtc MediaStream. |
798 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = | 818 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = |
799 remote_stream->GetVideoTracks()[0].get(); | 819 remote_stream->GetVideoTracks()[0].get(); |
800 remote_stream->RemoveTrack(webrtc_track.get()); | 820 remote_stream->RemoveTrack(webrtc_track.get()); |
| 821 base::RunLoop().RunUntilIdle(); |
801 { | 822 { |
802 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; | 823 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; |
803 webkit_stream.videoTracks(modified_video_tracks1); | 824 webkit_stream.videoTracks(modified_video_tracks1); |
804 EXPECT_EQ(0u, modified_video_tracks1.size()); | 825 EXPECT_EQ(0u, modified_video_tracks1.size()); |
805 } | 826 } |
806 | 827 |
807 blink::WebHeap::collectGarbageForTesting(); | 828 blink::WebHeap::collectGarbageForTesting(); |
808 | 829 |
809 // Add the WebRtc video track again. | 830 // Add the WebRtc video track again. |
810 remote_stream->AddTrack(webrtc_track.get()); | 831 remote_stream->AddTrack(webrtc_track.get()); |
| 832 base::RunLoop().RunUntilIdle(); |
811 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; | 833 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; |
812 webkit_stream.videoTracks(modified_video_tracks2); | 834 webkit_stream.videoTracks(modified_video_tracks2); |
813 EXPECT_EQ(1u, modified_video_tracks2.size()); | 835 EXPECT_EQ(1u, modified_video_tracks2.size()); |
814 } | 836 } |
815 | 837 |
816 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { | 838 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { |
817 testing::InSequence sequence; | 839 testing::InSequence sequence; |
818 EXPECT_CALL(*mock_tracker_.get(), | 840 EXPECT_CALL(*mock_tracker_.get(), |
819 TrackAddIceCandidate(pc_handler_.get(), _, | 841 TrackAddIceCandidate(pc_handler_.get(), _, |
820 PeerConnectionTracker::SOURCE_LOCAL, true)); | 842 PeerConnectionTracker::SOURCE_LOCAL, true)); |
821 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); | 843 EXPECT_CALL(*mock_client_.get(), didGenerateICECandidate(_)); |
822 | 844 |
823 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( | 845 scoped_ptr<webrtc::IceCandidateInterface> native_candidate( |
824 mock_dependency_factory_->CreateIceCandidate("sdpMid", 1, kDummySdp)); | 846 mock_dependency_factory_->CreateIceCandidate("sdpMid", 1, kDummySdp)); |
825 pc_handler_->OnIceCandidate(native_candidate.get()); | 847 pc_handler_->observer()->OnIceCandidate(native_candidate.get()); |
| 848 base::RunLoop().RunUntilIdle(); |
826 EXPECT_EQ("sdpMid", mock_client_->candidate_mid()); | 849 EXPECT_EQ("sdpMid", mock_client_->candidate_mid()); |
827 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); | 850 EXPECT_EQ(1, mock_client_->candidate_mlineindex()); |
828 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); | 851 EXPECT_EQ(kDummySdp, mock_client_->candidate_sdp()); |
829 } | 852 } |
830 | 853 |
831 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { | 854 TEST_F(RTCPeerConnectionHandlerTest, OnRenegotiationNeeded) { |
832 testing::InSequence sequence; | 855 testing::InSequence sequence; |
833 EXPECT_CALL(*mock_tracker_.get(), | 856 EXPECT_CALL(*mock_tracker_.get(), |
834 TrackOnRenegotiationNeeded(pc_handler_.get())); | 857 TrackOnRenegotiationNeeded(pc_handler_.get())); |
835 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); | 858 EXPECT_CALL(*mock_client_.get(), negotiationNeeded()); |
836 pc_handler_->OnRenegotiationNeeded(); | 859 pc_handler_->observer()->OnRenegotiationNeeded(); |
837 } | 860 } |
838 | 861 |
839 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { | 862 TEST_F(RTCPeerConnectionHandlerTest, CreateDataChannel) { |
840 blink::WebString label = "d1"; | 863 blink::WebString label = "d1"; |
841 EXPECT_CALL(*mock_tracker_.get(), | 864 EXPECT_CALL(*mock_tracker_.get(), |
842 TrackCreateDataChannel(pc_handler_.get(), | 865 TrackCreateDataChannel(pc_handler_.get(), |
843 testing::NotNull(), | 866 testing::NotNull(), |
844 PeerConnectionTracker::SOURCE_LOCAL)); | 867 PeerConnectionTracker::SOURCE_LOCAL)); |
845 scoped_ptr<blink::WebRTCDataChannelHandler> channel( | 868 scoped_ptr<blink::WebRTCDataChannelHandler> channel( |
846 pc_handler_->createDataChannel("d1", blink::WebRTCDataChannelInit())); | 869 pc_handler_->createDataChannel("d1", blink::WebRTCDataChannelInit())); |
(...skipping 19 matching lines...) Expand all Loading... |
866 EXPECT_CALL(*mock_tracker_.get(), | 889 EXPECT_CALL(*mock_tracker_.get(), |
867 TrackCreateDTMFSender(pc_handler_.get(), | 890 TrackCreateDTMFSender(pc_handler_.get(), |
868 testing::Ref(tracks[0]))); | 891 testing::Ref(tracks[0]))); |
869 | 892 |
870 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( | 893 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
871 pc_handler_->createDTMFSender(tracks[0])); | 894 pc_handler_->createDTMFSender(tracks[0])); |
872 EXPECT_TRUE(sender.get()); | 895 EXPECT_TRUE(sender.get()); |
873 } | 896 } |
874 | 897 |
875 } // namespace content | 898 } // namespace content |
OLD | NEW |