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