| OLD | NEW |
| 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 28 matching lines...) Expand all Loading... |
| 39 #include "webrtc/base/thread.h" | 39 #include "webrtc/base/thread.h" |
| 40 #include "webrtc/base/virtualsocketserver.h" | 40 #include "webrtc/base/virtualsocketserver.h" |
| 41 #include "webrtc/media/engine/fakewebrtcvideoengine.h" | 41 #include "webrtc/media/engine/fakewebrtcvideoengine.h" |
| 42 #include "webrtc/p2p/base/p2pconstants.h" | 42 #include "webrtc/p2p/base/p2pconstants.h" |
| 43 #include "webrtc/p2p/base/portinterface.h" | 43 #include "webrtc/p2p/base/portinterface.h" |
| 44 #include "webrtc/p2p/base/sessiondescription.h" | 44 #include "webrtc/p2p/base/sessiondescription.h" |
| 45 #include "webrtc/p2p/base/testturnserver.h" | 45 #include "webrtc/p2p/base/testturnserver.h" |
| 46 #include "webrtc/p2p/client/basicportallocator.h" | 46 #include "webrtc/p2p/client/basicportallocator.h" |
| 47 #include "webrtc/pc/mediasession.h" | 47 #include "webrtc/pc/mediasession.h" |
| 48 | 48 |
| 49 #define MAYBE_SKIP_TEST(feature) \ | |
| 50 if (!(feature())) { \ | |
| 51 LOG(LS_INFO) << "Feature disabled... skipping"; \ | |
| 52 return; \ | |
| 53 } | |
| 54 | |
| 55 using cricket::ContentInfo; | 49 using cricket::ContentInfo; |
| 56 using cricket::FakeWebRtcVideoDecoder; | 50 using cricket::FakeWebRtcVideoDecoder; |
| 57 using cricket::FakeWebRtcVideoDecoderFactory; | 51 using cricket::FakeWebRtcVideoDecoderFactory; |
| 58 using cricket::FakeWebRtcVideoEncoder; | 52 using cricket::FakeWebRtcVideoEncoder; |
| 59 using cricket::FakeWebRtcVideoEncoderFactory; | 53 using cricket::FakeWebRtcVideoEncoderFactory; |
| 60 using cricket::MediaContentDescription; | 54 using cricket::MediaContentDescription; |
| 61 using webrtc::DataBuffer; | 55 using webrtc::DataBuffer; |
| 62 using webrtc::DataChannelInterface; | 56 using webrtc::DataChannelInterface; |
| 63 using webrtc::DtmfSender; | 57 using webrtc::DtmfSender; |
| 64 using webrtc::DtmfSenderInterface; | 58 using webrtc::DtmfSenderInterface; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 } | 210 } |
| 217 | 211 |
| 218 static PeerConnectionTestClient* CreateClient( | 212 static PeerConnectionTestClient* CreateClient( |
| 219 const std::string& id, | 213 const std::string& id, |
| 220 const MediaConstraintsInterface* constraints, | 214 const MediaConstraintsInterface* constraints, |
| 221 const PeerConnectionFactory::Options* options, | 215 const PeerConnectionFactory::Options* options, |
| 222 const PeerConnectionInterface::RTCConfiguration* config, | 216 const PeerConnectionInterface::RTCConfiguration* config, |
| 223 rtc::Thread* network_thread, | 217 rtc::Thread* network_thread, |
| 224 rtc::Thread* worker_thread) { | 218 rtc::Thread* worker_thread) { |
| 225 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( | 219 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( |
| 226 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? | 220 new FakeRTCCertificateGenerator()); |
| 227 new FakeRTCCertificateGenerator() : nullptr); | |
| 228 | 221 |
| 229 return CreateClientWithDtlsIdentityStore(id, constraints, options, config, | 222 return CreateClientWithDtlsIdentityStore(id, constraints, options, config, |
| 230 std::move(cert_generator), true, | 223 std::move(cert_generator), true, |
| 231 network_thread, worker_thread); | 224 network_thread, worker_thread); |
| 232 } | 225 } |
| 233 | 226 |
| 234 static PeerConnectionTestClient* CreateClientPreferNoConstraints( | 227 static PeerConnectionTestClient* CreateClientPreferNoConstraints( |
| 235 const std::string& id, | 228 const std::string& id, |
| 236 const PeerConnectionFactory::Options* options, | 229 const PeerConnectionFactory::Options* options, |
| 237 rtc::Thread* network_thread, | 230 rtc::Thread* network_thread, |
| 238 rtc::Thread* worker_thread) { | 231 rtc::Thread* worker_thread) { |
| 239 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( | 232 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( |
| 240 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? | 233 new FakeRTCCertificateGenerator()); |
| 241 new FakeRTCCertificateGenerator() : nullptr); | |
| 242 | 234 |
| 243 return CreateClientWithDtlsIdentityStore(id, nullptr, options, nullptr, | 235 return CreateClientWithDtlsIdentityStore(id, nullptr, options, nullptr, |
| 244 std::move(cert_generator), false, | 236 std::move(cert_generator), false, |
| 245 network_thread, worker_thread); | 237 network_thread, worker_thread); |
| 246 } | 238 } |
| 247 | 239 |
| 248 ~PeerConnectionTestClient() { | 240 ~PeerConnectionTestClient() { |
| 249 } | 241 } |
| 250 | 242 |
| 251 void Negotiate() { Negotiate(true, true); } | 243 void Negotiate() { Negotiate(true, true); } |
| (...skipping 1213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1465 EXPECT_EQ_WAIT(webrtc::PeerConnectionInterface::kIceGatheringComplete, | 1457 EXPECT_EQ_WAIT(webrtc::PeerConnectionInterface::kIceGatheringComplete, |
| 1466 receiving_client_->ice_gathering_state(), | 1458 receiving_client_->ice_gathering_state(), |
| 1467 kMaxWaitForFramesMs); | 1459 kMaxWaitForFramesMs); |
| 1468 | 1460 |
| 1469 // Check that the expected number of frames have arrived. | 1461 // Check that the expected number of frames have arrived. |
| 1470 EXPECT_TRUE_WAIT(FramesHaveArrived(audio_frame_count, video_frame_count), | 1462 EXPECT_TRUE_WAIT(FramesHaveArrived(audio_frame_count, video_frame_count), |
| 1471 kMaxWaitForFramesMs); | 1463 kMaxWaitForFramesMs); |
| 1472 } | 1464 } |
| 1473 | 1465 |
| 1474 void SetupAndVerifyDtlsCall() { | 1466 void SetupAndVerifyDtlsCall() { |
| 1475 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1476 FakeConstraints setup_constraints; | 1467 FakeConstraints setup_constraints; |
| 1477 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 1468 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, |
| 1478 true); | 1469 true); |
| 1479 // Disable resolution adaptation, we don't want it interfering with the | 1470 // Disable resolution adaptation, we don't want it interfering with the |
| 1480 // test results. | 1471 // test results. |
| 1481 webrtc::PeerConnectionInterface::RTCConfiguration rtc_config; | 1472 webrtc::PeerConnectionInterface::RTCConfiguration rtc_config; |
| 1482 rtc_config.set_cpu_adaptation(false); | 1473 rtc_config.set_cpu_adaptation(false); |
| 1483 | 1474 |
| 1484 ASSERT_TRUE(CreateTestClients(&setup_constraints, nullptr, &rtc_config, | 1475 ASSERT_TRUE(CreateTestClients(&setup_constraints, nullptr, &rtc_config, |
| 1485 &setup_constraints, nullptr, &rtc_config)); | 1476 &setup_constraints, nullptr, &rtc_config)); |
| 1486 LocalP2PTest(); | 1477 LocalP2PTest(); |
| 1487 VerifyRenderedAspectRatio(640, 480); | 1478 VerifyRenderedAspectRatio(640, 480); |
| 1488 } | 1479 } |
| 1489 | 1480 |
| 1490 PeerConnectionTestClient* CreateDtlsClientWithAlternateKey() { | 1481 PeerConnectionTestClient* CreateDtlsClientWithAlternateKey() { |
| 1491 FakeConstraints setup_constraints; | 1482 FakeConstraints setup_constraints; |
| 1492 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 1483 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, |
| 1493 true); | 1484 true); |
| 1494 // Disable resolution adaptation, we don't want it interfering with the | 1485 // Disable resolution adaptation, we don't want it interfering with the |
| 1495 // test results. | 1486 // test results. |
| 1496 webrtc::PeerConnectionInterface::RTCConfiguration rtc_config; | 1487 webrtc::PeerConnectionInterface::RTCConfiguration rtc_config; |
| 1497 rtc_config.set_cpu_adaptation(false); | 1488 rtc_config.set_cpu_adaptation(false); |
| 1498 | 1489 |
| 1499 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( | 1490 std::unique_ptr<FakeRTCCertificateGenerator> cert_generator( |
| 1500 rtc::SSLStreamAdapter::HaveDtlsSrtp() ? | 1491 new FakeRTCCertificateGenerator()); |
| 1501 new FakeRTCCertificateGenerator() : nullptr); | |
| 1502 cert_generator->use_alternate_key(); | 1492 cert_generator->use_alternate_key(); |
| 1503 | 1493 |
| 1504 // Make sure the new client is using a different certificate. | 1494 // Make sure the new client is using a different certificate. |
| 1505 return PeerConnectionTestClient::CreateClientWithDtlsIdentityStore( | 1495 return PeerConnectionTestClient::CreateClientWithDtlsIdentityStore( |
| 1506 "New Peer: ", &setup_constraints, nullptr, &rtc_config, | 1496 "New Peer: ", &setup_constraints, nullptr, &rtc_config, |
| 1507 std::move(cert_generator), prefer_constraint_apis_, | 1497 std::move(cert_generator), prefer_constraint_apis_, |
| 1508 network_thread_.get(), worker_thread_.get()); | 1498 network_thread_.get(), worker_thread_.get()); |
| 1509 } | 1499 } |
| 1510 | 1500 |
| 1511 void SendRtpData(webrtc::DataChannelInterface* dc, const std::string& data) { | 1501 void SendRtpData(webrtc::DataChannelInterface* dc, const std::string& data) { |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1687 | 1677 |
| 1688 TEST_F(P2PTestConductor, OneWayMediaCallWithoutConstraints) { | 1678 TEST_F(P2PTestConductor, OneWayMediaCallWithoutConstraints) { |
| 1689 ASSERT_TRUE(CreateTestClientsThatPreferNoConstraints()); | 1679 ASSERT_TRUE(CreateTestClientsThatPreferNoConstraints()); |
| 1690 receiving_client()->set_auto_add_stream(false); | 1680 receiving_client()->set_auto_add_stream(false); |
| 1691 LocalP2PTest(); | 1681 LocalP2PTest(); |
| 1692 } | 1682 } |
| 1693 | 1683 |
| 1694 // This test sets up a audio call initially and then upgrades to audio/video, | 1684 // This test sets up a audio call initially and then upgrades to audio/video, |
| 1695 // using DTLS. | 1685 // using DTLS. |
| 1696 TEST_F(P2PTestConductor, LocalP2PTestDtlsRenegotiate) { | 1686 TEST_F(P2PTestConductor, LocalP2PTestDtlsRenegotiate) { |
| 1697 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1698 FakeConstraints setup_constraints; | 1687 FakeConstraints setup_constraints; |
| 1699 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 1688 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, |
| 1700 true); | 1689 true); |
| 1701 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); | 1690 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); |
| 1702 receiving_client()->SetReceiveAudioVideo(true, false); | 1691 receiving_client()->SetReceiveAudioVideo(true, false); |
| 1703 LocalP2PTest(); | 1692 LocalP2PTest(); |
| 1704 receiving_client()->SetReceiveAudioVideo(true, true); | 1693 receiving_client()->SetReceiveAudioVideo(true, true); |
| 1705 receiving_client()->Negotiate(); | 1694 receiving_client()->Negotiate(); |
| 1706 } | 1695 } |
| 1707 | 1696 |
| 1708 // This test sets up a call transfer to a new caller with a different DTLS | 1697 // This test sets up a call transfer to a new caller with a different DTLS |
| 1709 // fingerprint. | 1698 // fingerprint. |
| 1710 TEST_F(P2PTestConductor, LocalP2PTestDtlsTransferCallee) { | 1699 TEST_F(P2PTestConductor, LocalP2PTestDtlsTransferCallee) { |
| 1711 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1712 SetupAndVerifyDtlsCall(); | 1700 SetupAndVerifyDtlsCall(); |
| 1713 | 1701 |
| 1714 // Keeping the original peer around which will still send packets to the | 1702 // Keeping the original peer around which will still send packets to the |
| 1715 // receiving client. These SRTP packets will be dropped. | 1703 // receiving client. These SRTP packets will be dropped. |
| 1716 std::unique_ptr<PeerConnectionTestClient> original_peer( | 1704 std::unique_ptr<PeerConnectionTestClient> original_peer( |
| 1717 set_initializing_client(CreateDtlsClientWithAlternateKey())); | 1705 set_initializing_client(CreateDtlsClientWithAlternateKey())); |
| 1718 original_peer->pc()->Close(); | 1706 original_peer->pc()->Close(); |
| 1719 | 1707 |
| 1720 SetSignalingReceivers(); | 1708 SetSignalingReceivers(); |
| 1721 receiving_client()->SetExpectIceRestart(true); | 1709 receiving_client()->SetExpectIceRestart(true); |
| 1722 LocalP2PTest(); | 1710 LocalP2PTest(); |
| 1723 VerifyRenderedAspectRatio(640, 480); | 1711 VerifyRenderedAspectRatio(640, 480); |
| 1724 } | 1712 } |
| 1725 | 1713 |
| 1726 // This test sets up a non-bundle call and apply bundle during ICE restart. When | 1714 // This test sets up a non-bundle call and apply bundle during ICE restart. When |
| 1727 // bundle is in effect in the restart, the channel can successfully reset its | 1715 // bundle is in effect in the restart, the channel can successfully reset its |
| 1728 // DTLS-SRTP context. | 1716 // DTLS-SRTP context. |
| 1729 TEST_F(P2PTestConductor, LocalP2PTestDtlsBundleInIceRestart) { | 1717 TEST_F(P2PTestConductor, LocalP2PTestDtlsBundleInIceRestart) { |
| 1730 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1731 FakeConstraints setup_constraints; | 1718 FakeConstraints setup_constraints; |
| 1732 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 1719 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, |
| 1733 true); | 1720 true); |
| 1734 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); | 1721 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); |
| 1735 receiving_client()->RemoveBundleFromReceivedSdp(true); | 1722 receiving_client()->RemoveBundleFromReceivedSdp(true); |
| 1736 LocalP2PTest(); | 1723 LocalP2PTest(); |
| 1737 VerifyRenderedAspectRatio(640, 480); | 1724 VerifyRenderedAspectRatio(640, 480); |
| 1738 | 1725 |
| 1739 initializing_client()->IceRestart(); | 1726 initializing_client()->IceRestart(); |
| 1740 receiving_client()->SetExpectIceRestart(true); | 1727 receiving_client()->SetExpectIceRestart(true); |
| 1741 receiving_client()->RemoveBundleFromReceivedSdp(false); | 1728 receiving_client()->RemoveBundleFromReceivedSdp(false); |
| 1742 LocalP2PTest(); | 1729 LocalP2PTest(); |
| 1743 VerifyRenderedAspectRatio(640, 480); | 1730 VerifyRenderedAspectRatio(640, 480); |
| 1744 } | 1731 } |
| 1745 | 1732 |
| 1746 // This test sets up a call transfer to a new callee with a different DTLS | 1733 // This test sets up a call transfer to a new callee with a different DTLS |
| 1747 // fingerprint. | 1734 // fingerprint. |
| 1748 TEST_F(P2PTestConductor, LocalP2PTestDtlsTransferCaller) { | 1735 TEST_F(P2PTestConductor, LocalP2PTestDtlsTransferCaller) { |
| 1749 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1750 SetupAndVerifyDtlsCall(); | 1736 SetupAndVerifyDtlsCall(); |
| 1751 | 1737 |
| 1752 // Keeping the original peer around which will still send packets to the | 1738 // Keeping the original peer around which will still send packets to the |
| 1753 // receiving client. These SRTP packets will be dropped. | 1739 // receiving client. These SRTP packets will be dropped. |
| 1754 std::unique_ptr<PeerConnectionTestClient> original_peer( | 1740 std::unique_ptr<PeerConnectionTestClient> original_peer( |
| 1755 set_receiving_client(CreateDtlsClientWithAlternateKey())); | 1741 set_receiving_client(CreateDtlsClientWithAlternateKey())); |
| 1756 original_peer->pc()->Close(); | 1742 original_peer->pc()->Close(); |
| 1757 | 1743 |
| 1758 SetSignalingReceivers(); | 1744 SetSignalingReceivers(); |
| 1759 initializing_client()->IceRestart(); | 1745 initializing_client()->IceRestart(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1773 SetCaptureRotation(webrtc::kVideoRotation_90); | 1759 SetCaptureRotation(webrtc::kVideoRotation_90); |
| 1774 receiving_client()->RemoveCvoFromReceivedSdp(true); | 1760 receiving_client()->RemoveCvoFromReceivedSdp(true); |
| 1775 LocalP2PTest(); | 1761 LocalP2PTest(); |
| 1776 VerifyRenderedAspectRatio(480, 640, webrtc::kVideoRotation_0); | 1762 VerifyRenderedAspectRatio(480, 640, webrtc::kVideoRotation_0); |
| 1777 } | 1763 } |
| 1778 | 1764 |
| 1779 // This test sets up a call between two endpoints that are configured to use | 1765 // This test sets up a call between two endpoints that are configured to use |
| 1780 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is | 1766 // DTLS key agreement. The offerer don't support SDES. As a result, DTLS is |
| 1781 // negotiated and used for transport. | 1767 // negotiated and used for transport. |
| 1782 TEST_F(P2PTestConductor, LocalP2PTestOfferDtlsButNotSdes) { | 1768 TEST_F(P2PTestConductor, LocalP2PTestOfferDtlsButNotSdes) { |
| 1783 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 1784 FakeConstraints setup_constraints; | 1769 FakeConstraints setup_constraints; |
| 1785 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, | 1770 setup_constraints.AddMandatory(MediaConstraintsInterface::kEnableDtlsSrtp, |
| 1786 true); | 1771 true); |
| 1787 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); | 1772 ASSERT_TRUE(CreateTestClients(&setup_constraints, &setup_constraints)); |
| 1788 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true); | 1773 receiving_client()->RemoveSdesCryptoFromReceivedSdp(true); |
| 1789 LocalP2PTest(); | 1774 LocalP2PTest(); |
| 1790 VerifyRenderedAspectRatio(640, 480); | 1775 VerifyRenderedAspectRatio(640, 480); |
| 1791 } | 1776 } |
| 1792 | 1777 |
| 1793 #ifdef HAVE_SCTP | 1778 #ifdef HAVE_SCTP |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2250 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(), | 2235 EXPECT_TRUE_WAIT(initializing_client()->data_observer()->IsOpen(), |
| 2251 kMaxWaitMs); | 2236 kMaxWaitMs); |
| 2252 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(), | 2237 EXPECT_TRUE_WAIT(receiving_client()->data_observer()->IsOpen(), |
| 2253 kMaxWaitMs); | 2238 kMaxWaitMs); |
| 2254 } | 2239 } |
| 2255 | 2240 |
| 2256 // This test sets up a Jsep call with SCTP DataChannel and verifies the | 2241 // This test sets up a Jsep call with SCTP DataChannel and verifies the |
| 2257 // negotiation is completed without error. | 2242 // negotiation is completed without error. |
| 2258 #ifdef HAVE_SCTP | 2243 #ifdef HAVE_SCTP |
| 2259 TEST_F(P2PTestConductor, CreateOfferWithSctpDataChannel) { | 2244 TEST_F(P2PTestConductor, CreateOfferWithSctpDataChannel) { |
| 2260 MAYBE_SKIP_TEST(rtc::SSLStreamAdapter::HaveDtlsSrtp); | |
| 2261 FakeConstraints constraints; | 2245 FakeConstraints constraints; |
| 2262 constraints.SetMandatory( | 2246 constraints.SetMandatory( |
| 2263 MediaConstraintsInterface::kEnableDtlsSrtp, true); | 2247 MediaConstraintsInterface::kEnableDtlsSrtp, true); |
| 2264 ASSERT_TRUE(CreateTestClients(&constraints, &constraints)); | 2248 ASSERT_TRUE(CreateTestClients(&constraints, &constraints)); |
| 2265 initializing_client()->CreateDataChannel(); | 2249 initializing_client()->CreateDataChannel(); |
| 2266 initializing_client()->Negotiate(false, false); | 2250 initializing_client()->Negotiate(false, false); |
| 2267 } | 2251 } |
| 2268 #endif | 2252 #endif |
| 2269 | 2253 |
| 2270 // This test sets up a call between two parties with audio, and video. | 2254 // This test sets up a call between two parties with audio, and video. |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2835 servers.push_back(server); | 2819 servers.push_back(server); |
| 2836 EXPECT_EQ(webrtc::RTCErrorType::NONE, | 2820 EXPECT_EQ(webrtc::RTCErrorType::NONE, |
| 2837 webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_)); | 2821 webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_)); |
| 2838 EXPECT_EQ(2U, turn_servers_.size()); | 2822 EXPECT_EQ(2U, turn_servers_.size()); |
| 2839 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority); | 2823 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority); |
| 2840 } | 2824 } |
| 2841 | 2825 |
| 2842 #endif // if !defined(THREAD_SANITIZER) | 2826 #endif // if !defined(THREAD_SANITIZER) |
| 2843 | 2827 |
| 2844 } // namespace | 2828 } // namespace |
| OLD | NEW |