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

Side by Side Diff: talk/app/webrtc/peerconnection_unittest.cc

Issue 1505573002: Reland Allow remote fingerprint update during a call (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years 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
« no previous file with comments | « no previous file | talk/app/webrtc/test/fakedtlsidentitystore.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 138
139 protected: 139 protected:
140 SignalingMessageReceiver() {} 140 SignalingMessageReceiver() {}
141 virtual ~SignalingMessageReceiver() {} 141 virtual ~SignalingMessageReceiver() {}
142 }; 142 };
143 143
144 class PeerConnectionTestClient : public webrtc::PeerConnectionObserver, 144 class PeerConnectionTestClient : public webrtc::PeerConnectionObserver,
145 public SignalingMessageReceiver, 145 public SignalingMessageReceiver,
146 public ObserverInterface { 146 public ObserverInterface {
147 public: 147 public:
148 static PeerConnectionTestClient* CreateClient( 148 static PeerConnectionTestClient* CreateClientWithDtlsIdentityStore(
149 const std::string& id, 149 const std::string& id,
150 const MediaConstraintsInterface* constraints, 150 const MediaConstraintsInterface* constraints,
151 const PeerConnectionFactory::Options* options) { 151 const PeerConnectionFactory::Options* options,
152 rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store) {
152 PeerConnectionTestClient* client(new PeerConnectionTestClient(id)); 153 PeerConnectionTestClient* client(new PeerConnectionTestClient(id));
153 if (!client->Init(constraints, options)) { 154 if (!client->Init(constraints, options, dtls_identity_store.Pass())) {
154 delete client; 155 delete client;
155 return nullptr; 156 return nullptr;
156 } 157 }
157 return client; 158 return client;
158 } 159 }
159 160
161 static PeerConnectionTestClient* CreateClient(
162 const std::string& id,
163 const MediaConstraintsInterface* constraints,
164 const PeerConnectionFactory::Options* options) {
165 rtc::scoped_ptr<FakeDtlsIdentityStore> dtls_identity_store(
166 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? new FakeDtlsIdentityStore()
167 : nullptr);
168
169 return CreateClientWithDtlsIdentityStore(id, constraints, options,
170 dtls_identity_store.Pass());
171 }
172
160 ~PeerConnectionTestClient() { 173 ~PeerConnectionTestClient() {
161 while (!fake_video_renderers_.empty()) { 174 while (!fake_video_renderers_.empty()) {
162 RenderMap::iterator it = fake_video_renderers_.begin(); 175 RenderMap::iterator it = fake_video_renderers_.begin();
163 delete it->second; 176 delete it->second;
164 fake_video_renderers_.erase(it); 177 fake_video_renderers_.erase(it);
165 } 178 }
166 } 179 }
167 180
168 void Negotiate() { Negotiate(true, true); } 181 void Negotiate() { Negotiate(true, true); }
169 182
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 710
698 bool completed() const { return completed_; } 711 bool completed() const { return completed_; }
699 712
700 private: 713 private:
701 bool completed_; 714 bool completed_;
702 std::vector<std::string> tones_; 715 std::vector<std::string> tones_;
703 }; 716 };
704 717
705 explicit PeerConnectionTestClient(const std::string& id) : id_(id) {} 718 explicit PeerConnectionTestClient(const std::string& id) : id_(id) {}
706 719
707 bool Init(const MediaConstraintsInterface* constraints, 720 bool Init(
708 const PeerConnectionFactory::Options* options) { 721 const MediaConstraintsInterface* constraints,
722 const PeerConnectionFactory::Options* options,
723 rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store) {
709 EXPECT_TRUE(!peer_connection_); 724 EXPECT_TRUE(!peer_connection_);
710 EXPECT_TRUE(!peer_connection_factory_); 725 EXPECT_TRUE(!peer_connection_factory_);
711 allocator_factory_ = webrtc::FakePortAllocatorFactory::Create(); 726 allocator_factory_ = webrtc::FakePortAllocatorFactory::Create();
712 if (!allocator_factory_) { 727 if (!allocator_factory_) {
713 return false; 728 return false;
714 } 729 }
715 fake_audio_capture_module_ = FakeAudioCaptureModule::Create(); 730 fake_audio_capture_module_ = FakeAudioCaptureModule::Create();
716 731
717 if (fake_audio_capture_module_ == nullptr) { 732 if (fake_audio_capture_module_ == nullptr) {
718 return false; 733 return false;
719 } 734 }
720 fake_video_decoder_factory_ = new FakeWebRtcVideoDecoderFactory(); 735 fake_video_decoder_factory_ = new FakeWebRtcVideoDecoderFactory();
721 fake_video_encoder_factory_ = new FakeWebRtcVideoEncoderFactory(); 736 fake_video_encoder_factory_ = new FakeWebRtcVideoEncoderFactory();
722 peer_connection_factory_ = webrtc::CreatePeerConnectionFactory( 737 peer_connection_factory_ = webrtc::CreatePeerConnectionFactory(
723 rtc::Thread::Current(), rtc::Thread::Current(), 738 rtc::Thread::Current(), rtc::Thread::Current(),
724 fake_audio_capture_module_, fake_video_encoder_factory_, 739 fake_audio_capture_module_, fake_video_encoder_factory_,
725 fake_video_decoder_factory_); 740 fake_video_decoder_factory_);
726 if (!peer_connection_factory_) { 741 if (!peer_connection_factory_) {
727 return false; 742 return false;
728 } 743 }
729 if (options) { 744 if (options) {
730 peer_connection_factory_->SetOptions(*options); 745 peer_connection_factory_->SetOptions(*options);
731 } 746 }
732 peer_connection_ = CreatePeerConnection(allocator_factory_.get(), 747 peer_connection_ = CreatePeerConnection(
733 constraints); 748 allocator_factory_.get(), constraints, dtls_identity_store.Pass());
734 return peer_connection_.get() != nullptr; 749 return peer_connection_.get() != nullptr;
735 } 750 }
736 751
737 rtc::scoped_refptr<webrtc::PeerConnectionInterface> CreatePeerConnection( 752 rtc::scoped_refptr<webrtc::PeerConnectionInterface> CreatePeerConnection(
738 webrtc::PortAllocatorFactoryInterface* factory, 753 webrtc::PortAllocatorFactoryInterface* factory,
739 const MediaConstraintsInterface* constraints) { 754 const MediaConstraintsInterface* constraints,
755 rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store) {
740 // CreatePeerConnection with IceServers. 756 // CreatePeerConnection with IceServers.
741 webrtc::PeerConnectionInterface::IceServers ice_servers; 757 webrtc::PeerConnectionInterface::IceServers ice_servers;
742 webrtc::PeerConnectionInterface::IceServer ice_server; 758 webrtc::PeerConnectionInterface::IceServer ice_server;
743 ice_server.uri = "stun:stun.l.google.com:19302"; 759 ice_server.uri = "stun:stun.l.google.com:19302";
744 ice_servers.push_back(ice_server); 760 ice_servers.push_back(ice_server);
745 761
746 rtc::scoped_ptr<webrtc::DtlsIdentityStoreInterface> dtls_identity_store(
747 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? new FakeDtlsIdentityStore()
748 : nullptr);
749 return peer_connection_factory_->CreatePeerConnection( 762 return peer_connection_factory_->CreatePeerConnection(
750 ice_servers, constraints, factory, dtls_identity_store.Pass(), this); 763 ice_servers, constraints, factory, dtls_identity_store.Pass(), this);
751 } 764 }
752 765
753 void HandleIncomingOffer(const std::string& msg) { 766 void HandleIncomingOffer(const std::string& msg) {
754 LOG(INFO) << id_ << "HandleIncomingOffer "; 767 LOG(INFO) << id_ << "HandleIncomingOffer ";
755 if (NumberOfLocalMediaStreams() == 0 && auto_add_stream_) { 768 if (NumberOfLocalMediaStreams() == 0 && auto_add_stream_) {
756 // If we are not sending any streams ourselves it is time to add some. 769 // If we are not sending any streams ourselves it is time to add some.
757 AddMediaStream(true, true); 770 AddMediaStream(true, true);
758 } 771 }
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 } 985 }
973 986
974 bool CreateTestClients() { return CreateTestClients(nullptr, nullptr); } 987 bool CreateTestClients() { return CreateTestClients(nullptr, nullptr); }
975 988
976 bool CreateTestClients(MediaConstraintsInterface* init_constraints, 989 bool CreateTestClients(MediaConstraintsInterface* init_constraints,
977 MediaConstraintsInterface* recv_constraints) { 990 MediaConstraintsInterface* recv_constraints) {
978 return CreateTestClients(init_constraints, nullptr, recv_constraints, 991 return CreateTestClients(init_constraints, nullptr, recv_constraints,
979 nullptr); 992 nullptr);
980 } 993 }
981 994
995 void SetSignalingReceivers() {
996 initiating_client_->set_signaling_message_receiver(receiving_client_.get());
997 receiving_client_->set_signaling_message_receiver(initiating_client_.get());
998 }
999
982 bool CreateTestClients(MediaConstraintsInterface* init_constraints, 1000 bool CreateTestClients(MediaConstraintsInterface* init_constraints,
983 PeerConnectionFactory::Options* init_options, 1001 PeerConnectionFactory::Options* init_options,
984 MediaConstraintsInterface* recv_constraints, 1002 MediaConstraintsInterface* recv_constraints,
985 PeerConnectionFactory::Options* recv_options) { 1003 PeerConnectionFactory::Options* recv_options) {
986 initiating_client_.reset(PeerConnectionTestClient::CreateClient( 1004 initiating_client_.reset(PeerConnectionTestClient::CreateClient(
987 "Caller: ", init_constraints, init_options)); 1005 "Caller: ", init_constraints, init_options));
988 receiving_client_.reset(PeerConnectionTestClient::CreateClient( 1006 receiving_client_.reset(PeerConnectionTestClient::CreateClient(
989 "Callee: ", recv_constraints, recv_options)); 1007 "Callee: ", recv_constraints, recv_options));
990 if (!initiating_client_ || !receiving_client_) { 1008 if (!initiating_client_ || !receiving_client_) {
991 return false; 1009 return false;
992 } 1010 }
993 initiating_client_->set_signaling_message_receiver(receiving_client_.get()); 1011 SetSignalingReceivers();
994 receiving_client_->set_signaling_message_receiver(initiating_client_.get());
995 return true; 1012 return true;
996 } 1013 }
997 1014
998 void SetVideoConstraints(const webrtc::FakeConstraints& init_constraints, 1015 void SetVideoConstraints(const webrtc::FakeConstraints& init_constraints,
999 const webrtc::FakeConstraints& recv_constraints) { 1016 const webrtc::FakeConstraints& recv_constraints) {
1000 initiating_client_->SetVideoConstraints(init_constraints); 1017 initiating_client_->SetVideoConstraints(init_constraints);
1001 receiving_client_->SetVideoConstraints(recv_constraints); 1018 receiving_client_->SetVideoConstraints(recv_constraints);
1002 } 1019 }
1003 1020
1004 void EnableVideoDecoderFactory() { 1021 void EnableVideoDecoderFactory() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 receiving_client_->can_receive_video()) { 1078 receiving_client_->can_receive_video()) {
1062 EXPECT_EQ_WAIT(webrtc::PeerConnectionInterface::kIceGatheringComplete, 1079 EXPECT_EQ_WAIT(webrtc::PeerConnectionInterface::kIceGatheringComplete,
1063 receiving_client_->ice_gathering_state(), 1080 receiving_client_->ice_gathering_state(),
1064 kMaxWaitForFramesMs); 1081 kMaxWaitForFramesMs);
1065 } 1082 }
1066 1083
1067 EXPECT_TRUE_WAIT(FramesNotPending(audio_frame_count, video_frame_count), 1084 EXPECT_TRUE_WAIT(FramesNotPending(audio_frame_count, video_frame_count),
1068 kMaxWaitForFramesMs); 1085 kMaxWaitForFramesMs);
1069 } 1086 }
1070 1087
1088 void SetupAndVerifyDtlsCall() {
1089 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1090 FakeConstraints setup_constraints;
1091 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1092 true);
1093 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1094 LocalP2PTest();
1095 VerifyRenderedSize(640, 480);
1096 }
1097
1098 PeerConnectionTestClient* CreateDtlsClientWithAlternateKey() {
1099 FakeConstraints setup_constraints;
1100 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1101 true);
1102
1103 rtc::scoped_ptr<FakeDtlsIdentityStore> dtls_identity_store(
1104 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? new FakeDtlsIdentityStore()
1105 : nullptr);
1106 dtls_identity_store->use_alternate_key();
1107
1108 // Make sure the new client is using a different certificate.
1109 return PeerConnectionTestClient::CreateClientWithDtlsIdentityStore(
1110 "New Peer: ", &setup_constraints, nullptr, dtls_identity_store.Pass());
1111 }
1112
1071 void SendRtpData(webrtc::DataChannelInterface* dc, const std::string& data) { 1113 void SendRtpData(webrtc::DataChannelInterface* dc, const std::string& data) {
1072 // Messages may get lost on the unreliable DataChannel, so we send multiple 1114 // Messages may get lost on the unreliable DataChannel, so we send multiple
1073 // times to avoid test flakiness. 1115 // times to avoid test flakiness.
1074 static const size_t kSendAttempts = 5; 1116 static const size_t kSendAttempts = 5;
1075 1117
1076 for (size_t i = 0; i < kSendAttempts; ++i) { 1118 for (size_t i = 0; i < kSendAttempts; ++i) {
1077 dc->Send(DataBuffer(data)); 1119 dc->Send(DataBuffer(data));
1078 } 1120 }
1079 } 1121 }
1080 1122
1081 PeerConnectionTestClient* initializing_client() { 1123 PeerConnectionTestClient* initializing_client() {
1082 return initiating_client_.get(); 1124 return initiating_client_.get();
1083 } 1125 }
1126
1127 // Set the |initiating_client_| to the |client| passed in and return the
1128 // original |initiating_client_|.
1129 PeerConnectionTestClient* set_initializing_client(
1130 PeerConnectionTestClient* client) {
1131 PeerConnectionTestClient* old = initiating_client_.release();
1132 initiating_client_.reset(client);
1133 return old;
1134 }
1135
1084 PeerConnectionTestClient* receiving_client() { 1136 PeerConnectionTestClient* receiving_client() {
1085 return receiving_client_.get(); 1137 return receiving_client_.get();
1086 } 1138 }
1087 1139
1140 // Set the |receiving_client_| to the |client| passed in and return the
1141 // original |receiving_client_|.
1142 PeerConnectionTestClient* set_receiving_client(
1143 PeerConnectionTestClient* client) {
1144 PeerConnectionTestClient* old = receiving_client_.release();
1145 receiving_client_.reset(client);
1146 return old;
1147 }
1148
1088 private: 1149 private:
1089 rtc::scoped_ptr<rtc::PhysicalSocketServer> pss_; 1150 rtc::scoped_ptr<rtc::PhysicalSocketServer> pss_;
1090 rtc::scoped_ptr<rtc::VirtualSocketServer> ss_; 1151 rtc::scoped_ptr<rtc::VirtualSocketServer> ss_;
1091 rtc::SocketServerScope ss_scope_; 1152 rtc::SocketServerScope ss_scope_;
1092 rtc::scoped_ptr<PeerConnectionTestClient> initiating_client_; 1153 rtc::scoped_ptr<PeerConnectionTestClient> initiating_client_;
1093 rtc::scoped_ptr<PeerConnectionTestClient> receiving_client_; 1154 rtc::scoped_ptr<PeerConnectionTestClient> receiving_client_;
1094 }; 1155 };
1095 1156
1096 // Disable for TSan v2, see 1157 // Disable for TSan v2, see
1097 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details. 1158 // https://code.google.com/p/webrtc/issues/detail?id=1205 for details.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 constraint.SetMandatoryMinWidth(1280); 1200 constraint.SetMandatoryMinWidth(1280);
1140 constraint.SetMandatoryMinHeight(720); 1201 constraint.SetMandatoryMinHeight(720);
1141 SetVideoConstraints(constraint, constraint); 1202 SetVideoConstraints(constraint, constraint);
1142 LocalP2PTest(); 1203 LocalP2PTest();
1143 VerifyRenderedSize(1280, 720); 1204 VerifyRenderedSize(1280, 720);
1144 } 1205 }
1145 1206
1146 // This test sets up a call between two endpoints that are configured to use 1207 // This test sets up a call between two endpoints that are configured to use
1147 // DTLS key agreement. As a result, DTLS is negotiated and used for transport. 1208 // DTLS key agreement. As a result, DTLS is negotiated and used for transport.
1148 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) { 1209 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtls) {
1149 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1210 SetupAndVerifyDtlsCall();
1150 FakeConstraints setup_constraints;
1151 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1152 true);
1153 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1154 LocalP2PTest();
1155 VerifyRenderedSize(640, 480);
1156 } 1211 }
1157 1212
1158 // This test sets up a audio call initially and then upgrades to audio/video, 1213 // This test sets up a audio call initially and then upgrades to audio/video,
1159 // using DTLS. 1214 // using DTLS.
1160 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) { 1215 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsRenegotiate) {
1161 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1216 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1162 FakeConstraints setup_constraints; 1217 FakeConstraints setup_constraints;
1163 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, 1218 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1164 true); 1219 true);
1165 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1220 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1166 receiving_client()->SetReceiveAudioVideo(true, false); 1221 receiving_client()->SetReceiveAudioVideo(true, false);
1167 LocalP2PTest(); 1222 LocalP2PTest();
1168 receiving_client()->SetReceiveAudioVideo(true, true); 1223 receiving_client()->SetReceiveAudioVideo(true, true);
1169 receiving_client()->Negotiate(); 1224 receiving_client()->Negotiate();
1170 } 1225 }
1171 1226
1227 // This test sets up a call transfer to a new caller with a different DTLS
1228 // fingerprint.
1229 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsTransferCallee) {
1230 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1231 SetupAndVerifyDtlsCall();
1232
1233 // Keeping the original peer around which will still send packets to the
1234 // receiving client. These SRTP packets will be dropped.
1235 rtc::scoped_ptr<PeerConnectionTestClient> original_peer(
1236 set_initializing_client(CreateDtlsClientWithAlternateKey()));
1237 original_peer->pc()->Close();
1238
1239 SetSignalingReceivers();
1240 receiving_client()->SetExpectIceRestart(true);
1241 LocalP2PTest();
1242 VerifyRenderedSize(640, 480);
1243 }
1244
1245 // This test sets up a call transfer to a new callee with a different DTLS
1246 // fingerprint.
1247 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestDtlsTransferCaller) {
1248 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1249 SetupAndVerifyDtlsCall();
1250
1251 // Keeping the original peer around which will still send packets to the
1252 // receiving client. These SRTP packets will be dropped.
1253 rtc::scoped_ptr<PeerConnectionTestClient> original_peer(
1254 set_receiving_client(CreateDtlsClientWithAlternateKey()));
1255 original_peer->pc()->Close();
1256
1257 SetSignalingReceivers();
1258 initializing_client()->IceRestart();
1259 LocalP2PTest();
1260 VerifyRenderedSize(640, 480);
1261 }
1262
1172 // This test sets up a call between two endpoints that are configured to use 1263 // This test sets up a call between two endpoints that are configured to use
1173 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is 1264 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is
1174 // negotiated and used for transport. 1265 // negotiated and used for transport.
1175 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestOfferDtlsButNotSdes) { 1266 TEST_F(MAYBE_JsepPeerConnectionP2PTestClient, LocalP2PTestOfferDtlsButNotSdes) {
1176 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); 1267 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp);
1177 FakeConstraints setup_constraints; 1268 FakeConstraints setup_constraints;
1178 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, 1269 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp,
1179 true); 1270 true);
1180 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); 1271 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints));
1181 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true); 1272 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true);
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
1882 server.urls.push_back("stun:hostname"); 1973 server.urls.push_back("stun:hostname");
1883 server.urls.push_back("turn:hostname"); 1974 server.urls.push_back("turn:hostname");
1884 servers.push_back(server); 1975 servers.push_back(server);
1885 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_, 1976 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_configurations_,
1886 &turn_configurations_)); 1977 &turn_configurations_));
1887 EXPECT_EQ(1U, stun_configurations_.size()); 1978 EXPECT_EQ(1U, stun_configurations_.size());
1888 EXPECT_EQ(1U, turn_configurations_.size()); 1979 EXPECT_EQ(1U, turn_configurations_.size());
1889 } 1980 }
1890 1981
1891 #endif // if !defined(THREAD_SANITIZER) 1982 #endif // if !defined(THREAD_SANITIZER)
OLDNEW
« no previous file with comments | « no previous file | talk/app/webrtc/test/fakedtlsidentitystore.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698