Index: webrtc/base/network_unittest.cc |
diff --git a/webrtc/base/network_unittest.cc b/webrtc/base/network_unittest.cc |
index 7dd400b99613dd815e46c3fce589cf8cabbd54d6..6daf756e4703af43d198d27da24b285e4d4cd417 100644 |
--- a/webrtc/base/network_unittest.cc |
+++ b/webrtc/base/network_unittest.cc |
@@ -29,16 +29,29 @@ namespace { |
class FakeNetworkMonitor : public NetworkMonitorBase { |
public: |
- void Start() override {} |
- void Stop() override {} |
+ void Start() override { |
+ NetworkMonitorBase::Start(); |
+ started_ = true; |
+ } |
+ void Stop() override { started_ = false; } |
+ int BindSocketToNetwork(int socket_fd, const IPAddress& address) override { |
+ return OK; |
+ } |
+ bool started_ = false; |
}; |
class FakeNetworkMonitorFactory : public NetworkMonitorFactory { |
public: |
FakeNetworkMonitorFactory() {} |
- NetworkMonitorInterface* CreateNetworkMonitor() { |
- return new FakeNetworkMonitor(); |
+ NetworkMonitorInterface* GetOrCreateNetworkMonitor() override { |
+ if (!network_monitor_) { |
+ network_monitor_.reset(new FakeNetworkMonitor()); |
+ } |
+ return network_monitor_.get(); |
} |
+ |
+ private: |
+ scoped_ptr<FakeNetworkMonitor> network_monitor_; |
}; |
} // namespace |
@@ -72,9 +85,8 @@ class NetworkTest : public testing::Test, public sigslot::has_slots<> { |
return list; |
} |
- NetworkMonitorInterface* GetNetworkMonitor( |
- BasicNetworkManager& network_manager) { |
- return network_manager.network_monitor_.get(); |
+ FakeNetworkMonitor* GetNetworkMonitor(BasicNetworkManager& network_manager) { |
+ return static_cast<FakeNetworkMonitor*>(network_manager.network_monitor_); |
} |
void ClearNetworks(BasicNetworkManager& network_manager) { |
for (const auto& kv : network_manager.networks_map_) { |
@@ -921,7 +933,8 @@ TEST_F(NetworkTest, TestNetworkMonitoring) { |
FakeNetworkMonitorFactory* factory = new FakeNetworkMonitorFactory(); |
NetworkMonitorFactory::SetFactory(factory); |
manager.StartUpdating(); |
- NetworkMonitorInterface* network_monitor = GetNetworkMonitor(manager); |
+ FakeNetworkMonitor* network_monitor = GetNetworkMonitor(manager); |
+ EXPECT_TRUE(network_monitor && network_monitor->started_); |
EXPECT_TRUE_WAIT(callback_called_, 1000); |
callback_called_ = false; |
@@ -932,9 +945,9 @@ TEST_F(NetworkTest, TestNetworkMonitoring) { |
network_monitor->OnNetworksChanged(); |
EXPECT_TRUE_WAIT(callback_called_, 1000); |
- // Network manager is stopped; the network monitor is removed. |
+ // Network manager is stopped. |
manager.StopUpdating(); |
- EXPECT_TRUE(GetNetworkMonitor(manager) == nullptr); |
+ EXPECT_FALSE(GetNetworkMonitor(manager)->started_); |
NetworkMonitorFactory::ReleaseFactory(factory); |
} |