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 |