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

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

Issue 16294003: Update content/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 virtual bool hasSelector() const OVERRIDE { 80 virtual bool hasSelector() const OVERRIDE {
81 return has_selector_; 81 return has_selector_;
82 } 82 }
83 virtual WebKit::WebMediaStream stream() const OVERRIDE { 83 virtual WebKit::WebMediaStream stream() const OVERRIDE {
84 return stream_; 84 return stream_;
85 } 85 }
86 virtual WebKit::WebMediaStreamTrack component() const OVERRIDE { 86 virtual WebKit::WebMediaStreamTrack component() const OVERRIDE {
87 return component_; 87 return component_;
88 } 88 }
89 virtual scoped_refptr<LocalRTCStatsResponse> createResponse() OVERRIDE { 89 virtual scoped_refptr<LocalRTCStatsResponse> createResponse() OVERRIDE {
90 DCHECK(!response_); 90 DCHECK(!response_.get());
91 response_ = new talk_base::RefCountedObject<MockRTCStatsResponse>(); 91 response_ = new talk_base::RefCountedObject<MockRTCStatsResponse>();
92 return response_; 92 return response_;
93 } 93 }
94 94
95 virtual void requestSucceeded(const LocalRTCStatsResponse* response) 95 virtual void requestSucceeded(const LocalRTCStatsResponse* response)
96 OVERRIDE { 96 OVERRIDE {
97 EXPECT_EQ(response, response_.get()); 97 EXPECT_EQ(response, response_.get());
98 request_succeeded_called_ = true; 98 request_succeeded_called_ = true;
99 } 99 }
100 100
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 video_sources); 237 video_sources);
238 238
239 scoped_refptr<webrtc::MediaStreamInterface> native_stream( 239 scoped_refptr<webrtc::MediaStreamInterface> native_stream(
240 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); 240 mock_dependency_factory_->CreateLocalMediaStream(stream_label));
241 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; 241 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
242 local_stream.audioSources(audio_tracks); 242 local_stream.audioSources(audio_tracks);
243 const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id()); 243 const std::string audio_track_id = UTF16ToUTF8(audio_tracks[0].id());
244 scoped_refptr<webrtc::AudioTrackInterface> audio_track( 244 scoped_refptr<webrtc::AudioTrackInterface> audio_track(
245 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_id, 245 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_id,
246 NULL)); 246 NULL));
247 native_stream->AddTrack(audio_track); 247 native_stream->AddTrack(audio_track.get());
248 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; 248 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
249 local_stream.audioSources(video_tracks); 249 local_stream.audioSources(video_tracks);
250 const std::string video_track_id = UTF16ToUTF8(video_tracks[0].id()); 250 const std::string video_track_id = UTF16ToUTF8(video_tracks[0].id());
251 webrtc::VideoSourceInterface* source = NULL; 251 webrtc::VideoSourceInterface* source = NULL;
252 scoped_refptr<webrtc::VideoTrackInterface> video_track( 252 scoped_refptr<webrtc::VideoTrackInterface> video_track(
253 mock_dependency_factory_->CreateLocalVideoTrack( 253 mock_dependency_factory_->CreateLocalVideoTrack(
254 video_track_id, source)); 254 video_track_id, source));
255 native_stream->AddTrack(video_track); 255 native_stream->AddTrack(video_track.get());
256 256
257 local_stream.setExtraData(new MediaStreamExtraData(native_stream, true)); 257 local_stream.setExtraData(
258 new MediaStreamExtraData(native_stream.get(), true));
258 return local_stream; 259 return local_stream;
259 } 260 }
260 261
261 // Creates a remote MediaStream and adds it to the mocked native 262 // Creates a remote MediaStream and adds it to the mocked native
262 // peer connection. 263 // peer connection.
263 scoped_refptr<webrtc::MediaStreamInterface> 264 scoped_refptr<webrtc::MediaStreamInterface>
264 AddRemoteMockMediaStream(const std::string& stream_label, 265 AddRemoteMockMediaStream(const std::string& stream_label,
265 const std::string& video_track_label, 266 const std::string& video_track_label,
266 const std::string& audio_track_label) { 267 const std::string& audio_track_label) {
267 scoped_refptr<webrtc::MediaStreamInterface> stream( 268 scoped_refptr<webrtc::MediaStreamInterface> stream(
268 mock_dependency_factory_->CreateLocalMediaStream(stream_label)); 269 mock_dependency_factory_->CreateLocalMediaStream(stream_label));
269 if (!video_track_label.empty()) { 270 if (!video_track_label.empty()) {
270 webrtc::VideoSourceInterface* source = NULL; 271 webrtc::VideoSourceInterface* source = NULL;
271 scoped_refptr<webrtc::VideoTrackInterface> video_track( 272 scoped_refptr<webrtc::VideoTrackInterface> video_track(
272 mock_dependency_factory_->CreateLocalVideoTrack( 273 mock_dependency_factory_->CreateLocalVideoTrack(
273 video_track_label, source)); 274 video_track_label, source));
274 stream->AddTrack(video_track); 275 stream->AddTrack(video_track.get());
275 } 276 }
276 if (!audio_track_label.empty()) { 277 if (!audio_track_label.empty()) {
277 scoped_refptr<webrtc::AudioTrackInterface> audio_track( 278 scoped_refptr<webrtc::AudioTrackInterface> audio_track(
278 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label, 279 mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label,
279 NULL)); 280 NULL));
280 stream->AddTrack(audio_track); 281 stream->AddTrack(audio_track.get());
281 } 282 }
282 mock_peer_connection_->AddRemoteStream(stream); 283 mock_peer_connection_->AddRemoteStream(stream.get());
283 return stream; 284 return stream;
284 } 285 }
285 286
286 scoped_ptr<MockWebRTCPeerConnectionHandlerClient> mock_client_; 287 scoped_ptr<MockWebRTCPeerConnectionHandlerClient> mock_client_;
287 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_; 288 scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_;
288 scoped_ptr<NiceMock<MockPeerConnectionTracker> > mock_tracker_; 289 scoped_ptr<NiceMock<MockPeerConnectionTracker> > mock_tracker_;
289 scoped_ptr<RTCPeerConnectionHandlerUnderTest> pc_handler_; 290 scoped_ptr<RTCPeerConnectionHandlerUnderTest> pc_handler_;
290 291
291 // Weak reference to the mocked native peer connection implementation. 292 // Weak reference to the mocked native peer connection implementation.
292 MockPeerConnectionImpl* mock_peer_connection_; 293 MockPeerConnectionImpl* mock_peer_connection_;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 scoped_refptr<MockRTCStatsRequest> request( 452 scoped_refptr<MockRTCStatsRequest> request(
452 new talk_base::RefCountedObject<MockRTCStatsRequest>()); 453 new talk_base::RefCountedObject<MockRTCStatsRequest>());
453 request->setSelector(local_stream, tracks[0]); 454 request->setSelector(local_stream, tracks[0]);
454 pc_handler_->getStats(request.get()); 455 pc_handler_->getStats(request.get());
455 EXPECT_EQ(1, request->result()->report_count()); 456 EXPECT_EQ(1, request->result()->report_count());
456 } 457 }
457 458
458 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) { 459 TEST_F(RTCPeerConnectionHandlerTest, GetStatsWithRemoteSelector) {
459 scoped_refptr<webrtc::MediaStreamInterface> stream( 460 scoped_refptr<webrtc::MediaStreamInterface> stream(
460 AddRemoteMockMediaStream("remote_stream", "video", "audio")); 461 AddRemoteMockMediaStream("remote_stream", "video", "audio"));
461 pc_handler_->OnAddStream(stream); 462 pc_handler_->OnAddStream(stream.get());
462 const WebKit::WebMediaStream& remote_stream = mock_client_->remote_stream(); 463 const WebKit::WebMediaStream& remote_stream = mock_client_->remote_stream();
463 464
464 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks; 465 WebKit::WebVector<WebKit::WebMediaStreamTrack> tracks;
465 remote_stream.audioSources(tracks); 466 remote_stream.audioSources(tracks);
466 ASSERT_LE(1ul, tracks.size()); 467 ASSERT_LE(1ul, tracks.size());
467 468
468 scoped_refptr<MockRTCStatsRequest> request( 469 scoped_refptr<MockRTCStatsRequest> request(
469 new talk_base::RefCountedObject<MockRTCStatsRequest>()); 470 new talk_base::RefCountedObject<MockRTCStatsRequest>());
470 request->setSelector(remote_stream, tracks[0]); 471 request->setSelector(remote_stream, tracks[0]);
471 pc_handler_->getStats(request.get()); 472 pc_handler_->getStats(request.get());
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 649
649 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream( 650 EXPECT_CALL(*mock_tracker_.get(), TrackRemoveStream(
650 pc_handler_.get(), 651 pc_handler_.get(),
651 testing::Property(&WebKit::WebMediaStream::label, 652 testing::Property(&WebKit::WebMediaStream::label,
652 UTF8ToUTF16(remote_stream_label)), 653 UTF8ToUTF16(remote_stream_label)),
653 PeerConnectionTracker::SOURCE_REMOTE)); 654 PeerConnectionTracker::SOURCE_REMOTE));
654 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream( 655 EXPECT_CALL(*mock_client_.get(), didRemoveRemoteStream(
655 testing::Property(&WebKit::WebMediaStream::label, 656 testing::Property(&WebKit::WebMediaStream::label,
656 UTF8ToUTF16(remote_stream_label)))); 657 UTF8ToUTF16(remote_stream_label))));
657 658
658 pc_handler_->OnAddStream(remote_stream); 659 pc_handler_->OnAddStream(remote_stream.get());
659 pc_handler_->OnRemoveStream(remote_stream); 660 pc_handler_->OnRemoveStream(remote_stream.get());
660 } 661 }
661 662
662 // This test that WebKit is notified about remote track state changes. 663 // This test that WebKit is notified about remote track state changes.
663 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) { 664 TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) {
664 std::string remote_stream_label("remote_stream"); 665 std::string remote_stream_label("remote_stream");
665 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( 666 scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
666 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); 667 AddRemoteMockMediaStream(remote_stream_label, "video", "audio"));
667 668
668 testing::InSequence sequence; 669 testing::InSequence sequence;
669 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( 670 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
670 testing::Property(&WebKit::WebMediaStream::label, 671 testing::Property(&WebKit::WebMediaStream::label,
671 UTF8ToUTF16(remote_stream_label)))); 672 UTF8ToUTF16(remote_stream_label))));
672 pc_handler_->OnAddStream(remote_stream); 673 pc_handler_->OnAddStream(remote_stream.get());
673 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); 674 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
674 675
675 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; 676 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
676 webkit_stream.audioTracks(audio_tracks); 677 webkit_stream.audioTracks(audio_tracks);
677 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive, 678 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive,
678 audio_tracks[0].source().readyState()); 679 audio_tracks[0].source().readyState());
679 680
680 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; 681 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
681 webkit_stream.videoTracks(video_tracks); 682 webkit_stream.videoTracks(video_tracks);
682 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive, 683 EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive,
(...skipping 11 matching lines...) Expand all
694 } 695 }
695 696
696 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) { 697 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddAudioTrackFromRemoteStream) {
697 std::string remote_stream_label("remote_stream"); 698 std::string remote_stream_label("remote_stream");
698 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( 699 scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
699 AddRemoteMockMediaStream(remote_stream_label, "video", "audio")); 700 AddRemoteMockMediaStream(remote_stream_label, "video", "audio"));
700 701
701 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( 702 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
702 testing::Property(&WebKit::WebMediaStream::label, 703 testing::Property(&WebKit::WebMediaStream::label,
703 UTF8ToUTF16(remote_stream_label)))); 704 UTF8ToUTF16(remote_stream_label))));
704 pc_handler_->OnAddStream(remote_stream); 705 pc_handler_->OnAddStream(remote_stream.get());
705 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); 706 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
706 707
707 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks; 708 WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
708 webkit_stream.audioTracks(audio_tracks); 709 webkit_stream.audioTracks(audio_tracks);
709 EXPECT_EQ(1u, audio_tracks.size()); 710 EXPECT_EQ(1u, audio_tracks.size());
710 711
711 // Remove the Webrtc audio track from the Webrtc MediaStream. 712 // Remove the Webrtc audio track from the Webrtc MediaStream.
712 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track = 713 scoped_refptr<webrtc::AudioTrackInterface> webrtc_track =
713 remote_stream->GetAudioTracks()[0].get(); 714 remote_stream->GetAudioTracks()[0].get();
714 remote_stream->RemoveTrack(webrtc_track); 715 remote_stream->RemoveTrack(webrtc_track.get());
715 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks1; 716 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks1;
716 webkit_stream.audioTracks(modified_audio_tracks1); 717 webkit_stream.audioTracks(modified_audio_tracks1);
717 EXPECT_EQ(0u, modified_audio_tracks1.size()); 718 EXPECT_EQ(0u, modified_audio_tracks1.size());
718 719
719 // Add the WebRtc audio track again. 720 // Add the WebRtc audio track again.
720 remote_stream->AddTrack(webrtc_track); 721 remote_stream->AddTrack(webrtc_track.get());
721 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks2; 722 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks2;
722 webkit_stream.audioTracks(modified_audio_tracks2); 723 webkit_stream.audioTracks(modified_audio_tracks2);
723 EXPECT_EQ(1u, modified_audio_tracks2.size()); 724 EXPECT_EQ(1u, modified_audio_tracks2.size());
724 } 725 }
725 726
726 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) { 727 TEST_F(RTCPeerConnectionHandlerTest, RemoveAndAddVideoTrackFromRemoteStream) {
727 std::string remote_stream_label("remote_stream"); 728 std::string remote_stream_label("remote_stream");
728 scoped_refptr<webrtc::MediaStreamInterface> remote_stream( 729 scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
729 AddRemoteMockMediaStream(remote_stream_label, "video", "video")); 730 AddRemoteMockMediaStream(remote_stream_label, "video", "video"));
730 731
731 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream( 732 EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
732 testing::Property(&WebKit::WebMediaStream::label, 733 testing::Property(&WebKit::WebMediaStream::label,
733 UTF8ToUTF16(remote_stream_label)))); 734 UTF8ToUTF16(remote_stream_label))));
734 pc_handler_->OnAddStream(remote_stream); 735 pc_handler_->OnAddStream(remote_stream.get());
735 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream(); 736 const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
736 737
737 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks; 738 WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
738 webkit_stream.videoTracks(video_tracks); 739 webkit_stream.videoTracks(video_tracks);
739 EXPECT_EQ(1u, video_tracks.size()); 740 EXPECT_EQ(1u, video_tracks.size());
740 741
741 // Remove the Webrtc video track from the Webrtc MediaStream. 742 // Remove the Webrtc video track from the Webrtc MediaStream.
742 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track = 743 scoped_refptr<webrtc::VideoTrackInterface> webrtc_track =
743 remote_stream->GetVideoTracks()[0].get(); 744 remote_stream->GetVideoTracks()[0].get();
744 remote_stream->RemoveTrack(webrtc_track); 745 remote_stream->RemoveTrack(webrtc_track.get());
745 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks1; 746 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks1;
746 webkit_stream.videoTracks(modified_video_tracks1); 747 webkit_stream.videoTracks(modified_video_tracks1);
747 EXPECT_EQ(0u, modified_video_tracks1.size()); 748 EXPECT_EQ(0u, modified_video_tracks1.size());
748 749
749 // Add the WebRtc video track again. 750 // Add the WebRtc video track again.
750 remote_stream->AddTrack(webrtc_track); 751 remote_stream->AddTrack(webrtc_track.get());
751 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks2; 752 WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks2;
752 webkit_stream.videoTracks(modified_video_tracks2); 753 webkit_stream.videoTracks(modified_video_tracks2);
753 EXPECT_EQ(1u, modified_video_tracks2.size()); 754 EXPECT_EQ(1u, modified_video_tracks2.size());
754 } 755 }
755 756
756 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) { 757 TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) {
757 testing::InSequence sequence; 758 testing::InSequence sequence;
758 EXPECT_CALL(*mock_tracker_.get(), 759 EXPECT_CALL(*mock_tracker_.get(),
759 TrackAddIceCandidate(pc_handler_.get(), _, 760 TrackAddIceCandidate(pc_handler_.get(), _,
760 PeerConnectionTracker::SOURCE_LOCAL)); 761 PeerConnectionTracker::SOURCE_LOCAL));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 EXPECT_CALL(*mock_tracker_.get(), 807 EXPECT_CALL(*mock_tracker_.get(),
807 TrackCreateDTMFSender(pc_handler_.get(), 808 TrackCreateDTMFSender(pc_handler_.get(),
808 testing::Ref(tracks[0]))); 809 testing::Ref(tracks[0])));
809 810
810 scoped_ptr<WebKit::WebRTCDTMFSenderHandler> sender( 811 scoped_ptr<WebKit::WebRTCDTMFSenderHandler> sender(
811 pc_handler_->createDTMFSender(tracks[0])); 812 pc_handler_->createDTMFSender(tracks[0]));
812 EXPECT_TRUE(sender.get()); 813 EXPECT_TRUE(sender.get());
813 } 814 }
814 815
815 } // namespace content 816 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/rtc_peer_connection_handler.cc ('k') | content/renderer/media/rtc_video_capture_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698