OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/base/ip_address.h" | 5 #include "net/base/ip_address.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 IPAddress ip_address1(addr1); | 87 IPAddress ip_address1(addr1); |
88 EXPECT_EQ("0.0.0.0", ip_address1.ToString()); | 88 EXPECT_EQ("0.0.0.0", ip_address1.ToString()); |
89 | 89 |
90 uint8_t addr2[4] = {192, 168, 0, 1}; | 90 uint8_t addr2[4] = {192, 168, 0, 1}; |
91 IPAddress ip_address2(addr2); | 91 IPAddress ip_address2(addr2); |
92 EXPECT_EQ("192.168.0.1", ip_address2.ToString()); | 92 EXPECT_EQ("192.168.0.1", ip_address2.ToString()); |
93 | 93 |
94 uint8_t addr3[16] = {0xFE, 0xDC, 0xBA, 0x98}; | 94 uint8_t addr3[16] = {0xFE, 0xDC, 0xBA, 0x98}; |
95 IPAddress ip_address3(addr3); | 95 IPAddress ip_address3(addr3); |
96 EXPECT_EQ("fedc:ba98::", ip_address3.ToString()); | 96 EXPECT_EQ("fedc:ba98::", ip_address3.ToString()); |
97 | |
98 // ToString() shouldn't crash on invalid addresses. | |
99 uint8_t addr4[2]; | |
100 IPAddress ip_address4(addr4); | |
101 EXPECT_EQ("", ip_address4.ToString()); | |
102 | |
103 IPAddress ip_address5; | |
104 EXPECT_EQ("", ip_address5.ToString()); | |
105 } | 97 } |
106 | 98 |
107 // Test that invalid IP literals fail to parse. | 99 // Test that invalid IP literals fail to parse. |
108 TEST(IPAddressTest, AssignFromIPLiteral_FailParse) { | 100 TEST(IPAddressTest, AssignFromIPLiteral_FailParse) { |
109 IPAddress address; | 101 IPAddress address; |
110 | 102 |
111 EXPECT_FALSE(address.AssignFromIPLiteral("bad value")); | 103 EXPECT_FALSE(address.AssignFromIPLiteral("bad value")); |
112 EXPECT_FALSE(address.AssignFromIPLiteral("bad:value")); | 104 EXPECT_FALSE(address.AssignFromIPLiteral("bad:value")); |
113 EXPECT_FALSE(address.AssignFromIPLiteral(std::string())); | 105 EXPECT_FALSE(address.AssignFromIPLiteral(std::string())); |
114 EXPECT_FALSE(address.AssignFromIPLiteral("192.168.0.1:30")); | 106 EXPECT_FALSE(address.AssignFromIPLiteral("192.168.0.1:30")); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 EXPECT_TRUE(address1.AssignFromIPLiteral("0.0.0.0")); | 171 EXPECT_TRUE(address1.AssignFromIPLiteral("0.0.0.0")); |
180 EXPECT_EQ("0.0.0.0:3", IPAddressToStringWithPort(address1, 3)); | 172 EXPECT_EQ("0.0.0.0:3", IPAddressToStringWithPort(address1, 3)); |
181 | 173 |
182 IPAddress address2; | 174 IPAddress address2; |
183 EXPECT_TRUE(address2.AssignFromIPLiteral("192.168.0.1")); | 175 EXPECT_TRUE(address2.AssignFromIPLiteral("192.168.0.1")); |
184 EXPECT_EQ("192.168.0.1:99", IPAddressToStringWithPort(address2, 99)); | 176 EXPECT_EQ("192.168.0.1:99", IPAddressToStringWithPort(address2, 99)); |
185 | 177 |
186 IPAddress address3; | 178 IPAddress address3; |
187 EXPECT_TRUE(address3.AssignFromIPLiteral("fedc:ba98::")); | 179 EXPECT_TRUE(address3.AssignFromIPLiteral("fedc:ba98::")); |
188 EXPECT_EQ("[fedc:ba98::]:8080", IPAddressToStringWithPort(address3, 8080)); | 180 EXPECT_EQ("[fedc:ba98::]:8080", IPAddressToStringWithPort(address3, 8080)); |
189 | |
190 // ToString() shouldn't crash on invalid addresses. | |
191 IPAddress address4; | |
192 EXPECT_EQ("", IPAddressToStringWithPort(address4, 8080)); | |
193 } | 181 } |
194 | 182 |
195 TEST(IPAddressTest, IPAddressToPackedString) { | 183 TEST(IPAddressTest, IPAddressToPackedString) { |
196 IPAddress ipv4_address; | 184 IPAddress ipv4_address; |
197 EXPECT_TRUE(ipv4_address.AssignFromIPLiteral("4.31.198.44")); | 185 EXPECT_TRUE(ipv4_address.AssignFromIPLiteral("4.31.198.44")); |
198 std::string expected_ipv4_address("\x04\x1f\xc6\x2c", 4); | 186 std::string expected_ipv4_address("\x04\x1f\xc6\x2c", 4); |
199 EXPECT_EQ(expected_ipv4_address, IPAddressToPackedString(ipv4_address)); | 187 EXPECT_EQ(expected_ipv4_address, IPAddressToPackedString(ipv4_address)); |
200 | 188 |
201 IPAddress ipv6_address; | 189 IPAddress ipv6_address; |
202 EXPECT_TRUE(ipv6_address.AssignFromIPLiteral("2001:0700:0300:1800::000f")); | 190 EXPECT_TRUE(ipv6_address.AssignFromIPLiteral("2001:0700:0300:1800::000f")); |
(...skipping 21 matching lines...) Expand all Loading... |
224 IPAddress expected; | 212 IPAddress expected; |
225 EXPECT_TRUE(expected.AssignFromIPLiteral("192.168.0.1")); | 213 EXPECT_TRUE(expected.AssignFromIPLiteral("192.168.0.1")); |
226 | 214 |
227 IPAddress result = ConvertIPv4MappedIPv6ToIPv4(ipv4mapped_address); | 215 IPAddress result = ConvertIPv4MappedIPv6ToIPv4(ipv4mapped_address); |
228 EXPECT_EQ(expected, result); | 216 EXPECT_EQ(expected, result); |
229 } | 217 } |
230 | 218 |
231 } // anonymous namespace | 219 } // anonymous namespace |
232 | 220 |
233 } // namespace net | 221 } // namespace net |
OLD | NEW |