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 22 matching lines...) Expand all Loading... |
33 #include "webrtc/base/fakenetwork.h" | 33 #include "webrtc/base/fakenetwork.h" |
34 #include "webrtc/base/gunit.h" | 34 #include "webrtc/base/gunit.h" |
35 #include "webrtc/base/helpers.h" | 35 #include "webrtc/base/helpers.h" |
36 #include "webrtc/base/physicalsocketserver.h" | 36 #include "webrtc/base/physicalsocketserver.h" |
37 #include "webrtc/base/ssladapter.h" | 37 #include "webrtc/base/ssladapter.h" |
38 #include "webrtc/base/sslstreamadapter.h" | 38 #include "webrtc/base/sslstreamadapter.h" |
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/sessiondescription.h" | 44 #include "webrtc/p2p/base/sessiondescription.h" |
44 #include "webrtc/p2p/base/testturnserver.h" | 45 #include "webrtc/p2p/base/testturnserver.h" |
45 #include "webrtc/p2p/client/basicportallocator.h" | 46 #include "webrtc/p2p/client/basicportallocator.h" |
46 #include "webrtc/pc/mediasession.h" | 47 #include "webrtc/pc/mediasession.h" |
47 | 48 |
48 #define MAYBE_SKIP_TEST(feature) \ | 49 #define MAYBE_SKIP_TEST(feature) \ |
49 if (!(feature())) { \ | 50 if (!(feature())) { \ |
50 LOG(LS_INFO) << "Feature disabled... skipping"; \ | 51 LOG(LS_INFO) << "Feature disabled... skipping"; \ |
51 return; \ | 52 return; \ |
52 } | 53 } |
(...skipping 2559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2612 class IceServerParsingTest : public testing::Test { | 2613 class IceServerParsingTest : public testing::Test { |
2613 public: | 2614 public: |
2614 // Convenience for parsing a single URL. | 2615 // Convenience for parsing a single URL. |
2615 bool ParseUrl(const std::string& url) { | 2616 bool ParseUrl(const std::string& url) { |
2616 return ParseUrl(url, std::string(), std::string()); | 2617 return ParseUrl(url, std::string(), std::string()); |
2617 } | 2618 } |
2618 | 2619 |
2619 bool ParseUrl(const std::string& url, | 2620 bool ParseUrl(const std::string& url, |
2620 const std::string& username, | 2621 const std::string& username, |
2621 const std::string& password) { | 2622 const std::string& password) { |
| 2623 return ParseUrl( |
| 2624 url, username, password, |
| 2625 PeerConnectionInterface::TlsCertificatePolicy::kTlsCertPolicySecure); |
| 2626 } |
| 2627 |
| 2628 bool ParseUrl( |
| 2629 const std::string& url, |
| 2630 const std::string& username, |
| 2631 const std::string& password, |
| 2632 PeerConnectionInterface::TlsCertificatePolicy tls_certificate_policy) { |
2622 PeerConnectionInterface::IceServers servers; | 2633 PeerConnectionInterface::IceServers servers; |
2623 PeerConnectionInterface::IceServer server; | 2634 PeerConnectionInterface::IceServer server; |
2624 server.urls.push_back(url); | 2635 server.urls.push_back(url); |
2625 server.username = username; | 2636 server.username = username; |
2626 server.password = password; | 2637 server.password = password; |
| 2638 server.tls_certificate_policy = tls_certificate_policy; |
2627 servers.push_back(server); | 2639 servers.push_back(server); |
2628 return webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_); | 2640 return webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_); |
2629 } | 2641 } |
2630 | 2642 |
2631 protected: | 2643 protected: |
2632 cricket::ServerAddresses stun_servers_; | 2644 cricket::ServerAddresses stun_servers_; |
2633 std::vector<cricket::RelayServerConfig> turn_servers_; | 2645 std::vector<cricket::RelayServerConfig> turn_servers_; |
2634 }; | 2646 }; |
2635 | 2647 |
2636 // Make sure all STUN/TURN prefixes are parsed correctly. | 2648 // Make sure all STUN/TURN prefixes are parsed correctly. |
2637 TEST_F(IceServerParsingTest, ParseStunPrefixes) { | 2649 TEST_F(IceServerParsingTest, ParseStunPrefixes) { |
2638 EXPECT_TRUE(ParseUrl("stun:hostname")); | 2650 EXPECT_TRUE(ParseUrl("stun:hostname")); |
2639 EXPECT_EQ(1U, stun_servers_.size()); | 2651 EXPECT_EQ(1U, stun_servers_.size()); |
2640 EXPECT_EQ(0U, turn_servers_.size()); | 2652 EXPECT_EQ(0U, turn_servers_.size()); |
2641 stun_servers_.clear(); | 2653 stun_servers_.clear(); |
2642 | 2654 |
2643 EXPECT_TRUE(ParseUrl("stuns:hostname")); | 2655 EXPECT_TRUE(ParseUrl("stuns:hostname")); |
2644 EXPECT_EQ(1U, stun_servers_.size()); | 2656 EXPECT_EQ(1U, stun_servers_.size()); |
2645 EXPECT_EQ(0U, turn_servers_.size()); | 2657 EXPECT_EQ(0U, turn_servers_.size()); |
2646 stun_servers_.clear(); | 2658 stun_servers_.clear(); |
2647 | 2659 |
2648 EXPECT_TRUE(ParseUrl("turn:hostname")); | 2660 EXPECT_TRUE(ParseUrl("turn:hostname")); |
2649 EXPECT_EQ(0U, stun_servers_.size()); | 2661 EXPECT_EQ(0U, stun_servers_.size()); |
2650 EXPECT_EQ(1U, turn_servers_.size()); | 2662 EXPECT_EQ(1U, turn_servers_.size()); |
2651 EXPECT_FALSE(turn_servers_[0].ports[0].secure); | 2663 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); |
2652 turn_servers_.clear(); | 2664 turn_servers_.clear(); |
2653 | 2665 |
2654 EXPECT_TRUE(ParseUrl("turns:hostname")); | 2666 EXPECT_TRUE(ParseUrl("turns:hostname")); |
2655 EXPECT_EQ(0U, stun_servers_.size()); | 2667 EXPECT_EQ(0U, stun_servers_.size()); |
2656 EXPECT_EQ(1U, turn_servers_.size()); | 2668 EXPECT_EQ(1U, turn_servers_.size()); |
2657 EXPECT_TRUE(turn_servers_[0].ports[0].secure); | 2669 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto); |
| 2670 turn_servers_.clear(); |
| 2671 |
| 2672 EXPECT_TRUE(ParseUrl("turns:hostname", "", "", |
| 2673 PeerConnectionInterface::TlsCertificatePolicy:: |
| 2674 kTlsCertPolicyInsecureNoCheck)); |
| 2675 EXPECT_EQ(0U, stun_servers_.size()); |
| 2676 EXPECT_EQ(1U, turn_servers_.size()); |
| 2677 EXPECT_TRUE(turn_servers_[0].ports[0].flags & |
| 2678 cricket::PROTO_FLAG_INSECURE_CERT_CHECK); |
| 2679 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto); |
2658 turn_servers_.clear(); | 2680 turn_servers_.clear(); |
2659 | 2681 |
2660 // invalid prefixes | 2682 // invalid prefixes |
2661 EXPECT_FALSE(ParseUrl("stunn:hostname")); | 2683 EXPECT_FALSE(ParseUrl("stunn:hostname")); |
2662 EXPECT_FALSE(ParseUrl(":hostname")); | 2684 EXPECT_FALSE(ParseUrl(":hostname")); |
2663 EXPECT_FALSE(ParseUrl(":")); | 2685 EXPECT_FALSE(ParseUrl(":")); |
2664 EXPECT_FALSE(ParseUrl("")); | 2686 EXPECT_FALSE(ParseUrl("")); |
2665 } | 2687 } |
2666 | 2688 |
2667 TEST_F(IceServerParsingTest, VerifyDefaults) { | 2689 TEST_F(IceServerParsingTest, VerifyDefaults) { |
2668 // TURNS defaults | 2690 // TURNS defaults |
2669 EXPECT_TRUE(ParseUrl("turns:hostname")); | 2691 EXPECT_TRUE(ParseUrl("turns:hostname")); |
2670 EXPECT_EQ(1U, turn_servers_.size()); | 2692 EXPECT_EQ(1U, turn_servers_.size()); |
2671 EXPECT_EQ(5349, turn_servers_[0].ports[0].address.port()); | 2693 EXPECT_EQ(5349, turn_servers_[0].ports[0].address.port()); |
2672 EXPECT_EQ(cricket::PROTO_TCP, turn_servers_[0].ports[0].proto); | 2694 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto); |
2673 turn_servers_.clear(); | 2695 turn_servers_.clear(); |
2674 | 2696 |
2675 // TURN defaults | 2697 // TURN defaults |
2676 EXPECT_TRUE(ParseUrl("turn:hostname")); | 2698 EXPECT_TRUE(ParseUrl("turn:hostname")); |
2677 EXPECT_EQ(1U, turn_servers_.size()); | 2699 EXPECT_EQ(1U, turn_servers_.size()); |
2678 EXPECT_EQ(3478, turn_servers_[0].ports[0].address.port()); | 2700 EXPECT_EQ(3478, turn_servers_[0].ports[0].address.port()); |
2679 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); | 2701 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); |
2680 turn_servers_.clear(); | 2702 turn_servers_.clear(); |
2681 | 2703 |
2682 // STUN defaults | 2704 // STUN defaults |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2794 server.urls.push_back("turn:hostname2"); | 2816 server.urls.push_back("turn:hostname2"); |
2795 servers.push_back(server); | 2817 servers.push_back(server); |
2796 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_)); | 2818 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_)); |
2797 EXPECT_EQ(2U, turn_servers_.size()); | 2819 EXPECT_EQ(2U, turn_servers_.size()); |
2798 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority); | 2820 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority); |
2799 } | 2821 } |
2800 | 2822 |
2801 #endif // if !defined(THREAD_SANITIZER) | 2823 #endif // if !defined(THREAD_SANITIZER) |
2802 | 2824 |
2803 } // namespace | 2825 } // namespace |
OLD | NEW |