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/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 if (!audio_track_label.empty()) { | 281 if (!audio_track_label.empty()) { |
282 scoped_refptr<WebRtcAudioCapturer> capturer; | 282 scoped_refptr<WebRtcAudioCapturer> capturer; |
283 scoped_refptr<webrtc::AudioTrackInterface> audio_track( | 283 scoped_refptr<webrtc::AudioTrackInterface> audio_track( |
284 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, NULL)); | 284 WebRtcLocalAudioTrackAdapter::Create(audio_track_label, NULL)); |
285 stream->AddTrack(audio_track.get()); | 285 stream->AddTrack(audio_track.get()); |
286 } | 286 } |
287 mock_peer_connection_->AddRemoteStream(stream.get()); | 287 mock_peer_connection_->AddRemoteStream(stream.get()); |
288 return stream; | 288 return stream; |
289 } | 289 } |
290 | 290 |
| 291 base::MessageLoop message_loop_; |
291 scoped_ptr<MockWebRTCPeerConnectionHandlerClient> mock_client_; | 292 scoped_ptr<MockWebRTCPeerConnectionHandlerClient> mock_client_; |
292 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_; | 293 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_; |
293 scoped_ptr<NiceMock<MockPeerConnectionTracker> > mock_tracker_; | 294 scoped_ptr<NiceMock<MockPeerConnectionTracker> > mock_tracker_; |
294 scoped_ptr<RTCPeerConnectionHandlerUnderTest> pc_handler_; | 295 scoped_ptr<RTCPeerConnectionHandlerUnderTest> pc_handler_; |
295 | 296 |
296 // Weak reference to the mocked native peer connection implementation. | 297 // Weak reference to the mocked native peer connection implementation. |
297 MockPeerConnectionImpl* mock_peer_connection_; | 298 MockPeerConnectionImpl* mock_peer_connection_; |
298 }; | 299 }; |
299 | 300 |
300 TEST_F(RTCPeerConnectionHandlerTest, Destruct) { | 301 TEST_F(RTCPeerConnectionHandlerTest, Destruct) { |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
732 std::string remote_stream_label("remote_stream"); | 733 std::string remote_stream_label("remote_stream"); |
733 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 734 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
734 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 735 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
735 | 736 |
736 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 737 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
737 testing::Property(&blink::WebMediaStream::id, | 738 testing::Property(&blink::WebMediaStream::id, |
738 base::UTF8ToUTF16(remote_stream_label)))); | 739 base::UTF8ToUTF16(remote_stream_label)))); |
739 pc_handler_->OnAddStream(remote_stream.get()); | 740 pc_handler_->OnAddStream(remote_stream.get()); |
740 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 741 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
741 | 742 |
742 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 743 { |
743 webkit_stream.audioTracks(audio_tracks); | 744 // Test in a small scope so that |audio_tracks| don't hold on to destroyed |
744 EXPECT_EQ(1u, audio_tracks.size()); | 745 // source later. |
| 746 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 747 webkit_stream.audioTracks(audio_tracks); |
| 748 EXPECT_EQ(1u, audio_tracks.size()); |
| 749 } |
745 | 750 |
746 // Remove the Webrtc audio track from the Webrtc MediaStream. | 751 // Remove the Webrtc audio track from the Webrtc MediaStream. |
747 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = | 752 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = |
748 remote_stream->GetAudioTracks()[0].get(); | 753 remote_stream->GetAudioTracks()[0].get(); |
749 remote_stream->RemoveTrack(webrtc_track.get()); | 754 remote_stream->RemoveTrack(webrtc_track.get()); |
750 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; | 755 |
751 webkit_stream.audioTracks(modified_audio_tracks1); | 756 { |
752 EXPECT_EQ(0u, modified_audio_tracks1.size()); | 757 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; |
| 758 webkit_stream.audioTracks(modified_audio_tracks1); |
| 759 EXPECT_EQ(0u, modified_audio_tracks1.size()); |
| 760 } |
753 | 761 |
754 // Add the WebRtc audio track again. | 762 // Add the WebRtc audio track again. |
755 remote_stream->AddTrack(webrtc_track.get()); | 763 remote_stream->AddTrack(webrtc_track.get()); |
756 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; | 764 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; |
757 webkit_stream.audioTracks(modified_audio_tracks2); | 765 webkit_stream.audioTracks(modified_audio_tracks2); |
758 EXPECT_EQ(1u, modified_audio_tracks2.size()); | 766 EXPECT_EQ(1u, modified_audio_tracks2.size()); |
759 } | 767 } |
760 | 768 |
761 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { | 769 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { |
762 std::string remote_stream_label("remote_stream"); | 770 std::string remote_stream_label("remote_stream"); |
763 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 771 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
764 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); | 772 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); |
765 | 773 |
766 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 774 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
767 testing::Property(&blink::WebMediaStream::id, | 775 testing::Property(&blink::WebMediaStream::id, |
768 base::UTF8ToUTF16(remote_stream_label)))); | 776 base::UTF8ToUTF16(remote_stream_label)))); |
769 pc_handler_->OnAddStream(remote_stream.get()); | 777 pc_handler_->OnAddStream(remote_stream.get()); |
770 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 778 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
771 | 779 |
772 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 780 { |
773 webkit_stream.videoTracks(video_tracks); | 781 // Test in a small scope so that |video_tracks| don't hold on to destroyed |
774 EXPECT_EQ(1u, video_tracks.size()); | 782 // source later. |
| 783 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 784 webkit_stream.videoTracks(video_tracks); |
| 785 EXPECT_EQ(1u, video_tracks.size()); |
| 786 } |
775 | 787 |
776 // Remove the Webrtc video track from the Webrtc MediaStream. | 788 // Remove the Webrtc video track from the Webrtc MediaStream. |
777 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = | 789 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = |
778 remote_stream->GetVideoTracks()[0].get(); | 790 remote_stream->GetVideoTracks()[0].get(); |
779 remote_stream->RemoveTrack(webrtc_track.get()); | 791 remote_stream->RemoveTrack(webrtc_track.get()); |
780 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; | 792 { |
781 webkit_stream.videoTracks(modified_video_tracks1); | 793 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks1; |
782 EXPECT_EQ(0u, modified_video_tracks1.size()); | 794 webkit_stream.videoTracks(modified_video_tracks1); |
| 795 EXPECT_EQ(0u, modified_video_tracks1.size()); |
| 796 } |
783 | 797 |
784 // Add the WebRtc video track again. | 798 // Add the WebRtc video track again. |
785 remote_stream->AddTrack(webrtc_track.get()); | 799 remote_stream->AddTrack(webrtc_track.get()); |
786 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; | 800 blink::WebVector<blink::WebMediaStreamTrack> modified_video_tracks2; |
787 webkit_stream.videoTracks(modified_video_tracks2); | 801 webkit_stream.videoTracks(modified_video_tracks2); |
788 EXPECT_EQ(1u, modified_video_tracks2.size()); | 802 EXPECT_EQ(1u, modified_video_tracks2.size()); |
789 } | 803 } |
790 | 804 |
791 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { | 805 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { |
792 testing::InSequence sequence; | 806 testing::InSequence sequence; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 EXPECT_CALL(*mock_tracker_.get(), | 855 EXPECT_CALL(*mock_tracker_.get(), |
842 TrackCreateDTMFSender(pc_handler_.get(), | 856 TrackCreateDTMFSender(pc_handler_.get(), |
843 testing::Ref(tracks[0]))); | 857 testing::Ref(tracks[0]))); |
844 | 858 |
845 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( | 859 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
846 pc_handler_->createDTMFSender(tracks[0])); | 860 pc_handler_->createDTMFSender(tracks[0])); |
847 EXPECT_TRUE(sender.get()); | 861 EXPECT_TRUE(sender.get()); |
848 } | 862 } |
849 | 863 |
850 } // namespace content | 864 } // namespace content |
OLD | NEW |