| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "chrome/common/extensions/url_pattern.h" | 6 #include "chrome/common/extensions/url_pattern.h" |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 #include "googleurl/src/gurl.h" | 8 #include "googleurl/src/gurl.h" |
| 9 | 9 |
| 10 // See url_pattern.h for examples of valid and invalid patterns. | 10 // See url_pattern.h for examples of valid and invalid patterns. |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 EXPECT_EQ("http", pattern.scheme()); | 88 EXPECT_EQ("http", pattern.scheme()); |
| 89 EXPECT_EQ("", pattern.host()); | 89 EXPECT_EQ("", pattern.host()); |
| 90 EXPECT_TRUE(pattern.match_subdomains()); | 90 EXPECT_TRUE(pattern.match_subdomains()); |
| 91 EXPECT_FALSE(pattern.match_all_urls()); | 91 EXPECT_FALSE(pattern.match_all_urls()); |
| 92 EXPECT_EQ("/*", pattern.path()); | 92 EXPECT_EQ("/*", pattern.path()); |
| 93 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com"))); | 93 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com"))); |
| 94 EXPECT_TRUE(pattern.MatchesURL(GURL("http://yahoo.com"))); | 94 EXPECT_TRUE(pattern.MatchesURL(GURL("http://yahoo.com"))); |
| 95 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foo"))); | 95 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foo"))); |
| 96 EXPECT_FALSE(pattern.MatchesURL(GURL("https://google.com"))); | 96 EXPECT_FALSE(pattern.MatchesURL(GURL("https://google.com"))); |
| 97 EXPECT_TRUE(pattern.MatchesURL(GURL("http://74.125.127.100/search"))); | 97 EXPECT_TRUE(pattern.MatchesURL(GURL("http://74.125.127.100/search"))); |
| 98 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:http://foo.com/t/"))); |
| 99 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:http://foo.com/t/s"))); |
| 98 } | 100 } |
| 99 | 101 |
| 100 // all domains | 102 // all domains |
| 101 TEST(ExtensionURLPatternTest, Match2) { | 103 TEST(ExtensionURLPatternTest, Match2) { |
| 102 URLPattern pattern(kAllSchemes); | 104 URLPattern pattern(kAllSchemes); |
| 103 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("https://*/foo*")); | 105 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("https://*/foo*")); |
| 104 EXPECT_EQ("https", pattern.scheme()); | 106 EXPECT_EQ("https", pattern.scheme()); |
| 105 EXPECT_EQ("", pattern.host()); | 107 EXPECT_EQ("", pattern.host()); |
| 106 EXPECT_TRUE(pattern.match_subdomains()); | 108 EXPECT_TRUE(pattern.match_subdomains()); |
| 107 EXPECT_FALSE(pattern.match_all_urls()); | 109 EXPECT_FALSE(pattern.match_all_urls()); |
| 108 EXPECT_EQ("/foo*", pattern.path()); | 110 EXPECT_EQ("/foo*", pattern.path()); |
| 109 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foo"))); | 111 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foo"))); |
| 110 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foobar"))); | 112 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foobar"))); |
| 111 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.google.com/foo"))); | 113 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.google.com/foo"))); |
| 112 EXPECT_FALSE(pattern.MatchesURL(GURL("https://www.google.com/"))); | 114 EXPECT_FALSE(pattern.MatchesURL(GURL("https://www.google.com/"))); |
| 115 EXPECT_FALSE(pattern.MatchesURL( |
| 116 GURL("filesystem:https://www.google.com/foobar/"))); |
| 117 pattern.SetMatchNestedURLPath(true); |
| 118 EXPECT_TRUE(pattern.MatchesURL( |
| 119 GURL("filesystem:https://www.google.com/foobar/bas"))); |
| 113 } | 120 } |
| 114 | 121 |
| 115 // subdomains | 122 // subdomains |
| 116 TEST(URLPatternTest, Match3) { | 123 TEST(URLPatternTest, Match3) { |
| 117 URLPattern pattern(kAllSchemes); | 124 URLPattern pattern(kAllSchemes); |
| 118 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 125 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
| 119 pattern.Parse("http://*.google.com/foo*bar")); | 126 pattern.Parse("http://*.google.com/foo*bar")); |
| 120 EXPECT_EQ("http", pattern.scheme()); | 127 EXPECT_EQ("http", pattern.scheme()); |
| 121 EXPECT_EQ("google.com", pattern.host()); | 128 EXPECT_EQ("google.com", pattern.host()); |
| 122 EXPECT_TRUE(pattern.match_subdomains()); | 129 EXPECT_TRUE(pattern.match_subdomains()); |
| 123 EXPECT_FALSE(pattern.match_all_urls()); | 130 EXPECT_FALSE(pattern.match_all_urls()); |
| 124 EXPECT_EQ("/foo*bar", pattern.path()); | 131 EXPECT_EQ("/foo*bar", pattern.path()); |
| 125 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foobar"))); | 132 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foobar"))); |
| 126 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.google.com/foo?bar"))); | 133 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.google.com/foo?bar"))); |
| 127 EXPECT_TRUE(pattern.MatchesURL( | 134 EXPECT_TRUE(pattern.MatchesURL( |
| 128 GURL("http://monkey.images.google.com/foooobar"))); | 135 GURL("http://monkey.images.google.com/foooobar"))); |
| 129 EXPECT_FALSE(pattern.MatchesURL(GURL("http://yahoo.com/foobar"))); | 136 EXPECT_FALSE(pattern.MatchesURL(GURL("http://yahoo.com/foobar"))); |
| 137 EXPECT_FALSE(pattern.MatchesURL( |
| 138 GURL("filesystem:http://google.com/foobar/"))); |
| 139 pattern.SetMatchNestedURLPath(true); |
| 140 EXPECT_FALSE(pattern.MatchesURL( |
| 141 GURL("filesystem:http://google.com/temporary/foobar"))); |
| 130 } | 142 } |
| 131 | 143 |
| 132 // glob escaping | 144 // glob escaping |
| 133 TEST(ExtensionURLPatternTest, Match5) { | 145 TEST(ExtensionURLPatternTest, Match5) { |
| 134 URLPattern pattern(kAllSchemes); | 146 URLPattern pattern(kAllSchemes); |
| 135 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo?bar\\*baz")); | 147 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo?bar\\*baz")); |
| 136 EXPECT_EQ("file", pattern.scheme()); | 148 EXPECT_EQ("file", pattern.scheme()); |
| 137 EXPECT_EQ("", pattern.host()); | 149 EXPECT_EQ("", pattern.host()); |
| 138 EXPECT_FALSE(pattern.match_subdomains()); | 150 EXPECT_FALSE(pattern.match_subdomains()); |
| 139 EXPECT_FALSE(pattern.match_all_urls()); | 151 EXPECT_FALSE(pattern.match_all_urls()); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 }; | 231 }; |
| 220 | 232 |
| 221 // <all_urls> | 233 // <all_urls> |
| 222 TEST(ExtensionURLPatternTest, Match11) { | 234 TEST(ExtensionURLPatternTest, Match11) { |
| 223 URLPattern pattern(kAllSchemes); | 235 URLPattern pattern(kAllSchemes); |
| 224 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); | 236 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); |
| 225 EXPECT_TRUE(pattern.MatchesScheme("chrome")); | 237 EXPECT_TRUE(pattern.MatchesScheme("chrome")); |
| 226 EXPECT_TRUE(pattern.MatchesScheme("http")); | 238 EXPECT_TRUE(pattern.MatchesScheme("http")); |
| 227 EXPECT_TRUE(pattern.MatchesScheme("https")); | 239 EXPECT_TRUE(pattern.MatchesScheme("https")); |
| 228 EXPECT_TRUE(pattern.MatchesScheme("file")); | 240 EXPECT_TRUE(pattern.MatchesScheme("file")); |
| 241 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); |
| 229 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); | 242 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); |
| 230 EXPECT_TRUE(pattern.match_subdomains()); | 243 EXPECT_TRUE(pattern.match_subdomains()); |
| 231 EXPECT_TRUE(pattern.match_all_urls()); | 244 EXPECT_TRUE(pattern.match_all_urls()); |
| 232 EXPECT_EQ("/*", pattern.path()); | 245 EXPECT_EQ("/*", pattern.path()); |
| 233 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); | 246 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); |
| 234 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); | 247 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); |
| 235 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); | 248 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); |
| 236 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); | 249 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); |
| 250 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:http://a.com/t/b"))); |
| 251 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:file:///t/b"))); |
| 237 | 252 |
| 238 // Make sure the properties are the same when creating an <all_urls> pattern | 253 // Make sure the properties are the same when creating an <all_urls> pattern |
| 239 // via SetMatchAllURLs and by parsing <all_urls>. | 254 // via SetMatchAllURLs and by parsing <all_urls>. |
| 240 URLPattern pattern2(kAllSchemes); | 255 URLPattern pattern2(kAllSchemes); |
| 241 pattern2.SetMatchAllURLs(true); | 256 pattern2.SetMatchAllURLs(true); |
| 242 | 257 |
| 243 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes()); | 258 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes()); |
| 244 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains()); | 259 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains()); |
| 245 EXPECT_EQ(pattern.path(), pattern2.path()); | 260 EXPECT_EQ(pattern.path(), pattern2.path()); |
| 246 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls()); | 261 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls()); |
| 247 EXPECT_EQ(pattern.scheme(), pattern2.scheme()); | 262 EXPECT_EQ(pattern.scheme(), pattern2.scheme()); |
| 248 EXPECT_EQ(pattern.port(), pattern2.port()); | 263 EXPECT_EQ(pattern.port(), pattern2.port()); |
| 249 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString()); | 264 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString()); |
| 250 }; | 265 }; |
| 251 | 266 |
| 252 // SCHEME_ALL matches all schemes. | 267 // SCHEME_ALL matches all schemes. |
| 253 TEST(ExtensionURLPatternTest, Match12) { | 268 TEST(ExtensionURLPatternTest, Match12) { |
| 254 URLPattern pattern(URLPattern::SCHEME_ALL); | 269 URLPattern pattern(URLPattern::SCHEME_ALL); |
| 255 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); | 270 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); |
| 256 EXPECT_TRUE(pattern.MatchesScheme("chrome")); | 271 EXPECT_TRUE(pattern.MatchesScheme("chrome")); |
| 257 EXPECT_TRUE(pattern.MatchesScheme("http")); | 272 EXPECT_TRUE(pattern.MatchesScheme("http")); |
| 258 EXPECT_TRUE(pattern.MatchesScheme("https")); | 273 EXPECT_TRUE(pattern.MatchesScheme("https")); |
| 259 EXPECT_TRUE(pattern.MatchesScheme("file")); | 274 EXPECT_TRUE(pattern.MatchesScheme("file")); |
| 275 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); |
| 260 EXPECT_TRUE(pattern.MatchesScheme("javascript")); | 276 EXPECT_TRUE(pattern.MatchesScheme("javascript")); |
| 261 EXPECT_TRUE(pattern.MatchesScheme("data")); | 277 EXPECT_TRUE(pattern.MatchesScheme("data")); |
| 262 EXPECT_TRUE(pattern.MatchesScheme("about")); | 278 EXPECT_TRUE(pattern.MatchesScheme("about")); |
| 263 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); | 279 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); |
| 264 EXPECT_TRUE(pattern.match_subdomains()); | 280 EXPECT_TRUE(pattern.match_subdomains()); |
| 265 EXPECT_TRUE(pattern.match_all_urls()); | 281 EXPECT_TRUE(pattern.match_all_urls()); |
| 266 EXPECT_EQ("/*", pattern.path()); | 282 EXPECT_EQ("/*", pattern.path()); |
| 267 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); | 283 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); |
| 268 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); | 284 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); |
| 269 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); | 285 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); |
| 270 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); | 286 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); |
| 271 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://newtab"))); | 287 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://newtab"))); |
| 272 EXPECT_TRUE(pattern.MatchesURL(GURL("about:blank"))); | 288 EXPECT_TRUE(pattern.MatchesURL(GURL("about:blank"))); |
| 273 EXPECT_TRUE(pattern.MatchesURL(GURL("about:version"))); | 289 EXPECT_TRUE(pattern.MatchesURL(GURL("about:version"))); |
| 274 EXPECT_TRUE(pattern.MatchesURL( | 290 EXPECT_TRUE(pattern.MatchesURL( |
| 275 GURL("data:text/html;charset=utf-8,<html>asdf</html>"))); | 291 GURL("data:text/html;charset=utf-8,<html>asdf</html>"))); |
| 292 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:http://a.com/t/b"))); |
| 293 EXPECT_TRUE(pattern.MatchesURL(GURL("filesystem:file:///t/b"))); |
| 276 }; | 294 }; |
| 277 | 295 |
| 278 static const struct MatchPatterns { | 296 static const struct MatchPatterns { |
| 279 const char* pattern; | 297 const char* pattern; |
| 280 const char* matches; | 298 const char* matches; |
| 281 } kMatch13UrlPatternTestCases[] = { | 299 } kMatch13UrlPatternTestCases[] = { |
| 282 {"about:*", "about:blank"}, | 300 {"about:*", "about:blank"}, |
| 283 {"about:blank", "about:blank"}, | 301 {"about:blank", "about:blank"}, |
| 284 {"about:*", "about:version"}, | 302 {"about:*", "about:version"}, |
| 285 {"chrome-extension://*/*", "chrome-extension://FTW"}, | 303 {"chrome-extension://*/*", "chrome-extension://FTW"}, |
| 286 {"data:*", "data:monkey"}, | 304 {"data:*", "data:monkey"}, |
| 287 {"javascript:*", "javascript:atemyhomework"}, | 305 {"javascript:*", "javascript:atemyhomework"}, |
| 306 {"chrome-extension://*/*", "filesystem:chrome-extension://id/p/f"}, |
| 288 }; | 307 }; |
| 289 | 308 |
| 290 // SCHEME_ALL and specific schemes. | 309 // SCHEME_ALL and specific schemes. |
| 291 TEST(ExtensionURLPatternTest, Match13) { | 310 TEST(ExtensionURLPatternTest, Match13) { |
| 292 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) { | 311 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) { |
| 293 URLPattern pattern(URLPattern::SCHEME_ALL); | 312 URLPattern pattern(URLPattern::SCHEME_ALL); |
| 294 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 313 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
| 295 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern)) | 314 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern)) |
| 296 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern; | 315 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern; |
| 297 EXPECT_TRUE(pattern.MatchesURL( | 316 EXPECT_TRUE(pattern.MatchesURL( |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 pattern.Parse("http://www.example.com:80/foo")); | 380 pattern.Parse("http://www.example.com:80/foo")); |
| 362 EXPECT_EQ("http", pattern.scheme()); | 381 EXPECT_EQ("http", pattern.scheme()); |
| 363 EXPECT_EQ("www.example.com", pattern.host()); | 382 EXPECT_EQ("www.example.com", pattern.host()); |
| 364 EXPECT_FALSE(pattern.match_subdomains()); | 383 EXPECT_FALSE(pattern.match_subdomains()); |
| 365 EXPECT_FALSE(pattern.match_all_urls()); | 384 EXPECT_FALSE(pattern.match_all_urls()); |
| 366 EXPECT_EQ("/foo", pattern.path()); | 385 EXPECT_EQ("/foo", pattern.path()); |
| 367 EXPECT_EQ("80", pattern.port()); | 386 EXPECT_EQ("80", pattern.port()); |
| 368 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); | 387 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); |
| 369 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); | 388 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); |
| 370 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); | 389 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); |
| 390 EXPECT_FALSE(pattern.MatchesURL( |
| 391 GURL("filesystem:http://www.example.com:8080/foo/"))); |
| 392 EXPECT_FALSE(pattern.MatchesURL(GURL("filesystem:http://www.example.com/f/foo"
))); |
| 393 pattern.SetMatchNestedURLPath(true); |
| 394 EXPECT_FALSE(pattern.MatchesURL(GURL("filesystem:http://www.example.com/f/foo"
))); |
| 371 } | 395 } |
| 372 | 396 |
| 373 // Explicit port wildcard | 397 // Explicit port wildcard |
| 374 TEST(ExtensionURLPatternTest, Match18) { | 398 TEST(ExtensionURLPatternTest, Match18) { |
| 375 URLPattern pattern(kAllSchemes); | 399 URLPattern pattern(kAllSchemes); |
| 376 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 400 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
| 377 pattern.Parse("http://www.example.com:*/foo")); | 401 pattern.Parse("http://www.example.com:*/foo")); |
| 378 EXPECT_EQ("http", pattern.scheme()); | 402 EXPECT_EQ("http", pattern.scheme()); |
| 379 EXPECT_EQ("www.example.com", pattern.host()); | 403 EXPECT_EQ("www.example.com", pattern.host()); |
| 380 EXPECT_FALSE(pattern.match_subdomains()); | 404 EXPECT_FALSE(pattern.match_subdomains()); |
| 381 EXPECT_FALSE(pattern.match_all_urls()); | 405 EXPECT_FALSE(pattern.match_all_urls()); |
| 382 EXPECT_EQ("/foo", pattern.path()); | 406 EXPECT_EQ("/foo", pattern.path()); |
| 383 EXPECT_EQ("*", pattern.port()); | 407 EXPECT_EQ("*", pattern.port()); |
| 384 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); | 408 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); |
| 385 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); | 409 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); |
| 386 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); | 410 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); |
| 411 EXPECT_FALSE(pattern.MatchesURL( |
| 412 GURL("filesystem:http://www.example.com:8080/foo/"))); |
| 387 } | 413 } |
| 388 | 414 |
| 389 // chrome-extension:// | 415 // chrome-extension:// |
| 390 TEST(ExtensionURLPatternTest, Match19) { | 416 TEST(ExtensionURLPatternTest, Match19) { |
| 391 URLPattern pattern(URLPattern::SCHEME_EXTENSION); | 417 URLPattern pattern(URLPattern::SCHEME_EXTENSION); |
| 392 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 418 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
| 393 pattern.Parse("chrome-extension://ftw/*")); | 419 pattern.Parse("chrome-extension://ftw/*")); |
| 394 EXPECT_EQ("chrome-extension", pattern.scheme()); | 420 EXPECT_EQ("chrome-extension", pattern.scheme()); |
| 395 EXPECT_EQ("ftw", pattern.host()); | 421 EXPECT_EQ("ftw", pattern.host()); |
| 396 EXPECT_FALSE(pattern.match_subdomains()); | 422 EXPECT_FALSE(pattern.match_subdomains()); |
| 397 EXPECT_FALSE(pattern.match_all_urls()); | 423 EXPECT_FALSE(pattern.match_all_urls()); |
| 398 EXPECT_EQ("/*", pattern.path()); | 424 EXPECT_EQ("/*", pattern.path()); |
| 399 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome-extension://ftw"))); | 425 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome-extension://ftw"))); |
| 400 EXPECT_TRUE(pattern.MatchesURL( | 426 EXPECT_TRUE(pattern.MatchesURL( |
| 401 GURL("chrome-extension://ftw/http://google.com"))); | 427 GURL("chrome-extension://ftw/http://google.com"))); |
| 402 EXPECT_TRUE(pattern.MatchesURL( | 428 EXPECT_TRUE(pattern.MatchesURL( |
| 403 GURL("chrome-extension://ftw/https://google.com"))); | 429 GURL("chrome-extension://ftw/https://google.com"))); |
| 404 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome-extension://foobar"))); | 430 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome-extension://foobar"))); |
| 431 EXPECT_TRUE(pattern.MatchesURL( |
| 432 GURL("filesystem:chrome-extension://ftw/f/"))); |
| 433 pattern.SetMatchNestedURLPath(true); |
| 434 EXPECT_TRUE(pattern.MatchesURL( |
| 435 GURL("filesystem:chrome-extension://ftw/t/file.txt"))); |
| 405 }; | 436 }; |
| 406 | 437 |
| 407 static const struct GetAsStringPatterns { | 438 static const struct GetAsStringPatterns { |
| 408 const char* pattern; | 439 const char* pattern; |
| 409 } kGetAsStringTestCases[] = { | 440 } kGetAsStringTestCases[] = { |
| 410 { "http://www/" }, | 441 { "http://www/" }, |
| 411 { "http://*/*" }, | 442 { "http://*/*" }, |
| 412 { "chrome://*/*" }, | 443 { "chrome://*/*" }, |
| 413 { "chrome://newtab/" }, | 444 { "chrome://newtab/" }, |
| 414 { "about:*" }, | 445 { "about:*" }, |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 | 666 |
| 636 EXPECT_FALSE(pattern2.MatchesURL(GURL("http://bb.com/path"))); | 667 EXPECT_FALSE(pattern2.MatchesURL(GURL("http://bb.com/path"))); |
| 637 EXPECT_TRUE(pattern2.MatchesURL(GURL("http://aa.com/path"))); | 668 EXPECT_TRUE(pattern2.MatchesURL(GURL("http://aa.com/path"))); |
| 638 EXPECT_FALSE(pattern2.MatchesURL(GURL("http://sub.aa.com/path"))); | 669 EXPECT_FALSE(pattern2.MatchesURL(GURL("http://sub.aa.com/path"))); |
| 639 | 670 |
| 640 URLPattern pattern3(URLPattern::SCHEME_ALL, "http://aa.com/*"); | 671 URLPattern pattern3(URLPattern::SCHEME_ALL, "http://aa.com/*"); |
| 641 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern3.Parse("http://aa.com:88/*")); | 672 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern3.Parse("http://aa.com:88/*")); |
| 642 EXPECT_FALSE(pattern3.MatchesURL(GURL("http://aa.com/path"))); | 673 EXPECT_FALSE(pattern3.MatchesURL(GURL("http://aa.com/path"))); |
| 643 EXPECT_TRUE(pattern3.MatchesURL(GURL("http://aa.com:88/path"))); | 674 EXPECT_TRUE(pattern3.MatchesURL(GURL("http://aa.com:88/path"))); |
| 644 } | 675 } |
| OLD | NEW |