Index: chrome/common/content_settings_pattern_unittest.cc |
diff --git a/chrome/common/content_settings_pattern_unittest.cc b/chrome/common/content_settings_pattern_unittest.cc |
index 8bad3eab8a8d671a976d53f334ff1d20c6e34666..254df1766a9f8ead65de116598256bf779a0f483 100644 |
--- a/chrome/common/content_settings_pattern_unittest.cc |
+++ b/chrome/common/content_settings_pattern_unittest.cc |
@@ -172,13 +172,19 @@ TEST(ContentSettingsPatternTest, FromString_WithNoWildcards) { |
} |
TEST(ContentSettingsPatternTest, FromString_FilePatterns) { |
- EXPECT_TRUE(Pattern("file:///").IsValid()); |
- EXPECT_STREQ("file:///", |
- Pattern("file:///").ToString().c_str()); |
- EXPECT_TRUE(Pattern("file:///").Matches( |
- GURL("file:///"))); |
- EXPECT_FALSE(Pattern("file:///").Matches( |
- GURL("file:///tmp/test.html"))); |
+ EXPECT_FALSE(Pattern("file:///").IsValid()); |
+ |
+ // Non-empty domains aren't allowed in file patterns. |
+ EXPECT_FALSE(Pattern("file://foo/").IsValid()); |
+ |
+ // Domain wildcards aren't allowed in file patterns. |
+ EXPECT_FALSE(Pattern("file://*/").IsValid()); |
+ EXPECT_FALSE(Pattern("file://[*.]/").IsValid()); |
+ |
+ // These specify a path that contains '*', which isn't allowed to avoid |
+ // user confusion. |
+ EXPECT_FALSE(Pattern("file:///*").IsValid()); |
+ EXPECT_FALSE(Pattern("file:///foo/bar/*").IsValid()); |
EXPECT_TRUE(Pattern("file:///tmp/test.html").IsValid()); |
EXPECT_STREQ("file:///tmp/file.html", |
@@ -208,6 +214,10 @@ TEST(ContentSettingsPatternTest, FromString_WithIPAdresses) { |
EXPECT_TRUE(Pattern("https://192.168.0.1:8080").IsValid()); |
EXPECT_STREQ("https://192.168.0.1:8080", |
Pattern("https://192.168.0.1:8080").ToString().c_str()); |
+ |
+ // Subdomain wildcards should be only valid for hosts, not for IP addresses. |
+ EXPECT_FALSE(Pattern("[*.]127.0.0.1").IsValid()); |
+ |
// IPv6 |
EXPECT_TRUE(Pattern("[::1]").IsValid()); |
EXPECT_STREQ("[::1]", Pattern("[::1]").ToString().c_str()); |
@@ -302,9 +312,11 @@ TEST(ContentSettingsPatternTest, FromString_WithWildcards) { |
GURL("http://www.example.com/"))); |
// Patterns with host wildcard |
- // TODO(markusheintz): Should these patterns be allowed? |
- // EXPECT_TRUE(Pattern("http://*").IsValid()); |
- // EXPECT_TRUE(Pattern("http://*:8080").IsValid()); |
+ EXPECT_TRUE(Pattern("[*.]").IsValid()); |
+ EXPECT_TRUE(Pattern("http://*").IsValid()); |
+ EXPECT_TRUE(Pattern("http://[*.]").IsValid()); |
+ EXPECT_EQ(std::string("http://*"), Pattern("http://[*.]").ToString()); |
+ EXPECT_TRUE(Pattern("http://*:8080").IsValid()); |
EXPECT_TRUE(Pattern("*://*").IsValid()); |
EXPECT_STREQ("*", Pattern("*://*").ToString().c_str()); |
} |