Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(625)

Unified Diff: net/base/ip_address_unittest.cc

Issue 1810183002: Migrate net/proxy/* to net::IPAddress. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments eroman Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/base/ip_address_unittest.cc
diff --git a/net/base/ip_address_unittest.cc b/net/base/ip_address_unittest.cc
index 2863c6b31a02f16b683e65d7e2618b84fcafc382..1a004203dd1e115646e77c54c86140ac462b1c2e 100644
--- a/net/base/ip_address_unittest.cc
+++ b/net/base/ip_address_unittest.cc
@@ -238,6 +238,50 @@ TEST(IPAddressTest, ConvertIPv4MappedIPv6ToIPv4) {
EXPECT_EQ(expected, result);
}
+// Test parsing invalid CIDR notation literals.
+TEST(IPAddressTest, ParseCIDRBlock_Invalid) {
+ const char* const bad_literals[] = {"foobar",
+ "",
+ "192.168.0.1",
+ "::1",
+ "/",
+ "/1",
+ "1",
+ "192.168.1.1/-1",
eroman 2016/03/18 23:52:16 I wonder if we currently allow : 192.168.1.1/+1
martijnc 2016/03/19 12:06:07 ParseCIDRBlock (incorrectly) parses this as valid.
+ "192.168.1.1/33",
+ "::1/-3",
+ "a::3/129",
+ "::1/x",
+ "192.168.0.1//11"};
+
+ for (size_t i = 0; i < arraysize(bad_literals); ++i) {
eroman 2016/03/18 23:52:17 If you like can change this to: for (const auto&
martijnc 2016/03/19 12:06:07 Done.
+ IPAddress ip_address;
+ size_t prefix_length_in_bits;
+
+ EXPECT_FALSE(
+ ParseCIDRBlock(bad_literals[i], &ip_address, &prefix_length_in_bits));
+ }
+}
+
+// Test parsing a valid CIDR notation literal.
+TEST(IPAddressTest, ParseCIDRBlock_Valid) {
+ IPAddress ip_address;
+ size_t prefix_length_in_bits;
+
+ EXPECT_TRUE(
+ ParseCIDRBlock("192.168.0.1/11", &ip_address, &prefix_length_in_bits));
+
+ EXPECT_EQ("192,168,0,1", DumpIPAddress(ip_address));
+ EXPECT_EQ(11u, prefix_length_in_bits);
+
+ EXPECT_TRUE(ParseCIDRBlock("::ffff:192.168.0.1/112", &ip_address,
+ &prefix_length_in_bits));
+
+ EXPECT_EQ("0,0,0,0,0,0,0,0,0,0,255,255,192,168,0,1",
+ DumpIPAddress(ip_address));
+ EXPECT_EQ(112u, prefix_length_in_bits);
+}
+
TEST(IPAddressTest, IPAddressStartsWith) {
IPAddress ipv4_address(192, 168, 10, 5);

Powered by Google App Engine
This is Rietveld 408576698