Chromium Code Reviews| Index: chrome/common/content_settings_pattern_unittest.cc |
| =================================================================== |
| --- chrome/common/content_settings_pattern_unittest.cc (revision 118087) |
| +++ chrome/common/content_settings_pattern_unittest.cc (working copy) |
| @@ -84,9 +84,13 @@ |
| pattern = ContentSettingsPattern::FromURL(GURL("http://[::1]")); |
| EXPECT_TRUE(pattern.IsValid()); |
| + GURL url("file:///foo/bar.html"); |
| pattern = ContentSettingsPattern::FromURL(GURL("file:///foo/bar.html")); |
| EXPECT_TRUE(pattern.IsValid()); |
| - EXPECT_STREQ("file:///foo/bar.html", pattern.ToString().c_str()); |
| + EXPECT_EQ("file:///foo/bar.html", pattern.ToString()); |
| + |
| + pattern = ContentSettingsPattern::FromURL(GURL("file:///")); |
| + EXPECT_TRUE(pattern.IsValid()); |
|
markusheintz_
2012/01/18 19:45:24
I should have been more precise here. Sorry.
Thes
Francois
2012/01/19 08:43:07
Done. Also added
EXPECT_EQ("file:///*", pattern.
|
| } |
| TEST(ContentSettingsPatternTest, FromURLNoWildcard) { |
| @@ -172,37 +176,49 @@ |
| } |
| TEST(ContentSettingsPatternTest, FromString_FilePatterns) { |
| - 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://localhost/foo/bar/test.html").IsValid()); |
| + EXPECT_FALSE(Pattern("file://*").IsValid()); |
| EXPECT_FALSE(Pattern("file://*/").IsValid()); |
| + EXPECT_FALSE(Pattern("file://*/*").IsValid()); |
| + EXPECT_FALSE(Pattern("file://*/foo/bar/test.html").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()); |
| + // This is the only valid file path wildcard format. |
| + EXPECT_TRUE(Pattern("file:///*").IsValid()); |
| + EXPECT_EQ("file:///*", Pattern("file:///*").ToString()); |
| + |
| + // Wildcards are not allowed anywhere in the file path. |
| + EXPECT_FALSE(Pattern("file:///f*o/bar/file.html").IsValid()); |
| + EXPECT_FALSE(Pattern("file:///*/bar/file.html").IsValid()); |
| + EXPECT_FALSE(Pattern("file:///foo/*").IsValid()); |
| EXPECT_FALSE(Pattern("file:///foo/bar/*").IsValid()); |
| + EXPECT_FALSE(Pattern("file:///foo/*/file.html").IsValid()); |
| + EXPECT_FALSE(Pattern("file:///foo/bar/*.html").IsValid()); |
| + EXPECT_FALSE(Pattern("file:///foo/bar/file.*").IsValid()); |
| EXPECT_TRUE(Pattern("file:///tmp/test.html").IsValid()); |
| - EXPECT_STREQ("file:///tmp/file.html", |
| - Pattern("file:///tmp/file.html").ToString().c_str()); |
| + EXPECT_EQ("file:///tmp/file.html", |
| + Pattern("file:///tmp/file.html").ToString()); |
| EXPECT_TRUE(Pattern("file:///tmp/test.html").Matches( |
| GURL("file:///tmp/test.html"))); |
| EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches( |
| GURL("file:///tmp/other.html"))); |
| EXPECT_FALSE(Pattern("file:///tmp/test.html").Matches( |
| GURL("http://example.org/"))); |
| + |
| + EXPECT_TRUE(Pattern("file:///*").Matches(GURL("file:///tmp/test.html"))); |
| + EXPECT_TRUE(Pattern("file:///*").Matches( |
| + GURL("file://localhost/tmp/test.html"))); |
| } |
| TEST(ContentSettingsPatternTest, FromString_ExtensionPatterns) { |
| EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") |
| .IsValid()); |
| - EXPECT_STREQ("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/", |
| + EXPECT_EQ("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/", |
| Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") |
| - .ToString().c_str()); |
| + .ToString()); |
| EXPECT_TRUE(Pattern("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/") |
| .Matches(GURL("chrome-extension://peoadpeiejnhkmpaakpnompolbglelel/"))); |
| } |