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()); |
97 } | 105 } |
98 | 106 |
99 // Test that invalid IP literals fail to parse. | 107 // Test that invalid IP literals fail to parse. |
100 TEST(IPAddressTest, AssignFromIPLiteral_FailParse) { | 108 TEST(IPAddressTest, AssignFromIPLiteral_FailParse) { |
101 IPAddress address; | 109 IPAddress address; |
102 | 110 |
103 EXPECT_FALSE(address.AssignFromIPLiteral("bad value")); | 111 EXPECT_FALSE(address.AssignFromIPLiteral("bad value")); |
104 EXPECT_FALSE(address.AssignFromIPLiteral("bad:value")); | 112 EXPECT_FALSE(address.AssignFromIPLiteral("bad:value")); |
105 EXPECT_FALSE(address.AssignFromIPLiteral(std::string())); | 113 EXPECT_FALSE(address.AssignFromIPLiteral(std::string())); |
106 EXPECT_FALSE(address.AssignFromIPLiteral("192.168.0.1:30")); | 114 EXPECT_FALSE(address.AssignFromIPLiteral("192.168.0.1:30")); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 EXPECT_TRUE(address1.AssignFromIPLiteral("0.0.0.0")); | 179 EXPECT_TRUE(address1.AssignFromIPLiteral("0.0.0.0")); |
172 EXPECT_EQ("0.0.0.0:3", IPAddressToStringWithPort(address1, 3)); | 180 EXPECT_EQ("0.0.0.0:3", IPAddressToStringWithPort(address1, 3)); |
173 | 181 |
174 IPAddress address2; | 182 IPAddress address2; |
175 EXPECT_TRUE(address2.AssignFromIPLiteral("192.168.0.1")); | 183 EXPECT_TRUE(address2.AssignFromIPLiteral("192.168.0.1")); |
176 EXPECT_EQ("192.168.0.1:99", IPAddressToStringWithPort(address2, 99)); | 184 EXPECT_EQ("192.168.0.1:99", IPAddressToStringWithPort(address2, 99)); |
177 | 185 |
178 IPAddress address3; | 186 IPAddress address3; |
179 EXPECT_TRUE(address3.AssignFromIPLiteral("fedc:ba98::")); | 187 EXPECT_TRUE(address3.AssignFromIPLiteral("fedc:ba98::")); |
180 EXPECT_EQ("[fedc:ba98::]:8080", IPAddressToStringWithPort(address3, 8080)); | 188 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)); |
181 } | 193 } |
182 | 194 |
183 TEST(IPAddressTest, IPAddressToPackedString) { | 195 TEST(IPAddressTest, IPAddressToPackedString) { |
184 IPAddress ipv4_address; | 196 IPAddress ipv4_address; |
185 EXPECT_TRUE(ipv4_address.AssignFromIPLiteral("4.31.198.44")); | 197 EXPECT_TRUE(ipv4_address.AssignFromIPLiteral("4.31.198.44")); |
186 std::string expected_ipv4_address("\x04\x1f\xc6\x2c", 4); | 198 std::string expected_ipv4_address("\x04\x1f\xc6\x2c", 4); |
187 EXPECT_EQ(expected_ipv4_address, IPAddressToPackedString(ipv4_address)); | 199 EXPECT_EQ(expected_ipv4_address, IPAddressToPackedString(ipv4_address)); |
188 | 200 |
189 IPAddress ipv6_address; | 201 IPAddress ipv6_address; |
190 EXPECT_TRUE(ipv6_address.AssignFromIPLiteral("2001:0700:0300:1800::000f")); | 202 EXPECT_TRUE(ipv6_address.AssignFromIPLiteral("2001:0700:0300:1800::000f")); |
(...skipping 21 matching lines...) Expand all Loading... |
212 IPAddress expected; | 224 IPAddress expected; |
213 EXPECT_TRUE(expected.AssignFromIPLiteral("192.168.0.1")); | 225 EXPECT_TRUE(expected.AssignFromIPLiteral("192.168.0.1")); |
214 | 226 |
215 IPAddress result = ConvertIPv4MappedIPv6ToIPv4(ipv4mapped_address); | 227 IPAddress result = ConvertIPv4MappedIPv6ToIPv4(ipv4mapped_address); |
216 EXPECT_EQ(expected, result); | 228 EXPECT_EQ(expected, result); |
217 } | 229 } |
218 | 230 |
219 } // anonymous namespace | 231 } // anonymous namespace |
220 | 232 |
221 } // namespace net | 233 } // namespace net |
OLD | NEW |