Index: webrtc/base/network_unittest.cc |
diff --git a/webrtc/base/network_unittest.cc b/webrtc/base/network_unittest.cc |
index 5324e86e2caa637a8d00ccdd87f52bc8d8de5463..cfba62b30695f00fe44c5bc8149b34433feb70b3 100644 |
--- a/webrtc/base/network_unittest.cc |
+++ b/webrtc/base/network_unittest.cc |
@@ -100,6 +100,7 @@ class NetworkTest : public testing::Test, public sigslot::has_slots<> { |
class TestBasicNetworkManager : public BasicNetworkManager { |
public: |
using BasicNetworkManager::QueryDefaultLocalAddress; |
+ using BasicNetworkManager::set_default_local_addresses; |
}; |
// Test that the Network ctor works properly. |
@@ -848,9 +849,17 @@ TEST_F(NetworkTest, TestNetworkMonitoring) { |
NetworkMonitorFactory::ReleaseFactory(factory); |
} |
-TEST_F(NetworkTest, DefaultPrivateAddress) { |
+TEST_F(NetworkTest, DefaultLocalAddress) { |
TestBasicNetworkManager manager; |
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)); |
+ |
+ // Make sure we can query default local address when an address for such |
+ // address family exists. |
std::vector<Network*> networks; |
manager.GetNetworks(&networks); |
for (auto& network : networks) { |
@@ -860,6 +869,14 @@ TEST_F(NetworkTest, DefaultPrivateAddress) { |
EXPECT_TRUE(manager.QueryDefaultLocalAddress(AF_INET6) != IPAddress()); |
} |
} |
+ |
+ // GetDefaultLocalAddress should return the valid default address after set. |
+ manager.set_default_local_addresses(GetLoopbackIP(AF_INET), |
+ GetLoopbackIP(AF_INET6)); |
+ EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET, &ip)); |
+ EXPECT_EQ(ip, GetLoopbackIP(AF_INET)); |
+ EXPECT_TRUE(manager.GetDefaultLocalAddress(AF_INET6, &ip)); |
+ EXPECT_EQ(ip, GetLoopbackIP(AF_INET6)); |
manager.StopUpdating(); |
} |