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

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

Issue 1982513002: Revert of Relanding: Implement RTCConfiguration.iceCandidatePoolSize. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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/peerconnectioninterface.h ('k') | webrtc/api/test/peerconnectiontestwrapper.cc » ('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 21 matching lines...) Expand all
32 #include "webrtc/api/test/testsdpstrings.h" 32 #include "webrtc/api/test/testsdpstrings.h"
33 #include "webrtc/api/videocapturertracksource.h" 33 #include "webrtc/api/videocapturertracksource.h"
34 #include "webrtc/api/videotrack.h" 34 #include "webrtc/api/videotrack.h"
35 #include "webrtc/base/gunit.h" 35 #include "webrtc/base/gunit.h"
36 #include "webrtc/base/ssladapter.h" 36 #include "webrtc/base/ssladapter.h"
37 #include "webrtc/base/sslstreamadapter.h" 37 #include "webrtc/base/sslstreamadapter.h"
38 #include "webrtc/base/stringutils.h" 38 #include "webrtc/base/stringutils.h"
39 #include "webrtc/base/thread.h" 39 #include "webrtc/base/thread.h"
40 #include "webrtc/media/base/fakevideocapturer.h" 40 #include "webrtc/media/base/fakevideocapturer.h"
41 #include "webrtc/media/sctp/sctpdataengine.h" 41 #include "webrtc/media/sctp/sctpdataengine.h"
42 #include "webrtc/p2p/base/fakeportallocator.h" 42 #include "webrtc/p2p/client/fakeportallocator.h"
43 #include "webrtc/pc/mediasession.h" 43 #include "webrtc/pc/mediasession.h"
44 44
45 static const char kStreamLabel1[] = "local_stream_1"; 45 static const char kStreamLabel1[] = "local_stream_1";
46 static const char kStreamLabel2[] = "local_stream_2"; 46 static const char kStreamLabel2[] = "local_stream_2";
47 static const char kStreamLabel3[] = "local_stream_3"; 47 static const char kStreamLabel3[] = "local_stream_3";
48 static const int kDefaultStunPort = 3478; 48 static const int kDefaultStunPort = 3478;
49 static const char kStunAddressOnly[] = "stun:address"; 49 static const char kStunAddressOnly[] = "stun:address";
50 static const char kStunInvalidPort[] = "stun:address:-1"; 50 static const char kStunInvalidPort[] = "stun:address:-1";
51 static const char kStunAddressPortAndMore1[] = "stun:address:port:more"; 51 static const char kStunAddressPortAndMore1[] = "stun:address:port:more";
52 static const char kStunAddressPortAndMore2[] = "stun:address:port more"; 52 static const char kStunAddressPortAndMore2[] = "stun:address:port more";
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 } 525 }
526 526
527 virtual void SetUp() { 527 virtual void SetUp() {
528 pc_factory_ = webrtc::CreatePeerConnectionFactory( 528 pc_factory_ = webrtc::CreatePeerConnectionFactory(
529 rtc::Thread::Current(), rtc::Thread::Current(), NULL, NULL, 529 rtc::Thread::Current(), rtc::Thread::Current(), NULL, NULL,
530 NULL); 530 NULL);
531 ASSERT_TRUE(pc_factory_.get() != NULL); 531 ASSERT_TRUE(pc_factory_.get() != NULL);
532 } 532 }
533 533
534 void CreatePeerConnection() { 534 void CreatePeerConnection() {
535 CreatePeerConnection(PeerConnectionInterface::RTCConfiguration(), nullptr); 535 CreatePeerConnection("", "", NULL);
536 } 536 }
537 537
538 void CreatePeerConnection(webrtc::MediaConstraintsInterface* constraints) { 538 void CreatePeerConnection(webrtc::MediaConstraintsInterface* constraints) {
539 CreatePeerConnection(PeerConnectionInterface::RTCConfiguration(), 539 CreatePeerConnection("", "", constraints);
540 constraints);
541 } 540 }
542 541
543 void CreatePeerConnectionWithIceTransportsType( 542 void CreatePeerConnection(const std::string& uri,
544 PeerConnectionInterface::IceTransportsType type) { 543 const std::string& password,
545 PeerConnectionInterface::RTCConfiguration config; 544 webrtc::MediaConstraintsInterface* constraints) {
546 config.type = type;
547 return CreatePeerConnection(config, nullptr);
548 }
549
550 void CreatePeerConnectionWithIceServer(const std::string& uri,
551 const std::string& password) {
552 PeerConnectionInterface::RTCConfiguration config; 545 PeerConnectionInterface::RTCConfiguration config;
553 PeerConnectionInterface::IceServer server; 546 PeerConnectionInterface::IceServer server;
554 server.uri = uri; 547 if (!uri.empty()) {
555 server.password = password; 548 server.uri = uri;
556 config.servers.push_back(server); 549 server.password = password;
557 CreatePeerConnection(config, nullptr); 550 config.servers.push_back(server);
558 } 551 }
559 552
560 void CreatePeerConnection(PeerConnectionInterface::RTCConfiguration config,
561 webrtc::MediaConstraintsInterface* constraints) {
562 std::unique_ptr<cricket::FakePortAllocator> port_allocator( 553 std::unique_ptr<cricket::FakePortAllocator> port_allocator(
563 new cricket::FakePortAllocator(rtc::Thread::Current(), nullptr)); 554 new cricket::FakePortAllocator(rtc::Thread::Current(), nullptr));
564 port_allocator_ = port_allocator.get(); 555 port_allocator_ = port_allocator.get();
565 556
566 // DTLS does not work in a loopback call, so is disabled for most of the 557 // DTLS does not work in a loopback call, so is disabled for most of the
567 // tests in this file. We only create a FakeIdentityService if the test 558 // tests in this file. We only create a FakeIdentityService if the test
568 // explicitly sets the constraint. 559 // explicitly sets the constraint.
569 FakeConstraints default_constraints; 560 FakeConstraints default_constraints;
570 if (!constraints) { 561 if (!constraints) {
571 constraints = &default_constraints; 562 constraints = &default_constraints;
(...skipping 24 matching lines...) Expand all
596 server.uri = uri; 587 server.uri = uri;
597 config.servers.push_back(server); 588 config.servers.push_back(server);
598 589
599 scoped_refptr<PeerConnectionInterface> pc; 590 scoped_refptr<PeerConnectionInterface> pc;
600 pc = pc_factory_->CreatePeerConnection(config, nullptr, nullptr, nullptr, 591 pc = pc_factory_->CreatePeerConnection(config, nullptr, nullptr, nullptr,
601 &observer_); 592 &observer_);
602 EXPECT_EQ(nullptr, pc); 593 EXPECT_EQ(nullptr, pc);
603 } 594 }
604 595
605 void CreatePeerConnectionWithDifferentConfigurations() { 596 void CreatePeerConnectionWithDifferentConfigurations() {
606 CreatePeerConnectionWithIceServer(kStunAddressOnly, ""); 597 CreatePeerConnection(kStunAddressOnly, "", NULL);
607 EXPECT_EQ(1u, port_allocator_->stun_servers().size()); 598 EXPECT_EQ(1u, port_allocator_->stun_servers().size());
608 EXPECT_EQ(0u, port_allocator_->turn_servers().size()); 599 EXPECT_EQ(0u, port_allocator_->turn_servers().size());
609 EXPECT_EQ("address", port_allocator_->stun_servers().begin()->hostname()); 600 EXPECT_EQ("address", port_allocator_->stun_servers().begin()->hostname());
610 EXPECT_EQ(kDefaultStunPort, 601 EXPECT_EQ(kDefaultStunPort,
611 port_allocator_->stun_servers().begin()->port()); 602 port_allocator_->stun_servers().begin()->port());
612 603
613 CreatePeerConnectionExpectFail(kStunInvalidPort); 604 CreatePeerConnectionExpectFail(kStunInvalidPort);
614 CreatePeerConnectionExpectFail(kStunAddressPortAndMore1); 605 CreatePeerConnectionExpectFail(kStunAddressPortAndMore1);
615 CreatePeerConnectionExpectFail(kStunAddressPortAndMore2); 606 CreatePeerConnectionExpectFail(kStunAddressPortAndMore2);
616 607
617 CreatePeerConnectionWithIceServer(kTurnIceServerUri, kTurnPassword); 608 CreatePeerConnection(kTurnIceServerUri, kTurnPassword, NULL);
618 EXPECT_EQ(0u, port_allocator_->stun_servers().size()); 609 EXPECT_EQ(0u, port_allocator_->stun_servers().size());
619 EXPECT_EQ(1u, port_allocator_->turn_servers().size()); 610 EXPECT_EQ(1u, port_allocator_->turn_servers().size());
620 EXPECT_EQ(kTurnUsername, 611 EXPECT_EQ(kTurnUsername,
621 port_allocator_->turn_servers()[0].credentials.username); 612 port_allocator_->turn_servers()[0].credentials.username);
622 EXPECT_EQ(kTurnPassword, 613 EXPECT_EQ(kTurnPassword,
623 port_allocator_->turn_servers()[0].credentials.password); 614 port_allocator_->turn_servers()[0].credentials.password);
624 EXPECT_EQ(kTurnHostname, 615 EXPECT_EQ(kTurnHostname,
625 port_allocator_->turn_servers()[0].ports[0].address.hostname()); 616 port_allocator_->turn_servers()[0].ports[0].address.hostname());
626 } 617 }
627 618
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 CreateAnswerWithOneAudioStream(); 988 CreateAnswerWithOneAudioStream();
998 EXPECT_NE(GetFirstAudioStreamCname(answer1.get()), 989 EXPECT_NE(GetFirstAudioStreamCname(answer1.get()),
999 GetFirstAudioStreamCname(answer2.get())); 990 GetFirstAudioStreamCname(answer2.get()));
1000 } 991 }
1001 992
1002 TEST_F(PeerConnectionInterfaceTest, 993 TEST_F(PeerConnectionInterfaceTest,
1003 CreatePeerConnectionWithDifferentConfigurations) { 994 CreatePeerConnectionWithDifferentConfigurations) {
1004 CreatePeerConnectionWithDifferentConfigurations(); 995 CreatePeerConnectionWithDifferentConfigurations();
1005 } 996 }
1006 997
1007 TEST_F(PeerConnectionInterfaceTest,
1008 CreatePeerConnectionWithDifferentIceTransportsTypes) {
1009 CreatePeerConnectionWithIceTransportsType(PeerConnectionInterface::kNone);
1010 EXPECT_EQ(cricket::CF_NONE, port_allocator_->candidate_filter());
1011 CreatePeerConnectionWithIceTransportsType(PeerConnectionInterface::kRelay);
1012 EXPECT_EQ(cricket::CF_RELAY, port_allocator_->candidate_filter());
1013 CreatePeerConnectionWithIceTransportsType(PeerConnectionInterface::kNoHost);
1014 EXPECT_EQ(cricket::CF_ALL & ~cricket::CF_HOST,
1015 port_allocator_->candidate_filter());
1016 CreatePeerConnectionWithIceTransportsType(PeerConnectionInterface::kAll);
1017 EXPECT_EQ(cricket::CF_ALL, port_allocator_->candidate_filter());
1018 }
1019
1020 // Test that when a PeerConnection is created with a nonzero candidate pool
1021 // size, the pooled PortAllocatorSession is created with all the attributes
1022 // in the RTCConfiguration.
1023 TEST_F(PeerConnectionInterfaceTest, CreatePeerConnectionWithPooledCandidates) {
1024 PeerConnectionInterface::RTCConfiguration config;
1025 PeerConnectionInterface::IceServer server;
1026 server.uri = kStunAddressOnly;
1027 config.servers.push_back(server);
1028 config.type = PeerConnectionInterface::kRelay;
1029 config.disable_ipv6 = true;
1030 config.tcp_candidate_policy =
1031 PeerConnectionInterface::kTcpCandidatePolicyDisabled;
1032 config.ice_candidate_pool_size = 1;
1033 CreatePeerConnection(config, nullptr);
1034
1035 const cricket::FakePortAllocatorSession* session =
1036 static_cast<const cricket::FakePortAllocatorSession*>(
1037 port_allocator_->GetPooledSession());
1038 ASSERT_NE(nullptr, session);
1039 EXPECT_EQ(1UL, session->stun_servers().size());
1040 EXPECT_EQ(0U, session->flags() & cricket::PORTALLOCATOR_ENABLE_IPV6);
1041 EXPECT_LT(0U, session->flags() & cricket::PORTALLOCATOR_DISABLE_TCP);
1042 EXPECT_EQ(cricket::CF_RELAY, session->candidate_filter());
1043 }
1044
1045 TEST_F(PeerConnectionInterfaceTest, AddStreams) { 998 TEST_F(PeerConnectionInterfaceTest, AddStreams) {
1046 CreatePeerConnection(); 999 CreatePeerConnection();
1047 AddVideoStream(kStreamLabel1); 1000 AddVideoStream(kStreamLabel1);
1048 AddVoiceStream(kStreamLabel2); 1001 AddVoiceStream(kStreamLabel2);
1049 ASSERT_EQ(2u, pc_->local_streams()->count()); 1002 ASSERT_EQ(2u, pc_->local_streams()->count());
1050 1003
1051 // Test we can add multiple local streams to one peerconnection. 1004 // Test we can add multiple local streams to one peerconnection.
1052 scoped_refptr<MediaStreamInterface> stream( 1005 scoped_refptr<MediaStreamInterface> stream(
1053 pc_factory_->CreateLocalMediaStream(kStreamLabel3)); 1006 pc_factory_->CreateLocalMediaStream(kStreamLabel3));
1054 scoped_refptr<AudioTrackInterface> audio_track( 1007 scoped_refptr<AudioTrackInterface> audio_track(
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
1928 PeerConnectionInterface::IceServer server; 1881 PeerConnectionInterface::IceServer server;
1929 server.uri = "stun:test_hostname"; 1882 server.uri = "stun:test_hostname";
1930 config.servers.push_back(server); 1883 config.servers.push_back(server);
1931 EXPECT_TRUE(pc_->SetConfiguration(config)); 1884 EXPECT_TRUE(pc_->SetConfiguration(config));
1932 1885
1933 EXPECT_EQ(1u, port_allocator_->stun_servers().size()); 1886 EXPECT_EQ(1u, port_allocator_->stun_servers().size());
1934 EXPECT_EQ("test_hostname", 1887 EXPECT_EQ("test_hostname",
1935 port_allocator_->stun_servers().begin()->hostname()); 1888 port_allocator_->stun_servers().begin()->hostname());
1936 } 1889 }
1937 1890
1938 TEST_F(PeerConnectionInterfaceTest, SetConfigurationChangesCandidateFilter) {
1939 CreatePeerConnection();
1940 PeerConnectionInterface::RTCConfiguration config;
1941 config.type = PeerConnectionInterface::kRelay;
1942 EXPECT_TRUE(pc_->SetConfiguration(config));
1943 EXPECT_EQ(cricket::CF_RELAY, port_allocator_->candidate_filter());
1944 }
1945
1946 // Test that when SetConfiguration changes both the pool size and other
1947 // attributes, the pooled session is created with the updated attributes.
1948 TEST_F(PeerConnectionInterfaceTest,
1949 SetConfigurationCreatesPooledSessionCorrectly) {
1950 CreatePeerConnection();
1951 PeerConnectionInterface::RTCConfiguration config;
1952 config.ice_candidate_pool_size = 1;
1953 PeerConnectionInterface::IceServer server;
1954 server.uri = kStunAddressOnly;
1955 config.servers.push_back(server);
1956 config.type = PeerConnectionInterface::kRelay;
1957 CreatePeerConnection(config, nullptr);
1958
1959 const cricket::FakePortAllocatorSession* session =
1960 static_cast<const cricket::FakePortAllocatorSession*>(
1961 port_allocator_->GetPooledSession());
1962 ASSERT_NE(nullptr, session);
1963 EXPECT_EQ(1UL, session->stun_servers().size());
1964 EXPECT_EQ(cricket::CF_RELAY, session->candidate_filter());
1965 }
1966
1967 // Test that PeerConnection::Close changes the states to closed and all remote 1891 // Test that PeerConnection::Close changes the states to closed and all remote
1968 // tracks change state to ended. 1892 // tracks change state to ended.
1969 TEST_F(PeerConnectionInterfaceTest, CloseAndTestStreamsAndStates) { 1893 TEST_F(PeerConnectionInterfaceTest, CloseAndTestStreamsAndStates) {
1970 // Initialize a PeerConnection and negotiate local and remote session 1894 // Initialize a PeerConnection and negotiate local and remote session
1971 // description. 1895 // description.
1972 InitiateCall(); 1896 InitiateCall();
1973 ASSERT_EQ(1u, pc_->local_streams()->count()); 1897 ASSERT_EQ(1u, pc_->local_streams()->count());
1974 ASSERT_EQ(1u, pc_->remote_streams()->count()); 1898 ASSERT_EQ(1u, pc_->remote_streams()->count());
1975 1899
1976 pc_->Close(); 1900 pc_->Close();
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
2786 FakeConstraints updated_answer_c; 2710 FakeConstraints updated_answer_c;
2787 answer_c.SetMandatoryReceiveAudio(false); 2711 answer_c.SetMandatoryReceiveAudio(false);
2788 answer_c.SetMandatoryReceiveVideo(false); 2712 answer_c.SetMandatoryReceiveVideo(false);
2789 2713
2790 cricket::MediaSessionOptions updated_answer_options; 2714 cricket::MediaSessionOptions updated_answer_options;
2791 EXPECT_TRUE( 2715 EXPECT_TRUE(
2792 ParseConstraintsForAnswer(&updated_answer_c, &updated_answer_options)); 2716 ParseConstraintsForAnswer(&updated_answer_c, &updated_answer_options));
2793 EXPECT_TRUE(updated_answer_options.has_audio()); 2717 EXPECT_TRUE(updated_answer_options.has_audio());
2794 EXPECT_TRUE(updated_answer_options.has_video()); 2718 EXPECT_TRUE(updated_answer_options.has_video());
2795 } 2719 }
OLDNEW
« no previous file with comments | « webrtc/api/peerconnectioninterface.h ('k') | webrtc/api/test/peerconnectiontestwrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698