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

Side by Side Diff: webrtc/base/network_unittest.cc

Issue 1556743002: Bind a socket to a network if the network handle is set. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Merge with head Created 4 years, 11 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
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698