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

Side by Side Diff: webrtc/api/peerconnection_unittest.cc

Issue 2600813002: Revert of Adding error output param to SetConfiguration, using new RTCError type. (Closed)
Patch Set: Created 3 years, 12 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
« no previous file with comments | « webrtc/api/peerconnection.cc ('k') | webrtc/api/peerconnectioninterface.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 * 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 2598 matching lines...) Expand 10 before | Expand all | Expand 10 after
2609 delete set_receiving_client(nullptr); 2609 delete set_receiving_client(nullptr);
2610 } 2610 }
2611 2611
2612 class IceServerParsingTest : public testing::Test { 2612 class IceServerParsingTest : public testing::Test {
2613 public: 2613 public:
2614 // Convenience for parsing a single URL. 2614 // Convenience for parsing a single URL.
2615 bool ParseUrl(const std::string& url) { 2615 bool ParseUrl(const std::string& url) {
2616 return ParseUrl(url, std::string(), std::string()); 2616 return ParseUrl(url, std::string(), std::string());
2617 } 2617 }
2618 2618
2619 bool ParseTurnUrl(const std::string& url) {
2620 return ParseUrl(url, "username", "password");
2621 }
2622
2623 bool ParseUrl(const std::string& url, 2619 bool ParseUrl(const std::string& url,
2624 const std::string& username, 2620 const std::string& username,
2625 const std::string& password) { 2621 const std::string& password) {
2626 PeerConnectionInterface::IceServers servers; 2622 PeerConnectionInterface::IceServers servers;
2627 PeerConnectionInterface::IceServer server; 2623 PeerConnectionInterface::IceServer server;
2628 server.urls.push_back(url); 2624 server.urls.push_back(url);
2629 server.username = username; 2625 server.username = username;
2630 server.password = password; 2626 server.password = password;
2631 servers.push_back(server); 2627 servers.push_back(server);
2632 return webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_) == 2628 return webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_);
2633 webrtc::RTCErrorType::NONE;
2634 } 2629 }
2635 2630
2636 protected: 2631 protected:
2637 cricket::ServerAddresses stun_servers_; 2632 cricket::ServerAddresses stun_servers_;
2638 std::vector<cricket::RelayServerConfig> turn_servers_; 2633 std::vector<cricket::RelayServerConfig> turn_servers_;
2639 }; 2634 };
2640 2635
2641 // Make sure all STUN/TURN prefixes are parsed correctly. 2636 // Make sure all STUN/TURN prefixes are parsed correctly.
2642 TEST_F(IceServerParsingTest, ParseStunPrefixes) { 2637 TEST_F(IceServerParsingTest, ParseStunPrefixes) {
2643 EXPECT_TRUE(ParseUrl("stun:hostname")); 2638 EXPECT_TRUE(ParseUrl("stun:hostname"));
2644 EXPECT_EQ(1U, stun_servers_.size()); 2639 EXPECT_EQ(1U, stun_servers_.size());
2645 EXPECT_EQ(0U, turn_servers_.size()); 2640 EXPECT_EQ(0U, turn_servers_.size());
2646 stun_servers_.clear(); 2641 stun_servers_.clear();
2647 2642
2648 EXPECT_TRUE(ParseUrl("stuns:hostname")); 2643 EXPECT_TRUE(ParseUrl("stuns:hostname"));
2649 EXPECT_EQ(1U, stun_servers_.size()); 2644 EXPECT_EQ(1U, stun_servers_.size());
2650 EXPECT_EQ(0U, turn_servers_.size()); 2645 EXPECT_EQ(0U, turn_servers_.size());
2651 stun_servers_.clear(); 2646 stun_servers_.clear();
2652 2647
2653 EXPECT_TRUE(ParseTurnUrl("turn:hostname")); 2648 EXPECT_TRUE(ParseUrl("turn:hostname"));
2654 EXPECT_EQ(0U, stun_servers_.size()); 2649 EXPECT_EQ(0U, stun_servers_.size());
2655 EXPECT_EQ(1U, turn_servers_.size()); 2650 EXPECT_EQ(1U, turn_servers_.size());
2656 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); 2651 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto);
2657 turn_servers_.clear(); 2652 turn_servers_.clear();
2658 2653
2659 EXPECT_TRUE(ParseTurnUrl("turns:hostname")); 2654 EXPECT_TRUE(ParseUrl("turns:hostname"));
2660 EXPECT_EQ(0U, stun_servers_.size()); 2655 EXPECT_EQ(0U, stun_servers_.size());
2661 EXPECT_EQ(1U, turn_servers_.size()); 2656 EXPECT_EQ(1U, turn_servers_.size());
2662 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto); 2657 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto);
2663 turn_servers_.clear(); 2658 turn_servers_.clear();
2664 2659
2665 // invalid prefixes 2660 // invalid prefixes
2666 EXPECT_FALSE(ParseUrl("stunn:hostname")); 2661 EXPECT_FALSE(ParseUrl("stunn:hostname"));
2667 EXPECT_FALSE(ParseUrl(":hostname")); 2662 EXPECT_FALSE(ParseUrl(":hostname"));
2668 EXPECT_FALSE(ParseUrl(":")); 2663 EXPECT_FALSE(ParseUrl(":"));
2669 EXPECT_FALSE(ParseUrl("")); 2664 EXPECT_FALSE(ParseUrl(""));
2670 } 2665 }
2671 2666
2672 TEST_F(IceServerParsingTest, VerifyDefaults) { 2667 TEST_F(IceServerParsingTest, VerifyDefaults) {
2673 // TURNS defaults 2668 // TURNS defaults
2674 EXPECT_TRUE(ParseTurnUrl("turns:hostname")); 2669 EXPECT_TRUE(ParseUrl("turns:hostname"));
2675 EXPECT_EQ(1U, turn_servers_.size()); 2670 EXPECT_EQ(1U, turn_servers_.size());
2676 EXPECT_EQ(5349, turn_servers_[0].ports[0].address.port()); 2671 EXPECT_EQ(5349, turn_servers_[0].ports[0].address.port());
2677 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto); 2672 EXPECT_EQ(cricket::PROTO_TLS, turn_servers_[0].ports[0].proto);
2678 turn_servers_.clear(); 2673 turn_servers_.clear();
2679 2674
2680 // TURN defaults 2675 // TURN defaults
2681 EXPECT_TRUE(ParseTurnUrl("turn:hostname")); 2676 EXPECT_TRUE(ParseUrl("turn:hostname"));
2682 EXPECT_EQ(1U, turn_servers_.size()); 2677 EXPECT_EQ(1U, turn_servers_.size());
2683 EXPECT_EQ(3478, turn_servers_[0].ports[0].address.port()); 2678 EXPECT_EQ(3478, turn_servers_[0].ports[0].address.port());
2684 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); 2679 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto);
2685 turn_servers_.clear(); 2680 turn_servers_.clear();
2686 2681
2687 // STUN defaults 2682 // STUN defaults
2688 EXPECT_TRUE(ParseUrl("stun:hostname")); 2683 EXPECT_TRUE(ParseUrl("stun:hostname"));
2689 EXPECT_EQ(1U, stun_servers_.size()); 2684 EXPECT_EQ(1U, stun_servers_.size());
2690 EXPECT_EQ(3478, stun_servers_.begin()->port()); 2685 EXPECT_EQ(3478, stun_servers_.begin()->port());
2691 stun_servers_.clear(); 2686 stun_servers_.clear();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2736 EXPECT_FALSE(ParseUrl("stun:hostname:port:more")); 2731 EXPECT_FALSE(ParseUrl("stun:hostname:port:more"));
2737 EXPECT_FALSE(ParseUrl("stun:hostname:port more")); 2732 EXPECT_FALSE(ParseUrl("stun:hostname:port more"));
2738 EXPECT_FALSE(ParseUrl("stun:hostname:")); 2733 EXPECT_FALSE(ParseUrl("stun:hostname:"));
2739 EXPECT_FALSE(ParseUrl("stun:[1:2:3:4:5:6:7:8]junk:1000")); 2734 EXPECT_FALSE(ParseUrl("stun:[1:2:3:4:5:6:7:8]junk:1000"));
2740 EXPECT_FALSE(ParseUrl("stun::5555")); 2735 EXPECT_FALSE(ParseUrl("stun::5555"));
2741 EXPECT_FALSE(ParseUrl("stun:")); 2736 EXPECT_FALSE(ParseUrl("stun:"));
2742 } 2737 }
2743 2738
2744 // Test parsing the "?transport=xxx" part of the URL. 2739 // Test parsing the "?transport=xxx" part of the URL.
2745 TEST_F(IceServerParsingTest, ParseTransport) { 2740 TEST_F(IceServerParsingTest, ParseTransport) {
2746 EXPECT_TRUE(ParseTurnUrl("turn:hostname:1234?transport=tcp")); 2741 EXPECT_TRUE(ParseUrl("turn:hostname:1234?transport=tcp"));
2747 EXPECT_EQ(1U, turn_servers_.size()); 2742 EXPECT_EQ(1U, turn_servers_.size());
2748 EXPECT_EQ(cricket::PROTO_TCP, turn_servers_[0].ports[0].proto); 2743 EXPECT_EQ(cricket::PROTO_TCP, turn_servers_[0].ports[0].proto);
2749 turn_servers_.clear(); 2744 turn_servers_.clear();
2750 2745
2751 EXPECT_TRUE(ParseTurnUrl("turn:hostname?transport=udp")); 2746 EXPECT_TRUE(ParseUrl("turn:hostname?transport=udp"));
2752 EXPECT_EQ(1U, turn_servers_.size()); 2747 EXPECT_EQ(1U, turn_servers_.size());
2753 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto); 2748 EXPECT_EQ(cricket::PROTO_UDP, turn_servers_[0].ports[0].proto);
2754 turn_servers_.clear(); 2749 turn_servers_.clear();
2755 2750
2756 EXPECT_FALSE(ParseTurnUrl("turn:hostname?transport=invalid")); 2751 EXPECT_FALSE(ParseUrl("turn:hostname?transport=invalid"));
2757 EXPECT_FALSE(ParseTurnUrl("turn:hostname?transport=")); 2752 EXPECT_FALSE(ParseUrl("turn:hostname?transport="));
2758 EXPECT_FALSE(ParseTurnUrl("turn:hostname?=")); 2753 EXPECT_FALSE(ParseUrl("turn:hostname?="));
2759 EXPECT_FALSE(ParseTurnUrl("?")); 2754 EXPECT_FALSE(ParseUrl("?"));
2760 } 2755 }
2761 2756
2762 // Test parsing ICE username contained in URL. 2757 // Test parsing ICE username contained in URL.
2763 TEST_F(IceServerParsingTest, ParseUsername) { 2758 TEST_F(IceServerParsingTest, ParseUsername) {
2764 EXPECT_TRUE(ParseTurnUrl("turn:user@hostname")); 2759 EXPECT_TRUE(ParseUrl("turn:user@hostname"));
2765 EXPECT_EQ(1U, turn_servers_.size()); 2760 EXPECT_EQ(1U, turn_servers_.size());
2766 EXPECT_EQ("user", turn_servers_[0].credentials.username); 2761 EXPECT_EQ("user", turn_servers_[0].credentials.username);
2767 turn_servers_.clear(); 2762 turn_servers_.clear();
2768 2763
2769 EXPECT_FALSE(ParseTurnUrl("turn:@hostname")); 2764 EXPECT_FALSE(ParseUrl("turn:@hostname"));
2770 EXPECT_FALSE(ParseTurnUrl("turn:username@")); 2765 EXPECT_FALSE(ParseUrl("turn:username@"));
2771 EXPECT_FALSE(ParseTurnUrl("turn:@")); 2766 EXPECT_FALSE(ParseUrl("turn:@"));
2772 EXPECT_FALSE(ParseTurnUrl("turn:user@name@hostname")); 2767 EXPECT_FALSE(ParseUrl("turn:user@name@hostname"));
2773 } 2768 }
2774 2769
2775 // Test that username and password from IceServer is copied into the resulting 2770 // Test that username and password from IceServer is copied into the resulting
2776 // RelayServerConfig. 2771 // RelayServerConfig.
2777 TEST_F(IceServerParsingTest, CopyUsernameAndPasswordFromIceServer) { 2772 TEST_F(IceServerParsingTest, CopyUsernameAndPasswordFromIceServer) {
2778 EXPECT_TRUE(ParseUrl("turn:hostname", "username", "password")); 2773 EXPECT_TRUE(ParseUrl("turn:hostname", "username", "password"));
2779 EXPECT_EQ(1U, turn_servers_.size()); 2774 EXPECT_EQ(1U, turn_servers_.size());
2780 EXPECT_EQ("username", turn_servers_[0].credentials.username); 2775 EXPECT_EQ("username", turn_servers_[0].credentials.username);
2781 EXPECT_EQ("password", turn_servers_[0].credentials.password); 2776 EXPECT_EQ("password", turn_servers_[0].credentials.password);
2782 } 2777 }
2783 2778
2784 // Ensure that if a server has multiple URLs, each one is parsed. 2779 // Ensure that if a server has multiple URLs, each one is parsed.
2785 TEST_F(IceServerParsingTest, ParseMultipleUrls) { 2780 TEST_F(IceServerParsingTest, ParseMultipleUrls) {
2786 PeerConnectionInterface::IceServers servers; 2781 PeerConnectionInterface::IceServers servers;
2787 PeerConnectionInterface::IceServer server; 2782 PeerConnectionInterface::IceServer server;
2788 server.urls.push_back("stun:hostname"); 2783 server.urls.push_back("stun:hostname");
2789 server.urls.push_back("turn:hostname"); 2784 server.urls.push_back("turn:hostname");
2790 server.username = "foo";
2791 server.password = "bar";
2792 servers.push_back(server); 2785 servers.push_back(server);
2793 EXPECT_EQ(webrtc::RTCErrorType::NONE, 2786 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_));
2794 webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_));
2795 EXPECT_EQ(1U, stun_servers_.size()); 2787 EXPECT_EQ(1U, stun_servers_.size());
2796 EXPECT_EQ(1U, turn_servers_.size()); 2788 EXPECT_EQ(1U, turn_servers_.size());
2797 } 2789 }
2798 2790
2799 // Ensure that TURN servers are given unique priorities, 2791 // Ensure that TURN servers are given unique priorities,
2800 // so that their resulting candidates have unique priorities. 2792 // so that their resulting candidates have unique priorities.
2801 TEST_F(IceServerParsingTest, TurnServerPrioritiesUnique) { 2793 TEST_F(IceServerParsingTest, TurnServerPrioritiesUnique) {
2802 PeerConnectionInterface::IceServers servers; 2794 PeerConnectionInterface::IceServers servers;
2803 PeerConnectionInterface::IceServer server; 2795 PeerConnectionInterface::IceServer server;
2804 server.urls.push_back("turn:hostname"); 2796 server.urls.push_back("turn:hostname");
2805 server.urls.push_back("turn:hostname2"); 2797 server.urls.push_back("turn:hostname2");
2806 server.username = "foo";
2807 server.password = "bar";
2808 servers.push_back(server); 2798 servers.push_back(server);
2809 EXPECT_EQ(webrtc::RTCErrorType::NONE, 2799 EXPECT_TRUE(webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_));
2810 webrtc::ParseIceServers(servers, &stun_servers_, &turn_servers_));
2811 EXPECT_EQ(2U, turn_servers_.size()); 2800 EXPECT_EQ(2U, turn_servers_.size());
2812 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority); 2801 EXPECT_NE(turn_servers_[0].priority, turn_servers_[1].priority);
2813 } 2802 }
2814 2803
2815 #endif // if !defined(THREAD_SANITIZER) 2804 #endif // if !defined(THREAD_SANITIZER)
2816 2805
2817 } // namespace 2806 } // namespace
OLDNEW
« no previous file with comments | « webrtc/api/peerconnection.cc ('k') | webrtc/api/peerconnectioninterface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698