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

Side by Side Diff: webrtc/pc/peerconnectioninterface_unittest.cc

Issue 2685783014: Replace NULL with nullptr in all C++ files. (Closed)
Patch Set: Fixing android. Created 3 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 ice_complete_ = new_state == PeerConnectionInterface::kIceGatheringComplete; 578 ice_complete_ = new_state == PeerConnectionInterface::kIceGatheringComplete;
579 callback_triggered_ = true; 579 callback_triggered_ = true;
580 } 580 }
581 void OnIceCandidate(const webrtc::IceCandidateInterface* candidate) override { 581 void OnIceCandidate(const webrtc::IceCandidateInterface* candidate) override {
582 EXPECT_NE(PeerConnectionInterface::kIceGatheringNew, 582 EXPECT_NE(PeerConnectionInterface::kIceGatheringNew,
583 pc_->ice_gathering_state()); 583 pc_->ice_gathering_state());
584 584
585 std::string sdp; 585 std::string sdp;
586 EXPECT_TRUE(candidate->ToString(&sdp)); 586 EXPECT_TRUE(candidate->ToString(&sdp));
587 EXPECT_LT(0u, sdp.size()); 587 EXPECT_LT(0u, sdp.size());
588 last_candidate_.reset(webrtc::CreateIceCandidate(candidate->sdp_mid(), 588 last_candidate_.reset(webrtc::CreateIceCandidate(
589 candidate->sdp_mline_index(), sdp, NULL)); 589 candidate->sdp_mid(), candidate->sdp_mline_index(), sdp, nullptr));
590 EXPECT_TRUE(last_candidate_.get() != NULL); 590 EXPECT_TRUE(last_candidate_.get() != nullptr);
591 callback_triggered_ = true; 591 callback_triggered_ = true;
592 } 592 }
593 593
594 void OnIceCandidatesRemoved( 594 void OnIceCandidatesRemoved(
595 const std::vector<cricket::Candidate>& candidates) override { 595 const std::vector<cricket::Candidate>& candidates) override {
596 callback_triggered_ = true; 596 callback_triggered_ = true;
597 } 597 }
598 598
599 void OnIceConnectionReceivingChange(bool receiving) override { 599 void OnIceConnectionReceivingChange(bool receiving) override {
600 callback_triggered_ = true; 600 callback_triggered_ = true;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 if (FindConstraint(constraints, 744 if (FindConstraint(constraints,
745 webrtc::MediaConstraintsInterface::kEnableDtlsSrtp, 745 webrtc::MediaConstraintsInterface::kEnableDtlsSrtp,
746 &dtls, 746 &dtls,
747 nullptr) && dtls) { 747 nullptr) && dtls) {
748 fake_certificate_generator_ = new FakeRTCCertificateGenerator(); 748 fake_certificate_generator_ = new FakeRTCCertificateGenerator();
749 cert_generator.reset(fake_certificate_generator_); 749 cert_generator.reset(fake_certificate_generator_);
750 } 750 }
751 pc_ = pc_factory_->CreatePeerConnection( 751 pc_ = pc_factory_->CreatePeerConnection(
752 config, constraints, std::move(port_allocator), 752 config, constraints, std::move(port_allocator),
753 std::move(cert_generator), &observer_); 753 std::move(cert_generator), &observer_);
754 ASSERT_TRUE(pc_.get() != NULL); 754 ASSERT_TRUE(pc_.get() != nullptr);
755 observer_.SetPeerConnectionInterface(pc_.get()); 755 observer_.SetPeerConnectionInterface(pc_.get());
756 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); 756 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_);
757 } 757 }
758 758
759 void CreatePeerConnectionExpectFail(const std::string& uri) { 759 void CreatePeerConnectionExpectFail(const std::string& uri) {
760 PeerConnectionInterface::RTCConfiguration config; 760 PeerConnectionInterface::RTCConfiguration config;
761 PeerConnectionInterface::IceServer server; 761 PeerConnectionInterface::IceServer server;
762 server.uri = uri; 762 server.uri = uri;
763 config.servers.push_back(server); 763 config.servers.push_back(server);
764 764
(...skipping 20 matching lines...) Expand all
785 EXPECT_EQ(1u, port_allocator_->turn_servers().size()); 785 EXPECT_EQ(1u, port_allocator_->turn_servers().size());
786 EXPECT_EQ(kTurnUsername, 786 EXPECT_EQ(kTurnUsername,
787 port_allocator_->turn_servers()[0].credentials.username); 787 port_allocator_->turn_servers()[0].credentials.username);
788 EXPECT_EQ(kTurnPassword, 788 EXPECT_EQ(kTurnPassword,
789 port_allocator_->turn_servers()[0].credentials.password); 789 port_allocator_->turn_servers()[0].credentials.password);
790 EXPECT_EQ(kTurnHostname, 790 EXPECT_EQ(kTurnHostname,
791 port_allocator_->turn_servers()[0].ports[0].address.hostname()); 791 port_allocator_->turn_servers()[0].ports[0].address.hostname());
792 } 792 }
793 793
794 void ReleasePeerConnection() { 794 void ReleasePeerConnection() {
795 pc_ = NULL; 795 pc_ = nullptr;
796 observer_.SetPeerConnectionInterface(NULL); 796 observer_.SetPeerConnectionInterface(nullptr);
797 } 797 }
798 798
799 void AddVideoStream(const std::string& label) { 799 void AddVideoStream(const std::string& label) {
800 // Create a local stream. 800 // Create a local stream.
801 rtc::scoped_refptr<MediaStreamInterface> stream( 801 rtc::scoped_refptr<MediaStreamInterface> stream(
802 pc_factory_->CreateLocalMediaStream(label)); 802 pc_factory_->CreateLocalMediaStream(label));
803 rtc::scoped_refptr<VideoTrackSourceInterface> video_source( 803 rtc::scoped_refptr<VideoTrackSourceInterface> video_source(
804 pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer(), NULL)); 804 pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer(),
805 nullptr));
805 rtc::scoped_refptr<VideoTrackInterface> video_track( 806 rtc::scoped_refptr<VideoTrackInterface> video_track(
806 pc_factory_->CreateVideoTrack(label + "v0", video_source)); 807 pc_factory_->CreateVideoTrack(label + "v0", video_source));
807 stream->AddTrack(video_track.get()); 808 stream->AddTrack(video_track.get());
808 EXPECT_TRUE(pc_->AddStream(stream)); 809 EXPECT_TRUE(pc_->AddStream(stream));
809 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout); 810 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
810 observer_.renegotiation_needed_ = false; 811 observer_.renegotiation_needed_ = false;
811 } 812 }
812 813
813 void AddVoiceStream(const std::string& label) { 814 void AddVoiceStream(const std::string& label) {
814 // Create a local stream. 815 // Create a local stream.
815 rtc::scoped_refptr<MediaStreamInterface> stream( 816 rtc::scoped_refptr<MediaStreamInterface> stream(
816 pc_factory_->CreateLocalMediaStream(label)); 817 pc_factory_->CreateLocalMediaStream(label));
817 rtc::scoped_refptr<AudioTrackInterface> audio_track( 818 rtc::scoped_refptr<AudioTrackInterface> audio_track(
818 pc_factory_->CreateAudioTrack(label + "a0", NULL)); 819 pc_factory_->CreateAudioTrack(label + "a0", nullptr));
819 stream->AddTrack(audio_track.get()); 820 stream->AddTrack(audio_track.get());
820 EXPECT_TRUE(pc_->AddStream(stream)); 821 EXPECT_TRUE(pc_->AddStream(stream));
821 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout); 822 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
822 observer_.renegotiation_needed_ = false; 823 observer_.renegotiation_needed_ = false;
823 } 824 }
824 825
825 void AddAudioVideoStream(const std::string& stream_label, 826 void AddAudioVideoStream(const std::string& stream_label,
826 const std::string& audio_track_label, 827 const std::string& audio_track_label,
827 const std::string& video_track_label) { 828 const std::string& video_track_label) {
828 // Create a local stream. 829 // Create a local stream.
829 rtc::scoped_refptr<MediaStreamInterface> stream( 830 rtc::scoped_refptr<MediaStreamInterface> stream(
830 pc_factory_->CreateLocalMediaStream(stream_label)); 831 pc_factory_->CreateLocalMediaStream(stream_label));
831 rtc::scoped_refptr<AudioTrackInterface> audio_track( 832 rtc::scoped_refptr<AudioTrackInterface> audio_track(
832 pc_factory_->CreateAudioTrack( 833 pc_factory_->CreateAudioTrack(
833 audio_track_label, static_cast<AudioSourceInterface*>(NULL))); 834 audio_track_label, static_cast<AudioSourceInterface*>(nullptr)));
834 stream->AddTrack(audio_track.get()); 835 stream->AddTrack(audio_track.get());
835 rtc::scoped_refptr<VideoTrackInterface> video_track( 836 rtc::scoped_refptr<VideoTrackInterface> video_track(
836 pc_factory_->CreateVideoTrack( 837 pc_factory_->CreateVideoTrack(
837 video_track_label, 838 video_track_label,
838 pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer()))); 839 pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer())));
839 stream->AddTrack(video_track.get()); 840 stream->AddTrack(video_track.get());
840 EXPECT_TRUE(pc_->AddStream(stream)); 841 EXPECT_TRUE(pc_->AddStream(stream));
841 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout); 842 EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
842 observer_.renegotiation_needed_ = false; 843 observer_.renegotiation_needed_ = false;
843 } 844 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 // Create a local stream with audio&video tracks. 910 // Create a local stream with audio&video tracks.
910 AddAudioVideoStream(kStreamLabel1, "audio_label", "video_label"); 911 AddAudioVideoStream(kStreamLabel1, "audio_label", "video_label");
911 CreateOfferReceiveAnswer(); 912 CreateOfferReceiveAnswer();
912 } 913 }
913 914
914 // Verify that RTP Header extensions has been negotiated for audio and video. 915 // Verify that RTP Header extensions has been negotiated for audio and video.
915 void VerifyRemoteRtpHeaderExtensions() { 916 void VerifyRemoteRtpHeaderExtensions() {
916 const cricket::MediaContentDescription* desc = 917 const cricket::MediaContentDescription* desc =
917 cricket::GetFirstAudioContentDescription( 918 cricket::GetFirstAudioContentDescription(
918 pc_->remote_description()->description()); 919 pc_->remote_description()->description());
919 ASSERT_TRUE(desc != NULL); 920 ASSERT_TRUE(desc != nullptr);
920 EXPECT_GT(desc->rtp_header_extensions().size(), 0u); 921 EXPECT_GT(desc->rtp_header_extensions().size(), 0u);
921 922
922 desc = cricket::GetFirstVideoContentDescription( 923 desc = cricket::GetFirstVideoContentDescription(
923 pc_->remote_description()->description()); 924 pc_->remote_description()->description());
924 ASSERT_TRUE(desc != NULL); 925 ASSERT_TRUE(desc != nullptr);
925 EXPECT_GT(desc->rtp_header_extensions().size(), 0u); 926 EXPECT_GT(desc->rtp_header_extensions().size(), 0u);
926 } 927 }
927 928
928 void CreateOfferAsRemoteDescription() { 929 void CreateOfferAsRemoteDescription() {
929 std::unique_ptr<SessionDescriptionInterface> offer; 930 std::unique_ptr<SessionDescriptionInterface> offer;
930 ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); 931 ASSERT_TRUE(DoCreateOffer(&offer, nullptr));
931 std::string sdp; 932 std::string sdp;
932 EXPECT_TRUE(offer->ToString(&sdp)); 933 EXPECT_TRUE(offer->ToString(&sdp));
933 SessionDescriptionInterface* remote_offer = 934 SessionDescriptionInterface* remote_offer =
934 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, 935 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer,
935 sdp, NULL); 936 sdp, nullptr);
936 EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); 937 EXPECT_TRUE(DoSetRemoteDescription(remote_offer));
937 EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_); 938 EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_);
938 } 939 }
939 940
940 void CreateAndSetRemoteOffer(const std::string& sdp) { 941 void CreateAndSetRemoteOffer(const std::string& sdp) {
941 SessionDescriptionInterface* remote_offer = 942 SessionDescriptionInterface* remote_offer =
942 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, 943 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer,
943 sdp, nullptr); 944 sdp, nullptr);
944 EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); 945 EXPECT_TRUE(DoSetRemoteDescription(remote_offer));
945 EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_); 946 EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_);
946 } 947 }
947 948
948 void CreateAnswerAsLocalDescription() { 949 void CreateAnswerAsLocalDescription() {
949 std::unique_ptr<SessionDescriptionInterface> answer; 950 std::unique_ptr<SessionDescriptionInterface> answer;
950 ASSERT_TRUE(DoCreateAnswer(&answer, nullptr)); 951 ASSERT_TRUE(DoCreateAnswer(&answer, nullptr));
951 952
952 // TODO(perkj): Currently SetLocalDescription fails if any parameters in an 953 // TODO(perkj): Currently SetLocalDescription fails if any parameters in an
953 // audio codec change, even if the parameter has nothing to do with 954 // audio codec change, even if the parameter has nothing to do with
954 // receiving. Not all parameters are serialized to SDP. 955 // receiving. Not all parameters are serialized to SDP.
955 // Since CreatePrAnswerAsLocalDescription serialize/deserialize 956 // Since CreatePrAnswerAsLocalDescription serialize/deserialize
956 // the SessionDescription, it is necessary to do that here to in order to 957 // the SessionDescription, it is necessary to do that here to in order to
957 // get ReceiveOfferCreatePrAnswerAndAnswer and RenegotiateAudioOnly to pass. 958 // get ReceiveOfferCreatePrAnswerAndAnswer and RenegotiateAudioOnly to pass.
958 // https://code.google.com/p/webrtc/issues/detail?id=1356 959 // https://code.google.com/p/webrtc/issues/detail?id=1356
959 std::string sdp; 960 std::string sdp;
960 EXPECT_TRUE(answer->ToString(&sdp)); 961 EXPECT_TRUE(answer->ToString(&sdp));
961 SessionDescriptionInterface* new_answer = 962 SessionDescriptionInterface* new_answer = webrtc::CreateSessionDescription(
962 webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, 963 SessionDescriptionInterface::kAnswer, sdp, nullptr);
963 sdp, NULL);
964 EXPECT_TRUE(DoSetLocalDescription(new_answer)); 964 EXPECT_TRUE(DoSetLocalDescription(new_answer));
965 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); 965 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_);
966 } 966 }
967 967
968 void CreatePrAnswerAsLocalDescription() { 968 void CreatePrAnswerAsLocalDescription() {
969 std::unique_ptr<SessionDescriptionInterface> answer; 969 std::unique_ptr<SessionDescriptionInterface> answer;
970 ASSERT_TRUE(DoCreateAnswer(&answer, nullptr)); 970 ASSERT_TRUE(DoCreateAnswer(&answer, nullptr));
971 971
972 std::string sdp; 972 std::string sdp;
973 EXPECT_TRUE(answer->ToString(&sdp)); 973 EXPECT_TRUE(answer->ToString(&sdp));
974 SessionDescriptionInterface* pr_answer = 974 SessionDescriptionInterface* pr_answer = webrtc::CreateSessionDescription(
975 webrtc::CreateSessionDescription(SessionDescriptionInterface::kPrAnswer, 975 SessionDescriptionInterface::kPrAnswer, sdp, nullptr);
976 sdp, NULL);
977 EXPECT_TRUE(DoSetLocalDescription(pr_answer)); 976 EXPECT_TRUE(DoSetLocalDescription(pr_answer));
978 EXPECT_EQ(PeerConnectionInterface::kHaveLocalPrAnswer, observer_.state_); 977 EXPECT_EQ(PeerConnectionInterface::kHaveLocalPrAnswer, observer_.state_);
979 } 978 }
980 979
981 void CreateOfferReceiveAnswer() { 980 void CreateOfferReceiveAnswer() {
982 CreateOfferAsLocalDescription(); 981 CreateOfferAsLocalDescription();
983 std::string sdp; 982 std::string sdp;
984 EXPECT_TRUE(pc_->local_description()->ToString(&sdp)); 983 EXPECT_TRUE(pc_->local_description()->ToString(&sdp));
985 CreateAnswerAsRemoteDescription(sdp); 984 CreateAnswerAsRemoteDescription(sdp);
986 } 985 }
987 986
988 void CreateOfferAsLocalDescription() { 987 void CreateOfferAsLocalDescription() {
989 std::unique_ptr<SessionDescriptionInterface> offer; 988 std::unique_ptr<SessionDescriptionInterface> offer;
990 ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); 989 ASSERT_TRUE(DoCreateOffer(&offer, nullptr));
991 // TODO(perkj): Currently SetLocalDescription fails if any parameters in an 990 // TODO(perkj): Currently SetLocalDescription fails if any parameters in an
992 // audio codec change, even if the parameter has nothing to do with 991 // audio codec change, even if the parameter has nothing to do with
993 // receiving. Not all parameters are serialized to SDP. 992 // receiving. Not all parameters are serialized to SDP.
994 // Since CreatePrAnswerAsLocalDescription serialize/deserialize 993 // Since CreatePrAnswerAsLocalDescription serialize/deserialize
995 // the SessionDescription, it is necessary to do that here to in order to 994 // the SessionDescription, it is necessary to do that here to in order to
996 // get ReceiveOfferCreatePrAnswerAndAnswer and RenegotiateAudioOnly to pass. 995 // get ReceiveOfferCreatePrAnswerAndAnswer and RenegotiateAudioOnly to pass.
997 // https://code.google.com/p/webrtc/issues/detail?id=1356 996 // https://code.google.com/p/webrtc/issues/detail?id=1356
998 std::string sdp; 997 std::string sdp;
999 EXPECT_TRUE(offer->ToString(&sdp)); 998 EXPECT_TRUE(offer->ToString(&sdp));
1000 SessionDescriptionInterface* new_offer = 999 SessionDescriptionInterface* new_offer = webrtc::CreateSessionDescription(
1001 webrtc::CreateSessionDescription( 1000 SessionDescriptionInterface::kOffer, sdp, nullptr);
1002 SessionDescriptionInterface::kOffer,
1003 sdp, NULL);
1004 1001
1005 EXPECT_TRUE(DoSetLocalDescription(new_offer)); 1002 EXPECT_TRUE(DoSetLocalDescription(new_offer));
1006 EXPECT_EQ(PeerConnectionInterface::kHaveLocalOffer, observer_.state_); 1003 EXPECT_EQ(PeerConnectionInterface::kHaveLocalOffer, observer_.state_);
1007 // Wait for the ice_complete message, so that SDP will have candidates. 1004 // Wait for the ice_complete message, so that SDP will have candidates.
1008 EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout); 1005 EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout);
1009 } 1006 }
1010 1007
1011 void CreateAnswerAsRemoteDescription(const std::string& sdp) { 1008 void CreateAnswerAsRemoteDescription(const std::string& sdp) {
1012 webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription( 1009 webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription(
1013 SessionDescriptionInterface::kAnswer); 1010 SessionDescriptionInterface::kAnswer);
1014 EXPECT_TRUE(answer->Initialize(sdp, NULL)); 1011 EXPECT_TRUE(answer->Initialize(sdp, nullptr));
1015 EXPECT_TRUE(DoSetRemoteDescription(answer)); 1012 EXPECT_TRUE(DoSetRemoteDescription(answer));
1016 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); 1013 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_);
1017 } 1014 }
1018 1015
1019 void CreatePrAnswerAndAnswerAsRemoteDescription(const std::string& sdp) { 1016 void CreatePrAnswerAndAnswerAsRemoteDescription(const std::string& sdp) {
1020 webrtc::JsepSessionDescription* pr_answer = 1017 webrtc::JsepSessionDescription* pr_answer =
1021 new webrtc::JsepSessionDescription( 1018 new webrtc::JsepSessionDescription(
1022 SessionDescriptionInterface::kPrAnswer); 1019 SessionDescriptionInterface::kPrAnswer);
1023 EXPECT_TRUE(pr_answer->Initialize(sdp, NULL)); 1020 EXPECT_TRUE(pr_answer->Initialize(sdp, nullptr));
1024 EXPECT_TRUE(DoSetRemoteDescription(pr_answer)); 1021 EXPECT_TRUE(DoSetRemoteDescription(pr_answer));
1025 EXPECT_EQ(PeerConnectionInterface::kHaveRemotePrAnswer, observer_.state_); 1022 EXPECT_EQ(PeerConnectionInterface::kHaveRemotePrAnswer, observer_.state_);
1026 webrtc::JsepSessionDescription* answer = 1023 webrtc::JsepSessionDescription* answer =
1027 new webrtc::JsepSessionDescription( 1024 new webrtc::JsepSessionDescription(
1028 SessionDescriptionInterface::kAnswer); 1025 SessionDescriptionInterface::kAnswer);
1029 EXPECT_TRUE(answer->Initialize(sdp, NULL)); 1026 EXPECT_TRUE(answer->Initialize(sdp, nullptr));
1030 EXPECT_TRUE(DoSetRemoteDescription(answer)); 1027 EXPECT_TRUE(DoSetRemoteDescription(answer));
1031 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); 1028 EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_);
1032 } 1029 }
1033 1030
1034 // Help function used for waiting until a the last signaled remote stream has 1031 // Help function used for waiting until a the last signaled remote stream has
1035 // the same label as |stream_label|. In a few of the tests in this file we 1032 // the same label as |stream_label|. In a few of the tests in this file we
1036 // answer with the same session description as we offer and thus we can 1033 // answer with the same session description as we offer and thus we can
1037 // check if OnAddStream have been called with the same stream as we offer to 1034 // check if OnAddStream have been called with the same stream as we offer to
1038 // send. 1035 // send.
1039 void WaitAndVerifyOnAddStream(const std::string& stream_label) { 1036 void WaitAndVerifyOnAddStream(const std::string& stream_label) {
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 TEST_F(PeerConnectionInterfaceTest, AddStreams) { 1288 TEST_F(PeerConnectionInterfaceTest, AddStreams) {
1292 CreatePeerConnectionWithoutDtls(); 1289 CreatePeerConnectionWithoutDtls();
1293 AddVideoStream(kStreamLabel1); 1290 AddVideoStream(kStreamLabel1);
1294 AddVoiceStream(kStreamLabel2); 1291 AddVoiceStream(kStreamLabel2);
1295 ASSERT_EQ(2u, pc_->local_streams()->count()); 1292 ASSERT_EQ(2u, pc_->local_streams()->count());
1296 1293
1297 // Test we can add multiple local streams to one peerconnection. 1294 // Test we can add multiple local streams to one peerconnection.
1298 rtc::scoped_refptr<MediaStreamInterface> stream( 1295 rtc::scoped_refptr<MediaStreamInterface> stream(
1299 pc_factory_->CreateLocalMediaStream(kStreamLabel3)); 1296 pc_factory_->CreateLocalMediaStream(kStreamLabel3));
1300 rtc::scoped_refptr<AudioTrackInterface> audio_track( 1297 rtc::scoped_refptr<AudioTrackInterface> audio_track(
1301 pc_factory_->CreateAudioTrack(kStreamLabel3, 1298 pc_factory_->CreateAudioTrack(
1302 static_cast<AudioSourceInterface*>(NULL))); 1299 kStreamLabel3, static_cast<AudioSourceInterface*>(nullptr)));
1303 stream->AddTrack(audio_track.get()); 1300 stream->AddTrack(audio_track.get());
1304 EXPECT_TRUE(pc_->AddStream(stream)); 1301 EXPECT_TRUE(pc_->AddStream(stream));
1305 EXPECT_EQ(3u, pc_->local_streams()->count()); 1302 EXPECT_EQ(3u, pc_->local_streams()->count());
1306 1303
1307 // Remove the third stream. 1304 // Remove the third stream.
1308 pc_->RemoveStream(pc_->local_streams()->at(2)); 1305 pc_->RemoveStream(pc_->local_streams()->at(2));
1309 EXPECT_EQ(2u, pc_->local_streams()->count()); 1306 EXPECT_EQ(2u, pc_->local_streams()->count());
1310 1307
1311 // Remove the second stream. 1308 // Remove the second stream.
1312 pc_->RemoveStream(pc_->local_streams()->at(1)); 1309 pc_->RemoveStream(pc_->local_streams()->at(1));
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1541 std::unique_ptr<SessionDescriptionInterface> offer; 1538 std::unique_ptr<SessionDescriptionInterface> offer;
1542 AddVideoStream(kStreamLabel1); 1539 AddVideoStream(kStreamLabel1);
1543 EXPECT_TRUE(DoCreateOffer(&offer, nullptr)); 1540 EXPECT_TRUE(DoCreateOffer(&offer, nullptr));
1544 EXPECT_TRUE(DoSetRemoteDescription(offer.release())); 1541 EXPECT_TRUE(DoSetRemoteDescription(offer.release()));
1545 1542
1546 // SetLocalDescription takes ownership of answer. 1543 // SetLocalDescription takes ownership of answer.
1547 std::unique_ptr<SessionDescriptionInterface> answer; 1544 std::unique_ptr<SessionDescriptionInterface> answer;
1548 EXPECT_TRUE(DoCreateAnswer(&answer, nullptr)); 1545 EXPECT_TRUE(DoCreateAnswer(&answer, nullptr));
1549 EXPECT_TRUE(DoSetLocalDescription(answer.release())); 1546 EXPECT_TRUE(DoSetLocalDescription(answer.release()));
1550 1547
1551 EXPECT_TRUE_WAIT(observer_.last_candidate_.get() != NULL, kTimeout); 1548 EXPECT_TRUE_WAIT(observer_.last_candidate_.get() != nullptr, kTimeout);
1552 EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout); 1549 EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout);
1553 1550
1554 EXPECT_TRUE(pc_->AddIceCandidate(observer_.last_candidate_.get())); 1551 EXPECT_TRUE(pc_->AddIceCandidate(observer_.last_candidate_.get()));
1555 } 1552 }
1556 1553
1557 // Test that CreateOffer and CreateAnswer will fail if the track labels are 1554 // Test that CreateOffer and CreateAnswer will fail if the track labels are
1558 // not unique. 1555 // not unique.
1559 TEST_F(PeerConnectionInterfaceTest, CreateOfferAnswerWithInvalidStream) { 1556 TEST_F(PeerConnectionInterfaceTest, CreateOfferAnswerWithInvalidStream) {
1560 CreatePeerConnectionWithoutDtls(); 1557 CreatePeerConnectionWithoutDtls();
1561 // Create a regular offer for the CreateAnswer test later. 1558 // Create a regular offer for the CreateAnswer test later.
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 ASSERT_LT(0u, pc_->remote_streams()->at(0)->GetVideoTracks().size()); 1692 ASSERT_LT(0u, pc_->remote_streams()->at(0)->GetVideoTracks().size());
1696 rtc::scoped_refptr<MediaStreamTrackInterface> remote_video = 1693 rtc::scoped_refptr<MediaStreamTrackInterface> remote_video =
1697 pc_->remote_streams()->at(0)->GetVideoTracks()[0]; 1694 pc_->remote_streams()->at(0)->GetVideoTracks()[0];
1698 EXPECT_TRUE(DoGetStats(remote_video)); 1695 EXPECT_TRUE(DoGetStats(remote_video));
1699 } 1696 }
1700 1697
1701 // Test that we don't get statistics for an invalid track. 1698 // Test that we don't get statistics for an invalid track.
1702 TEST_F(PeerConnectionInterfaceTest, GetStatsForInvalidTrack) { 1699 TEST_F(PeerConnectionInterfaceTest, GetStatsForInvalidTrack) {
1703 InitiateCall(); 1700 InitiateCall();
1704 rtc::scoped_refptr<AudioTrackInterface> unknown_audio_track( 1701 rtc::scoped_refptr<AudioTrackInterface> unknown_audio_track(
1705 pc_factory_->CreateAudioTrack("unknown track", NULL)); 1702 pc_factory_->CreateAudioTrack("unknown track", nullptr));
1706 EXPECT_FALSE(DoGetStats(unknown_audio_track)); 1703 EXPECT_FALSE(DoGetStats(unknown_audio_track));
1707 } 1704 }
1708 1705
1709 // This test setup two RTP data channels in loop back. 1706 // This test setup two RTP data channels in loop back.
1710 TEST_F(PeerConnectionInterfaceTest, TestDataChannel) { 1707 TEST_F(PeerConnectionInterfaceTest, TestDataChannel) {
1711 FakeConstraints constraints; 1708 FakeConstraints constraints;
1712 constraints.SetAllowRtpDataChannels(); 1709 constraints.SetAllowRtpDataChannels();
1713 CreatePeerConnection(&constraints); 1710 CreatePeerConnection(&constraints);
1714 rtc::scoped_refptr<DataChannelInterface> data1 = 1711 rtc::scoped_refptr<DataChannelInterface> data1 =
1715 pc_->CreateDataChannel("test1", NULL); 1712 pc_->CreateDataChannel("test1", nullptr);
1716 rtc::scoped_refptr<DataChannelInterface> data2 = 1713 rtc::scoped_refptr<DataChannelInterface> data2 =
1717 pc_->CreateDataChannel("test2", NULL); 1714 pc_->CreateDataChannel("test2", nullptr);
1718 ASSERT_TRUE(data1 != NULL); 1715 ASSERT_TRUE(data1 != nullptr);
1719 std::unique_ptr<MockDataChannelObserver> observer1( 1716 std::unique_ptr<MockDataChannelObserver> observer1(
1720 new MockDataChannelObserver(data1)); 1717 new MockDataChannelObserver(data1));
1721 std::unique_ptr<MockDataChannelObserver> observer2( 1718 std::unique_ptr<MockDataChannelObserver> observer2(
1722 new MockDataChannelObserver(data2)); 1719 new MockDataChannelObserver(data2));
1723 1720
1724 EXPECT_EQ(DataChannelInterface::kConnecting, data1->state()); 1721 EXPECT_EQ(DataChannelInterface::kConnecting, data1->state());
1725 EXPECT_EQ(DataChannelInterface::kConnecting, data2->state()); 1722 EXPECT_EQ(DataChannelInterface::kConnecting, data2->state());
1726 std::string data_to_send1 = "testing testing"; 1723 std::string data_to_send1 = "testing testing";
1727 std::string data_to_send2 = "testing something else"; 1724 std::string data_to_send2 = "testing something else";
1728 EXPECT_FALSE(data1->Send(DataBuffer(data_to_send1))); 1725 EXPECT_FALSE(data1->Send(DataBuffer(data_to_send1)));
(...skipping 23 matching lines...) Expand all
1752 EXPECT_EQ_WAIT(data_to_send2, observer2->last_message(), kTimeout); 1749 EXPECT_EQ_WAIT(data_to_send2, observer2->last_message(), kTimeout);
1753 } 1750 }
1754 1751
1755 // This test verifies that sendnig binary data over RTP data channels should 1752 // This test verifies that sendnig binary data over RTP data channels should
1756 // fail. 1753 // fail.
1757 TEST_F(PeerConnectionInterfaceTest, TestSendBinaryOnRtpDataChannel) { 1754 TEST_F(PeerConnectionInterfaceTest, TestSendBinaryOnRtpDataChannel) {
1758 FakeConstraints constraints; 1755 FakeConstraints constraints;
1759 constraints.SetAllowRtpDataChannels(); 1756 constraints.SetAllowRtpDataChannels();
1760 CreatePeerConnection(&constraints); 1757 CreatePeerConnection(&constraints);
1761 rtc::scoped_refptr<DataChannelInterface> data1 = 1758 rtc::scoped_refptr<DataChannelInterface> data1 =
1762 pc_->CreateDataChannel("test1", NULL); 1759 pc_->CreateDataChannel("test1", nullptr);
1763 rtc::scoped_refptr<DataChannelInterface> data2 = 1760 rtc::scoped_refptr<DataChannelInterface> data2 =
1764 pc_->CreateDataChannel("test2", NULL); 1761 pc_->CreateDataChannel("test2", nullptr);
1765 ASSERT_TRUE(data1 != NULL); 1762 ASSERT_TRUE(data1 != nullptr);
1766 std::unique_ptr<MockDataChannelObserver> observer1( 1763 std::unique_ptr<MockDataChannelObserver> observer1(
1767 new MockDataChannelObserver(data1)); 1764 new MockDataChannelObserver(data1));
1768 std::unique_ptr<MockDataChannelObserver> observer2( 1765 std::unique_ptr<MockDataChannelObserver> observer2(
1769 new MockDataChannelObserver(data2)); 1766 new MockDataChannelObserver(data2));
1770 1767
1771 EXPECT_EQ(DataChannelInterface::kConnecting, data1->state()); 1768 EXPECT_EQ(DataChannelInterface::kConnecting, data1->state());
1772 EXPECT_EQ(DataChannelInterface::kConnecting, data2->state()); 1769 EXPECT_EQ(DataChannelInterface::kConnecting, data2->state());
1773 1770
1774 CreateOfferReceiveAnswer(); 1771 CreateOfferReceiveAnswer();
1775 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout); 1772 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout);
1776 EXPECT_TRUE_WAIT(observer2->IsOpen(), kTimeout); 1773 EXPECT_TRUE_WAIT(observer2->IsOpen(), kTimeout);
1777 1774
1778 EXPECT_EQ(DataChannelInterface::kOpen, data1->state()); 1775 EXPECT_EQ(DataChannelInterface::kOpen, data1->state());
1779 EXPECT_EQ(DataChannelInterface::kOpen, data2->state()); 1776 EXPECT_EQ(DataChannelInterface::kOpen, data2->state());
1780 1777
1781 rtc::CopyOnWriteBuffer buffer("test", 4); 1778 rtc::CopyOnWriteBuffer buffer("test", 4);
1782 EXPECT_FALSE(data1->Send(DataBuffer(buffer, true))); 1779 EXPECT_FALSE(data1->Send(DataBuffer(buffer, true)));
1783 } 1780 }
1784 1781
1785 // This test setup a RTP data channels in loop back and test that a channel is 1782 // This test setup a RTP data channels in loop back and test that a channel is
1786 // opened even if the remote end answer with a zero SSRC. 1783 // opened even if the remote end answer with a zero SSRC.
1787 TEST_F(PeerConnectionInterfaceTest, TestSendOnlyDataChannel) { 1784 TEST_F(PeerConnectionInterfaceTest, TestSendOnlyDataChannel) {
1788 FakeConstraints constraints; 1785 FakeConstraints constraints;
1789 constraints.SetAllowRtpDataChannels(); 1786 constraints.SetAllowRtpDataChannels();
1790 CreatePeerConnection(&constraints); 1787 CreatePeerConnection(&constraints);
1791 rtc::scoped_refptr<DataChannelInterface> data1 = 1788 rtc::scoped_refptr<DataChannelInterface> data1 =
1792 pc_->CreateDataChannel("test1", NULL); 1789 pc_->CreateDataChannel("test1", nullptr);
1793 std::unique_ptr<MockDataChannelObserver> observer1( 1790 std::unique_ptr<MockDataChannelObserver> observer1(
1794 new MockDataChannelObserver(data1)); 1791 new MockDataChannelObserver(data1));
1795 1792
1796 CreateOfferReceiveAnswerWithoutSsrc(); 1793 CreateOfferReceiveAnswerWithoutSsrc();
1797 1794
1798 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout); 1795 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout);
1799 1796
1800 data1->Close(); 1797 data1->Close();
1801 EXPECT_EQ(DataChannelInterface::kClosing, data1->state()); 1798 EXPECT_EQ(DataChannelInterface::kClosing, data1->state());
1802 CreateOfferReceiveAnswerWithoutSsrc(); 1799 CreateOfferReceiveAnswerWithoutSsrc();
1803 EXPECT_EQ(DataChannelInterface::kClosed, data1->state()); 1800 EXPECT_EQ(DataChannelInterface::kClosed, data1->state());
1804 EXPECT_FALSE(observer1->IsOpen()); 1801 EXPECT_FALSE(observer1->IsOpen());
1805 } 1802 }
1806 1803
1807 // This test that if a data channel is added in an answer a receive only channel 1804 // This test that if a data channel is added in an answer a receive only channel
1808 // channel is created. 1805 // channel is created.
1809 TEST_F(PeerConnectionInterfaceTest, TestReceiveOnlyDataChannel) { 1806 TEST_F(PeerConnectionInterfaceTest, TestReceiveOnlyDataChannel) {
1810 FakeConstraints constraints; 1807 FakeConstraints constraints;
1811 constraints.SetAllowRtpDataChannels(); 1808 constraints.SetAllowRtpDataChannels();
1812 CreatePeerConnection(&constraints); 1809 CreatePeerConnection(&constraints);
1813 1810
1814 std::string offer_label = "offer_channel"; 1811 std::string offer_label = "offer_channel";
1815 rtc::scoped_refptr<DataChannelInterface> offer_channel = 1812 rtc::scoped_refptr<DataChannelInterface> offer_channel =
1816 pc_->CreateDataChannel(offer_label, NULL); 1813 pc_->CreateDataChannel(offer_label, nullptr);
1817 1814
1818 CreateOfferAsLocalDescription(); 1815 CreateOfferAsLocalDescription();
1819 1816
1820 // Replace the data channel label in the offer and apply it as an answer. 1817 // Replace the data channel label in the offer and apply it as an answer.
1821 std::string receive_label = "answer_channel"; 1818 std::string receive_label = "answer_channel";
1822 std::string sdp; 1819 std::string sdp;
1823 EXPECT_TRUE(pc_->local_description()->ToString(&sdp)); 1820 EXPECT_TRUE(pc_->local_description()->ToString(&sdp));
1824 rtc::replace_substrs(offer_label.c_str(), offer_label.length(), 1821 rtc::replace_substrs(offer_label.c_str(), offer_label.length(),
1825 receive_label.c_str(), receive_label.length(), 1822 receive_label.c_str(), receive_label.length(),
1826 &sdp); 1823 &sdp);
1827 CreateAnswerAsRemoteDescription(sdp); 1824 CreateAnswerAsRemoteDescription(sdp);
1828 1825
1829 // Verify that a new incoming data channel has been created and that 1826 // Verify that a new incoming data channel has been created and that
1830 // it is open but can't we written to. 1827 // it is open but can't we written to.
1831 ASSERT_TRUE(observer_.last_datachannel_ != NULL); 1828 ASSERT_TRUE(observer_.last_datachannel_ != nullptr);
1832 DataChannelInterface* received_channel = observer_.last_datachannel_; 1829 DataChannelInterface* received_channel = observer_.last_datachannel_;
1833 EXPECT_EQ(DataChannelInterface::kConnecting, received_channel->state()); 1830 EXPECT_EQ(DataChannelInterface::kConnecting, received_channel->state());
1834 EXPECT_EQ(receive_label, received_channel->label()); 1831 EXPECT_EQ(receive_label, received_channel->label());
1835 EXPECT_FALSE(received_channel->Send(DataBuffer("something"))); 1832 EXPECT_FALSE(received_channel->Send(DataBuffer("something")));
1836 1833
1837 // Verify that the channel we initially offered has been rejected. 1834 // Verify that the channel we initially offered has been rejected.
1838 EXPECT_EQ(DataChannelInterface::kClosed, offer_channel->state()); 1835 EXPECT_EQ(DataChannelInterface::kClosed, offer_channel->state());
1839 1836
1840 // Do another offer / answer exchange and verify that the data channel is 1837 // Do another offer / answer exchange and verify that the data channel is
1841 // opened. 1838 // opened.
1842 CreateOfferReceiveAnswer(); 1839 CreateOfferReceiveAnswer();
1843 EXPECT_EQ_WAIT(DataChannelInterface::kOpen, received_channel->state(), 1840 EXPECT_EQ_WAIT(DataChannelInterface::kOpen, received_channel->state(),
1844 kTimeout); 1841 kTimeout);
1845 } 1842 }
1846 1843
1847 // This test that no data channel is returned if a reliable channel is 1844 // This test that no data channel is returned if a reliable channel is
1848 // requested. 1845 // requested.
1849 // TODO(perkj): Remove this test once reliable channels are implemented. 1846 // TODO(perkj): Remove this test once reliable channels are implemented.
1850 TEST_F(PeerConnectionInterfaceTest, CreateReliableRtpDataChannelShouldFail) { 1847 TEST_F(PeerConnectionInterfaceTest, CreateReliableRtpDataChannelShouldFail) {
1851 FakeConstraints constraints; 1848 FakeConstraints constraints;
1852 constraints.SetAllowRtpDataChannels(); 1849 constraints.SetAllowRtpDataChannels();
1853 CreatePeerConnection(&constraints); 1850 CreatePeerConnection(&constraints);
1854 1851
1855 std::string label = "test"; 1852 std::string label = "test";
1856 webrtc::DataChannelInit config; 1853 webrtc::DataChannelInit config;
1857 config.reliable = true; 1854 config.reliable = true;
1858 rtc::scoped_refptr<DataChannelInterface> channel = 1855 rtc::scoped_refptr<DataChannelInterface> channel =
1859 pc_->CreateDataChannel(label, &config); 1856 pc_->CreateDataChannel(label, &config);
1860 EXPECT_TRUE(channel == NULL); 1857 EXPECT_TRUE(channel == nullptr);
1861 } 1858 }
1862 1859
1863 // Verifies that duplicated label is not allowed for RTP data channel. 1860 // Verifies that duplicated label is not allowed for RTP data channel.
1864 TEST_F(PeerConnectionInterfaceTest, RtpDuplicatedLabelNotAllowed) { 1861 TEST_F(PeerConnectionInterfaceTest, RtpDuplicatedLabelNotAllowed) {
1865 FakeConstraints constraints; 1862 FakeConstraints constraints;
1866 constraints.SetAllowRtpDataChannels(); 1863 constraints.SetAllowRtpDataChannels();
1867 CreatePeerConnection(&constraints); 1864 CreatePeerConnection(&constraints);
1868 1865
1869 std::string label = "test"; 1866 std::string label = "test";
1870 rtc::scoped_refptr<DataChannelInterface> channel = 1867 rtc::scoped_refptr<DataChannelInterface> channel =
1871 pc_->CreateDataChannel(label, nullptr); 1868 pc_->CreateDataChannel(label, nullptr);
1872 EXPECT_NE(channel, nullptr); 1869 EXPECT_NE(channel, nullptr);
1873 1870
1874 rtc::scoped_refptr<DataChannelInterface> dup_channel = 1871 rtc::scoped_refptr<DataChannelInterface> dup_channel =
1875 pc_->CreateDataChannel(label, nullptr); 1872 pc_->CreateDataChannel(label, nullptr);
1876 EXPECT_EQ(dup_channel, nullptr); 1873 EXPECT_EQ(dup_channel, nullptr);
1877 } 1874 }
1878 1875
1879 // This tests that a SCTP data channel is returned using different 1876 // This tests that a SCTP data channel is returned using different
1880 // DataChannelInit configurations. 1877 // DataChannelInit configurations.
1881 TEST_F(PeerConnectionInterfaceTest, CreateSctpDataChannel) { 1878 TEST_F(PeerConnectionInterfaceTest, CreateSctpDataChannel) {
1882 FakeConstraints constraints; 1879 FakeConstraints constraints;
1883 constraints.SetAllowDtlsSctpDataChannels(); 1880 constraints.SetAllowDtlsSctpDataChannels();
1884 CreatePeerConnection(&constraints); 1881 CreatePeerConnection(&constraints);
1885 1882
1886 webrtc::DataChannelInit config; 1883 webrtc::DataChannelInit config;
1887 1884
1888 rtc::scoped_refptr<DataChannelInterface> channel = 1885 rtc::scoped_refptr<DataChannelInterface> channel =
1889 pc_->CreateDataChannel("1", &config); 1886 pc_->CreateDataChannel("1", &config);
1890 EXPECT_TRUE(channel != NULL); 1887 EXPECT_TRUE(channel != nullptr);
1891 EXPECT_TRUE(channel->reliable()); 1888 EXPECT_TRUE(channel->reliable());
1892 EXPECT_TRUE(observer_.renegotiation_needed_); 1889 EXPECT_TRUE(observer_.renegotiation_needed_);
1893 observer_.renegotiation_needed_ = false; 1890 observer_.renegotiation_needed_ = false;
1894 1891
1895 config.ordered = false; 1892 config.ordered = false;
1896 channel = pc_->CreateDataChannel("2", &config); 1893 channel = pc_->CreateDataChannel("2", &config);
1897 EXPECT_TRUE(channel != NULL); 1894 EXPECT_TRUE(channel != nullptr);
1898 EXPECT_TRUE(channel->reliable()); 1895 EXPECT_TRUE(channel->reliable());
1899 EXPECT_FALSE(observer_.renegotiation_needed_); 1896 EXPECT_FALSE(observer_.renegotiation_needed_);
1900 1897
1901 config.ordered = true; 1898 config.ordered = true;
1902 config.maxRetransmits = 0; 1899 config.maxRetransmits = 0;
1903 channel = pc_->CreateDataChannel("3", &config); 1900 channel = pc_->CreateDataChannel("3", &config);
1904 EXPECT_TRUE(channel != NULL); 1901 EXPECT_TRUE(channel != nullptr);
1905 EXPECT_FALSE(channel->reliable()); 1902 EXPECT_FALSE(channel->reliable());
1906 EXPECT_FALSE(observer_.renegotiation_needed_); 1903 EXPECT_FALSE(observer_.renegotiation_needed_);
1907 1904
1908 config.maxRetransmits = -1; 1905 config.maxRetransmits = -1;
1909 config.maxRetransmitTime = 0; 1906 config.maxRetransmitTime = 0;
1910 channel = pc_->CreateDataChannel("4", &config); 1907 channel = pc_->CreateDataChannel("4", &config);
1911 EXPECT_TRUE(channel != NULL); 1908 EXPECT_TRUE(channel != nullptr);
1912 EXPECT_FALSE(channel->reliable()); 1909 EXPECT_FALSE(channel->reliable());
1913 EXPECT_FALSE(observer_.renegotiation_needed_); 1910 EXPECT_FALSE(observer_.renegotiation_needed_);
1914 } 1911 }
1915 1912
1916 // This tests that no data channel is returned if both maxRetransmits and 1913 // This tests that no data channel is returned if both maxRetransmits and
1917 // maxRetransmitTime are set for SCTP data channels. 1914 // maxRetransmitTime are set for SCTP data channels.
1918 TEST_F(PeerConnectionInterfaceTest, 1915 TEST_F(PeerConnectionInterfaceTest,
1919 CreateSctpDataChannelShouldFailForInvalidConfig) { 1916 CreateSctpDataChannelShouldFailForInvalidConfig) {
1920 FakeConstraints constraints; 1917 FakeConstraints constraints;
1921 constraints.SetAllowDtlsSctpDataChannels(); 1918 constraints.SetAllowDtlsSctpDataChannels();
1922 CreatePeerConnection(&constraints); 1919 CreatePeerConnection(&constraints);
1923 1920
1924 std::string label = "test"; 1921 std::string label = "test";
1925 webrtc::DataChannelInit config; 1922 webrtc::DataChannelInit config;
1926 config.maxRetransmits = 0; 1923 config.maxRetransmits = 0;
1927 config.maxRetransmitTime = 0; 1924 config.maxRetransmitTime = 0;
1928 1925
1929 rtc::scoped_refptr<DataChannelInterface> channel = 1926 rtc::scoped_refptr<DataChannelInterface> channel =
1930 pc_->CreateDataChannel(label, &config); 1927 pc_->CreateDataChannel(label, &config);
1931 EXPECT_TRUE(channel == NULL); 1928 EXPECT_TRUE(channel == nullptr);
1932 } 1929 }
1933 1930
1934 // The test verifies that creating a SCTP data channel with an id already in use 1931 // The test verifies that creating a SCTP data channel with an id already in use
1935 // or out of range should fail. 1932 // or out of range should fail.
1936 TEST_F(PeerConnectionInterfaceTest, 1933 TEST_F(PeerConnectionInterfaceTest,
1937 CreateSctpDataChannelWithInvalidIdShouldFail) { 1934 CreateSctpDataChannelWithInvalidIdShouldFail) {
1938 FakeConstraints constraints; 1935 FakeConstraints constraints;
1939 constraints.SetAllowDtlsSctpDataChannels(); 1936 constraints.SetAllowDtlsSctpDataChannels();
1940 CreatePeerConnection(&constraints); 1937 CreatePeerConnection(&constraints);
1941 1938
1942 webrtc::DataChannelInit config; 1939 webrtc::DataChannelInit config;
1943 rtc::scoped_refptr<DataChannelInterface> channel; 1940 rtc::scoped_refptr<DataChannelInterface> channel;
1944 1941
1945 config.id = 1; 1942 config.id = 1;
1946 channel = pc_->CreateDataChannel("1", &config); 1943 channel = pc_->CreateDataChannel("1", &config);
1947 EXPECT_TRUE(channel != NULL); 1944 EXPECT_TRUE(channel != nullptr);
1948 EXPECT_EQ(1, channel->id()); 1945 EXPECT_EQ(1, channel->id());
1949 1946
1950 channel = pc_->CreateDataChannel("x", &config); 1947 channel = pc_->CreateDataChannel("x", &config);
1951 EXPECT_TRUE(channel == NULL); 1948 EXPECT_TRUE(channel == nullptr);
1952 1949
1953 config.id = cricket::kMaxSctpSid; 1950 config.id = cricket::kMaxSctpSid;
1954 channel = pc_->CreateDataChannel("max", &config); 1951 channel = pc_->CreateDataChannel("max", &config);
1955 EXPECT_TRUE(channel != NULL); 1952 EXPECT_TRUE(channel != nullptr);
1956 EXPECT_EQ(config.id, channel->id()); 1953 EXPECT_EQ(config.id, channel->id());
1957 1954
1958 config.id = cricket::kMaxSctpSid + 1; 1955 config.id = cricket::kMaxSctpSid + 1;
1959 channel = pc_->CreateDataChannel("x", &config); 1956 channel = pc_->CreateDataChannel("x", &config);
1960 EXPECT_TRUE(channel == NULL); 1957 EXPECT_TRUE(channel == nullptr);
1961 } 1958 }
1962 1959
1963 // Verifies that duplicated label is allowed for SCTP data channel. 1960 // Verifies that duplicated label is allowed for SCTP data channel.
1964 TEST_F(PeerConnectionInterfaceTest, SctpDuplicatedLabelAllowed) { 1961 TEST_F(PeerConnectionInterfaceTest, SctpDuplicatedLabelAllowed) {
1965 FakeConstraints constraints; 1962 FakeConstraints constraints;
1966 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp, 1963 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp,
1967 true); 1964 true);
1968 CreatePeerConnection(&constraints); 1965 CreatePeerConnection(&constraints);
1969 1966
1970 std::string label = "test"; 1967 std::string label = "test";
1971 rtc::scoped_refptr<DataChannelInterface> channel = 1968 rtc::scoped_refptr<DataChannelInterface> channel =
1972 pc_->CreateDataChannel(label, nullptr); 1969 pc_->CreateDataChannel(label, nullptr);
1973 EXPECT_NE(channel, nullptr); 1970 EXPECT_NE(channel, nullptr);
1974 1971
1975 rtc::scoped_refptr<DataChannelInterface> dup_channel = 1972 rtc::scoped_refptr<DataChannelInterface> dup_channel =
1976 pc_->CreateDataChannel(label, nullptr); 1973 pc_->CreateDataChannel(label, nullptr);
1977 EXPECT_NE(dup_channel, nullptr); 1974 EXPECT_NE(dup_channel, nullptr);
1978 } 1975 }
1979 1976
1980 // This test verifies that OnRenegotiationNeeded is fired for every new RTP 1977 // This test verifies that OnRenegotiationNeeded is fired for every new RTP
1981 // DataChannel. 1978 // DataChannel.
1982 TEST_F(PeerConnectionInterfaceTest, RenegotiationNeededForNewRtpDataChannel) { 1979 TEST_F(PeerConnectionInterfaceTest, RenegotiationNeededForNewRtpDataChannel) {
1983 FakeConstraints constraints; 1980 FakeConstraints constraints;
1984 constraints.SetAllowRtpDataChannels(); 1981 constraints.SetAllowRtpDataChannels();
1985 CreatePeerConnection(&constraints); 1982 CreatePeerConnection(&constraints);
1986 1983
1987 rtc::scoped_refptr<DataChannelInterface> dc1 = 1984 rtc::scoped_refptr<DataChannelInterface> dc1 =
1988 pc_->CreateDataChannel("test1", NULL); 1985 pc_->CreateDataChannel("test1", nullptr);
1989 EXPECT_TRUE(observer_.renegotiation_needed_); 1986 EXPECT_TRUE(observer_.renegotiation_needed_);
1990 observer_.renegotiation_needed_ = false; 1987 observer_.renegotiation_needed_ = false;
1991 1988
1992 rtc::scoped_refptr<DataChannelInterface> dc2 = 1989 rtc::scoped_refptr<DataChannelInterface> dc2 =
1993 pc_->CreateDataChannel("test2", NULL); 1990 pc_->CreateDataChannel("test2", nullptr);
1994 EXPECT_TRUE(observer_.renegotiation_needed_); 1991 EXPECT_TRUE(observer_.renegotiation_needed_);
1995 } 1992 }
1996 1993
1997 // This test that a data channel closes when a PeerConnection is deleted/closed. 1994 // This test that a data channel closes when a PeerConnection is deleted/closed.
1998 TEST_F(PeerConnectionInterfaceTest, DataChannelCloseWhenPeerConnectionClose) { 1995 TEST_F(PeerConnectionInterfaceTest, DataChannelCloseWhenPeerConnectionClose) {
1999 FakeConstraints constraints; 1996 FakeConstraints constraints;
2000 constraints.SetAllowRtpDataChannels(); 1997 constraints.SetAllowRtpDataChannels();
2001 CreatePeerConnection(&constraints); 1998 CreatePeerConnection(&constraints);
2002 1999
2003 rtc::scoped_refptr<DataChannelInterface> data1 = 2000 rtc::scoped_refptr<DataChannelInterface> data1 =
2004 pc_->CreateDataChannel("test1", NULL); 2001 pc_->CreateDataChannel("test1", nullptr);
2005 rtc::scoped_refptr<DataChannelInterface> data2 = 2002 rtc::scoped_refptr<DataChannelInterface> data2 =
2006 pc_->CreateDataChannel("test2", NULL); 2003 pc_->CreateDataChannel("test2", nullptr);
2007 ASSERT_TRUE(data1 != NULL); 2004 ASSERT_TRUE(data1 != nullptr);
2008 std::unique_ptr<MockDataChannelObserver> observer1( 2005 std::unique_ptr<MockDataChannelObserver> observer1(
2009 new MockDataChannelObserver(data1)); 2006 new MockDataChannelObserver(data1));
2010 std::unique_ptr<MockDataChannelObserver> observer2( 2007 std::unique_ptr<MockDataChannelObserver> observer2(
2011 new MockDataChannelObserver(data2)); 2008 new MockDataChannelObserver(data2));
2012 2009
2013 CreateOfferReceiveAnswer(); 2010 CreateOfferReceiveAnswer();
2014 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout); 2011 EXPECT_TRUE_WAIT(observer1->IsOpen(), kTimeout);
2015 EXPECT_TRUE_WAIT(observer2->IsOpen(), kTimeout); 2012 EXPECT_TRUE_WAIT(observer2->IsOpen(), kTimeout);
2016 2013
2017 ReleasePeerConnection(); 2014 ReleasePeerConnection();
2018 EXPECT_EQ(DataChannelInterface::kClosed, data1->state()); 2015 EXPECT_EQ(DataChannelInterface::kClosed, data1->state());
2019 EXPECT_EQ(DataChannelInterface::kClosed, data2->state()); 2016 EXPECT_EQ(DataChannelInterface::kClosed, data2->state());
2020 } 2017 }
2021 2018
2022 // This test that data channels can be rejected in an answer. 2019 // This test that data channels can be rejected in an answer.
2023 TEST_F(PeerConnectionInterfaceTest, TestRejectDataChannelInAnswer) { 2020 TEST_F(PeerConnectionInterfaceTest, TestRejectDataChannelInAnswer) {
2024 FakeConstraints constraints; 2021 FakeConstraints constraints;
2025 constraints.SetAllowRtpDataChannels(); 2022 constraints.SetAllowRtpDataChannels();
2026 CreatePeerConnection(&constraints); 2023 CreatePeerConnection(&constraints);
2027 2024
2028 rtc::scoped_refptr<DataChannelInterface> offer_channel( 2025 rtc::scoped_refptr<DataChannelInterface> offer_channel(
2029 pc_->CreateDataChannel("offer_channel", NULL)); 2026 pc_->CreateDataChannel("offer_channel", nullptr));
2030 2027
2031 CreateOfferAsLocalDescription(); 2028 CreateOfferAsLocalDescription();
2032 2029
2033 // Create an answer where the m-line for data channels are rejected. 2030 // Create an answer where the m-line for data channels are rejected.
2034 std::string sdp; 2031 std::string sdp;
2035 EXPECT_TRUE(pc_->local_description()->ToString(&sdp)); 2032 EXPECT_TRUE(pc_->local_description()->ToString(&sdp));
2036 webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription( 2033 webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription(
2037 SessionDescriptionInterface::kAnswer); 2034 SessionDescriptionInterface::kAnswer);
2038 EXPECT_TRUE(answer->Initialize(sdp, NULL)); 2035 EXPECT_TRUE(answer->Initialize(sdp, nullptr));
2039 cricket::ContentInfo* data_info = 2036 cricket::ContentInfo* data_info =
2040 answer->description()->GetContentByName("data"); 2037 answer->description()->GetContentByName("data");
2041 data_info->rejected = true; 2038 data_info->rejected = true;
2042 2039
2043 DoSetRemoteDescription(answer); 2040 DoSetRemoteDescription(answer);
2044 EXPECT_EQ(DataChannelInterface::kClosed, offer_channel->state()); 2041 EXPECT_EQ(DataChannelInterface::kClosed, offer_channel->state());
2045 } 2042 }
2046 2043
2047 // Test that we can create a session description from an SDP string from 2044 // Test that we can create a session description from an SDP string from
2048 // FireFox, use it as a remote session description, generate an answer and use 2045 // FireFox, use it as a remote session description, generate an answer and use
2049 // the answer as a local description. 2046 // the answer as a local description.
2050 TEST_F(PeerConnectionInterfaceTest, ReceiveFireFoxOffer) { 2047 TEST_F(PeerConnectionInterfaceTest, ReceiveFireFoxOffer) {
2051 FakeConstraints constraints; 2048 FakeConstraints constraints;
2052 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp, 2049 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp,
2053 true); 2050 true);
2054 CreatePeerConnection(&constraints); 2051 CreatePeerConnection(&constraints);
2055 AddAudioVideoStream(kStreamLabel1, "audio_label", "video_label"); 2052 AddAudioVideoStream(kStreamLabel1, "audio_label", "video_label");
2056 SessionDescriptionInterface* desc = 2053 SessionDescriptionInterface* desc =
2057 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, 2054 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer,
2058 webrtc::kFireFoxSdpOffer, nullptr); 2055 webrtc::kFireFoxSdpOffer, nullptr);
2059 EXPECT_TRUE(DoSetSessionDescription(desc, false)); 2056 EXPECT_TRUE(DoSetSessionDescription(desc, false));
2060 CreateAnswerAsLocalDescription(); 2057 CreateAnswerAsLocalDescription();
2061 ASSERT_TRUE(pc_->local_description() != NULL); 2058 ASSERT_TRUE(pc_->local_description() != nullptr);
2062 ASSERT_TRUE(pc_->remote_description() != NULL); 2059 ASSERT_TRUE(pc_->remote_description() != nullptr);
2063 2060
2064 const cricket::ContentInfo* content = 2061 const cricket::ContentInfo* content =
2065 cricket::GetFirstAudioContent(pc_->local_description()->description()); 2062 cricket::GetFirstAudioContent(pc_->local_description()->description());
2066 ASSERT_TRUE(content != NULL); 2063 ASSERT_TRUE(content != nullptr);
2067 EXPECT_FALSE(content->rejected); 2064 EXPECT_FALSE(content->rejected);
2068 2065
2069 content = 2066 content =
2070 cricket::GetFirstVideoContent(pc_->local_description()->description()); 2067 cricket::GetFirstVideoContent(pc_->local_description()->description());
2071 ASSERT_TRUE(content != NULL); 2068 ASSERT_TRUE(content != nullptr);
2072 EXPECT_FALSE(content->rejected); 2069 EXPECT_FALSE(content->rejected);
2073 #ifdef HAVE_SCTP 2070 #ifdef HAVE_SCTP
2074 content = 2071 content =
2075 cricket::GetFirstDataContent(pc_->local_description()->description()); 2072 cricket::GetFirstDataContent(pc_->local_description()->description());
2076 ASSERT_TRUE(content != NULL); 2073 ASSERT_TRUE(content != nullptr);
2077 EXPECT_TRUE(content->rejected); 2074 EXPECT_TRUE(content->rejected);
2078 #endif 2075 #endif
2079 } 2076 }
2080 2077
2081 // Test that an offer can be received which offers DTLS with SDES fallback. 2078 // Test that an offer can be received which offers DTLS with SDES fallback.
2082 // Regression test for issue: 2079 // Regression test for issue:
2083 // https://bugs.chromium.org/p/webrtc/issues/detail?id=6972 2080 // https://bugs.chromium.org/p/webrtc/issues/detail?id=6972
2084 TEST_F(PeerConnectionInterfaceTest, ReceiveDtlsSdesFallbackOffer) { 2081 TEST_F(PeerConnectionInterfaceTest, ReceiveDtlsSdesFallbackOffer) {
2085 FakeConstraints constraints; 2082 FakeConstraints constraints;
2086 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp, 2083 constraints.AddMandatory(webrtc::MediaConstraintsInterface::kEnableDtlsSrtp,
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2402 pc_->local_streams()->at(0); 2399 pc_->local_streams()->at(0);
2403 2400
2404 pc_->Close(); 2401 pc_->Close();
2405 2402
2406 pc_->RemoveStream(local_stream); 2403 pc_->RemoveStream(local_stream);
2407 EXPECT_FALSE(pc_->AddStream(local_stream)); 2404 EXPECT_FALSE(pc_->AddStream(local_stream));
2408 2405
2409 ASSERT_FALSE(local_stream->GetAudioTracks().empty()); 2406 ASSERT_FALSE(local_stream->GetAudioTracks().empty());
2410 rtc::scoped_refptr<webrtc::DtmfSenderInterface> dtmf_sender( 2407 rtc::scoped_refptr<webrtc::DtmfSenderInterface> dtmf_sender(
2411 pc_->CreateDtmfSender(local_stream->GetAudioTracks()[0])); 2408 pc_->CreateDtmfSender(local_stream->GetAudioTracks()[0]));
2412 EXPECT_TRUE(NULL == dtmf_sender); // local stream has been removed. 2409 EXPECT_TRUE(nullptr == dtmf_sender); // local stream has been removed.
2413 2410
2414 EXPECT_TRUE(pc_->CreateDataChannel("test", NULL) == NULL); 2411 EXPECT_TRUE(pc_->CreateDataChannel("test", nullptr) == nullptr);
2415 2412
2416 EXPECT_TRUE(pc_->local_description() != NULL); 2413 EXPECT_TRUE(pc_->local_description() != nullptr);
2417 EXPECT_TRUE(pc_->remote_description() != NULL); 2414 EXPECT_TRUE(pc_->remote_description() != nullptr);
2418 2415
2419 std::unique_ptr<SessionDescriptionInterface> offer; 2416 std::unique_ptr<SessionDescriptionInterface> offer;
2420 EXPECT_TRUE(DoCreateOffer(&offer, nullptr)); 2417 EXPECT_TRUE(DoCreateOffer(&offer, nullptr));
2421 std::unique_ptr<SessionDescriptionInterface> answer; 2418 std::unique_ptr<SessionDescriptionInterface> answer;
2422 EXPECT_TRUE(DoCreateAnswer(&answer, nullptr)); 2419 EXPECT_TRUE(DoCreateAnswer(&answer, nullptr));
2423 2420
2424 std::string sdp; 2421 std::string sdp;
2425 ASSERT_TRUE(pc_->remote_description()->ToString(&sdp)); 2422 ASSERT_TRUE(pc_->remote_description()->ToString(&sdp));
2426 SessionDescriptionInterface* remote_offer = 2423 SessionDescriptionInterface* remote_offer = webrtc::CreateSessionDescription(
2427 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, 2424 SessionDescriptionInterface::kOffer, sdp, nullptr);
2428 sdp, NULL);
2429 EXPECT_FALSE(DoSetRemoteDescription(remote_offer)); 2425 EXPECT_FALSE(DoSetRemoteDescription(remote_offer));
2430 2426
2431 ASSERT_TRUE(pc_->local_description()->ToString(&sdp)); 2427 ASSERT_TRUE(pc_->local_description()->ToString(&sdp));
2432 SessionDescriptionInterface* local_offer = 2428 SessionDescriptionInterface* local_offer = webrtc::CreateSessionDescription(
2433 webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, 2429 SessionDescriptionInterface::kOffer, sdp, nullptr);
2434 sdp, NULL);
2435 EXPECT_FALSE(DoSetLocalDescription(local_offer)); 2430 EXPECT_FALSE(DoSetLocalDescription(local_offer));
2436 } 2431 }
2437 2432
2438 // Test that GetStats can still be called after PeerConnection::Close. 2433 // Test that GetStats can still be called after PeerConnection::Close.
2439 TEST_F(PeerConnectionInterfaceTest, CloseAndGetStats) { 2434 TEST_F(PeerConnectionInterfaceTest, CloseAndGetStats) {
2440 InitiateCall(); 2435 InitiateCall();
2441 pc_->Close(); 2436 pc_->Close();
2442 DoGetStats(NULL); 2437 DoGetStats(nullptr);
2443 } 2438 }
2444 2439
2445 // NOTE: The series of tests below come from what used to be 2440 // NOTE: The series of tests below come from what used to be
2446 // mediastreamsignaling_unittest.cc, and are mostly aimed at testing that 2441 // mediastreamsignaling_unittest.cc, and are mostly aimed at testing that
2447 // setting a remote or local description has the expected effects. 2442 // setting a remote or local description has the expected effects.
2448 2443
2449 // This test verifies that the remote MediaStreams corresponding to a received 2444 // This test verifies that the remote MediaStreams corresponding to a received
2450 // SDP string is created. In this test the two separate MediaStreams are 2445 // SDP string is created. In this test the two separate MediaStreams are
2451 // signaled. 2446 // signaled.
2452 TEST_F(PeerConnectionInterfaceTest, UpdateRemoteStreams) { 2447 TEST_F(PeerConnectionInterfaceTest, UpdateRemoteStreams) {
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
2832 EXPECT_TRUE(DoSetLocalDescription(offer.release())); 2827 EXPECT_TRUE(DoSetLocalDescription(offer.release()));
2833 2828
2834 auto senders = pc_->GetSenders(); 2829 auto senders = pc_->GetSenders();
2835 EXPECT_EQ(2u, senders.size()); 2830 EXPECT_EQ(2u, senders.size());
2836 EXPECT_TRUE(ContainsSender(senders, kAudioTracks[0])); 2831 EXPECT_TRUE(ContainsSender(senders, kAudioTracks[0]));
2837 EXPECT_TRUE(ContainsSender(senders, kVideoTracks[0])); 2832 EXPECT_TRUE(ContainsSender(senders, kVideoTracks[0]));
2838 2833
2839 // Change the ssrc of the audio and video track. 2834 // Change the ssrc of the audio and video track.
2840 cricket::MediaContentDescription* desc = 2835 cricket::MediaContentDescription* desc =
2841 cricket::GetFirstAudioContentDescription(modified_offer->description()); 2836 cricket::GetFirstAudioContentDescription(modified_offer->description());
2842 ASSERT_TRUE(desc != NULL); 2837 ASSERT_TRUE(desc != nullptr);
2843 for (StreamParams& stream : desc->mutable_streams()) { 2838 for (StreamParams& stream : desc->mutable_streams()) {
2844 for (unsigned int& ssrc : stream.ssrcs) { 2839 for (unsigned int& ssrc : stream.ssrcs) {
2845 ++ssrc; 2840 ++ssrc;
2846 } 2841 }
2847 } 2842 }
2848 2843
2849 desc = 2844 desc =
2850 cricket::GetFirstVideoContentDescription(modified_offer->description()); 2845 cricket::GetFirstVideoContentDescription(modified_offer->description());
2851 ASSERT_TRUE(desc != NULL); 2846 ASSERT_TRUE(desc != nullptr);
2852 for (StreamParams& stream : desc->mutable_streams()) { 2847 for (StreamParams& stream : desc->mutable_streams()) {
2853 for (unsigned int& ssrc : stream.ssrcs) { 2848 for (unsigned int& ssrc : stream.ssrcs) {
2854 ++ssrc; 2849 ++ssrc;
2855 } 2850 }
2856 } 2851 }
2857 2852
2858 EXPECT_TRUE(DoSetLocalDescription(modified_offer.release())); 2853 EXPECT_TRUE(DoSetLocalDescription(modified_offer.release()));
2859 senders = pc_->GetSenders(); 2854 senders = pc_->GetSenders();
2860 EXPECT_EQ(2u, senders.size()); 2855 EXPECT_EQ(2u, senders.size());
2861 EXPECT_TRUE(ContainsSender(senders, kAudioTracks[0])); 2856 EXPECT_TRUE(ContainsSender(senders, kAudioTracks[0]));
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
3409 EXPECT_NE(a, f); 3404 EXPECT_NE(a, f);
3410 3405
3411 PeerConnectionInterface::RTCConfiguration g; 3406 PeerConnectionInterface::RTCConfiguration g;
3412 g.disable_ipv6 = true; 3407 g.disable_ipv6 = true;
3413 EXPECT_NE(a, g); 3408 EXPECT_NE(a, g);
3414 3409
3415 PeerConnectionInterface::RTCConfiguration h( 3410 PeerConnectionInterface::RTCConfiguration h(
3416 PeerConnectionInterface::RTCConfigurationType::kAggressive); 3411 PeerConnectionInterface::RTCConfigurationType::kAggressive);
3417 EXPECT_NE(a, h); 3412 EXPECT_NE(a, h);
3418 } 3413 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698