| Index: webrtc/base/network_unittest.cc
|
| diff --git a/webrtc/base/network_unittest.cc b/webrtc/base/network_unittest.cc
|
| index 7dd400b99613dd815e46c3fce589cf8cabbd54d6..645cb58a205eb9a118aa1fdaa91de203cf484f4f 100644
|
| --- a/webrtc/base/network_unittest.cc
|
| +++ b/webrtc/base/network_unittest.cc
|
| @@ -940,22 +940,27 @@ TEST_F(NetworkTest, TestNetworkMonitoring) {
|
| }
|
|
|
| TEST_F(NetworkTest, DefaultLocalAddress) {
|
| + IPAddress ip;
|
| TestBasicNetworkManager manager;
|
| + manager.SignalNetworksChanged.connect(static_cast<NetworkTest*>(this),
|
| + &NetworkTest::OnNetworksChanged);
|
| + FakeNetworkMonitorFactory* factory = new FakeNetworkMonitorFactory();
|
| + NetworkMonitorFactory::SetFactory(factory);
|
| manager.StartUpdating();
|
| - IPAddress ip;
|
| -
|
| - // GetDefaultLocalAddress should return false when not set.
|
| - EXPECT_FALSE(manager.GetDefaultLocalAddress(AF_INET, &ip));
|
| - EXPECT_FALSE(manager.GetDefaultLocalAddress(AF_INET6, &ip));
|
| + EXPECT_TRUE_WAIT(callback_called_, 1000);
|
|
|
| // Make sure we can query default local address when an address for such
|
| // address family exists.
|
| std::vector<Network*> networks;
|
| manager.GetNetworks(&networks);
|
| + EXPECT_TRUE(!networks.empty());
|
| for (auto& network : networks) {
|
| if (network->GetBestIP().family() == AF_INET) {
|
| EXPECT_TRUE(manager.QueryDefaultLocalAddress(AF_INET) != IPAddress());
|
| - } else if (network->GetBestIP().family() == AF_INET6) {
|
| + } else if (network->GetBestIP().family() == AF_INET6 &&
|
| + !IPIsLoopback(network->GetBestIP())) {
|
| + // Existence of an IPv6 loopback address doesn't mean it has IPv6 network
|
| + // enabled.
|
| EXPECT_TRUE(manager.QueryDefaultLocalAddress(AF_INET6) != IPAddress());
|
| }
|
| }
|
|
|