| 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
|
|
|