OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 void OnDataChannelOpenMessage(const std::string& label, | 398 void OnDataChannelOpenMessage(const std::string& label, |
399 const InternalDataChannelInit& config) { | 399 const InternalDataChannelInit& config) { |
400 last_data_channel_label_ = label; | 400 last_data_channel_label_ = label; |
401 last_data_channel_config_ = config; | 401 last_data_channel_config_ = config; |
402 } | 402 } |
403 | 403 |
404 void OnSessionDestroyed() { session_destroyed_ = true; } | 404 void OnSessionDestroyed() { session_destroyed_ = true; } |
405 | 405 |
406 void Init() { Init(nullptr); } | 406 void Init() { Init(nullptr); } |
407 | 407 |
| 408 void InitWithIceTransport( |
| 409 PeerConnectionInterface::IceTransportsType ice_transport_type) { |
| 410 configuration_.type = ice_transport_type; |
| 411 Init(); |
| 412 } |
| 413 |
408 void InitWithBundlePolicy( | 414 void InitWithBundlePolicy( |
409 PeerConnectionInterface::BundlePolicy bundle_policy) { | 415 PeerConnectionInterface::BundlePolicy bundle_policy) { |
410 configuration_.bundle_policy = bundle_policy; | 416 configuration_.bundle_policy = bundle_policy; |
411 Init(); | 417 Init(); |
412 } | 418 } |
413 | 419 |
414 void InitWithRtcpMuxPolicy( | 420 void InitWithRtcpMuxPolicy( |
415 PeerConnectionInterface::RtcpMuxPolicy rtcp_mux_policy) { | 421 PeerConnectionInterface::RtcpMuxPolicy rtcp_mux_policy) { |
416 PeerConnectionInterface::RTCConfiguration configuration; | 422 PeerConnectionInterface::RTCConfiguration configuration; |
417 configuration_.rtcp_mux_policy = rtcp_mux_policy; | 423 configuration_.rtcp_mux_policy = rtcp_mux_policy; |
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1512 rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); | 1518 rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |
1513 Init(); | 1519 Init(); |
1514 SendAudioVideoStream1(); | 1520 SendAudioVideoStream1(); |
1515 InitiateCall(); | 1521 InitiateCall(); |
1516 // Since kClientAddrHost1 is blocked, not expecting stun candidates for it. | 1522 // Since kClientAddrHost1 is blocked, not expecting stun candidates for it. |
1517 EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); | 1523 EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |
1518 EXPECT_EQ(6u, observer_.mline_0_candidates_.size()); | 1524 EXPECT_EQ(6u, observer_.mline_0_candidates_.size()); |
1519 EXPECT_EQ(6u, observer_.mline_1_candidates_.size()); | 1525 EXPECT_EQ(6u, observer_.mline_1_candidates_.size()); |
1520 } | 1526 } |
1521 | 1527 |
| 1528 // Test session delivers no candidates gathered when constraint set to "none". |
| 1529 TEST_F(WebRtcSessionTest, TestIceTransportsNone) { |
| 1530 AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |
| 1531 InitWithIceTransport(PeerConnectionInterface::kNone); |
| 1532 SendAudioVideoStream1(); |
| 1533 InitiateCall(); |
| 1534 EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |
| 1535 EXPECT_EQ(0u, observer_.mline_0_candidates_.size()); |
| 1536 EXPECT_EQ(0u, observer_.mline_1_candidates_.size()); |
| 1537 } |
| 1538 |
| 1539 // Test session delivers only relay candidates gathered when constaint set to |
| 1540 // "relay". |
| 1541 TEST_F(WebRtcSessionTest, TestIceTransportsRelay) { |
| 1542 AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |
| 1543 ConfigureAllocatorWithTurn(); |
| 1544 InitWithIceTransport(PeerConnectionInterface::kRelay); |
| 1545 SendAudioVideoStream1(); |
| 1546 InitiateCall(); |
| 1547 EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |
| 1548 EXPECT_EQ(2u, observer_.mline_0_candidates_.size()); |
| 1549 EXPECT_EQ(2u, observer_.mline_1_candidates_.size()); |
| 1550 for (size_t i = 0; i < observer_.mline_0_candidates_.size(); ++i) { |
| 1551 EXPECT_EQ(cricket::RELAY_PORT_TYPE, |
| 1552 observer_.mline_0_candidates_[i].type()); |
| 1553 } |
| 1554 for (size_t i = 0; i < observer_.mline_1_candidates_.size(); ++i) { |
| 1555 EXPECT_EQ(cricket::RELAY_PORT_TYPE, |
| 1556 observer_.mline_1_candidates_[i].type()); |
| 1557 } |
| 1558 } |
| 1559 |
| 1560 // Test session delivers all candidates gathered when constaint set to "all". |
| 1561 TEST_F(WebRtcSessionTest, TestIceTransportsAll) { |
| 1562 AddInterface(rtc::SocketAddress(kClientAddrHost1, kClientAddrPort)); |
| 1563 InitWithIceTransport(PeerConnectionInterface::kAll); |
| 1564 SendAudioVideoStream1(); |
| 1565 InitiateCall(); |
| 1566 EXPECT_TRUE_WAIT(observer_.oncandidatesready_, kIceCandidatesTimeout); |
| 1567 // Host + STUN. By default allocator is disabled to gather relay candidates. |
| 1568 EXPECT_EQ(4u, observer_.mline_0_candidates_.size()); |
| 1569 EXPECT_EQ(4u, observer_.mline_1_candidates_.size()); |
| 1570 } |
| 1571 |
1522 TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) { | 1572 TEST_F(WebRtcSessionTest, SetSdpFailedOnInvalidSdp) { |
1523 Init(); | 1573 Init(); |
1524 SessionDescriptionInterface* offer = NULL; | 1574 SessionDescriptionInterface* offer = NULL; |
1525 // Since |offer| is NULL, there's no way to tell if it's an offer or answer. | 1575 // Since |offer| is NULL, there's no way to tell if it's an offer or answer. |
1526 std::string unknown_action; | 1576 std::string unknown_action; |
1527 SetLocalDescriptionExpectError(unknown_action, kInvalidSdp, offer); | 1577 SetLocalDescriptionExpectError(unknown_action, kInvalidSdp, offer); |
1528 SetRemoteDescriptionExpectError(unknown_action, kInvalidSdp, offer); | 1578 SetRemoteDescriptionExpectError(unknown_action, kInvalidSdp, offer); |
1529 } | 1579 } |
1530 | 1580 |
1531 // Test creating offers and receive answers and make sure the | 1581 // Test creating offers and receive answers and make sure the |
(...skipping 2822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4354 } | 4404 } |
4355 | 4405 |
4356 // TODO(bemasc): Add a TestIceStatesBundle with BUNDLE enabled. That test | 4406 // TODO(bemasc): Add a TestIceStatesBundle with BUNDLE enabled. That test |
4357 // currently fails because upon disconnection and reconnection OnIceComplete is | 4407 // currently fails because upon disconnection and reconnection OnIceComplete is |
4358 // called more than once without returning to IceGatheringGathering. | 4408 // called more than once without returning to IceGatheringGathering. |
4359 | 4409 |
4360 INSTANTIATE_TEST_CASE_P(WebRtcSessionTests, | 4410 INSTANTIATE_TEST_CASE_P(WebRtcSessionTests, |
4361 WebRtcSessionTest, | 4411 WebRtcSessionTest, |
4362 testing::Values(ALREADY_GENERATED, | 4412 testing::Values(ALREADY_GENERATED, |
4363 DTLS_IDENTITY_STORE)); | 4413 DTLS_IDENTITY_STORE)); |
OLD | NEW |