| 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 |