| 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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 blink::WebString::fromUTF8("video_track")); | 227 blink::WebString::fromUTF8("video_track")); |
| 228 | 228 |
| 229 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( | 229 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
| 230 static_cast<size_t>(1)); | 230 static_cast<size_t>(1)); |
| 231 audio_tracks[0].initialize(audio_source.id(), audio_source); | 231 audio_tracks[0].initialize(audio_source.id(), audio_source); |
| 232 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( | 232 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
| 233 static_cast<size_t>(1)); | 233 static_cast<size_t>(1)); |
| 234 video_tracks[0].initialize(video_source.id(), video_source); | 234 video_tracks[0].initialize(video_source.id(), video_source); |
| 235 | 235 |
| 236 blink::WebMediaStream local_stream; | 236 blink::WebMediaStream local_stream; |
| 237 local_stream.initialize(UTF8ToUTF16(stream_label), audio_tracks, | 237 local_stream.initialize(base::UTF8ToUTF16(stream_label), audio_tracks, |
| 238 video_tracks); | 238 video_tracks); |
| 239 | 239 |
| 240 scoped_refptr<webrtc::MediaStreamInterface> native_stream( | 240 scoped_refptr<webrtc::MediaStreamInterface> native_stream( |
| 241 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); | 241 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); |
| 242 | 242 |
| 243 local_stream.audioTracks(audio_tracks); | 243 local_stream.audioTracks(audio_tracks); |
| 244 const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id()); | 244 const std::string audio_track_id = base::UTF16ToUTF8(audio_tracks[0].id()); |
| 245 scoped_refptr<WebRtcAudioCapturer> capturer; | 245 scoped_refptr<WebRtcAudioCapturer> capturer; |
| 246 RTCMediaConstraints audio_constraints(audio_source.constraints()); | 246 RTCMediaConstraints audio_constraints(audio_source.constraints()); |
| 247 scoped_refptr<webrtc::AudioTrackInterface> audio_track( | 247 scoped_refptr<webrtc::AudioTrackInterface> audio_track( |
| 248 mock_dependency_factory_->CreateLocalAudioTrack( | 248 mock_dependency_factory_->CreateLocalAudioTrack( |
| 249 audio_track_id, capturer, NULL, NULL, | 249 audio_track_id, capturer, NULL, NULL, |
| 250 &audio_constraints)); | 250 &audio_constraints)); |
| 251 MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( | 251 MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( |
| 252 audio_track.get(), audio_tracks[0], true); | 252 audio_track.get(), audio_tracks[0], true); |
| 253 native_stream->AddTrack(audio_track.get()); | 253 native_stream->AddTrack(audio_track.get()); |
| 254 | 254 |
| 255 local_stream.videoTracks(video_tracks); | 255 local_stream.videoTracks(video_tracks); |
| 256 const std::string video_track_id = UTF16ToUTF8(video_tracks[0].id()); | 256 const std::string video_track_id = base::UTF16ToUTF8(video_tracks[0].id()); |
| 257 webrtc::VideoSourceInterface* source = NULL; | 257 webrtc::VideoSourceInterface* source = NULL; |
| 258 scoped_refptr<webrtc::VideoTrackInterface> video_track( | 258 scoped_refptr<webrtc::VideoTrackInterface> video_track( |
| 259 mock_dependency_factory_->CreateLocalVideoTrack( | 259 mock_dependency_factory_->CreateLocalVideoTrack( |
| 260 video_track_id, source)); | 260 video_track_id, source)); |
| 261 MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( | 261 MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( |
| 262 video_track.get(), video_tracks[0], true); | 262 video_track.get(), video_tracks[0], true); |
| 263 native_stream->AddTrack(video_track.get()); | 263 native_stream->AddTrack(video_track.get()); |
| 264 | 264 |
| 265 local_stream.setExtraData( | 265 local_stream.setExtraData( |
| 266 new MediaStreamExtraData(native_stream.get(), true)); | 266 new MediaStreamExtraData(native_stream.get(), true)); |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 | 646 |
| 647 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { | 647 TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) { |
| 648 std::string remote_stream_label("remote_stream"); | 648 std::string remote_stream_label("remote_stream"); |
| 649 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 649 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 650 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 650 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 651 | 651 |
| 652 testing::InSequence sequence; | 652 testing::InSequence sequence; |
| 653 EXPECT_CALL(*mock_tracker_.get(), TrackAddStream( | 653 EXPECT_CALL(*mock_tracker_.get(), TrackAddStream( |
| 654 pc_handler_.get(), | 654 pc_handler_.get(), |
| 655 testing::Property(&blink::WebMediaStream::id, | 655 testing::Property(&blink::WebMediaStream::id, |
| 656 UTF8ToUTF16(remote_stream_label)), | 656 base::UTF8ToUTF16(remote_stream_label)), |
| 657 PeerConnectionTracker::SOURCE_REMOTE)); | 657 PeerConnectionTracker::SOURCE_REMOTE)); |
| 658 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 658 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 659 testing::Property(&blink::WebMediaStream::id, | 659 testing::Property(&blink::WebMediaStream::id, |
| 660 UTF8ToUTF16(remote_stream_label)))); | 660 base::UTF8ToUTF16(remote_stream_label)))); |
| 661 | 661 |
| 662 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( | 662 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( |
| 663 pc_handler_.get(), | 663 pc_handler_.get(), |
| 664 testing::Property(&blink::WebMediaStream::id, | 664 testing::Property(&blink::WebMediaStream::id, |
| 665 UTF8ToUTF16(remote_stream_label)), | 665 base::UTF8ToUTF16(remote_stream_label)), |
| 666 PeerConnectionTracker::SOURCE_REMOTE)); | 666 PeerConnectionTracker::SOURCE_REMOTE)); |
| 667 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( | 667 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( |
| 668 testing::Property(&blink::WebMediaStream::id, | 668 testing::Property(&blink::WebMediaStream::id, |
| 669 UTF8ToUTF16(remote_stream_label)))); | 669 base::UTF8ToUTF16(remote_stream_label)))); |
| 670 | 670 |
| 671 pc_handler_->OnAddStream(remote_stream.get()); | 671 pc_handler_->OnAddStream(remote_stream.get()); |
| 672 pc_handler_->OnRemoveStream(remote_stream.get()); | 672 pc_handler_->OnRemoveStream(remote_stream.get()); |
| 673 } | 673 } |
| 674 | 674 |
| 675 // This test that WebKit is notified about remote track state changes. | 675 // This test that WebKit is notified about remote track state changes. |
| 676 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { | 676 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { |
| 677 std::string remote_stream_label("remote_stream"); | 677 std::string remote_stream_label("remote_stream"); |
| 678 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 678 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 679 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 679 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 680 | 680 |
| 681 testing::InSequence sequence; | 681 testing::InSequence sequence; |
| 682 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 682 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 683 testing::Property(&blink::WebMediaStream::id, | 683 testing::Property(&blink::WebMediaStream::id, |
| 684 UTF8ToUTF16(remote_stream_label)))); | 684 base::UTF8ToUTF16(remote_stream_label)))); |
| 685 pc_handler_->OnAddStream(remote_stream.get()); | 685 pc_handler_->OnAddStream(remote_stream.get()); |
| 686 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 686 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 687 | 687 |
| 688 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 688 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 689 webkit_stream.audioTracks(audio_tracks); | 689 webkit_stream.audioTracks(audio_tracks); |
| 690 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, | 690 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, |
| 691 audio_tracks[0].source().readyState()); | 691 audio_tracks[0].source().readyState()); |
| 692 | 692 |
| 693 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 693 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 694 webkit_stream.videoTracks(video_tracks); | 694 webkit_stream.videoTracks(video_tracks); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 706 video_tracks[0].source().readyState()); | 706 video_tracks[0].source().readyState()); |
| 707 } | 707 } |
| 708 | 708 |
| 709 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { | 709 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { |
| 710 std::string remote_stream_label("remote_stream"); | 710 std::string remote_stream_label("remote_stream"); |
| 711 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 711 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 712 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); | 712 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); |
| 713 | 713 |
| 714 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 714 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 715 testing::Property(&blink::WebMediaStream::id, | 715 testing::Property(&blink::WebMediaStream::id, |
| 716 UTF8ToUTF16(remote_stream_label)))); | 716 base::UTF8ToUTF16(remote_stream_label)))); |
| 717 pc_handler_->OnAddStream(remote_stream.get()); | 717 pc_handler_->OnAddStream(remote_stream.get()); |
| 718 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 718 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 719 | 719 |
| 720 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 720 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
| 721 webkit_stream.audioTracks(audio_tracks); | 721 webkit_stream.audioTracks(audio_tracks); |
| 722 EXPECT_EQ(1u, audio_tracks.size()); | 722 EXPECT_EQ(1u, audio_tracks.size()); |
| 723 | 723 |
| 724 // Remove the Webrtc audio track from the Webrtc MediaStream. | 724 // Remove the Webrtc audio track from the Webrtc MediaStream. |
| 725 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = | 725 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = |
| 726 remote_stream->GetAudioTracks()[0].get(); | 726 remote_stream->GetAudioTracks()[0].get(); |
| 727 remote_stream->RemoveTrack(webrtc_track.get()); | 727 remote_stream->RemoveTrack(webrtc_track.get()); |
| 728 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; | 728 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks1; |
| 729 webkit_stream.audioTracks(modified_audio_tracks1); | 729 webkit_stream.audioTracks(modified_audio_tracks1); |
| 730 EXPECT_EQ(0u, modified_audio_tracks1.size()); | 730 EXPECT_EQ(0u, modified_audio_tracks1.size()); |
| 731 | 731 |
| 732 // Add the WebRtc audio track again. | 732 // Add the WebRtc audio track again. |
| 733 remote_stream->AddTrack(webrtc_track.get()); | 733 remote_stream->AddTrack(webrtc_track.get()); |
| 734 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; | 734 blink::WebVector<blink::WebMediaStreamTrack> modified_audio_tracks2; |
| 735 webkit_stream.audioTracks(modified_audio_tracks2); | 735 webkit_stream.audioTracks(modified_audio_tracks2); |
| 736 EXPECT_EQ(1u, modified_audio_tracks2.size()); | 736 EXPECT_EQ(1u, modified_audio_tracks2.size()); |
| 737 } | 737 } |
| 738 | 738 |
| 739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { | 739 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { |
| 740 std::string remote_stream_label("remote_stream"); | 740 std::string remote_stream_label("remote_stream"); |
| 741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( | 741 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( |
| 742 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); | 742 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); |
| 743 | 743 |
| 744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( | 744 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( |
| 745 testing::Property(&blink::WebMediaStream::id, | 745 testing::Property(&blink::WebMediaStream::id, |
| 746 UTF8ToUTF16(remote_stream_label)))); | 746 base::UTF8ToUTF16(remote_stream_label)))); |
| 747 pc_handler_->OnAddStream(remote_stream.get()); | 747 pc_handler_->OnAddStream(remote_stream.get()); |
| 748 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); | 748 const blink::WebMediaStream& webkit_stream = mock_client_->remote_stream(); |
| 749 | 749 |
| 750 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; | 750 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; |
| 751 webkit_stream.videoTracks(video_tracks); | 751 webkit_stream.videoTracks(video_tracks); |
| 752 EXPECT_EQ(1u, video_tracks.size()); | 752 EXPECT_EQ(1u, video_tracks.size()); |
| 753 | 753 |
| 754 // Remove the Webrtc video track from the Webrtc MediaStream. | 754 // Remove the Webrtc video track from the Webrtc MediaStream. |
| 755 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = | 755 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = |
| 756 remote_stream->GetVideoTracks()[0].get(); | 756 remote_stream->GetVideoTracks()[0].get(); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 EXPECT_CALL(*mock_tracker_.get(), | 819 EXPECT_CALL(*mock_tracker_.get(), |
| 820 TrackCreateDTMFSender(pc_handler_.get(), | 820 TrackCreateDTMFSender(pc_handler_.get(), |
| 821 testing::Ref(tracks[0]))); | 821 testing::Ref(tracks[0]))); |
| 822 | 822 |
| 823 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( | 823 scoped_ptr<blink::WebRTCDTMFSenderHandler> sender( |
| 824 pc_handler_->createDTMFSender(tracks[0])); | 824 pc_handler_->createDTMFSender(tracks[0])); |
| 825 EXPECT_TRUE(sender.get()); | 825 EXPECT_TRUE(sender.get()); |
| 826 } | 826 } |
| 827 | 827 |
| 828 } // namespace content | 828 } // namespace content |
| OLD | NEW |