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 |
(...skipping 11 matching lines...) Expand all Loading... |
22 #if defined(WEBRTC_WIN) | 22 #if defined(WEBRTC_WIN) |
23 #include "webrtc/base/logging.h" // For LOG_GLE | 23 #include "webrtc/base/logging.h" // For LOG_GLE |
24 #endif | 24 #endif |
25 | 25 |
26 namespace rtc { | 26 namespace rtc { |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
30 class FakeNetworkMonitor : public NetworkMonitorBase { | 30 class FakeNetworkMonitor : public NetworkMonitorBase { |
31 public: | 31 public: |
32 void Start() override {} | 32 void Start() override { started_ = true; } |
33 void Stop() override {} | 33 void Stop() override { started_ = false; } |
| 34 int BindSocketToNetwork(int socket_fd, const IPAddress& address) override { |
| 35 return OK; |
| 36 } |
| 37 bool started_ = false; |
34 }; | 38 }; |
35 | 39 |
36 class FakeNetworkMonitorFactory : public NetworkMonitorFactory { | 40 class FakeNetworkMonitorFactory : public NetworkMonitorFactory { |
37 public: | 41 public: |
38 FakeNetworkMonitorFactory() {} | 42 FakeNetworkMonitorFactory() {} |
39 NetworkMonitorInterface* CreateNetworkMonitor() { | 43 NetworkMonitorInterface* CreateNetworkMonitor() override { |
40 return new FakeNetworkMonitor(); | 44 return new FakeNetworkMonitor(); |
41 } | 45 } |
42 }; | 46 }; |
43 | 47 |
44 } // namespace | 48 } // namespace |
45 | 49 |
46 class NetworkTest : public testing::Test, public sigslot::has_slots<> { | 50 class NetworkTest : public testing::Test, public sigslot::has_slots<> { |
47 public: | 51 public: |
48 NetworkTest() : callback_called_(false) {} | 52 NetworkTest() : callback_called_(false) {} |
49 | 53 |
(...skipping 15 matching lines...) Expand all Loading... |
65 return network_manager.IsIgnoredNetwork(network); | 69 return network_manager.IsIgnoredNetwork(network); |
66 } | 70 } |
67 | 71 |
68 NetworkManager::NetworkList GetNetworks( | 72 NetworkManager::NetworkList GetNetworks( |
69 const BasicNetworkManager& network_manager, bool include_ignored) { | 73 const BasicNetworkManager& network_manager, bool include_ignored) { |
70 NetworkManager::NetworkList list; | 74 NetworkManager::NetworkList list; |
71 network_manager.CreateNetworks(include_ignored, &list); | 75 network_manager.CreateNetworks(include_ignored, &list); |
72 return list; | 76 return list; |
73 } | 77 } |
74 | 78 |
75 NetworkMonitorInterface* GetNetworkMonitor( | 79 FakeNetworkMonitor* GetNetworkMonitor(BasicNetworkManager& network_manager) { |
76 BasicNetworkManager& network_manager) { | 80 return static_cast<FakeNetworkMonitor*>( |
77 return network_manager.network_monitor_.get(); | 81 network_manager.network_monitor_.get()); |
78 } | 82 } |
79 void ClearNetworks(BasicNetworkManager& network_manager) { | 83 void ClearNetworks(BasicNetworkManager& network_manager) { |
80 for (const auto& kv : network_manager.networks_map_) { | 84 for (const auto& kv : network_manager.networks_map_) { |
81 delete kv.second; | 85 delete kv.second; |
82 } | 86 } |
83 network_manager.networks_.clear(); | 87 network_manager.networks_.clear(); |
84 network_manager.networks_map_.clear(); | 88 network_manager.networks_map_.clear(); |
85 } | 89 } |
86 | 90 |
87 #if defined(WEBRTC_POSIX) | 91 #if defined(WEBRTC_POSIX) |
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 EXPECT_EQ(ipv6_network.GetBestIP(), static_cast<IPAddress>(ip)); | 918 EXPECT_EQ(ipv6_network.GetBestIP(), static_cast<IPAddress>(ip)); |
915 } | 919 } |
916 | 920 |
917 TEST_F(NetworkTest, TestNetworkMonitoring) { | 921 TEST_F(NetworkTest, TestNetworkMonitoring) { |
918 BasicNetworkManager manager; | 922 BasicNetworkManager manager; |
919 manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this), | 923 manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this), |
920 &NetworkTest::OnNetworksChanged); | 924 &NetworkTest::OnNetworksChanged); |
921 FakeNetworkMonitorFactory* factory = new FakeNetworkMonitorFactory(); | 925 FakeNetworkMonitorFactory* factory = new FakeNetworkMonitorFactory(); |
922 NetworkMonitorFactory::SetFactory(factory); | 926 NetworkMonitorFactory::SetFactory(factory); |
923 manager.StartUpdating(); | 927 manager.StartUpdating(); |
924 NetworkMonitorInterface* network_monitor = GetNetworkMonitor(manager); | 928 FakeNetworkMonitor* network_monitor = GetNetworkMonitor(manager); |
| 929 EXPECT_TRUE(network_monitor && network_monitor->started_); |
925 EXPECT_TRUE_WAIT(callback_called_, 1000); | 930 EXPECT_TRUE_WAIT(callback_called_, 1000); |
926 callback_called_ = false; | 931 callback_called_ = false; |
927 | 932 |
928 // Clear the networks so that there will be network changes below. | 933 // Clear the networks so that there will be network changes below. |
929 ClearNetworks(manager); | 934 ClearNetworks(manager); |
930 // Network manager is started, so the callback is called when the network | 935 // Network manager is started, so the callback is called when the network |
931 // monitor fires the network-change event. | 936 // monitor fires the network-change event. |
932 network_monitor->OnNetworksChanged(); | 937 network_monitor->OnNetworksChanged(); |
933 EXPECT_TRUE_WAIT(callback_called_, 1000); | 938 EXPECT_TRUE_WAIT(callback_called_, 1000); |
934 | 939 |
935 // Network manager is stopped; the network monitor is removed. | 940 // Network manager is stopped. |
936 manager.StopUpdating(); | 941 manager.StopUpdating(); |
937 EXPECT_TRUE(GetNetworkMonitor(manager) == nullptr); | 942 EXPECT_FALSE(GetNetworkMonitor(manager)->started_); |
938 | 943 |
939 NetworkMonitorFactory::ReleaseFactory(factory); | 944 NetworkMonitorFactory::ReleaseFactory(factory); |
940 } | 945 } |
941 | 946 |
942 TEST_F(NetworkTest, DefaultLocalAddress) { | 947 TEST_F(NetworkTest, DefaultLocalAddress) { |
943 TestBasicNetworkManager manager; | 948 TestBasicNetworkManager manager; |
944 manager.StartUpdating(); | 949 manager.StartUpdating(); |
945 IPAddress ip; | 950 IPAddress ip; |
946 | 951 |
947 // GetDefaultLocalAddress should return false when not set. | 952 // GetDefaultLocalAddress should return false when not set. |
(...skipping 16 matching lines...) Expand all Loading... |
964 manager.set_default_local_addresses(GetLoopbackIP(AF_INET), | 969 manager.set_default_local_addresses(GetLoopbackIP(AF_INET), |
965 GetLoopbackIP(AF_INET6)); | 970 GetLoopbackIP(AF_INET6)); |
966 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET, &ip)); | 971 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET, &ip)); |
967 EXPECT_EQ(ip, GetLoopbackIP(AF_INET)); | 972 EXPECT_EQ(ip, GetLoopbackIP(AF_INET)); |
968 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET6, &ip)); | 973 EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET6, &ip)); |
969 EXPECT_EQ(ip, GetLoopbackIP(AF_INET6)); | 974 EXPECT_EQ(ip, GetLoopbackIP(AF_INET6)); |
970 manager.StopUpdating(); | 975 manager.StopUpdating(); |
971 } | 976 } |
972 | 977 |
973 } // namespace rtc | 978 } // namespace rtc |
OLD | NEW |