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

Side by Side Diff: webrtc/p2p/client/portallocator_unittest.cc

Issue 1291363005: Reland "Remove GICE (gone forever!) and PORTALLOCATOR_ENABLE_SHARED_UFRAG (enabled forever)." becau… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: add comments Created 5 years, 4 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
OLDNEW
1 /* 1 /*
2 * Copyright 2009 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2009 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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 // |stun_candidate_addr| carries the expected reflective address, which is 241 // |stun_candidate_addr| carries the expected reflective address, which is
242 // also the related address for TURN candidate if it is expected. Otherwise, 242 // also the related address for TURN candidate if it is expected. Otherwise,
243 // it should be ignore. 243 // it should be ignore.
244 void CheckDisableAdapterEnumeration( 244 void CheckDisableAdapterEnumeration(
245 uint32 total_ports, 245 uint32 total_ports,
246 const rtc::IPAddress& stun_candidate_addr, 246 const rtc::IPAddress& stun_candidate_addr,
247 const rtc::IPAddress& relay_candidate_udp_transport_addr, 247 const rtc::IPAddress& relay_candidate_udp_transport_addr,
248 const rtc::IPAddress& relay_candidate_tcp_transport_addr) { 248 const rtc::IPAddress& relay_candidate_tcp_transport_addr) {
249 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 249 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
250 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION | 250 session_->set_flags(cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION |
251 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
252 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 251 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
253 allocator().set_allow_tcp_listen(false); 252 allocator().set_allow_tcp_listen(false);
254 session_->StartGettingPorts(); 253 session_->StartGettingPorts();
255 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 254 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
256 255
257 uint32 total_candidates = 0; 256 uint32 total_candidates = 0;
258 if (!stun_candidate_addr.IsNil()) { 257 if (!stun_candidate_addr.IsNil()) {
259 ++total_candidates; 258 ++total_candidates;
260 EXPECT_PRED5(CheckCandidate, candidates_[0], 259 EXPECT_PRED5(CheckCandidate, candidates_[0],
261 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", 260 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp",
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 for (size_t i = 0; i < candidates_.size(); ++i) { 728 for (size_t i = 0; i < candidates_.size(); ++i) {
730 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type()); 729 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type());
731 EXPECT_EQ( 730 EXPECT_EQ(
732 candidates_[0].related_address(), 731 candidates_[0].related_address(),
733 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); 732 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family()));
734 } 733 }
735 } 734 }
736 735
737 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { 736 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) {
738 AddInterface(kClientAddr); 737 AddInterface(kClientAddr);
739 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | 738 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
740 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
741 allocator().set_candidate_filter(cricket::CF_HOST); 739 allocator().set_candidate_filter(cricket::CF_HOST);
742 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 740 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
743 session_->StartGettingPorts(); 741 session_->StartGettingPorts();
744 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 742 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
745 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. 743 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only.
746 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. 744 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only.
747 for (size_t i = 0; i < candidates_.size(); ++i) { 745 for (size_t i = 0; i < candidates_.size(); ++i) {
748 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); 746 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type());
749 } 747 }
750 } 748 }
751 749
752 // Host is behind the NAT. 750 // Host is behind the NAT.
753 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { 751 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) {
754 AddInterface(kPrivateAddr); 752 AddInterface(kPrivateAddr);
755 ResetWithStunServerAndNat(kStunAddr); 753 ResetWithStunServerAndNat(kStunAddr);
756 754
757 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | 755 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
758 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
759 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); 756 allocator().set_candidate_filter(cricket::CF_REFLEXIVE);
760 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 757 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
761 session_->StartGettingPorts(); 758 session_->StartGettingPorts();
762 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 759 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
763 // Host is behind NAT, no private address will be exposed. Hence only UDP 760 // Host is behind NAT, no private address will be exposed. Hence only UDP
764 // port with STUN candidate will be sent outside. 761 // port with STUN candidate will be sent outside.
765 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. 762 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate.
766 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. 763 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state.
767 for (size_t i = 0; i < candidates_.size(); ++i) { 764 for (size_t i = 0; i < candidates_.size(); ++i) {
768 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); 765 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type());
769 EXPECT_EQ( 766 EXPECT_EQ(
770 candidates_[0].related_address(), 767 candidates_[0].related_address(),
771 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); 768 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family()));
772 } 769 }
773 } 770 }
774 771
775 // Host is not behind the NAT. 772 // Host is not behind the NAT.
776 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { 773 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) {
777 AddInterface(kClientAddr); 774 AddInterface(kClientAddr);
778 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | 775 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
779 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
780 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); 776 allocator().set_candidate_filter(cricket::CF_REFLEXIVE);
781 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 777 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
782 session_->StartGettingPorts(); 778 session_->StartGettingPorts();
783 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 779 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
784 // Host has a public address, both UDP and TCP candidates will be exposed. 780 // Host has a public address, both UDP and TCP candidates will be exposed.
785 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. 781 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate.
786 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. 782 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state.
787 for (size_t i = 0; i < candidates_.size(); ++i) { 783 for (size_t i = 0; i < candidates_.size(); ++i) {
788 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); 784 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type());
789 } 785 }
790 } 786 }
791 787
792 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG is enabled we got same 788 // Test that we get the same ufrag and pwd for all candidates.
793 // ufrag and pwd for the collected candidates.
794 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { 789 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) {
795 allocator().set_flags(allocator().flags() |
796 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG);
797 AddInterface(kClientAddr); 790 AddInterface(kClientAddr);
798 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 791 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
799 session_->StartGettingPorts(); 792 session_->StartGettingPorts();
800 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); 793 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout);
801 EXPECT_PRED5(CheckCandidate, candidates_[0], 794 EXPECT_PRED5(CheckCandidate, candidates_[0],
802 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 795 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
803 EXPECT_PRED5(CheckCandidate, candidates_[1], 796 EXPECT_PRED5(CheckCandidate, candidates_[1],
804 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); 797 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr);
805 EXPECT_PRED5(CheckCandidate, candidates_[5], 798 EXPECT_PRED5(CheckCandidate, candidates_[5],
806 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); 799 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr);
807 EXPECT_EQ(4U, ports_.size()); 800 EXPECT_EQ(4U, ports_.size());
808 EXPECT_EQ(kIceUfrag0, candidates_[0].username()); 801 EXPECT_EQ(kIceUfrag0, candidates_[0].username());
809 EXPECT_EQ(kIceUfrag0, candidates_[1].username()); 802 EXPECT_EQ(kIceUfrag0, candidates_[1].username());
810 EXPECT_EQ(kIceUfrag0, candidates_[2].username()); 803 EXPECT_EQ(kIceUfrag0, candidates_[2].username());
811 EXPECT_EQ(kIcePwd0, candidates_[0].password()); 804 EXPECT_EQ(kIcePwd0, candidates_[0].password());
812 EXPECT_EQ(kIcePwd0, candidates_[1].password()); 805 EXPECT_EQ(kIcePwd0, candidates_[1].password());
813 EXPECT_TRUE(candidate_allocation_done_); 806 EXPECT_TRUE(candidate_allocation_done_);
814 } 807 }
815 808
816 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG isn't enabled we got
817 // different ufrag and pwd for the collected candidates.
818 TEST_F(PortAllocatorTest, TestDisableSharedUfrag) {
819 allocator().set_flags(allocator().flags() &
820 ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG);
821 AddInterface(kClientAddr);
822 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
823 session_->StartGettingPorts();
824 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout);
825 EXPECT_PRED5(CheckCandidate, candidates_[0],
826 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
827 EXPECT_PRED5(CheckCandidate, candidates_[1],
828 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr);
829 EXPECT_EQ(4U, ports_.size());
830 // Port should generate random ufrag and pwd.
831 EXPECT_NE(kIceUfrag0, candidates_[0].username());
832 EXPECT_NE(kIceUfrag0, candidates_[1].username());
833 EXPECT_NE(candidates_[0].username(), candidates_[1].username());
834 EXPECT_NE(kIcePwd0, candidates_[0].password());
835 EXPECT_NE(kIcePwd0, candidates_[1].password());
836 EXPECT_NE(candidates_[0].password(), candidates_[1].password());
837 EXPECT_TRUE(candidate_allocation_done_);
838 }
839
840 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port 809 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port
841 // is allocated for udp and stun. Also verify there is only one candidate 810 // is allocated for udp and stun. Also verify there is only one candidate
842 // (local) if stun candidate is same as local candidate, which will be the case 811 // (local) if stun candidate is same as local candidate, which will be the case
843 // in a public network like the below test. 812 // in a public network like the below test.
844 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { 813 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) {
845 AddInterface(kClientAddr); 814 AddInterface(kClientAddr);
846 allocator_->set_flags(allocator().flags() | 815 allocator_->set_flags(allocator().flags() |
847 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
848 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 816 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
849 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 817 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
850 session_->StartGettingPorts(); 818 session_->StartGettingPorts();
851 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); 819 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout);
852 EXPECT_EQ(3U, ports_.size()); 820 EXPECT_EQ(3U, ports_.size());
853 EXPECT_PRED5(CheckCandidate, candidates_[0], 821 EXPECT_PRED5(CheckCandidate, candidates_[0],
854 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 822 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
855 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 823 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
856 } 824 }
857 825
858 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port 826 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port
859 // is allocated for udp and stun. In this test we should expect both stun and 827 // is allocated for udp and stun. In this test we should expect both stun and
860 // local candidates as client behind a nat. 828 // local candidates as client behind a nat.
861 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { 829 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) {
862 AddInterface(kClientAddr); 830 AddInterface(kClientAddr);
863 ResetWithStunServerAndNat(kStunAddr); 831 ResetWithStunServerAndNat(kStunAddr);
864 832
865 allocator_->set_flags(allocator().flags() | 833 allocator_->set_flags(allocator().flags() |
866 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
867 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 834 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
868 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 835 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
869 session_->StartGettingPorts(); 836 session_->StartGettingPorts();
870 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 837 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
871 ASSERT_EQ(2U, ports_.size()); 838 ASSERT_EQ(2U, ports_.size());
872 EXPECT_PRED5(CheckCandidate, candidates_[0], 839 EXPECT_PRED5(CheckCandidate, candidates_[0],
873 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 840 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
874 EXPECT_PRED5(CheckCandidate, candidates_[1], 841 EXPECT_PRED5(CheckCandidate, candidates_[1],
875 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", 842 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp",
876 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); 843 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0));
877 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 844 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
878 EXPECT_EQ(3U, candidates_.size()); 845 EXPECT_EQ(3U, candidates_.size());
879 } 846 }
880 847
881 // Test TURN port in shared socket mode with UDP and TCP TURN server addresses. 848 // Test TURN port in shared socket mode with UDP and TCP TURN server addresses.
882 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { 849 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) {
883 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); 850 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP);
884 AddInterface(kClientAddr); 851 AddInterface(kClientAddr);
885 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); 852 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_));
886 853
887 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); 854 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr);
888 855
889 allocator_->set_step_delay(cricket::kMinimumStepDelay); 856 allocator_->set_step_delay(cricket::kMinimumStepDelay);
890 allocator_->set_flags(allocator().flags() | 857 allocator_->set_flags(allocator().flags() |
891 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
892 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 858 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
893 cricket::PORTALLOCATOR_DISABLE_TCP); 859 cricket::PORTALLOCATOR_DISABLE_TCP);
894 860
895 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 861 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
896 session_->StartGettingPorts(); 862 session_->StartGettingPorts();
897 863
898 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 864 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
899 ASSERT_EQ(3U, ports_.size()); 865 ASSERT_EQ(3U, ports_.size());
900 EXPECT_PRED5(CheckCandidate, candidates_[0], 866 EXPECT_PRED5(CheckCandidate, candidates_[0],
901 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 867 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
(...skipping 17 matching lines...) Expand all
919 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); 885 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN);
920 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); 886 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword);
921 relay_server.credentials = credentials; 887 relay_server.credentials = credentials;
922 relay_server.ports.push_back(cricket::ProtocolAddress( 888 relay_server.ports.push_back(cricket::ProtocolAddress(
923 rtc::SocketAddress("localhost", 3478), 889 rtc::SocketAddress("localhost", 3478),
924 cricket::PROTO_UDP, false)); 890 cricket::PROTO_UDP, false));
925 allocator_->AddRelay(relay_server); 891 allocator_->AddRelay(relay_server);
926 892
927 allocator_->set_step_delay(cricket::kMinimumStepDelay); 893 allocator_->set_step_delay(cricket::kMinimumStepDelay);
928 allocator_->set_flags(allocator().flags() | 894 allocator_->set_flags(allocator().flags() |
929 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
930 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 895 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
931 cricket::PORTALLOCATOR_DISABLE_TCP); 896 cricket::PORTALLOCATOR_DISABLE_TCP);
932 897
933 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 898 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
934 session_->StartGettingPorts(); 899 session_->StartGettingPorts();
935 900
936 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout); 901 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout);
937 } 902 }
938 903
939 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port 904 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port
940 // is allocated for udp/stun/turn. In this test we should expect all local, 905 // is allocated for udp/stun/turn. In this test we should expect all local,
941 // stun and turn candidates. 906 // stun and turn candidates.
942 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { 907 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) {
943 AddInterface(kClientAddr); 908 AddInterface(kClientAddr);
944 ResetWithStunServerAndNat(kStunAddr); 909 ResetWithStunServerAndNat(kStunAddr);
945 910
946 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 911 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
947 912
948 allocator_->set_flags(allocator().flags() | 913 allocator_->set_flags(allocator().flags() |
949 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
950 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 914 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
951 cricket::PORTALLOCATOR_DISABLE_TCP); 915 cricket::PORTALLOCATOR_DISABLE_TCP);
952 916
953 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 917 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
954 session_->StartGettingPorts(); 918 session_->StartGettingPorts();
955 919
956 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 920 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
957 ASSERT_EQ(2U, ports_.size()); 921 ASSERT_EQ(2U, ports_.size());
958 EXPECT_PRED5(CheckCandidate, candidates_[0], 922 EXPECT_PRED5(CheckCandidate, candidates_[0],
959 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 923 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
(...skipping 18 matching lines...) Expand all
978 // Use an empty SocketAddress to add a NAT without STUN server. 942 // Use an empty SocketAddress to add a NAT without STUN server.
979 ResetWithStunServerAndNat(SocketAddress()); 943 ResetWithStunServerAndNat(SocketAddress());
980 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 944 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
981 945
982 // Must set the step delay to 0 to make sure the relay allocation phase is 946 // Must set the step delay to 0 to make sure the relay allocation phase is
983 // started before the STUN candidates are obtained, so that the STUN binding 947 // started before the STUN candidates are obtained, so that the STUN binding
984 // response is processed when both StunPort and TurnPort exist to reproduce 948 // response is processed when both StunPort and TurnPort exist to reproduce
985 // webrtc issue 3537. 949 // webrtc issue 3537.
986 allocator_->set_step_delay(0); 950 allocator_->set_step_delay(0);
987 allocator_->set_flags(allocator().flags() | 951 allocator_->set_flags(allocator().flags() |
988 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
989 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 952 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
990 cricket::PORTALLOCATOR_DISABLE_TCP); 953 cricket::PORTALLOCATOR_DISABLE_TCP);
991 954
992 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 955 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
993 session_->StartGettingPorts(); 956 session_->StartGettingPorts();
994 957
995 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 958 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
996 EXPECT_PRED5(CheckCandidate, candidates_[0], 959 EXPECT_PRED5(CheckCandidate, candidates_[0],
997 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 960 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
998 EXPECT_PRED5(CheckCandidate, candidates_[1], 961 EXPECT_PRED5(CheckCandidate, candidates_[1],
(...skipping 14 matching lines...) Expand all
1013 // Test that when only a TCP TURN server is available, we do NOT use it as 976 // Test that when only a TCP TURN server is available, we do NOT use it as
1014 // a UDP STUN server, as this could leak our IP address. Thus we should only 977 // a UDP STUN server, as this could leak our IP address. Thus we should only
1015 // expect two ports, a UDPPort and TurnPort. 978 // expect two ports, a UDPPort and TurnPort.
1016 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { 979 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) {
1017 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); 980 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP);
1018 AddInterface(kClientAddr); 981 AddInterface(kClientAddr);
1019 ResetWithStunServerAndNat(rtc::SocketAddress()); 982 ResetWithStunServerAndNat(rtc::SocketAddress());
1020 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); 983 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr);
1021 984
1022 allocator_->set_flags(allocator().flags() | 985 allocator_->set_flags(allocator().flags() |
1023 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1024 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 986 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
1025 cricket::PORTALLOCATOR_DISABLE_TCP); 987 cricket::PORTALLOCATOR_DISABLE_TCP);
1026 988
1027 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 989 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1028 session_->StartGettingPorts(); 990 session_->StartGettingPorts();
1029 991
1030 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); 992 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout);
1031 ASSERT_EQ(2U, ports_.size()); 993 ASSERT_EQ(2U, ports_.size());
1032 EXPECT_PRED5(CheckCandidate, candidates_[0], 994 EXPECT_PRED5(CheckCandidate, candidates_[0],
1033 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", 995 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp",
(...skipping 12 matching lines...) Expand all
1046 // 'relay' candidates. 1008 // 'relay' candidates.
1047 // TODO(deadbeef): Remove this test when support for non-shared socket mode 1009 // TODO(deadbeef): Remove this test when support for non-shared socket mode
1048 // is removed. 1010 // is removed.
1049 TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { 1011 TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) {
1050 AddInterface(kClientAddr); 1012 AddInterface(kClientAddr);
1051 // Use an empty SocketAddress to add a NAT without STUN server. 1013 // Use an empty SocketAddress to add a NAT without STUN server.
1052 ResetWithStunServerAndNat(SocketAddress()); 1014 ResetWithStunServerAndNat(SocketAddress());
1053 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 1015 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
1054 1016
1055 allocator_->set_flags(allocator().flags() | 1017 allocator_->set_flags(allocator().flags() |
1056 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1057 cricket::PORTALLOCATOR_DISABLE_TCP); 1018 cricket::PORTALLOCATOR_DISABLE_TCP);
1058 1019
1059 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 1020 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1060 session_->StartGettingPorts(); 1021 session_->StartGettingPorts();
1061 1022
1062 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 1023 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
1063 ASSERT_EQ(3U, ports_.size()); 1024 ASSERT_EQ(3U, ports_.size());
1064 EXPECT_PRED5(CheckCandidate, candidates_[0], 1025 EXPECT_PRED5(CheckCandidate, candidates_[0],
1065 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", 1026 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp",
1066 kClientAddr); 1027 kClientAddr);
(...skipping 18 matching lines...) Expand all
1085 // server is used as a STUN server and we get a 'stun' candidate. 1046 // server is used as a STUN server and we get a 'stun' candidate.
1086 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { 1047 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) {
1087 AddInterface(kClientAddr); 1048 AddInterface(kClientAddr);
1088 // Configure with STUN server but destroy it, so we can ensure that it's 1049 // Configure with STUN server but destroy it, so we can ensure that it's
1089 // the TURN server actually being used as a STUN server. 1050 // the TURN server actually being used as a STUN server.
1090 ResetWithStunServerAndNat(kStunAddr); 1051 ResetWithStunServerAndNat(kStunAddr);
1091 stun_server_.reset(); 1052 stun_server_.reset();
1092 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); 1053 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress());
1093 1054
1094 allocator_->set_flags(allocator().flags() | 1055 allocator_->set_flags(allocator().flags() |
1095 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1096 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | 1056 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET |
1097 cricket::PORTALLOCATOR_DISABLE_TCP); 1057 cricket::PORTALLOCATOR_DISABLE_TCP);
1098 1058
1099 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 1059 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1100 session_->StartGettingPorts(); 1060 session_->StartGettingPorts();
1101 1061
1102 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); 1062 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout);
1103 EXPECT_PRED5(CheckCandidate, candidates_[0], 1063 EXPECT_PRED5(CheckCandidate, candidates_[0],
1104 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", 1064 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp",
1105 kClientAddr); 1065 kClientAddr);
1106 EXPECT_PRED5(CheckCandidate, candidates_[1], 1066 EXPECT_PRED5(CheckCandidate, candidates_[1],
1107 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", 1067 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp",
1108 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); 1068 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0));
1109 EXPECT_PRED5(CheckCandidate, candidates_[2], 1069 EXPECT_PRED5(CheckCandidate, candidates_[2],
1110 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", 1070 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp",
1111 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); 1071 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0));
1112 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); 1072 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address());
1113 1073
1114 // Don't bother waiting for STUN timeout, since we already verified 1074 // Don't bother waiting for STUN timeout, since we already verified
1115 // that we got a STUN candidate from the TURN server. 1075 // that we got a STUN candidate from the TURN server.
1116 } 1076 }
1117 1077
1118 // This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled 1078 // This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled
1119 // and fail to generate STUN candidate, local UDP candidate is generated 1079 // and fail to generate STUN candidate, local UDP candidate is generated
1120 // properly. 1080 // properly.
1121 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { 1081 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) {
1122 allocator().set_flags(allocator().flags() | 1082 allocator().set_flags(allocator().flags() |
1123 cricket::PORTALLOCATOR_DISABLE_RELAY | 1083 cricket::PORTALLOCATOR_DISABLE_RELAY |
1124 cricket::PORTALLOCATOR_DISABLE_TCP | 1084 cricket::PORTALLOCATOR_DISABLE_TCP |
1125 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1126 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 1085 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
1127 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); 1086 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr);
1128 AddInterface(kClientAddr); 1087 AddInterface(kClientAddr);
1129 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 1088 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1130 session_->StartGettingPorts(); 1089 session_->StartGettingPorts();
1131 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); 1090 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout);
1132 EXPECT_EQ(1U, candidates_.size()); 1091 EXPECT_EQ(1U, candidates_.size());
1133 EXPECT_PRED5(CheckCandidate, candidates_[0], 1092 EXPECT_PRED5(CheckCandidate, candidates_[0],
1134 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); 1093 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr);
1135 // STUN timeout is 9sec. We need to wait to get candidate done signal. 1094 // STUN timeout is 9sec. We need to wait to get candidate done signal.
1136 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); 1095 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000);
1137 EXPECT_EQ(1U, candidates_.size()); 1096 EXPECT_EQ(1U, candidates_.size());
1138 } 1097 }
1139 1098
1140 // Test that when the NetworkManager doesn't have permission to enumerate 1099 // Test that when the NetworkManager doesn't have permission to enumerate
1141 // adapters, the PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION is specified 1100 // adapters, the PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION is specified
1142 // automatically. 1101 // automatically.
1143 TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) { 1102 TEST_F(PortAllocatorTest, TestNetworkPermissionBlocked) {
1144 AddInterface(kClientAddr); 1103 AddInterface(kClientAddr);
1145 network_manager_.set_enumeration_permission( 1104 network_manager_.set_enumeration_permission(
1146 rtc::NetworkManager::kEnumerationDisallowed); 1105 rtc::NetworkManager::kEnumerationDisallowed);
1147 allocator().set_flags(allocator().flags() | 1106 allocator().set_flags(allocator().flags() |
1148 cricket::PORTALLOCATOR_DISABLE_RELAY | 1107 cricket::PORTALLOCATOR_DISABLE_RELAY |
1149 cricket::PORTALLOCATOR_DISABLE_TCP | 1108 cricket::PORTALLOCATOR_DISABLE_TCP |
1150 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1151 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 1109 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
1152 EXPECT_EQ( 1110 EXPECT_EQ(
1153 allocator_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, 1111 allocator_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION,
1154 0U); 1112 0U);
1155 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 1113 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1156 EXPECT_EQ( 1114 EXPECT_EQ(
1157 session_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION, 1115 session_->flags() & cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION,
1158 0U); 1116 0U);
1159 session_->StartGettingPorts(); 1117 session_->StartGettingPorts();
1160 EXPECT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); 1118 EXPECT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout);
1161 EXPECT_EQ(0U, candidates_.size()); 1119 EXPECT_EQ(0U, candidates_.size());
1162 EXPECT_TRUE((session_->flags() & 1120 EXPECT_TRUE((session_->flags() &
1163 cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) != 0); 1121 cricket::PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) != 0);
1164 } 1122 }
1165 1123
1166 // This test verifies allocator can use IPv6 addresses along with IPv4. 1124 // This test verifies allocator can use IPv6 addresses along with IPv4.
1167 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { 1125 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) {
1168 allocator().set_flags(allocator().flags() | 1126 allocator().set_flags(allocator().flags() |
1169 cricket::PORTALLOCATOR_DISABLE_RELAY | 1127 cricket::PORTALLOCATOR_DISABLE_RELAY |
1170 cricket::PORTALLOCATOR_ENABLE_IPV6 | 1128 cricket::PORTALLOCATOR_ENABLE_IPV6 |
1171 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG |
1172 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); 1129 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET);
1173 AddInterface(kClientIPv6Addr); 1130 AddInterface(kClientIPv6Addr);
1174 AddInterface(kClientAddr); 1131 AddInterface(kClientAddr);
1175 allocator_->set_step_delay(cricket::kMinimumStepDelay); 1132 allocator_->set_step_delay(cricket::kMinimumStepDelay);
1176 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 1133 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
1177 session_->StartGettingPorts(); 1134 session_->StartGettingPorts();
1178 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout); 1135 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout);
1179 EXPECT_EQ(4U, candidates_.size()); 1136 EXPECT_EQ(4U, candidates_.size());
1180 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); 1137 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout);
1181 EXPECT_PRED5(CheckCandidate, candidates_[0], 1138 EXPECT_PRED5(CheckCandidate, candidates_[0],
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 alloc.SetStunHosts(stun_servers); 1177 alloc.SetStunHosts(stun_servers);
1221 EXPECT_EQ(2U, alloc.relay_hosts().size()); 1178 EXPECT_EQ(2U, alloc.relay_hosts().size());
1222 EXPECT_EQ(2U, alloc.stun_hosts().size()); 1179 EXPECT_EQ(2U, alloc.stun_hosts().size());
1223 } 1180 }
1224 1181
1225 // Test that the HttpPortAllocator uses correct URL to create sessions. 1182 // Test that the HttpPortAllocator uses correct URL to create sessions.
1226 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) { 1183 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) {
1227 rtc::FakeNetworkManager network_manager; 1184 rtc::FakeNetworkManager network_manager;
1228 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent"); 1185 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent");
1229 1186
1230 // Disable PORTALLOCATOR_ENABLE_SHARED_UFRAG.
1231 alloc.set_flags(alloc.flags() & ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG);
1232 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session( 1187 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session(
1233 static_cast<cricket::HttpPortAllocatorSession*>( 1188 static_cast<cricket::HttpPortAllocatorSession*>(
1234 alloc.CreateSessionInternal( 1189 alloc.CreateSessionInternal(
1235 "test content", 0, kIceUfrag0, kIcePwd0))); 1190 "test content", 0, kIceUfrag0, kIcePwd0)));
1236 std::string url = session->GetSessionRequestUrl(); 1191 std::string url = session->GetSessionRequestUrl();
1237 LOG(LS_INFO) << "url: " << url; 1192 LOG(LS_INFO) << "url: " << url;
1238 EXPECT_EQ(std::string(cricket::HttpPortAllocator::kCreateSessionURL), url);
1239
1240 // Enable PORTALLOCATOR_ENABLE_SHARED_UFRAG.
1241 alloc.set_flags(alloc.flags() | cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG);
1242 session.reset(static_cast<cricket::HttpPortAllocatorSession*>(
1243 alloc.CreateSessionInternal("test content", 0, kIceUfrag0, kIcePwd0)));
1244 url = session->GetSessionRequestUrl();
1245 LOG(LS_INFO) << "url: " << url;
1246 std::vector<std::string> parts; 1193 std::vector<std::string> parts;
1247 rtc::split(url, '?', &parts); 1194 rtc::split(url, '?', &parts);
1248 ASSERT_EQ(2U, parts.size()); 1195 ASSERT_EQ(2U, parts.size());
1249 1196
1250 std::vector<std::string> args_parts; 1197 std::vector<std::string> args_parts;
1251 rtc::split(parts[1], '&', &args_parts); 1198 rtc::split(parts[1], '&', &args_parts);
1252 1199
1253 std::map<std::string, std::string> args; 1200 std::map<std::string, std::string> args;
1254 for (std::vector<std::string>::iterator it = args_parts.begin(); 1201 for (std::vector<std::string>::iterator it = args_parts.begin();
1255 it != args_parts.end(); ++it) { 1202 it != args_parts.end(); ++it) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 AllocationSequenceForTest alloc_sequence( 1248 AllocationSequenceForTest alloc_sequence(
1302 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()), 1249 static_cast<cricket::BasicPortAllocatorSession*>(session_.get()),
1303 &network1, &config, flag); 1250 &network1, &config, flag);
1304 // This simply tests it will not crash if udp_socket_ in the 1251 // This simply tests it will not crash if udp_socket_ in the
1305 // AllocationSequence is null, which is chosen in the constructor. 1252 // AllocationSequence is null, which is chosen in the constructor.
1306 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); 1253 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN);
1307 relay_server.ports.push_back( 1254 relay_server.ports.push_back(
1308 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false)); 1255 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false));
1309 alloc_sequence.CreateTurnPort(relay_server); 1256 alloc_sequence.CreateTurnPort(relay_server);
1310 } 1257 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698