| Index: chrome/common/extensions/url_pattern_unittest.cc
|
| diff --git a/chrome/common/extensions/url_pattern_unittest.cc b/chrome/common/extensions/url_pattern_unittest.cc
|
| index f25052fab00db56290476626a42f66d8e015a24b..03558b970eb2c0d48608cd22fb228cd7bbb0c47c 100644
|
| --- a/chrome/common/extensions/url_pattern_unittest.cc
|
| +++ b/chrome/common/extensions/url_pattern_unittest.cc
|
| @@ -8,6 +8,13 @@
|
|
|
| // See url_pattern.h for examples of valid and invalid patterns.
|
|
|
| +static const int kAllSchemes =
|
| + URLPattern::SCHEME_HTTP |
|
| + URLPattern::SCHEME_HTTPS |
|
| + URLPattern::SCHEME_FILE |
|
| + URLPattern::SCHEME_FTP |
|
| + URLPattern::SCHEME_CHROMEUI;
|
| +
|
| TEST(URLPatternTest, ParseInvalid) {
|
| const char* kInvalidPatterns[] = {
|
| "http", // no scheme
|
| @@ -28,7 +35,7 @@ TEST(URLPatternTest, ParseInvalid) {
|
|
|
| // all pages for a given scheme
|
| TEST(URLPatternTest, Match1) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("http://*/*"));
|
| EXPECT_EQ("http", pattern.scheme());
|
| EXPECT_EQ("", pattern.host());
|
| @@ -44,7 +51,7 @@ TEST(URLPatternTest, Match1) {
|
|
|
| // all domains
|
| TEST(URLPatternTest, Match2) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("https://*/foo*"));
|
| EXPECT_EQ("https", pattern.scheme());
|
| EXPECT_EQ("", pattern.host());
|
| @@ -59,7 +66,7 @@ TEST(URLPatternTest, Match2) {
|
|
|
| // subdomains
|
| TEST(URLPatternTest, Match3) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("http://*.google.com/foo*bar"));
|
| EXPECT_EQ("http", pattern.scheme());
|
| EXPECT_EQ("google.com", pattern.host());
|
| @@ -75,7 +82,7 @@ TEST(URLPatternTest, Match3) {
|
|
|
| // glob escaping
|
| TEST(URLPatternTest, Match5) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("file:///foo?bar\\*baz"));
|
| EXPECT_EQ("file", pattern.scheme());
|
| EXPECT_EQ("", pattern.host());
|
| @@ -88,7 +95,7 @@ TEST(URLPatternTest, Match5) {
|
|
|
| // ip addresses
|
| TEST(URLPatternTest, Match6) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("http://127.0.0.1/*"));
|
| EXPECT_EQ("http", pattern.scheme());
|
| EXPECT_EQ("127.0.0.1", pattern.host());
|
| @@ -100,7 +107,7 @@ TEST(URLPatternTest, Match6) {
|
|
|
| // subdomain matching with ip addresses
|
| TEST(URLPatternTest, Match7) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("http://*.0.0.1/*")); // allowed, but useless
|
| EXPECT_EQ("http", pattern.scheme());
|
| EXPECT_EQ("0.0.1", pattern.host());
|
| @@ -113,7 +120,7 @@ TEST(URLPatternTest, Match7) {
|
|
|
| // unicode
|
| TEST(URLPatternTest, Match8) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| // The below is the ASCII encoding of the following URL:
|
| // http://*.\xe1\x80\xbf/a\xc2\x81\xe1*
|
| EXPECT_TRUE(pattern.Parse("http://*.xn--gkd/a%C2%81%E1*"));
|
| @@ -130,7 +137,7 @@ TEST(URLPatternTest, Match8) {
|
|
|
| // chrome://
|
| TEST(URLPatternTest, Match9) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("chrome://favicon/*"));
|
| EXPECT_EQ("chrome", pattern.scheme());
|
| EXPECT_EQ("favicon", pattern.host());
|
| @@ -144,7 +151,7 @@ TEST(URLPatternTest, Match9) {
|
|
|
| // *://
|
| TEST(URLPatternTest, Match10) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("*://*/*"));
|
| EXPECT_TRUE(pattern.MatchesScheme("http"));
|
| EXPECT_TRUE(pattern.MatchesScheme("https"));
|
| @@ -161,7 +168,7 @@ TEST(URLPatternTest, Match10) {
|
|
|
| // <all_urls>
|
| TEST(URLPatternTest, Match11) {
|
| - URLPattern pattern(URLPattern::SCHEMES_ALL);
|
| + URLPattern pattern(kAllSchemes);
|
| EXPECT_TRUE(pattern.Parse("<all_urls>"));
|
| EXPECT_TRUE(pattern.MatchesScheme("chrome"));
|
| EXPECT_TRUE(pattern.MatchesScheme("http"));
|
| @@ -184,17 +191,17 @@ void TestPatternOverlap(const URLPattern& pattern1, const URLPattern& pattern2,
|
| }
|
|
|
| TEST(URLPatternTest, OverlapsWith) {
|
| - URLPattern pattern1(URLPattern::SCHEMES_ALL, "http://www.google.com/foo/*");
|
| - URLPattern pattern2(URLPattern::SCHEMES_ALL, "https://www.google.com/foo/*");
|
| - URLPattern pattern3(URLPattern::SCHEMES_ALL, "http://*.google.com/foo/*");
|
| - URLPattern pattern4(URLPattern::SCHEMES_ALL, "http://*.yahooo.com/foo/*");
|
| - URLPattern pattern5(URLPattern::SCHEMES_ALL, "http://www.yahooo.com/bar/*");
|
| - URLPattern pattern6(URLPattern::SCHEMES_ALL,
|
| + URLPattern pattern1(kAllSchemes, "http://www.google.com/foo/*");
|
| + URLPattern pattern2(kAllSchemes, "https://www.google.com/foo/*");
|
| + URLPattern pattern3(kAllSchemes, "http://*.google.com/foo/*");
|
| + URLPattern pattern4(kAllSchemes, "http://*.yahooo.com/foo/*");
|
| + URLPattern pattern5(kAllSchemes, "http://www.yahooo.com/bar/*");
|
| + URLPattern pattern6(kAllSchemes,
|
| "http://www.yahooo.com/bar/baz/*");
|
| - URLPattern pattern7(URLPattern::SCHEMES_ALL, "file:///*");
|
| - URLPattern pattern8(URLPattern::SCHEMES_ALL, "*://*/*");
|
| + URLPattern pattern7(kAllSchemes, "file:///*");
|
| + URLPattern pattern8(kAllSchemes, "*://*/*");
|
| URLPattern pattern9(URLPattern::SCHEME_HTTPS, "*://*/*");
|
| - URLPattern pattern10(URLPattern::SCHEMES_ALL, "<all_urls>");
|
| + URLPattern pattern10(kAllSchemes, "<all_urls>");
|
|
|
| TestPatternOverlap(pattern1, pattern1, true);
|
| TestPatternOverlap(pattern1, pattern2, false);
|
| @@ -216,11 +223,11 @@ TEST(URLPatternTest, OverlapsWith) {
|
|
|
| TEST(URLPatternTest, ConvertToExplicitSchemes) {
|
| std::vector<URLPattern> all_urls(URLPattern(
|
| - URLPattern::SCHEMES_ALL,
|
| + kAllSchemes,
|
| "<all_urls>").ConvertToExplicitSchemes());
|
|
|
| std::vector<URLPattern> all_schemes(URLPattern(
|
| - URLPattern::SCHEMES_ALL,
|
| + kAllSchemes,
|
| "*://google.com/foo").ConvertToExplicitSchemes());
|
|
|
| std::vector<URLPattern> monkey(URLPattern(
|
|
|