OLD | NEW |
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 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 for (size_t i = 0; i < candidates_.size(); ++i) { | 637 for (size_t i = 0; i < candidates_.size(); ++i) { |
638 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type()); | 638 EXPECT_EQ(std::string(cricket::RELAY_PORT_TYPE), candidates_[i].type()); |
639 EXPECT_EQ( | 639 EXPECT_EQ( |
640 candidates_[0].related_address(), | 640 candidates_[0].related_address(), |
641 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); | 641 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); |
642 } | 642 } |
643 } | 643 } |
644 | 644 |
645 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { | 645 TEST_F(PortAllocatorTest, TestCandidateFilterWithHostOnly) { |
646 AddInterface(kClientAddr); | 646 AddInterface(kClientAddr); |
647 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
648 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
649 allocator().set_candidate_filter(cricket::CF_HOST); | 647 allocator().set_candidate_filter(cricket::CF_HOST); |
650 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 648 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
651 session_->StartGettingPorts(); | 649 session_->StartGettingPorts(); |
652 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 650 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
653 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. | 651 EXPECT_EQ(2U, candidates_.size()); // Host UDP/TCP candidates only. |
654 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. | 652 EXPECT_EQ(2U, ports_.size()); // UDP/TCP ports only. |
655 for (size_t i = 0; i < candidates_.size(); ++i) { | 653 for (size_t i = 0; i < candidates_.size(); ++i) { |
656 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); | 654 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
657 } | 655 } |
658 } | 656 } |
659 | 657 |
660 // Host is behind the NAT. | 658 // Host is behind the NAT. |
661 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { | 659 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnly) { |
662 AddInterface(kPrivateAddr); | 660 AddInterface(kPrivateAddr); |
663 ResetWithNatServer(kStunAddr); | 661 ResetWithNatServer(kStunAddr); |
664 | 662 |
665 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
666 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
667 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); | 663 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); |
668 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 664 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
669 session_->StartGettingPorts(); | 665 session_->StartGettingPorts(); |
670 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 666 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
671 // Host is behind NAT, no private address will be exposed. Hence only UDP | 667 // Host is behind NAT, no private address will be exposed. Hence only UDP |
672 // port with STUN candidate will be sent outside. | 668 // port with STUN candidate will be sent outside. |
673 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. | 669 EXPECT_EQ(1U, candidates_.size()); // Only STUN candidate. |
674 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. | 670 EXPECT_EQ(1U, ports_.size()); // Only UDP port will be in ready state. |
675 for (size_t i = 0; i < candidates_.size(); ++i) { | 671 for (size_t i = 0; i < candidates_.size(); ++i) { |
676 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); | 672 EXPECT_EQ(std::string(cricket::STUN_PORT_TYPE), candidates_[i].type()); |
677 EXPECT_EQ( | 673 EXPECT_EQ( |
678 candidates_[0].related_address(), | 674 candidates_[0].related_address(), |
679 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); | 675 rtc::EmptySocketAddressWithFamily(candidates_[0].address().family())); |
680 } | 676 } |
681 } | 677 } |
682 | 678 |
683 // Host is not behind the NAT. | 679 // Host is not behind the NAT. |
684 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { | 680 TEST_F(PortAllocatorTest, TestCandidateFilterWithReflexiveOnlyAndNoNAT) { |
685 AddInterface(kClientAddr); | 681 AddInterface(kClientAddr); |
686 allocator().set_flags(cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
687 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
688 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); | 682 allocator().set_candidate_filter(cricket::CF_REFLEXIVE); |
689 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 683 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
690 session_->StartGettingPorts(); | 684 session_->StartGettingPorts(); |
691 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 685 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
692 // Host has a public address, both UDP and TCP candidates will be exposed. | 686 // Host has a public address, both UDP and TCP candidates will be exposed. |
693 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. | 687 EXPECT_EQ(2U, candidates_.size()); // Local UDP + TCP candidate. |
694 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. | 688 EXPECT_EQ(2U, ports_.size()); // UDP and TCP ports will be in ready state. |
695 for (size_t i = 0; i < candidates_.size(); ++i) { | 689 for (size_t i = 0; i < candidates_.size(); ++i) { |
696 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); | 690 EXPECT_EQ(std::string(cricket::LOCAL_PORT_TYPE), candidates_[i].type()); |
697 } | 691 } |
698 } | 692 } |
699 | 693 |
700 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG is enabled we got same | 694 // Test that we get the same ufrag and pwd for all candidates. |
701 // ufrag and pwd for the collected candidates. | |
702 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { | 695 TEST_F(PortAllocatorTest, TestEnableSharedUfrag) { |
703 allocator().set_flags(allocator().flags() | | |
704 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
705 AddInterface(kClientAddr); | 696 AddInterface(kClientAddr); |
706 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 697 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
707 session_->StartGettingPorts(); | 698 session_->StartGettingPorts(); |
708 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); | 699 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
709 EXPECT_PRED5(CheckCandidate, candidates_[0], | 700 EXPECT_PRED5(CheckCandidate, candidates_[0], |
710 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 701 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
711 EXPECT_PRED5(CheckCandidate, candidates_[1], | 702 EXPECT_PRED5(CheckCandidate, candidates_[1], |
712 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); | 703 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); |
713 EXPECT_PRED5(CheckCandidate, candidates_[5], | 704 EXPECT_PRED5(CheckCandidate, candidates_[5], |
714 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); | 705 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "tcp", kClientAddr); |
715 EXPECT_EQ(4U, ports_.size()); | 706 EXPECT_EQ(4U, ports_.size()); |
716 EXPECT_EQ(kIceUfrag0, candidates_[0].username()); | 707 EXPECT_EQ(kIceUfrag0, candidates_[0].username()); |
717 EXPECT_EQ(kIceUfrag0, candidates_[1].username()); | 708 EXPECT_EQ(kIceUfrag0, candidates_[1].username()); |
718 EXPECT_EQ(kIceUfrag0, candidates_[2].username()); | 709 EXPECT_EQ(kIceUfrag0, candidates_[2].username()); |
719 EXPECT_EQ(kIcePwd0, candidates_[0].password()); | 710 EXPECT_EQ(kIcePwd0, candidates_[0].password()); |
720 EXPECT_EQ(kIcePwd0, candidates_[1].password()); | 711 EXPECT_EQ(kIcePwd0, candidates_[1].password()); |
721 EXPECT_TRUE(candidate_allocation_done_); | 712 EXPECT_TRUE(candidate_allocation_done_); |
722 } | 713 } |
723 | 714 |
724 // Test that when the PORTALLOCATOR_ENABLE_SHARED_UFRAG isn't enabled we got | 715 // Test that only one port is allocated for udp and stun. Also verify |
725 // different ufrag and pwd for the collected candidates. | 716 // there is only one candidate (local) if stun candidate is same as |
726 TEST_F(PortAllocatorTest, TestDisableSharedUfrag) { | 717 // local candidate, which will be the case in a public network like |
727 allocator().set_flags(allocator().flags() & | 718 // the below test. |
728 ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | 719 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { |
729 AddInterface(kClientAddr); | 720 AddInterface(kClientAddr); |
730 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 721 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
731 session_->StartGettingPorts(); | 722 session_->StartGettingPorts(); |
732 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); | |
733 EXPECT_PRED5(CheckCandidate, candidates_[0], | |
734 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | |
735 EXPECT_PRED5(CheckCandidate, candidates_[1], | |
736 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", kClientAddr); | |
737 EXPECT_EQ(4U, ports_.size()); | |
738 // Port should generate random ufrag and pwd. | |
739 EXPECT_NE(kIceUfrag0, candidates_[0].username()); | |
740 EXPECT_NE(kIceUfrag0, candidates_[1].username()); | |
741 EXPECT_NE(candidates_[0].username(), candidates_[1].username()); | |
742 EXPECT_NE(kIcePwd0, candidates_[0].password()); | |
743 EXPECT_NE(kIcePwd0, candidates_[1].password()); | |
744 EXPECT_NE(candidates_[0].password(), candidates_[1].password()); | |
745 EXPECT_TRUE(candidate_allocation_done_); | |
746 } | |
747 | |
748 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | |
749 // is allocated for udp and stun. Also verify there is only one candidate | |
750 // (local) if stun candidate is same as local candidate, which will be the case | |
751 // in a public network like the below test. | |
752 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNat) { | |
753 AddInterface(kClientAddr); | |
754 allocator_->set_flags(allocator().flags() | | |
755 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
756 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
757 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | |
758 session_->StartGettingPorts(); | |
759 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); | 723 ASSERT_EQ_WAIT(6U, candidates_.size(), kDefaultAllocationTimeout); |
760 EXPECT_EQ(3U, ports_.size()); | 724 EXPECT_EQ(3U, ports_.size()); |
761 EXPECT_PRED5(CheckCandidate, candidates_[0], | 725 EXPECT_PRED5(CheckCandidate, candidates_[0], |
762 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 726 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
763 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 727 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
764 } | 728 } |
765 | 729 |
766 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | 730 // Test that only one port is allocated for udp and stun. In this test |
767 // is allocated for udp and stun. In this test we should expect both stun and | 731 // we should expect both stun and local candidates as client behind a |
768 // local candidates as client behind a nat. | 732 // nat. |
769 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { | 733 TEST_F(PortAllocatorTest, TestSharedSocketWithNat) { |
770 AddInterface(kClientAddr); | 734 AddInterface(kClientAddr); |
771 ResetWithNatServer(kStunAddr); | 735 ResetWithNatServer(kStunAddr); |
772 | 736 |
773 allocator_->set_flags(allocator().flags() | | |
774 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
775 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
776 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 737 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
777 session_->StartGettingPorts(); | 738 session_->StartGettingPorts(); |
778 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 739 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
779 ASSERT_EQ(2U, ports_.size()); | 740 ASSERT_EQ(2U, ports_.size()); |
780 EXPECT_PRED5(CheckCandidate, candidates_[0], | 741 EXPECT_PRED5(CheckCandidate, candidates_[0], |
781 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 742 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
782 EXPECT_PRED5(CheckCandidate, candidates_[1], | 743 EXPECT_PRED5(CheckCandidate, candidates_[1], |
783 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 744 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
784 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | 745 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
785 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 746 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
786 EXPECT_EQ(3U, candidates_.size()); | 747 EXPECT_EQ(3U, candidates_.size()); |
787 } | 748 } |
788 | 749 |
789 // Test TURN port in shared socket mode with UDP and TCP TURN server addresses. | 750 // Test TURN port with UDP and TCP TURN server addresses. |
790 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { | 751 TEST_F(PortAllocatorTest, TestSharedSocketWithoutNatUsingTurn) { |
791 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); | 752 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
792 AddInterface(kClientAddr); | 753 AddInterface(kClientAddr); |
793 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); | 754 allocator_.reset(new cricket::BasicPortAllocator(&network_manager_)); |
794 | 755 |
795 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); | 756 AddTurnServers(kTurnUdpIntAddr, kTurnTcpIntAddr); |
796 | 757 |
797 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 758 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
798 allocator_->set_flags(allocator().flags() | | 759 allocator_->set_flags(allocator().flags() | |
799 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
800 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
801 cricket::PORTALLOCATOR_DISABLE_TCP); | 760 cricket::PORTALLOCATOR_DISABLE_TCP); |
802 | 761 |
803 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 762 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
804 session_->StartGettingPorts(); | 763 session_->StartGettingPorts(); |
805 | 764 |
806 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 765 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
807 ASSERT_EQ(3U, ports_.size()); | 766 ASSERT_EQ(3U, ports_.size()); |
808 EXPECT_PRED5(CheckCandidate, candidates_[0], | 767 EXPECT_PRED5(CheckCandidate, candidates_[0], |
809 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 768 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
810 EXPECT_PRED5(CheckCandidate, candidates_[1], | 769 EXPECT_PRED5(CheckCandidate, candidates_[1], |
(...skipping 16 matching lines...) Expand all Loading... |
827 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); | 786 cricket::RelayServerConfig relay_server(cricket::RELAY_TURN); |
828 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); | 787 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); |
829 relay_server.credentials = credentials; | 788 relay_server.credentials = credentials; |
830 relay_server.ports.push_back(cricket::ProtocolAddress( | 789 relay_server.ports.push_back(cricket::ProtocolAddress( |
831 rtc::SocketAddress("localhost", 3478), | 790 rtc::SocketAddress("localhost", 3478), |
832 cricket::PROTO_UDP, false)); | 791 cricket::PROTO_UDP, false)); |
833 allocator_->AddRelay(relay_server); | 792 allocator_->AddRelay(relay_server); |
834 | 793 |
835 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 794 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
836 allocator_->set_flags(allocator().flags() | | 795 allocator_->set_flags(allocator().flags() | |
837 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
838 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
839 cricket::PORTALLOCATOR_DISABLE_TCP); | 796 cricket::PORTALLOCATOR_DISABLE_TCP); |
840 | 797 |
841 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 798 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
842 session_->StartGettingPorts(); | 799 session_->StartGettingPorts(); |
843 | 800 |
844 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout); | 801 EXPECT_EQ_WAIT(2U, ports_.size(), kDefaultAllocationTimeout); |
845 } | 802 } |
846 | 803 |
847 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled only one port | 804 // Test that only one port is allocated for udp/stun/turn. In this |
848 // is allocated for udp/stun/turn. In this test we should expect all local, | 805 // test we should expect all local, stun and turn candidates. |
849 // stun and turn candidates. | |
850 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { | 806 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurn) { |
851 AddInterface(kClientAddr); | 807 AddInterface(kClientAddr); |
852 ResetWithNatServer(kStunAddr); | 808 ResetWithNatServer(kStunAddr); |
853 | 809 |
854 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 810 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
855 | 811 |
856 allocator_->set_flags(allocator().flags() | | 812 allocator_->set_flags(allocator().flags() | |
857 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
858 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
859 cricket::PORTALLOCATOR_DISABLE_TCP); | 813 cricket::PORTALLOCATOR_DISABLE_TCP); |
860 | 814 |
861 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 815 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
862 session_->StartGettingPorts(); | 816 session_->StartGettingPorts(); |
863 | 817 |
864 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 818 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
865 ASSERT_EQ(2U, ports_.size()); | 819 ASSERT_EQ(2U, ports_.size()); |
866 EXPECT_PRED5(CheckCandidate, candidates_[0], | 820 EXPECT_PRED5(CheckCandidate, candidates_[0], |
867 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 821 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
868 EXPECT_PRED5(CheckCandidate, candidates_[1], | 822 EXPECT_PRED5(CheckCandidate, candidates_[1], |
869 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 823 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
870 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | 824 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
871 EXPECT_PRED5(CheckCandidate, candidates_[2], | 825 EXPECT_PRED5(CheckCandidate, candidates_[2], |
872 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", | 826 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
873 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); | 827 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
874 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 828 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
875 EXPECT_EQ(3U, candidates_.size()); | 829 EXPECT_EQ(3U, candidates_.size()); |
876 // Local port will be created first and then TURN port. | 830 // Local port will be created first and then TURN port. |
877 EXPECT_EQ(2U, ports_[0]->Candidates().size()); | 831 EXPECT_EQ(2U, ports_[0]->Candidates().size()); |
878 EXPECT_EQ(1U, ports_[1]->Candidates().size()); | 832 EXPECT_EQ(1U, ports_[1]->Candidates().size()); |
879 } | 833 } |
880 | 834 |
881 // Test that when PORTALLOCATOR_ENABLE_SHARED_SOCKET is enabled and the TURN | 835 // Test that the TURN server is also used as the STUN server. We |
882 // server is also used as the STUN server, we should get 'local', 'stun', and | 836 // should get 'local', 'stun', and 'relay' candidates. |
883 // 'relay' candidates. | |
884 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { | 837 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAsStun) { |
885 AddInterface(kClientAddr); | 838 AddInterface(kClientAddr); |
886 // Use an empty SocketAddress to add a NAT without STUN server. | 839 // Use an empty SocketAddress to add a NAT without STUN server. |
887 ResetWithNatServer(SocketAddress()); | 840 ResetWithNatServer(SocketAddress()); |
888 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 841 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
889 | 842 |
890 // Must set the step delay to 0 to make sure the relay allocation phase is | 843 // Must set the step delay to 0 to make sure the relay allocation phase is |
891 // started before the STUN candidates are obtained, so that the STUN binding | 844 // started before the STUN candidates are obtained, so that the STUN binding |
892 // response is processed when both StunPort and TurnPort exist to reproduce | 845 // response is processed when both StunPort and TurnPort exist to reproduce |
893 // webrtc issue 3537. | 846 // webrtc issue 3537. |
894 allocator_->set_step_delay(0); | 847 allocator_->set_step_delay(0); |
895 allocator_->set_flags(allocator().flags() | | 848 allocator_->set_flags(allocator().flags() | |
896 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
897 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
898 cricket::PORTALLOCATOR_DISABLE_TCP); | 849 cricket::PORTALLOCATOR_DISABLE_TCP); |
899 | 850 |
900 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 851 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
901 session_->StartGettingPorts(); | 852 session_->StartGettingPorts(); |
902 | 853 |
903 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 854 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
904 EXPECT_PRED5(CheckCandidate, candidates_[0], | 855 EXPECT_PRED5(CheckCandidate, candidates_[0], |
905 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 856 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
906 EXPECT_PRED5(CheckCandidate, candidates_[1], | 857 EXPECT_PRED5(CheckCandidate, candidates_[1], |
907 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 858 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
(...skipping 13 matching lines...) Expand all Loading... |
921 // Test that when only a TCP TURN server is available, we do NOT use it as | 872 // Test that when only a TCP TURN server is available, we do NOT use it as |
922 // a UDP STUN server, as this could leak our IP address. Thus we should only | 873 // a UDP STUN server, as this could leak our IP address. Thus we should only |
923 // expect two ports, a UDPPort and TurnPort. | 874 // expect two ports, a UDPPort and TurnPort. |
924 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { | 875 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnTcpOnly) { |
925 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); | 876 turn_server_.AddInternalSocket(kTurnTcpIntAddr, cricket::PROTO_TCP); |
926 AddInterface(kClientAddr); | 877 AddInterface(kClientAddr); |
927 ResetWithNatServer(rtc::SocketAddress()); | 878 ResetWithNatServer(rtc::SocketAddress()); |
928 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); | 879 AddTurnServers(rtc::SocketAddress(), kTurnTcpIntAddr); |
929 | 880 |
930 allocator_->set_flags(allocator().flags() | | 881 allocator_->set_flags(allocator().flags() | |
931 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
932 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
933 cricket::PORTALLOCATOR_DISABLE_TCP); | 882 cricket::PORTALLOCATOR_DISABLE_TCP); |
934 | 883 |
935 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 884 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
936 session_->StartGettingPorts(); | 885 session_->StartGettingPorts(); |
937 | 886 |
938 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); | 887 ASSERT_EQ_WAIT(2U, candidates_.size(), kDefaultAllocationTimeout); |
939 ASSERT_EQ(2U, ports_.size()); | 888 ASSERT_EQ(2U, ports_.size()); |
940 EXPECT_PRED5(CheckCandidate, candidates_[0], | 889 EXPECT_PRED5(CheckCandidate, candidates_[0], |
941 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 890 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
942 kClientAddr); | 891 kClientAddr); |
943 EXPECT_PRED5(CheckCandidate, candidates_[1], | 892 EXPECT_PRED5(CheckCandidate, candidates_[1], |
944 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", | 893 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
945 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); | 894 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
946 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 895 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
947 EXPECT_EQ(2U, candidates_.size()); | 896 EXPECT_EQ(2U, candidates_.size()); |
948 EXPECT_EQ(1U, ports_[0]->Candidates().size()); | 897 EXPECT_EQ(1U, ports_[0]->Candidates().size()); |
949 EXPECT_EQ(1U, ports_[1]->Candidates().size()); | 898 EXPECT_EQ(1U, ports_[1]->Candidates().size()); |
950 } | 899 } |
951 | 900 |
952 // Test that even when PORTALLOCATOR_ENABLE_SHARED_SOCKET is NOT enabled, the | |
953 // TURN server is used as the STUN server and we get 'local', 'stun', and | |
954 // 'relay' candidates. | |
955 // TODO(deadbeef): Remove this test when support for non-shared socket mode | |
956 // is removed. | |
957 TEST_F(PortAllocatorTest, TestNonSharedSocketWithNatUsingTurnAsStun) { | |
958 AddInterface(kClientAddr); | |
959 // Use an empty SocketAddress to add a NAT without STUN server. | |
960 ResetWithNatServer(SocketAddress()); | |
961 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | |
962 | |
963 allocator_->set_flags(allocator().flags() | | |
964 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
965 cricket::PORTALLOCATOR_DISABLE_TCP); | |
966 | |
967 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | |
968 session_->StartGettingPorts(); | |
969 | |
970 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | |
971 ASSERT_EQ(3U, ports_.size()); | |
972 EXPECT_PRED5(CheckCandidate, candidates_[0], | |
973 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | |
974 kClientAddr); | |
975 EXPECT_PRED5(CheckCandidate, candidates_[1], | |
976 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | |
977 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | |
978 EXPECT_PRED5(CheckCandidate, candidates_[2], | |
979 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", | |
980 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); | |
981 // Not using shared socket, so the STUN request's server reflexive address | |
982 // should be different than the TURN request's server reflexive address. | |
983 EXPECT_NE(candidates_[2].related_address(), candidates_[1].address()); | |
984 | |
985 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | |
986 EXPECT_EQ(3U, candidates_.size()); | |
987 EXPECT_EQ(1U, ports_[0]->Candidates().size()); | |
988 EXPECT_EQ(1U, ports_[1]->Candidates().size()); | |
989 EXPECT_EQ(1U, ports_[2]->Candidates().size()); | |
990 } | |
991 | |
992 // Test that even when both a STUN and TURN server are configured, the TURN | 901 // Test that even when both a STUN and TURN server are configured, the TURN |
993 // server is used as a STUN server and we get a 'stun' candidate. | 902 // server is used as a STUN server and we get a 'stun' candidate. |
994 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { | 903 TEST_F(PortAllocatorTest, TestSharedSocketWithNatUsingTurnAndStun) { |
995 AddInterface(kClientAddr); | 904 AddInterface(kClientAddr); |
996 // Configure with STUN server but destroy it, so we can ensure that it's | 905 // Configure with STUN server but destroy it, so we can ensure that it's |
997 // the TURN server actually being used as a STUN server. | 906 // the TURN server actually being used as a STUN server. |
998 ResetWithNatServer(kStunAddr); | 907 ResetWithNatServer(kStunAddr); |
999 stun_server_.reset(); | 908 stun_server_.reset(); |
1000 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); | 909 AddTurnServers(kTurnUdpIntAddr, rtc::SocketAddress()); |
1001 | 910 |
1002 allocator_->set_flags(allocator().flags() | | 911 allocator_->set_flags(allocator().flags() | |
1003 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
1004 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET | | |
1005 cricket::PORTALLOCATOR_DISABLE_TCP); | 912 cricket::PORTALLOCATOR_DISABLE_TCP); |
1006 | 913 |
1007 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 914 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
1008 session_->StartGettingPorts(); | 915 session_->StartGettingPorts(); |
1009 | 916 |
1010 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); | 917 ASSERT_EQ_WAIT(3U, candidates_.size(), kDefaultAllocationTimeout); |
1011 EXPECT_PRED5(CheckCandidate, candidates_[0], | 918 EXPECT_PRED5(CheckCandidate, candidates_[0], |
1012 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 919 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
1013 kClientAddr); | 920 kClientAddr); |
1014 EXPECT_PRED5(CheckCandidate, candidates_[1], | 921 EXPECT_PRED5(CheckCandidate, candidates_[1], |
1015 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", | 922 cricket::ICE_CANDIDATE_COMPONENT_RTP, "stun", "udp", |
1016 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); | 923 rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)); |
1017 EXPECT_PRED5(CheckCandidate, candidates_[2], | 924 EXPECT_PRED5(CheckCandidate, candidates_[2], |
1018 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", | 925 cricket::ICE_CANDIDATE_COMPONENT_RTP, "relay", "udp", |
1019 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); | 926 rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)); |
1020 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); | 927 EXPECT_EQ(candidates_[2].related_address(), candidates_[1].address()); |
1021 | 928 |
1022 // Don't bother waiting for STUN timeout, since we already verified | 929 // Don't bother waiting for STUN timeout, since we already verified |
1023 // that we got a STUN candidate from the TURN server. | 930 // that we got a STUN candidate from the TURN server. |
1024 } | 931 } |
1025 | 932 |
1026 // This test verifies when PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is enabled | 933 // This test verifies that when we fail to generate a STUN candidate, |
1027 // and fail to generate STUN candidate, local UDP candidate is generated | 934 // we properly generate a local UDP candidate. |
1028 // properly. | |
1029 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { | 935 TEST_F(PortAllocatorTest, TestSharedSocketNoUdpAllowed) { |
1030 allocator().set_flags(allocator().flags() | | 936 allocator().set_flags(allocator().flags() | |
1031 cricket::PORTALLOCATOR_DISABLE_RELAY | | 937 cricket::PORTALLOCATOR_DISABLE_RELAY | |
1032 cricket::PORTALLOCATOR_DISABLE_TCP | | 938 cricket::PORTALLOCATOR_DISABLE_TCP); |
1033 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
1034 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
1035 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); | 939 fss_->AddRule(false, rtc::FP_UDP, rtc::FD_ANY, kClientAddr); |
1036 AddInterface(kClientAddr); | 940 AddInterface(kClientAddr); |
1037 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 941 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
1038 session_->StartGettingPorts(); | 942 session_->StartGettingPorts(); |
1039 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); | 943 ASSERT_EQ_WAIT(1U, ports_.size(), kDefaultAllocationTimeout); |
1040 EXPECT_EQ(1U, candidates_.size()); | 944 EXPECT_EQ(1U, candidates_.size()); |
1041 EXPECT_PRED5(CheckCandidate, candidates_[0], | 945 EXPECT_PRED5(CheckCandidate, candidates_[0], |
1042 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); | 946 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", kClientAddr); |
1043 // STUN timeout is 9sec. We need to wait to get candidate done signal. | 947 // STUN timeout is 9sec. We need to wait to get candidate done signal. |
1044 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); | 948 EXPECT_TRUE_WAIT(candidate_allocation_done_, 10000); |
1045 EXPECT_EQ(1U, candidates_.size()); | 949 EXPECT_EQ(1U, candidates_.size()); |
1046 } | 950 } |
1047 | 951 |
1048 // This test verifies allocator can use IPv6 addresses along with IPv4. | 952 // This test verifies allocator can use IPv6 addresses along with IPv4. |
1049 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { | 953 TEST_F(PortAllocatorTest, TestEnableIPv6Addresses) { |
1050 allocator().set_flags(allocator().flags() | | 954 allocator().set_flags(allocator().flags() | |
1051 cricket::PORTALLOCATOR_DISABLE_RELAY | | 955 cricket::PORTALLOCATOR_DISABLE_RELAY | |
1052 cricket::PORTALLOCATOR_ENABLE_IPV6 | | 956 cricket::PORTALLOCATOR_ENABLE_IPV6); |
1053 cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | | |
1054 cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET); | |
1055 AddInterface(kClientIPv6Addr); | 957 AddInterface(kClientIPv6Addr); |
1056 AddInterface(kClientAddr); | 958 AddInterface(kClientAddr); |
1057 allocator_->set_step_delay(cricket::kMinimumStepDelay); | 959 allocator_->set_step_delay(cricket::kMinimumStepDelay); |
1058 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 960 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
1059 session_->StartGettingPorts(); | 961 session_->StartGettingPorts(); |
1060 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout); | 962 ASSERT_EQ_WAIT(4U, ports_.size(), kDefaultAllocationTimeout); |
1061 EXPECT_EQ(4U, candidates_.size()); | 963 EXPECT_EQ(4U, candidates_.size()); |
1062 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); | 964 EXPECT_TRUE_WAIT(candidate_allocation_done_, kDefaultAllocationTimeout); |
1063 EXPECT_PRED5(CheckCandidate, candidates_[0], | 965 EXPECT_PRED5(CheckCandidate, candidates_[0], |
1064 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", | 966 cricket::ICE_CANDIDATE_COMPONENT_RTP, "local", "udp", |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 alloc.SetStunHosts(stun_servers); | 1004 alloc.SetStunHosts(stun_servers); |
1103 EXPECT_EQ(2U, alloc.relay_hosts().size()); | 1005 EXPECT_EQ(2U, alloc.relay_hosts().size()); |
1104 EXPECT_EQ(2U, alloc.stun_hosts().size()); | 1006 EXPECT_EQ(2U, alloc.stun_hosts().size()); |
1105 } | 1007 } |
1106 | 1008 |
1107 // Test that the HttpPortAllocator uses correct URL to create sessions. | 1009 // Test that the HttpPortAllocator uses correct URL to create sessions. |
1108 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) { | 1010 TEST(HttpPortAllocatorTest, TestSessionRequestUrl) { |
1109 rtc::FakeNetworkManager network_manager; | 1011 rtc::FakeNetworkManager network_manager; |
1110 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent"); | 1012 cricket::HttpPortAllocator alloc(&network_manager, "unit test agent"); |
1111 | 1013 |
1112 // Disable PORTALLOCATOR_ENABLE_SHARED_UFRAG. | |
1113 alloc.set_flags(alloc.flags() & ~cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
1114 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session( | 1014 rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session( |
1115 static_cast<cricket::HttpPortAllocatorSession*>( | 1015 static_cast<cricket::HttpPortAllocatorSession*>( |
1116 alloc.CreateSessionInternal( | 1016 alloc.CreateSessionInternal( |
1117 "test content", 0, kIceUfrag0, kIcePwd0))); | 1017 "test content", 0, kIceUfrag0, kIcePwd0))); |
1118 std::string url = session->GetSessionRequestUrl(); | 1018 std::string url = session->GetSessionRequestUrl(); |
1119 LOG(LS_INFO) << "url: " << url; | 1019 LOG(LS_INFO) << "url: " << url; |
1120 EXPECT_EQ(std::string(cricket::HttpPortAllocator::kCreateSessionURL), url); | |
1121 | |
1122 // Enable PORTALLOCATOR_ENABLE_SHARED_UFRAG. | |
1123 alloc.set_flags(alloc.flags() | cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG); | |
1124 session.reset(static_cast<cricket::HttpPortAllocatorSession*>( | |
1125 alloc.CreateSessionInternal("test content", 0, kIceUfrag0, kIcePwd0))); | |
1126 url = session->GetSessionRequestUrl(); | |
1127 LOG(LS_INFO) << "url: " << url; | |
1128 std::vector<std::string> parts; | 1020 std::vector<std::string> parts; |
1129 rtc::split(url, '?', &parts); | 1021 rtc::split(url, '?', &parts); |
1130 ASSERT_EQ(2U, parts.size()); | 1022 ASSERT_EQ(2U, parts.size()); |
1131 | 1023 |
1132 std::vector<std::string> args_parts; | 1024 std::vector<std::string> args_parts; |
1133 rtc::split(parts[1], '&', &args_parts); | 1025 rtc::split(parts[1], '&', &args_parts); |
1134 | 1026 |
1135 std::map<std::string, std::string> args; | 1027 std::map<std::string, std::string> args; |
1136 for (std::vector<std::string>::iterator it = args_parts.begin(); | 1028 for (std::vector<std::string>::iterator it = args_parts.begin(); |
1137 it != args_parts.end(); ++it) { | 1029 it != args_parts.end(); ++it) { |
(...skipping 14 matching lines...) Expand all Loading... |
1152 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); | 1044 EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP)); |
1153 session_->StartGettingPorts(); | 1045 session_->StartGettingPorts(); |
1154 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); | 1046 ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout); |
1155 EXPECT_EQ(4U, ports_.size()); | 1047 EXPECT_EQ(4U, ports_.size()); |
1156 | 1048 |
1157 auto it = ports_.begin(); | 1049 auto it = ports_.begin(); |
1158 for (; it != ports_.end(); ++it) { | 1050 for (; it != ports_.end(); ++it) { |
1159 (reinterpret_cast<cricket::Port*>(*it))->Destroy(); | 1051 (reinterpret_cast<cricket::Port*>(*it))->Destroy(); |
1160 } | 1052 } |
1161 } | 1053 } |
OLD | NEW |