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

Unified Diff: webrtc/base/network_unittest.cc

Issue 1391703003: Create network change notifier. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Minor fix on the comment Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/base/network_unittest.cc
diff --git a/webrtc/base/network_unittest.cc b/webrtc/base/network_unittest.cc
index 6d920e0a507a0fa25cea656025e81376fa2459cb..f2966dca19bea8375b2670e47580dd92b85ed667 100644
--- a/webrtc/base/network_unittest.cc
+++ b/webrtc/base/network_unittest.cc
@@ -10,6 +10,7 @@
#include "webrtc/base/network.h"
+#include "webrtc/base/networkchangenotifier.h"
#include <vector>
#if defined(WEBRTC_POSIX)
#include <sys/types.h>
@@ -790,4 +791,32 @@ TEST_F(NetworkTest, TestIPv6Selection) {
EXPECT_EQ(ipv6_network.GetBestIP(), static_cast<IPAddress>(ip));
}
+TEST_F(NetworkTest, TestNetworkChangeNotified) {
+ BasicNetworkManager manager;
+ manager.SignalNetworksChanged.connect(
+ static_cast<NetworkTest*>(this), &NetworkTest::OnNetworksChanged);
+ scoped_ptr<NetworkChangeNotifierFactory> factory(
+ NetworkChangeNotifierFactory::CreateFactory());
+ NetworkChangeNotifier::SetFactory(factory.get());
+ NetworkChangeNotifierDelegate* delegate = factory->CreateDelegate();
+ manager.StartUpdating();
+ Thread::Current()->ProcessMessages(0);
+ EXPECT_TRUE(callback_called_);
+ callback_called_ = false;
+
+ // Network manager is started, so the callback is called when the delegate
+ // fires the network-change event.
+ delegate->OnNetworkChangeNotified();
+ Thread::Current()->ProcessMessages(0);
+ EXPECT_TRUE(callback_called_);
+ callback_called_ = false;
+
+ // Network manager is stopped, so the callback is not called when the delegate
+ // fires the network-change event.
+ manager.StopUpdating();
+ delegate->OnNetworkChangeNotified();
+ Thread::Current()->ProcessMessages(1000);
+ EXPECT_FALSE(callback_called_);
+}
+
} // namespace rtc

Powered by Google App Engine
This is Rietveld 408576698