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 "extensions/common/url_pattern.h" | 6 #include "extensions/common/url_pattern.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 #include "url/gurl.h" | 8 #include "url/gurl.h" |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 } | 47 } |
48 | 48 |
49 { | 49 { |
50 // Cannot use a C string, because this contains a null byte. | 50 // Cannot use a C string, because this contains a null byte. |
51 std::string null_host("http://\0www/", 12); | 51 std::string null_host("http://\0www/", 12); |
52 URLPattern pattern(URLPattern::SCHEME_ALL); | 52 URLPattern pattern(URLPattern::SCHEME_ALL); |
53 EXPECT_EQ(URLPattern::PARSE_ERROR_INVALID_HOST, | 53 EXPECT_EQ(URLPattern::PARSE_ERROR_INVALID_HOST, |
54 pattern.Parse(null_host)) | 54 pattern.Parse(null_host)) |
55 << null_host; | 55 << null_host; |
56 } | 56 } |
57 }; | 57 } |
58 | 58 |
59 TEST(ExtensionURLPatternTest, Ports) { | 59 TEST(ExtensionURLPatternTest, Ports) { |
60 const struct { | 60 const struct { |
61 const char* pattern; | 61 const char* pattern; |
62 URLPattern::ParseResult expected_result; | 62 URLPattern::ParseResult expected_result; |
63 const char* expected_port; | 63 const char* expected_port; |
64 } kTestPatterns[] = { | 64 } kTestPatterns[] = { |
65 { "http://foo:1234/", URLPattern::PARSE_SUCCESS, "1234" }, | 65 { "http://foo:1234/", URLPattern::PARSE_SUCCESS, "1234" }, |
66 { "http://foo:1234/bar", URLPattern::PARSE_SUCCESS, "1234" }, | 66 { "http://foo:1234/bar", URLPattern::PARSE_SUCCESS, "1234" }, |
67 { "http://*.foo:1234/", URLPattern::PARSE_SUCCESS, "1234" }, | 67 { "http://*.foo:1234/", URLPattern::PARSE_SUCCESS, "1234" }, |
(...skipping 16 matching lines...) Expand all Loading... |
84 | 84 |
85 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { | 85 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { |
86 URLPattern pattern(URLPattern::SCHEME_ALL); | 86 URLPattern pattern(URLPattern::SCHEME_ALL); |
87 EXPECT_EQ(kTestPatterns[i].expected_result, | 87 EXPECT_EQ(kTestPatterns[i].expected_result, |
88 pattern.Parse(kTestPatterns[i].pattern)) | 88 pattern.Parse(kTestPatterns[i].pattern)) |
89 << "Got unexpected result for URL pattern: " | 89 << "Got unexpected result for URL pattern: " |
90 << kTestPatterns[i].pattern; | 90 << kTestPatterns[i].pattern; |
91 EXPECT_EQ(kTestPatterns[i].expected_port, pattern.port()) | 91 EXPECT_EQ(kTestPatterns[i].expected_port, pattern.port()) |
92 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern; | 92 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern; |
93 } | 93 } |
94 }; | 94 } |
95 | 95 |
96 // all pages for a given scheme | 96 // all pages for a given scheme |
97 TEST(ExtensionURLPatternTest, Match1) { | 97 TEST(ExtensionURLPatternTest, Match1) { |
98 URLPattern pattern(kAllSchemes); | 98 URLPattern pattern(kAllSchemes); |
99 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*/*")); | 99 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*/*")); |
100 EXPECT_EQ("http", pattern.scheme()); | 100 EXPECT_EQ("http", pattern.scheme()); |
101 EXPECT_EQ("", pattern.host()); | 101 EXPECT_EQ("", pattern.host()); |
102 EXPECT_TRUE(pattern.match_subdomains()); | 102 EXPECT_TRUE(pattern.match_subdomains()); |
103 EXPECT_FALSE(pattern.match_all_urls()); | 103 EXPECT_FALSE(pattern.match_all_urls()); |
104 EXPECT_EQ("/*", pattern.path()); | 104 EXPECT_EQ("/*", pattern.path()); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 URLPattern pattern(kAllSchemes); | 177 URLPattern pattern(kAllSchemes); |
178 // allowed, but useless | 178 // allowed, but useless |
179 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.0.0.1/*")); | 179 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.0.0.1/*")); |
180 EXPECT_EQ("http", pattern.scheme()); | 180 EXPECT_EQ("http", pattern.scheme()); |
181 EXPECT_EQ("0.0.1", pattern.host()); | 181 EXPECT_EQ("0.0.1", pattern.host()); |
182 EXPECT_TRUE(pattern.match_subdomains()); | 182 EXPECT_TRUE(pattern.match_subdomains()); |
183 EXPECT_FALSE(pattern.match_all_urls()); | 183 EXPECT_FALSE(pattern.match_all_urls()); |
184 EXPECT_EQ("/*", pattern.path()); | 184 EXPECT_EQ("/*", pattern.path()); |
185 // Subdomain matching is never done if the argument has an IP address host. | 185 // Subdomain matching is never done if the argument has an IP address host. |
186 EXPECT_FALSE(pattern.MatchesURL(GURL("http://127.0.0.1"))); | 186 EXPECT_FALSE(pattern.MatchesURL(GURL("http://127.0.0.1"))); |
187 }; | 187 } |
188 | 188 |
189 // unicode | 189 // unicode |
190 TEST(ExtensionURLPatternTest, Match8) { | 190 TEST(ExtensionURLPatternTest, Match8) { |
191 URLPattern pattern(kAllSchemes); | 191 URLPattern pattern(kAllSchemes); |
192 // The below is the ASCII encoding of the following URL: | 192 // The below is the ASCII encoding of the following URL: |
193 // http://*.\xe1\x80\xbf/a\xc2\x81\xe1* | 193 // http://*.\xe1\x80\xbf/a\xc2\x81\xe1* |
194 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 194 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
195 pattern.Parse("http://*.xn--gkd/a%C2%81%E1*")); | 195 pattern.Parse("http://*.xn--gkd/a%C2%81%E1*")); |
196 EXPECT_EQ("http", pattern.scheme()); | 196 EXPECT_EQ("http", pattern.scheme()); |
197 EXPECT_EQ("xn--gkd", pattern.host()); | 197 EXPECT_EQ("xn--gkd", pattern.host()); |
198 EXPECT_TRUE(pattern.match_subdomains()); | 198 EXPECT_TRUE(pattern.match_subdomains()); |
199 EXPECT_FALSE(pattern.match_all_urls()); | 199 EXPECT_FALSE(pattern.match_all_urls()); |
200 EXPECT_EQ("/a%C2%81%E1*", pattern.path()); | 200 EXPECT_EQ("/a%C2%81%E1*", pattern.path()); |
201 EXPECT_TRUE(pattern.MatchesURL( | 201 EXPECT_TRUE(pattern.MatchesURL( |
202 GURL("http://abc.\xe1\x80\xbf/a\xc2\x81\xe1xyz"))); | 202 GURL("http://abc.\xe1\x80\xbf/a\xc2\x81\xe1xyz"))); |
203 EXPECT_TRUE(pattern.MatchesURL( | 203 EXPECT_TRUE(pattern.MatchesURL( |
204 GURL("http://\xe1\x80\xbf/a\xc2\x81\xe1\xe1"))); | 204 GURL("http://\xe1\x80\xbf/a\xc2\x81\xe1\xe1"))); |
205 }; | 205 } |
206 | 206 |
207 // chrome:// | 207 // chrome:// |
208 TEST(ExtensionURLPatternTest, Match9) { | 208 TEST(ExtensionURLPatternTest, Match9) { |
209 URLPattern pattern(kAllSchemes); | 209 URLPattern pattern(kAllSchemes); |
210 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("chrome://favicon/*")); | 210 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("chrome://favicon/*")); |
211 EXPECT_EQ("chrome", pattern.scheme()); | 211 EXPECT_EQ("chrome", pattern.scheme()); |
212 EXPECT_EQ("favicon", pattern.host()); | 212 EXPECT_EQ("favicon", pattern.host()); |
213 EXPECT_FALSE(pattern.match_subdomains()); | 213 EXPECT_FALSE(pattern.match_subdomains()); |
214 EXPECT_FALSE(pattern.match_all_urls()); | 214 EXPECT_FALSE(pattern.match_all_urls()); |
215 EXPECT_EQ("/*", pattern.path()); | 215 EXPECT_EQ("/*", pattern.path()); |
216 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); | 216 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); |
217 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/https://google.com"))); | 217 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/https://google.com"))); |
218 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://history"))); | 218 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://history"))); |
219 }; | 219 } |
220 | 220 |
221 // *:// | 221 // *:// |
222 TEST(ExtensionURLPatternTest, Match10) { | 222 TEST(ExtensionURLPatternTest, Match10) { |
223 URLPattern pattern(kAllSchemes); | 223 URLPattern pattern(kAllSchemes); |
224 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("*://*/*")); | 224 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("*://*/*")); |
225 EXPECT_TRUE(pattern.MatchesScheme("http")); | 225 EXPECT_TRUE(pattern.MatchesScheme("http")); |
226 EXPECT_TRUE(pattern.MatchesScheme("https")); | 226 EXPECT_TRUE(pattern.MatchesScheme("https")); |
227 EXPECT_FALSE(pattern.MatchesScheme("chrome")); | 227 EXPECT_FALSE(pattern.MatchesScheme("chrome")); |
228 EXPECT_FALSE(pattern.MatchesScheme("file")); | 228 EXPECT_FALSE(pattern.MatchesScheme("file")); |
229 EXPECT_FALSE(pattern.MatchesScheme("ftp")); | 229 EXPECT_FALSE(pattern.MatchesScheme("ftp")); |
230 EXPECT_TRUE(pattern.match_subdomains()); | 230 EXPECT_TRUE(pattern.match_subdomains()); |
231 EXPECT_FALSE(pattern.match_all_urls()); | 231 EXPECT_FALSE(pattern.match_all_urls()); |
232 EXPECT_EQ("/*", pattern.path()); | 232 EXPECT_EQ("/*", pattern.path()); |
233 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); | 233 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); |
234 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); | 234 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); |
235 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///foo/bar"))); | 235 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///foo/bar"))); |
236 EXPECT_FALSE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); | 236 EXPECT_FALSE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); |
237 }; | 237 } |
238 | 238 |
239 // <all_urls> | 239 // <all_urls> |
240 TEST(ExtensionURLPatternTest, Match11) { | 240 TEST(ExtensionURLPatternTest, Match11) { |
241 URLPattern pattern(kAllSchemes); | 241 URLPattern pattern(kAllSchemes); |
242 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); | 242 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); |
243 EXPECT_TRUE(pattern.MatchesScheme("chrome")); | 243 EXPECT_TRUE(pattern.MatchesScheme("chrome")); |
244 EXPECT_TRUE(pattern.MatchesScheme("http")); | 244 EXPECT_TRUE(pattern.MatchesScheme("http")); |
245 EXPECT_TRUE(pattern.MatchesScheme("https")); | 245 EXPECT_TRUE(pattern.MatchesScheme("https")); |
246 EXPECT_TRUE(pattern.MatchesScheme("file")); | 246 EXPECT_TRUE(pattern.MatchesScheme("file")); |
247 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); | 247 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); |
(...skipping 11 matching lines...) Expand all Loading... |
259 URLPattern pattern2(kAllSchemes); | 259 URLPattern pattern2(kAllSchemes); |
260 pattern2.SetMatchAllURLs(true); | 260 pattern2.SetMatchAllURLs(true); |
261 | 261 |
262 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes()); | 262 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes()); |
263 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains()); | 263 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains()); |
264 EXPECT_EQ(pattern.path(), pattern2.path()); | 264 EXPECT_EQ(pattern.path(), pattern2.path()); |
265 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls()); | 265 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls()); |
266 EXPECT_EQ(pattern.scheme(), pattern2.scheme()); | 266 EXPECT_EQ(pattern.scheme(), pattern2.scheme()); |
267 EXPECT_EQ(pattern.port(), pattern2.port()); | 267 EXPECT_EQ(pattern.port(), pattern2.port()); |
268 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString()); | 268 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString()); |
269 }; | 269 } |
270 | 270 |
271 // SCHEME_ALL matches all schemes. | 271 // SCHEME_ALL matches all schemes. |
272 TEST(ExtensionURLPatternTest, Match12) { | 272 TEST(ExtensionURLPatternTest, Match12) { |
273 URLPattern pattern(URLPattern::SCHEME_ALL); | 273 URLPattern pattern(URLPattern::SCHEME_ALL); |
274 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); | 274 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>")); |
275 EXPECT_TRUE(pattern.MatchesScheme("chrome")); | 275 EXPECT_TRUE(pattern.MatchesScheme("chrome")); |
276 EXPECT_TRUE(pattern.MatchesScheme("http")); | 276 EXPECT_TRUE(pattern.MatchesScheme("http")); |
277 EXPECT_TRUE(pattern.MatchesScheme("https")); | 277 EXPECT_TRUE(pattern.MatchesScheme("https")); |
278 EXPECT_TRUE(pattern.MatchesScheme("file")); | 278 EXPECT_TRUE(pattern.MatchesScheme("file")); |
279 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); | 279 EXPECT_TRUE(pattern.MatchesScheme("filesystem")); |
280 EXPECT_TRUE(pattern.MatchesScheme("javascript")); | 280 EXPECT_TRUE(pattern.MatchesScheme("javascript")); |
281 EXPECT_TRUE(pattern.MatchesScheme("data")); | 281 EXPECT_TRUE(pattern.MatchesScheme("data")); |
282 EXPECT_TRUE(pattern.MatchesScheme("about")); | 282 EXPECT_TRUE(pattern.MatchesScheme("about")); |
283 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); | 283 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); |
284 EXPECT_TRUE(pattern.match_subdomains()); | 284 EXPECT_TRUE(pattern.match_subdomains()); |
285 EXPECT_TRUE(pattern.match_all_urls()); | 285 EXPECT_TRUE(pattern.match_all_urls()); |
286 EXPECT_EQ("/*", pattern.path()); | 286 EXPECT_EQ("/*", pattern.path()); |
287 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); | 287 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); |
288 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); | 288 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); |
289 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); | 289 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); |
290 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); | 290 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); |
291 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://newtab"))); | 291 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://newtab"))); |
292 EXPECT_TRUE(pattern.MatchesURL(GURL("about:blank"))); | 292 EXPECT_TRUE(pattern.MatchesURL(GURL("about:blank"))); |
293 EXPECT_TRUE(pattern.MatchesURL(GURL("about:version"))); | 293 EXPECT_TRUE(pattern.MatchesURL(GURL("about:version"))); |
294 EXPECT_TRUE(pattern.MatchesURL( | 294 EXPECT_TRUE(pattern.MatchesURL( |
295 GURL("data:text/html;charset=utf-8,<html>asdf</html>"))); | 295 GURL("data:text/html;charset=utf-8,<html>asdf</html>"))); |
296 }; | 296 } |
297 | 297 |
298 static const struct MatchPatterns { | 298 static const struct MatchPatterns { |
299 const char* pattern; | 299 const char* pattern; |
300 const char* matches; | 300 const char* matches; |
301 } kMatch13UrlPatternTestCases[] = { | 301 } kMatch13UrlPatternTestCases[] = { |
302 {"about:*", "about:blank"}, | 302 {"about:*", "about:blank"}, |
303 {"about:blank", "about:blank"}, | 303 {"about:blank", "about:blank"}, |
304 {"about:*", "about:version"}, | 304 {"about:*", "about:version"}, |
305 {"chrome-extension://*/*", "chrome-extension://FTW"}, | 305 {"chrome-extension://*/*", "chrome-extension://FTW"}, |
306 {"data:*", "data:monkey"}, | 306 {"data:*", "data:monkey"}, |
307 {"javascript:*", "javascript:atemyhomework"}, | 307 {"javascript:*", "javascript:atemyhomework"}, |
308 }; | 308 }; |
309 | 309 |
310 // SCHEME_ALL and specific schemes. | 310 // SCHEME_ALL and specific schemes. |
311 TEST(ExtensionURLPatternTest, Match13) { | 311 TEST(ExtensionURLPatternTest, Match13) { |
312 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) { | 312 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) { |
313 URLPattern pattern(URLPattern::SCHEME_ALL); | 313 URLPattern pattern(URLPattern::SCHEME_ALL); |
314 EXPECT_EQ(URLPattern::PARSE_SUCCESS, | 314 EXPECT_EQ(URLPattern::PARSE_SUCCESS, |
315 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern)) | 315 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern)) |
316 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern; | 316 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern; |
317 EXPECT_TRUE(pattern.MatchesURL( | 317 EXPECT_TRUE(pattern.MatchesURL( |
318 GURL(kMatch13UrlPatternTestCases[i].matches))) | 318 GURL(kMatch13UrlPatternTestCases[i].matches))) |
319 << " while matching " << kMatch13UrlPatternTestCases[i].matches; | 319 << " while matching " << kMatch13UrlPatternTestCases[i].matches; |
320 } | 320 } |
321 | 321 |
322 // Negative test. | 322 // Negative test. |
323 URLPattern pattern(URLPattern::SCHEME_ALL); | 323 URLPattern pattern(URLPattern::SCHEME_ALL); |
324 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("data:*")); | 324 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("data:*")); |
325 EXPECT_FALSE(pattern.MatchesURL(GURL("about:blank"))); | 325 EXPECT_FALSE(pattern.MatchesURL(GURL("about:blank"))); |
326 }; | 326 } |
327 | 327 |
328 // file scheme with empty hostname | 328 // file scheme with empty hostname |
329 TEST(ExtensionURLPatternTest, Match14) { | 329 TEST(ExtensionURLPatternTest, Match14) { |
330 URLPattern pattern(kAllSchemes); | 330 URLPattern pattern(kAllSchemes); |
331 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo*")); | 331 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo*")); |
332 EXPECT_EQ("file", pattern.scheme()); | 332 EXPECT_EQ("file", pattern.scheme()); |
333 EXPECT_EQ("", pattern.host()); | 333 EXPECT_EQ("", pattern.host()); |
334 EXPECT_FALSE(pattern.match_subdomains()); | 334 EXPECT_FALSE(pattern.match_subdomains()); |
335 EXPECT_FALSE(pattern.match_all_urls()); | 335 EXPECT_FALSE(pattern.match_all_urls()); |
336 EXPECT_EQ("/foo*", pattern.path()); | 336 EXPECT_EQ("/foo*", pattern.path()); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 EXPECT_FALSE(pattern.match_all_urls()); | 423 EXPECT_FALSE(pattern.match_all_urls()); |
424 EXPECT_EQ("/*", pattern.path()); | 424 EXPECT_EQ("/*", pattern.path()); |
425 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome-extension://ftw"))); | 425 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome-extension://ftw"))); |
426 EXPECT_TRUE(pattern.MatchesURL( | 426 EXPECT_TRUE(pattern.MatchesURL( |
427 GURL("chrome-extension://ftw/http://google.com"))); | 427 GURL("chrome-extension://ftw/http://google.com"))); |
428 EXPECT_TRUE(pattern.MatchesURL( | 428 EXPECT_TRUE(pattern.MatchesURL( |
429 GURL("chrome-extension://ftw/https://google.com"))); | 429 GURL("chrome-extension://ftw/https://google.com"))); |
430 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome-extension://foobar"))); | 430 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome-extension://foobar"))); |
431 EXPECT_TRUE(pattern.MatchesURL( | 431 EXPECT_TRUE(pattern.MatchesURL( |
432 GURL("filesystem:chrome-extension://ftw/t/file.txt"))); | 432 GURL("filesystem:chrome-extension://ftw/t/file.txt"))); |
433 }; | 433 } |
434 | 434 |
435 static const struct GetAsStringPatterns { | 435 static const struct GetAsStringPatterns { |
436 const char* pattern; | 436 const char* pattern; |
437 } kGetAsStringTestCases[] = { | 437 } kGetAsStringTestCases[] = { |
438 { "http://www/" }, | 438 { "http://www/" }, |
439 { "http://*/*" }, | 439 { "http://*/*" }, |
440 { "chrome://*/*" }, | 440 { "chrome://*/*" }, |
441 { "chrome://newtab/" }, | 441 { "chrome://newtab/" }, |
442 { "about:*" }, | 442 { "about:*" }, |
443 { "about:blank" }, | 443 { "about:blank" }, |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 EXPECT_TRUE(URLPattern(URLPattern::SCHEME_HTTPS, "https://www.google.com/") | 835 EXPECT_TRUE(URLPattern(URLPattern::SCHEME_HTTPS, "https://www.google.com/") |
836 .MatchesSingleOrigin()); | 836 .MatchesSingleOrigin()); |
837 EXPECT_FALSE(URLPattern(URLPattern::SCHEME_HTTP, | 837 EXPECT_FALSE(URLPattern(URLPattern::SCHEME_HTTP, |
838 "http://*.google.com/foo/bar").MatchesSingleOrigin()); | 838 "http://*.google.com/foo/bar").MatchesSingleOrigin()); |
839 EXPECT_TRUE( | 839 EXPECT_TRUE( |
840 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/foo/bar") | 840 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/foo/bar") |
841 .MatchesSingleOrigin()); | 841 .MatchesSingleOrigin()); |
842 } | 842 } |
843 | 843 |
844 } // namespace | 844 } // namespace |
OLD | NEW |