mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 15:36:12 -04:00
Change NetworkInfo to use SocketAddress.
PiperOrigin-RevId: 850164819
This commit is contained in:
committed by
Copybara-Service
parent
067b55ea85
commit
ffa760663b
@@ -14,19 +14,33 @@
|
||||
|
||||
#include "internal/platform/implementation/windows/network_info.h"
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "protobuf-matchers/protocol-buffer-matchers.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "internal/platform/logging.h"
|
||||
|
||||
namespace nearby::windows {
|
||||
|
||||
using ::testing::SizeIs;
|
||||
|
||||
class NetworkInfoTest : public ::testing::Test {
|
||||
protected:
|
||||
static void AddIpUnicastAddresses(
|
||||
IP_ADAPTER_UNICAST_ADDRESS* unicast_addresses,
|
||||
NetworkInfo::InterfaceInfo& net_interface) {
|
||||
NetworkInfo::AddIpUnicastAddresses(unicast_addresses, net_interface);
|
||||
}
|
||||
};
|
||||
|
||||
namespace {
|
||||
|
||||
TEST(NetworkInfoTest, Refresh) {
|
||||
TEST_F(NetworkInfoTest, Refresh) {
|
||||
NetworkInfo network_info;
|
||||
EXPECT_TRUE(network_info.Refresh());
|
||||
EXPECT_FALSE(network_info.GetInterfaces().empty());
|
||||
}
|
||||
|
||||
TEST(NetworkInfoTest, RenewIpv4Address) {
|
||||
TEST_F(NetworkInfoTest, RenewIpv4Address) {
|
||||
NetworkInfo network_info;
|
||||
EXPECT_TRUE(network_info.Refresh());
|
||||
for (const auto& net_interface : network_info.GetInterfaces()) {
|
||||
@@ -37,5 +51,46 @@ TEST(NetworkInfoTest, RenewIpv4Address) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(NetworkInfoTest, AddIpUnicastAddressesNoAddresss) {
|
||||
IP_ADAPTER_UNICAST_ADDRESS unicast_addresses;
|
||||
unicast_addresses.Address.lpSockaddr = nullptr;
|
||||
unicast_addresses.Next = nullptr;
|
||||
NetworkInfo::InterfaceInfo net_interface;
|
||||
AddIpUnicastAddresses(&unicast_addresses, net_interface);
|
||||
EXPECT_TRUE(net_interface.ipv4_addresses.empty());
|
||||
EXPECT_TRUE(net_interface.ipv6_addresses.empty());
|
||||
}
|
||||
|
||||
TEST_F(NetworkInfoTest, AddIpUnicastAddresses) {
|
||||
IP_ADAPTER_UNICAST_ADDRESS unicast_addresses1;
|
||||
IP_ADAPTER_UNICAST_ADDRESS unicast_addresses2;
|
||||
unicast_addresses1.Next = &unicast_addresses2;
|
||||
unicast_addresses2.Next = nullptr;
|
||||
sockaddr_in ipv4_address = {
|
||||
.sin_family = AF_INET,
|
||||
.sin_addr = {{{0x01, 0x02, 0x03, 0x04}}},
|
||||
};
|
||||
unicast_addresses1.Address = {
|
||||
.lpSockaddr = reinterpret_cast<sockaddr*>(&ipv4_address),
|
||||
.iSockaddrLength = sizeof(ipv4_address),
|
||||
};;
|
||||
sockaddr_in6 ipv6_address = {
|
||||
.sin6_family = AF_INET6,
|
||||
.sin6_addr = {{{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
|
||||
0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10}}},
|
||||
};
|
||||
unicast_addresses2.Address = {
|
||||
.lpSockaddr = reinterpret_cast<sockaddr*>(&ipv6_address),
|
||||
.iSockaddrLength = sizeof(ipv6_address),
|
||||
};
|
||||
NetworkInfo::InterfaceInfo net_interface;
|
||||
AddIpUnicastAddresses(&unicast_addresses1, net_interface);
|
||||
EXPECT_THAT(net_interface.ipv4_addresses, SizeIs(1));
|
||||
EXPECT_THAT(net_interface.ipv6_addresses, SizeIs(1));
|
||||
EXPECT_EQ(net_interface.ipv4_addresses[0].ToString(), "1.2.3.4");
|
||||
EXPECT_EQ(net_interface.ipv6_addresses[0].ToString(),
|
||||
"102:304:506:708:90a:b0c:d0e:f10");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace nearby::windows
|
||||
|
||||
Reference in New Issue
Block a user