OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 |
11 #include "webrtc/base/network.h" | 11 #include "webrtc/base/network.h" |
12 | 12 |
| 13 #include "webrtc/base/nethelpers.h" |
13 #include "webrtc/base/networkmonitor.h" | 14 #include "webrtc/base/networkmonitor.h" |
14 #include <vector> | 15 #include <vector> |
15 #if defined(WEBRTC_POSIX) | 16 #if defined(WEBRTC_POSIX) |
16 #include <sys/types.h> | 17 #include <sys/types.h> |
17 #if !defined(WEBRTC_ANDROID) | 18 #if !defined(WEBRTC_ANDROID) |
18 #include <ifaddrs.h> | 19 #include <ifaddrs.h> |
19 #else | 20 #else |
20 #include "webrtc/base/ifaddrs-android.h" | 21 #include "webrtc/base/ifaddrs-android.h" |
21 #endif | 22 #endif |
22 #endif | 23 #endif |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 bool include_ignored, | 90 bool include_ignored, |
90 NetworkManager::NetworkList* networks) { | 91 NetworkManager::NetworkList* networks) { |
91 network_manager.ConvertIfAddrs(interfaces, include_ignored, networks); | 92 network_manager.ConvertIfAddrs(interfaces, include_ignored, networks); |
92 } | 93 } |
93 #endif // defined(WEBRTC_POSIX) | 94 #endif // defined(WEBRTC_POSIX) |
94 | 95 |
95 protected: | 96 protected: |
96 bool callback_called_; | 97 bool callback_called_; |
97 }; | 98 }; |
98 | 99 |
| 100 class TestBasicNetworkManager : public BasicNetworkManager { |
| 101 public: |
| 102 using BasicNetworkManager::QueryDefaultLocalAddress; |
| 103 }; |
| 104 |
99 // Test that the Network ctor works properly. | 105 // Test that the Network ctor works properly. |
100 TEST_F(NetworkTest, TestNetworkConstruct) { | 106 TEST_F(NetworkTest, TestNetworkConstruct) { |
101 Network ipv4_network1("test_eth0", "Test Network Adapter 1", | 107 Network ipv4_network1("test_eth0", "Test Network Adapter 1", |
102 IPAddress(0x12345600U), 24); | 108 IPAddress(0x12345600U), 24); |
103 EXPECT_EQ("test_eth0", ipv4_network1.name()); | 109 EXPECT_EQ("test_eth0", ipv4_network1.name()); |
104 EXPECT_EQ("Test Network Adapter 1", ipv4_network1.description()); | 110 EXPECT_EQ("Test Network Adapter 1", ipv4_network1.description()); |
105 EXPECT_EQ(IPAddress(0x12345600U), ipv4_network1.prefix()); | 111 EXPECT_EQ(IPAddress(0x12345600U), ipv4_network1.prefix()); |
106 EXPECT_EQ(24, ipv4_network1.prefix_length()); | 112 EXPECT_EQ(24, ipv4_network1.prefix_length()); |
107 EXPECT_FALSE(ipv4_network1.ignored()); | 113 EXPECT_FALSE(ipv4_network1.ignored()); |
108 } | 114 } |
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 network_monitor->OnNetworksChanged(); | 841 network_monitor->OnNetworksChanged(); |
836 EXPECT_TRUE_WAIT(callback_called_, 1000); | 842 EXPECT_TRUE_WAIT(callback_called_, 1000); |
837 | 843 |
838 // Network manager is stopped; the network monitor is removed. | 844 // Network manager is stopped; the network monitor is removed. |
839 manager.StopUpdating(); | 845 manager.StopUpdating(); |
840 EXPECT_TRUE(GetNetworkMonitor(manager) == nullptr); | 846 EXPECT_TRUE(GetNetworkMonitor(manager) == nullptr); |
841 | 847 |
842 NetworkMonitorFactory::ReleaseFactory(factory); | 848 NetworkMonitorFactory::ReleaseFactory(factory); |
843 } | 849 } |
844 | 850 |
| 851 TEST_F(NetworkTest, DefaultPrivateAddress) { |
| 852 TestBasicNetworkManager manager; |
| 853 manager.StartUpdating(); |
| 854 std::vector<Network*> networks; |
| 855 manager.GetNetworks(&networks); |
| 856 for (auto& network : networks) { |
| 857 if (network->GetBestIP().family() == AF_INET) { |
| 858 EXPECT_TRUE(manager.QueryDefaultLocalAddress(AF_INET) != IPAddress()); |
| 859 } else if (network->GetBestIP().family() == AF_INET6) { |
| 860 EXPECT_TRUE(manager.QueryDefaultLocalAddress(AF_INET6) != IPAddress()); |
| 861 } |
| 862 } |
| 863 manager.StopUpdating(); |
| 864 } |
| 865 |
845 } // namespace rtc | 866 } // namespace rtc |
OLD | NEW |