Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: content/renderer/media/rtc_peer_connection_handler_unittest.cc

Issue 201583003: Implement a source for remote video tracks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « content/renderer/media/remote_media_stream_impl.cc ('k') | content/renderer/media/webrtc/media_stream_remote_video_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698