Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: chrome/common/extensions/url_pattern_unittest.cc

Issue 8885022: Move URLPattern::ParseOption into a field. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more minor sprucing Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/extensions/url_pattern.cc ('k') | chrome/common/extensions/user_script.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 17 matching lines...) Expand all
28 { "http://", URLPattern::PARSE_ERROR_EMPTY_HOST }, 28 { "http://", URLPattern::PARSE_ERROR_EMPTY_HOST },
29 { "http:///", URLPattern::PARSE_ERROR_EMPTY_HOST }, 29 { "http:///", URLPattern::PARSE_ERROR_EMPTY_HOST },
30 { "http://*foo/bar", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD }, 30 { "http://*foo/bar", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD },
31 { "http://foo.*.bar/baz", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD }, 31 { "http://foo.*.bar/baz", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD },
32 { "http://fo.*.ba:123/baz", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD }, 32 { "http://fo.*.ba:123/baz", URLPattern::PARSE_ERROR_INVALID_HOST_WILDCARD },
33 { "http:/bar", URLPattern::PARSE_ERROR_WRONG_SCHEME_SEPARATOR }, 33 { "http:/bar", URLPattern::PARSE_ERROR_WRONG_SCHEME_SEPARATOR },
34 { "http://bar", URLPattern::PARSE_ERROR_EMPTY_PATH }, 34 { "http://bar", URLPattern::PARSE_ERROR_EMPTY_PATH },
35 }; 35 };
36 36
37 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInvalidPatterns); ++i) { 37 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInvalidPatterns); ++i) {
38 URLPattern pattern(URLPattern::SCHEME_ALL); 38 URLPattern pattern(URLPattern::IGNORE_PORTS, URLPattern::SCHEME_ALL);
39 EXPECT_EQ(kInvalidPatterns[i].expected_result, 39 EXPECT_EQ(kInvalidPatterns[i].expected_result,
40 pattern.Parse(kInvalidPatterns[i].pattern, 40 pattern.Parse(kInvalidPatterns[i].pattern))
41 URLPattern::IGNORE_PORTS))
42 << kInvalidPatterns[i].pattern; 41 << kInvalidPatterns[i].pattern;
43 } 42 }
44 }; 43 };
45 44
46 TEST(ExtensionURLPatternTest, Ports) { 45 TEST(ExtensionURLPatternTest, Ports) {
47 const struct { 46 const struct {
48 const char* pattern; 47 const char* pattern;
49 URLPattern::ParseResult expected_result_error_on_ports; 48 URLPattern::ParseResult expected_result_error_on_ports;
50 URLPattern::ParseResult expected_result_ignore_ports; 49 URLPattern::ParseResult expected_result_ignore_ports;
51 URLPattern::ParseResult expected_result_use_ports; 50 URLPattern::ParseResult expected_result_use_ports;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 "*", "*", "*" }, 95 "*", "*", "*" },
97 { "http://*.foo/bar:1234", URLPattern::PARSE_SUCCESS, 96 { "http://*.foo/bar:1234", URLPattern::PARSE_SUCCESS,
98 URLPattern::PARSE_SUCCESS, URLPattern::PARSE_SUCCESS, 97 URLPattern::PARSE_SUCCESS, URLPattern::PARSE_SUCCESS,
99 "*.foo", "*.foo", "*" }, 98 "*.foo", "*.foo", "*" },
100 { "http://foo/bar:1234/path", URLPattern::PARSE_SUCCESS, 99 { "http://foo/bar:1234/path", URLPattern::PARSE_SUCCESS,
101 URLPattern::PARSE_SUCCESS, URLPattern::PARSE_SUCCESS, 100 URLPattern::PARSE_SUCCESS, URLPattern::PARSE_SUCCESS,
102 "foo", "foo", "*" }, 101 "foo", "foo", "*" },
103 }; 102 };
104 103
105 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) { 104 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestPatterns); ++i) {
106 URLPattern use_ports_pattern(URLPattern::SCHEME_ALL); 105 URLPattern use_ports_pattern(URLPattern::USE_PORTS, URLPattern::SCHEME_ALL);
107 // Check results with |USE_PORTS|. 106 // Check results with |USE_PORTS|.
108 EXPECT_EQ(kTestPatterns[i].expected_result_use_ports, 107 EXPECT_EQ(kTestPatterns[i].expected_result_use_ports,
109 use_ports_pattern.Parse(kTestPatterns[i].pattern, 108 use_ports_pattern.Parse(kTestPatterns[i].pattern))
110 URLPattern::USE_PORTS))
111 << "Got unexpected result for URL pattern: " 109 << "Got unexpected result for URL pattern: "
112 << kTestPatterns[i].pattern; 110 << kTestPatterns[i].pattern;
113 EXPECT_EQ(kTestPatterns[i].expected_port, use_ports_pattern.port()) 111 EXPECT_EQ(kTestPatterns[i].expected_port, use_ports_pattern.port())
114 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern; 112 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern;
115 113
116 URLPattern ignore_ports_pattern(URLPattern::SCHEME_ALL); 114 URLPattern ignore_ports_pattern(URLPattern::IGNORE_PORTS,
115 URLPattern::SCHEME_ALL);
117 // Check results with |IGNORE_PORTS|. 116 // Check results with |IGNORE_PORTS|.
118 EXPECT_EQ(kTestPatterns[i].expected_result_ignore_ports, 117 EXPECT_EQ(kTestPatterns[i].expected_result_ignore_ports,
119 ignore_ports_pattern.Parse(kTestPatterns[i].pattern, 118 ignore_ports_pattern.Parse(kTestPatterns[i].pattern))
120 URLPattern::IGNORE_PORTS))
121 << "Got unexpected result for URL pattern: " 119 << "Got unexpected result for URL pattern: "
122 << kTestPatterns[i].pattern; 120 << kTestPatterns[i].pattern;
123 EXPECT_EQ("*", ignore_ports_pattern.port()) 121 EXPECT_EQ("*", ignore_ports_pattern.port())
124 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern; 122 << "Got unexpected port for URL pattern: " << kTestPatterns[i].pattern;
125 123
126 URLPattern error_on_ports_pattern(URLPattern::SCHEME_ALL); 124 URLPattern error_on_ports_pattern(URLPattern::ERROR_ON_PORTS,
125 URLPattern::SCHEME_ALL);
127 // Check results with |ERROR_ON_PORTS|. 126 // Check results with |ERROR_ON_PORTS|.
128 EXPECT_EQ(kTestPatterns[i].expected_result_error_on_ports, 127 EXPECT_EQ(kTestPatterns[i].expected_result_error_on_ports,
129 error_on_ports_pattern.Parse(kTestPatterns[i].pattern, 128 error_on_ports_pattern.Parse(kTestPatterns[i].pattern))
130 URLPattern::ERROR_ON_PORTS))
131 << "Got unexpected result for URL pattern: " 129 << "Got unexpected result for URL pattern: "
132 << kTestPatterns[i].pattern; 130 << kTestPatterns[i].pattern;
133 } 131 }
134 }; 132 };
135 133
136 // all pages for a given scheme 134 // all pages for a given scheme
137 TEST(ExtensionURLPatternTest, Match1) { 135 TEST(ExtensionURLPatternTest, Match1) {
138 URLPattern pattern(kAllSchemes); 136 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
139 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 137 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*/*"));
140 pattern.Parse("http://*/*", URLPattern::ERROR_ON_PORTS));
141 EXPECT_EQ("http", pattern.scheme()); 138 EXPECT_EQ("http", pattern.scheme());
142 EXPECT_EQ("", pattern.host()); 139 EXPECT_EQ("", pattern.host());
143 EXPECT_TRUE(pattern.match_subdomains()); 140 EXPECT_TRUE(pattern.match_subdomains());
144 EXPECT_FALSE(pattern.match_all_urls()); 141 EXPECT_FALSE(pattern.match_all_urls());
145 EXPECT_EQ("/*", pattern.path()); 142 EXPECT_EQ("/*", pattern.path());
146 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com"))); 143 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com")));
147 EXPECT_TRUE(pattern.MatchesURL(GURL("http://yahoo.com"))); 144 EXPECT_TRUE(pattern.MatchesURL(GURL("http://yahoo.com")));
148 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foo"))); 145 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foo")));
149 EXPECT_FALSE(pattern.MatchesURL(GURL("https://google.com"))); 146 EXPECT_FALSE(pattern.MatchesURL(GURL("https://google.com")));
150 EXPECT_TRUE(pattern.MatchesURL(GURL("http://74.125.127.100/search"))); 147 EXPECT_TRUE(pattern.MatchesURL(GURL("http://74.125.127.100/search")));
151 } 148 }
152 149
153 // all domains 150 // all domains
154 TEST(ExtensionURLPatternTest, Match2) { 151 TEST(ExtensionURLPatternTest, Match2) {
155 URLPattern pattern(kAllSchemes); 152 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
156 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 153 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("https://*/foo*"));
157 pattern.Parse("https://*/foo*", URLPattern::ERROR_ON_PORTS));
158 EXPECT_EQ("https", pattern.scheme()); 154 EXPECT_EQ("https", pattern.scheme());
159 EXPECT_EQ("", pattern.host()); 155 EXPECT_EQ("", pattern.host());
160 EXPECT_TRUE(pattern.match_subdomains()); 156 EXPECT_TRUE(pattern.match_subdomains());
161 EXPECT_FALSE(pattern.match_all_urls()); 157 EXPECT_FALSE(pattern.match_all_urls());
162 EXPECT_EQ("/foo*", pattern.path()); 158 EXPECT_EQ("/foo*", pattern.path());
163 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foo"))); 159 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foo")));
164 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foobar"))); 160 EXPECT_TRUE(pattern.MatchesURL(GURL("https://www.google.com/foobar")));
165 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.google.com/foo"))); 161 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.google.com/foo")));
166 EXPECT_FALSE(pattern.MatchesURL(GURL("https://www.google.com/"))); 162 EXPECT_FALSE(pattern.MatchesURL(GURL("https://www.google.com/")));
167 } 163 }
168 164
169 // subdomains 165 // subdomains
170 TEST(URLPatternTest, Match3) { 166 TEST(URLPatternTest, Match3) {
171 URLPattern pattern(kAllSchemes); 167 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
172 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 168 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
173 pattern.Parse("http://*.google.com/foo*bar", 169 pattern.Parse("http://*.google.com/foo*bar"));
174 URLPattern::ERROR_ON_PORTS));
175 EXPECT_EQ("http", pattern.scheme()); 170 EXPECT_EQ("http", pattern.scheme());
176 EXPECT_EQ("google.com", pattern.host()); 171 EXPECT_EQ("google.com", pattern.host());
177 EXPECT_TRUE(pattern.match_subdomains()); 172 EXPECT_TRUE(pattern.match_subdomains());
178 EXPECT_FALSE(pattern.match_all_urls()); 173 EXPECT_FALSE(pattern.match_all_urls());
179 EXPECT_EQ("/foo*bar", pattern.path()); 174 EXPECT_EQ("/foo*bar", pattern.path());
180 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foobar"))); 175 EXPECT_TRUE(pattern.MatchesURL(GURL("http://google.com/foobar")));
181 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.google.com/foo?bar"))); 176 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.google.com/foo?bar")));
182 EXPECT_TRUE(pattern.MatchesURL( 177 EXPECT_TRUE(pattern.MatchesURL(
183 GURL("http://monkey.images.google.com/foooobar"))); 178 GURL("http://monkey.images.google.com/foooobar")));
184 EXPECT_FALSE(pattern.MatchesURL(GURL("http://yahoo.com/foobar"))); 179 EXPECT_FALSE(pattern.MatchesURL(GURL("http://yahoo.com/foobar")));
185 } 180 }
186 181
187 // glob escaping 182 // glob escaping
188 TEST(ExtensionURLPatternTest, Match5) { 183 TEST(ExtensionURLPatternTest, Match5) {
189 URLPattern pattern(kAllSchemes); 184 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
190 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 185 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo?bar\\*baz"));
191 pattern.Parse("file:///foo?bar\\*baz", URLPattern::ERROR_ON_PORTS));
192 EXPECT_EQ("file", pattern.scheme()); 186 EXPECT_EQ("file", pattern.scheme());
193 EXPECT_EQ("", pattern.host()); 187 EXPECT_EQ("", pattern.host());
194 EXPECT_FALSE(pattern.match_subdomains()); 188 EXPECT_FALSE(pattern.match_subdomains());
195 EXPECT_FALSE(pattern.match_all_urls()); 189 EXPECT_FALSE(pattern.match_all_urls());
196 EXPECT_EQ("/foo?bar\\*baz", pattern.path()); 190 EXPECT_EQ("/foo?bar\\*baz", pattern.path());
197 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo?bar\\hellobaz"))); 191 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo?bar\\hellobaz")));
198 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///fooXbar\\hellobaz"))); 192 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///fooXbar\\hellobaz")));
199 } 193 }
200 194
201 // ip addresses 195 // ip addresses
202 TEST(ExtensionURLPatternTest, Match6) { 196 TEST(ExtensionURLPatternTest, Match6) {
203 URLPattern pattern(kAllSchemes); 197 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
204 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 198 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://127.0.0.1/*"));
205 pattern.Parse("http://127.0.0.1/*", URLPattern::ERROR_ON_PORTS));
206 EXPECT_EQ("http", pattern.scheme()); 199 EXPECT_EQ("http", pattern.scheme());
207 EXPECT_EQ("127.0.0.1", pattern.host()); 200 EXPECT_EQ("127.0.0.1", pattern.host());
208 EXPECT_FALSE(pattern.match_subdomains()); 201 EXPECT_FALSE(pattern.match_subdomains());
209 EXPECT_FALSE(pattern.match_all_urls()); 202 EXPECT_FALSE(pattern.match_all_urls());
210 EXPECT_EQ("/*", pattern.path()); 203 EXPECT_EQ("/*", pattern.path());
211 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); 204 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1")));
212 } 205 }
213 206
214 // subdomain matching with ip addresses 207 // subdomain matching with ip addresses
215 TEST(ExtensionURLPatternTest, Match7) { 208 TEST(ExtensionURLPatternTest, Match7) {
216 URLPattern pattern(kAllSchemes); 209 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
217 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 210 // allowed, but useless
218 pattern.Parse("http://*.0.0.1/*", 211 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("http://*.0.0.1/*"));
219 URLPattern::ERROR_ON_PORTS)); // allowed, but useless
220 EXPECT_EQ("http", pattern.scheme()); 212 EXPECT_EQ("http", pattern.scheme());
221 EXPECT_EQ("0.0.1", pattern.host()); 213 EXPECT_EQ("0.0.1", pattern.host());
222 EXPECT_TRUE(pattern.match_subdomains()); 214 EXPECT_TRUE(pattern.match_subdomains());
223 EXPECT_FALSE(pattern.match_all_urls()); 215 EXPECT_FALSE(pattern.match_all_urls());
224 EXPECT_EQ("/*", pattern.path()); 216 EXPECT_EQ("/*", pattern.path());
225 // Subdomain matching is never done if the argument has an IP address host. 217 // Subdomain matching is never done if the argument has an IP address host.
226 EXPECT_FALSE(pattern.MatchesURL(GURL("http://127.0.0.1"))); 218 EXPECT_FALSE(pattern.MatchesURL(GURL("http://127.0.0.1")));
227 }; 219 };
228 220
229 // unicode 221 // unicode
230 TEST(ExtensionURLPatternTest, Match8) { 222 TEST(ExtensionURLPatternTest, Match8) {
231 URLPattern pattern(kAllSchemes); 223 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
232 // The below is the ASCII encoding of the following URL: 224 // The below is the ASCII encoding of the following URL:
233 // http://*.\xe1\x80\xbf/a\xc2\x81\xe1* 225 // http://*.\xe1\x80\xbf/a\xc2\x81\xe1*
234 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 226 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
235 pattern.Parse("http://*.xn--gkd/a%C2%81%E1*", 227 pattern.Parse("http://*.xn--gkd/a%C2%81%E1*"));
236 URLPattern::ERROR_ON_PORTS));
237 EXPECT_EQ("http", pattern.scheme()); 228 EXPECT_EQ("http", pattern.scheme());
238 EXPECT_EQ("xn--gkd", pattern.host()); 229 EXPECT_EQ("xn--gkd", pattern.host());
239 EXPECT_TRUE(pattern.match_subdomains()); 230 EXPECT_TRUE(pattern.match_subdomains());
240 EXPECT_FALSE(pattern.match_all_urls()); 231 EXPECT_FALSE(pattern.match_all_urls());
241 EXPECT_EQ("/a%C2%81%E1*", pattern.path()); 232 EXPECT_EQ("/a%C2%81%E1*", pattern.path());
242 EXPECT_TRUE(pattern.MatchesURL( 233 EXPECT_TRUE(pattern.MatchesURL(
243 GURL("http://abc.\xe1\x80\xbf/a\xc2\x81\xe1xyz"))); 234 GURL("http://abc.\xe1\x80\xbf/a\xc2\x81\xe1xyz")));
244 EXPECT_TRUE(pattern.MatchesURL( 235 EXPECT_TRUE(pattern.MatchesURL(
245 GURL("http://\xe1\x80\xbf/a\xc2\x81\xe1\xe1"))); 236 GURL("http://\xe1\x80\xbf/a\xc2\x81\xe1\xe1")));
246 }; 237 };
247 238
248 // chrome:// 239 // chrome://
249 TEST(ExtensionURLPatternTest, Match9) { 240 TEST(ExtensionURLPatternTest, Match9) {
250 URLPattern pattern(kAllSchemes); 241 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
251 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 242 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("chrome://favicon/*"));
252 pattern.Parse("chrome://favicon/*", URLPattern::ERROR_ON_PORTS));
253 EXPECT_EQ("chrome", pattern.scheme()); 243 EXPECT_EQ("chrome", pattern.scheme());
254 EXPECT_EQ("favicon", pattern.host()); 244 EXPECT_EQ("favicon", pattern.host());
255 EXPECT_FALSE(pattern.match_subdomains()); 245 EXPECT_FALSE(pattern.match_subdomains());
256 EXPECT_FALSE(pattern.match_all_urls()); 246 EXPECT_FALSE(pattern.match_all_urls());
257 EXPECT_EQ("/*", pattern.path()); 247 EXPECT_EQ("/*", pattern.path());
258 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); 248 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com")));
259 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/https://google.com"))); 249 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/https://google.com")));
260 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://history"))); 250 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://history")));
261 }; 251 };
262 252
263 // *:// 253 // *://
264 TEST(ExtensionURLPatternTest, Match10) { 254 TEST(ExtensionURLPatternTest, Match10) {
265 URLPattern pattern(kAllSchemes); 255 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
266 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 256 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("*://*/*"));
267 pattern.Parse("*://*/*", URLPattern::ERROR_ON_PORTS));
268 EXPECT_TRUE(pattern.MatchesScheme("http")); 257 EXPECT_TRUE(pattern.MatchesScheme("http"));
269 EXPECT_TRUE(pattern.MatchesScheme("https")); 258 EXPECT_TRUE(pattern.MatchesScheme("https"));
270 EXPECT_FALSE(pattern.MatchesScheme("chrome")); 259 EXPECT_FALSE(pattern.MatchesScheme("chrome"));
271 EXPECT_FALSE(pattern.MatchesScheme("file")); 260 EXPECT_FALSE(pattern.MatchesScheme("file"));
272 EXPECT_FALSE(pattern.MatchesScheme("ftp")); 261 EXPECT_FALSE(pattern.MatchesScheme("ftp"));
273 EXPECT_TRUE(pattern.match_subdomains()); 262 EXPECT_TRUE(pattern.match_subdomains());
274 EXPECT_FALSE(pattern.match_all_urls()); 263 EXPECT_FALSE(pattern.match_all_urls());
275 EXPECT_EQ("/*", pattern.path()); 264 EXPECT_EQ("/*", pattern.path());
276 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); 265 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1")));
277 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); 266 EXPECT_FALSE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com")));
278 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///foo/bar"))); 267 EXPECT_FALSE(pattern.MatchesURL(GURL("file:///foo/bar")));
279 EXPECT_FALSE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); 268 EXPECT_FALSE(pattern.MatchesURL(GURL("file://localhost/foo/bar")));
280 }; 269 };
281 270
282 // <all_urls> 271 // <all_urls>
283 TEST(ExtensionURLPatternTest, Match11) { 272 TEST(ExtensionURLPatternTest, Match11) {
284 URLPattern pattern(kAllSchemes); 273 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
285 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 274 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>"));
286 pattern.Parse("<all_urls>", URLPattern::ERROR_ON_PORTS));
287 EXPECT_TRUE(pattern.MatchesScheme("chrome")); 275 EXPECT_TRUE(pattern.MatchesScheme("chrome"));
288 EXPECT_TRUE(pattern.MatchesScheme("http")); 276 EXPECT_TRUE(pattern.MatchesScheme("http"));
289 EXPECT_TRUE(pattern.MatchesScheme("https")); 277 EXPECT_TRUE(pattern.MatchesScheme("https"));
290 EXPECT_TRUE(pattern.MatchesScheme("file")); 278 EXPECT_TRUE(pattern.MatchesScheme("file"));
291 EXPECT_TRUE(pattern.match_subdomains()); 279 EXPECT_TRUE(pattern.match_subdomains());
292 EXPECT_TRUE(pattern.match_all_urls()); 280 EXPECT_TRUE(pattern.match_all_urls());
293 EXPECT_EQ("/*", pattern.path()); 281 EXPECT_EQ("/*", pattern.path());
294 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com"))); 282 EXPECT_TRUE(pattern.MatchesURL(GURL("chrome://favicon/http://google.com")));
295 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1"))); 283 EXPECT_TRUE(pattern.MatchesURL(GURL("http://127.0.0.1")));
296 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar"))); 284 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo/bar")));
297 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar"))); 285 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo/bar")));
298 286
299 // Make sure the properties are the same when creating an <all_urls> pattern 287 // Make sure the properties are the same when creating an <all_urls> pattern
300 // via SetMatchAllURLs and by parsing <all_urls>. 288 // via SetMatchAllURLs and by parsing <all_urls>.
301 URLPattern pattern2(kAllSchemes); 289 URLPattern pattern2(URLPattern::ERROR_ON_PORTS, kAllSchemes);
302 pattern2.SetMatchAllURLs(true); 290 pattern2.SetMatchAllURLs(true);
303 291
304 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes()); 292 EXPECT_EQ(pattern.valid_schemes(), pattern2.valid_schemes());
305 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains()); 293 EXPECT_EQ(pattern.match_subdomains(), pattern2.match_subdomains());
306 EXPECT_EQ(pattern.path(), pattern2.path()); 294 EXPECT_EQ(pattern.path(), pattern2.path());
307 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls()); 295 EXPECT_EQ(pattern.match_all_urls(), pattern2.match_all_urls());
308 EXPECT_EQ(pattern.scheme(), pattern2.scheme()); 296 EXPECT_EQ(pattern.scheme(), pattern2.scheme());
309 EXPECT_EQ(pattern.port(), pattern2.port()); 297 EXPECT_EQ(pattern.port(), pattern2.port());
310 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString()); 298 EXPECT_EQ(pattern.GetAsString(), pattern2.GetAsString());
311 }; 299 };
312 300
313 // SCHEME_ALL matches all schemes. 301 // SCHEME_ALL matches all schemes.
314 TEST(ExtensionURLPatternTest, Match12) { 302 TEST(ExtensionURLPatternTest, Match12) {
315 URLPattern pattern(URLPattern::SCHEME_ALL); 303 URLPattern pattern(URLPattern::ERROR_ON_PORTS, URLPattern::SCHEME_ALL);
316 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 304 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("<all_urls>"));
317 pattern.Parse("<all_urls>", URLPattern::ERROR_ON_PORTS));
318 EXPECT_TRUE(pattern.MatchesScheme("chrome")); 305 EXPECT_TRUE(pattern.MatchesScheme("chrome"));
319 EXPECT_TRUE(pattern.MatchesScheme("http")); 306 EXPECT_TRUE(pattern.MatchesScheme("http"));
320 EXPECT_TRUE(pattern.MatchesScheme("https")); 307 EXPECT_TRUE(pattern.MatchesScheme("https"));
321 EXPECT_TRUE(pattern.MatchesScheme("file")); 308 EXPECT_TRUE(pattern.MatchesScheme("file"));
322 EXPECT_TRUE(pattern.MatchesScheme("javascript")); 309 EXPECT_TRUE(pattern.MatchesScheme("javascript"));
323 EXPECT_TRUE(pattern.MatchesScheme("data")); 310 EXPECT_TRUE(pattern.MatchesScheme("data"));
324 EXPECT_TRUE(pattern.MatchesScheme("about")); 311 EXPECT_TRUE(pattern.MatchesScheme("about"));
325 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension")); 312 EXPECT_TRUE(pattern.MatchesScheme("chrome-extension"));
326 EXPECT_TRUE(pattern.match_subdomains()); 313 EXPECT_TRUE(pattern.match_subdomains());
327 EXPECT_TRUE(pattern.match_all_urls()); 314 EXPECT_TRUE(pattern.match_all_urls());
(...skipping 17 matching lines...) Expand all
345 {"about:blank", "about:blank"}, 332 {"about:blank", "about:blank"},
346 {"about:*", "about:version"}, 333 {"about:*", "about:version"},
347 {"chrome-extension://*/*", "chrome-extension://FTW"}, 334 {"chrome-extension://*/*", "chrome-extension://FTW"},
348 {"data:*", "data:monkey"}, 335 {"data:*", "data:monkey"},
349 {"javascript:*", "javascript:atemyhomework"}, 336 {"javascript:*", "javascript:atemyhomework"},
350 }; 337 };
351 338
352 // SCHEME_ALL and specific schemes. 339 // SCHEME_ALL and specific schemes.
353 TEST(ExtensionURLPatternTest, Match13) { 340 TEST(ExtensionURLPatternTest, Match13) {
354 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) { 341 for (size_t i = 0; i < arraysize(kMatch13UrlPatternTestCases); ++i) {
355 URLPattern pattern(URLPattern::SCHEME_ALL); 342 URLPattern pattern(URLPattern::ERROR_ON_PORTS, URLPattern::SCHEME_ALL);
356 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 343 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
357 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern, 344 pattern.Parse(kMatch13UrlPatternTestCases[i].pattern))
358 URLPattern::ERROR_ON_PORTS))
359 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern; 345 << " while parsing " << kMatch13UrlPatternTestCases[i].pattern;
360 EXPECT_TRUE(pattern.MatchesURL( 346 EXPECT_TRUE(pattern.MatchesURL(
361 GURL(kMatch13UrlPatternTestCases[i].matches))) 347 GURL(kMatch13UrlPatternTestCases[i].matches)))
362 << " while matching " << kMatch13UrlPatternTestCases[i].matches; 348 << " while matching " << kMatch13UrlPatternTestCases[i].matches;
363 } 349 }
364 350
365 // Negative test. 351 // Negative test.
366 URLPattern pattern(URLPattern::SCHEME_ALL); 352 URLPattern pattern(URLPattern::ERROR_ON_PORTS, URLPattern::SCHEME_ALL);
367 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 353 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("data:*"));
368 pattern.Parse("data:*", URLPattern::ERROR_ON_PORTS));
369 EXPECT_FALSE(pattern.MatchesURL(GURL("about:blank"))); 354 EXPECT_FALSE(pattern.MatchesURL(GURL("about:blank")));
370 }; 355 };
371 356
372 // file scheme with empty hostname 357 // file scheme with empty hostname
373 TEST(ExtensionURLPatternTest, Match14) { 358 TEST(ExtensionURLPatternTest, Match14) {
374 URLPattern pattern(kAllSchemes); 359 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
375 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 360 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file:///foo*"));
376 pattern.Parse("file:///foo*", URLPattern::ERROR_ON_PORTS));
377 EXPECT_EQ("file", pattern.scheme()); 361 EXPECT_EQ("file", pattern.scheme());
378 EXPECT_EQ("", pattern.host()); 362 EXPECT_EQ("", pattern.host());
379 EXPECT_FALSE(pattern.match_subdomains()); 363 EXPECT_FALSE(pattern.match_subdomains());
380 EXPECT_FALSE(pattern.match_all_urls()); 364 EXPECT_FALSE(pattern.match_all_urls());
381 EXPECT_EQ("/foo*", pattern.path()); 365 EXPECT_EQ("/foo*", pattern.path());
382 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo"))); 366 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo")));
383 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar"))); 367 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar")));
384 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo"))); 368 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo")));
385 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar"))); 369 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar")));
386 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo"))); 370 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo")));
387 } 371 }
388 372
389 // file scheme without hostname part 373 // file scheme without hostname part
390 TEST(ExtensionURLPatternTest, Match15) { 374 TEST(ExtensionURLPatternTest, Match15) {
391 URLPattern pattern(kAllSchemes); 375 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
392 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 376 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file://foo*"));
393 pattern.Parse("file://foo*", URLPattern::ERROR_ON_PORTS));
394 EXPECT_EQ("file", pattern.scheme()); 377 EXPECT_EQ("file", pattern.scheme());
395 EXPECT_EQ("", pattern.host()); 378 EXPECT_EQ("", pattern.host());
396 EXPECT_FALSE(pattern.match_subdomains()); 379 EXPECT_FALSE(pattern.match_subdomains());
397 EXPECT_FALSE(pattern.match_all_urls()); 380 EXPECT_FALSE(pattern.match_all_urls());
398 EXPECT_EQ("/foo*", pattern.path()); 381 EXPECT_EQ("/foo*", pattern.path());
399 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo"))); 382 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo")));
400 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar"))); 383 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar")));
401 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo"))); 384 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo")));
402 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar"))); 385 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar")));
403 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo"))); 386 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo")));
404 } 387 }
405 388
406 // file scheme with hostname 389 // file scheme with hostname
407 TEST(ExtensionURLPatternTest, Match16) { 390 TEST(ExtensionURLPatternTest, Match16) {
408 URLPattern pattern(kAllSchemes); 391 URLPattern pattern(URLPattern::ERROR_ON_PORTS, kAllSchemes);
409 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 392 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern.Parse("file://localhost/foo*"));
410 pattern.Parse("file://localhost/foo*", URLPattern::ERROR_ON_PORTS));
411 EXPECT_EQ("file", pattern.scheme()); 393 EXPECT_EQ("file", pattern.scheme());
412 // Since hostname is ignored for file://. 394 // Since hostname is ignored for file://.
413 EXPECT_EQ("", pattern.host()); 395 EXPECT_EQ("", pattern.host());
414 EXPECT_FALSE(pattern.match_subdomains()); 396 EXPECT_FALSE(pattern.match_subdomains());
415 EXPECT_FALSE(pattern.match_all_urls()); 397 EXPECT_FALSE(pattern.match_all_urls());
416 EXPECT_EQ("/foo*", pattern.path()); 398 EXPECT_EQ("/foo*", pattern.path());
417 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo"))); 399 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foo")));
418 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar"))); 400 EXPECT_FALSE(pattern.MatchesURL(GURL("file://foobar")));
419 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo"))); 401 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foo")));
420 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar"))); 402 EXPECT_TRUE(pattern.MatchesURL(GURL("file:///foobar")));
421 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo"))); 403 EXPECT_TRUE(pattern.MatchesURL(GURL("file://localhost/foo")));
422 } 404 }
423 405
424 // Specific port 406 // Specific port
425 TEST(ExtensionURLPatternTest, Match17) { 407 TEST(ExtensionURLPatternTest, Match17) {
426 URLPattern pattern(kAllSchemes); 408 URLPattern pattern(URLPattern::USE_PORTS, kAllSchemes);
427 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 409 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
428 pattern.Parse("http://www.example.com:80/foo", 410 pattern.Parse("http://www.example.com:80/foo"));
429 URLPattern::USE_PORTS));
430 EXPECT_EQ("http", pattern.scheme()); 411 EXPECT_EQ("http", pattern.scheme());
431 EXPECT_EQ("www.example.com", pattern.host()); 412 EXPECT_EQ("www.example.com", pattern.host());
432 EXPECT_FALSE(pattern.match_subdomains()); 413 EXPECT_FALSE(pattern.match_subdomains());
433 EXPECT_FALSE(pattern.match_all_urls()); 414 EXPECT_FALSE(pattern.match_all_urls());
434 EXPECT_EQ("/foo", pattern.path()); 415 EXPECT_EQ("/foo", pattern.path());
435 EXPECT_EQ("80", pattern.port()); 416 EXPECT_EQ("80", pattern.port());
436 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); 417 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo")));
437 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); 418 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo")));
438 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); 419 EXPECT_FALSE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo")));
439 } 420 }
440 421
441 // Explicit port wildcard 422 // Explicit port wildcard
442 TEST(ExtensionURLPatternTest, Match18) { 423 TEST(ExtensionURLPatternTest, Match18) {
443 URLPattern pattern(kAllSchemes); 424 URLPattern pattern(URLPattern::USE_PORTS, kAllSchemes);
444 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 425 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
445 pattern.Parse("http://www.example.com:*/foo", 426 pattern.Parse("http://www.example.com:*/foo"));
446 URLPattern::USE_PORTS));
447 EXPECT_EQ("http", pattern.scheme()); 427 EXPECT_EQ("http", pattern.scheme());
448 EXPECT_EQ("www.example.com", pattern.host()); 428 EXPECT_EQ("www.example.com", pattern.host());
449 EXPECT_FALSE(pattern.match_subdomains()); 429 EXPECT_FALSE(pattern.match_subdomains());
450 EXPECT_FALSE(pattern.match_all_urls()); 430 EXPECT_FALSE(pattern.match_all_urls());
451 EXPECT_EQ("/foo", pattern.path()); 431 EXPECT_EQ("/foo", pattern.path());
452 EXPECT_EQ("*", pattern.port()); 432 EXPECT_EQ("*", pattern.port());
453 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo"))); 433 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:80/foo")));
454 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo"))); 434 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com/foo")));
455 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo"))); 435 EXPECT_TRUE(pattern.MatchesURL(GURL("http://www.example.com:8080/foo")));
456 } 436 }
(...skipping 11 matching lines...) Expand all
468 { "chrome-extension://FTW/" }, 448 { "chrome-extension://FTW/" },
469 { "data:*" }, 449 { "data:*" },
470 { "data:monkey" }, 450 { "data:monkey" },
471 { "javascript:*" }, 451 { "javascript:*" },
472 { "javascript:atemyhomework" }, 452 { "javascript:atemyhomework" },
473 { "http://www.example.com:8080/foo" }, 453 { "http://www.example.com:8080/foo" },
474 }; 454 };
475 455
476 TEST(ExtensionURLPatternTest, GetAsString) { 456 TEST(ExtensionURLPatternTest, GetAsString) {
477 for (size_t i = 0; i < arraysize(kGetAsStringTestCases); ++i) { 457 for (size_t i = 0; i < arraysize(kGetAsStringTestCases); ++i) {
478 URLPattern pattern1(URLPattern::SCHEME_ALL); 458 URLPattern pattern1(URLPattern::USE_PORTS, URLPattern::SCHEME_ALL);
479 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 459 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
480 pattern1.Parse(kGetAsStringTestCases[i].pattern, 460 pattern1.Parse(kGetAsStringTestCases[i].pattern))
481 URLPattern::USE_PORTS))
482 << "Error parsing " << kGetAsStringTestCases[i].pattern; 461 << "Error parsing " << kGetAsStringTestCases[i].pattern;
483 EXPECT_EQ(kGetAsStringTestCases[i].pattern, 462 EXPECT_EQ(kGetAsStringTestCases[i].pattern,
484 pattern1.GetAsString()); 463 pattern1.GetAsString());
485 URLPattern pattern2(URLPattern::SCHEME_ALL);
486 464
465 URLPattern pattern2(URLPattern::IGNORE_PORTS, URLPattern::SCHEME_ALL);
487 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 466 EXPECT_EQ(URLPattern::PARSE_SUCCESS,
488 pattern2.Parse(kGetAsStringTestCases[i].pattern, 467 pattern2.Parse(kGetAsStringTestCases[i].pattern))
489 URLPattern::IGNORE_PORTS))
490 << "Error parsing " << kGetAsStringTestCases[i].pattern; 468 << "Error parsing " << kGetAsStringTestCases[i].pattern;
491 EXPECT_EQ(kGetAsStringTestCases[i].pattern, 469 EXPECT_EQ(kGetAsStringTestCases[i].pattern,
492 pattern2.GetAsString()); 470 pattern2.GetAsString());
493 } 471 }
494 } 472 }
495 473
496 void TestPatternOverlap(const URLPattern& pattern1, const URLPattern& pattern2, 474 void TestPatternOverlap(const URLPattern& pattern1, const URLPattern& pattern2,
497 bool expect_overlap) { 475 bool expect_overlap) {
498 EXPECT_EQ(expect_overlap, pattern1.OverlapsWith(pattern2)) 476 EXPECT_EQ(expect_overlap, pattern1.OverlapsWith(pattern2))
499 << pattern1.GetAsString() << ", " << pattern2.GetAsString(); 477 << pattern1.GetAsString() << ", " << pattern2.GetAsString();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 EXPECT_EQ("http://google.com/foo", all_schemes[0].GetAsString()); 552 EXPECT_EQ("http://google.com/foo", all_schemes[0].GetAsString());
575 EXPECT_EQ("https://google.com/foo", all_schemes[1].GetAsString()); 553 EXPECT_EQ("https://google.com/foo", all_schemes[1].GetAsString());
576 554
577 EXPECT_EQ("http://google.com/monkey", monkey[0].GetAsString()); 555 EXPECT_EQ("http://google.com/monkey", monkey[0].GetAsString());
578 } 556 }
579 557
580 TEST(ExtensionURLPatternTest, IgnorePorts) { 558 TEST(ExtensionURLPatternTest, IgnorePorts) {
581 std::string pattern_str = "http://www.example.com:8080/foo"; 559 std::string pattern_str = "http://www.example.com:8080/foo";
582 GURL url("http://www.example.com:1234/foo"); 560 GURL url("http://www.example.com:1234/foo");
583 561
584 URLPattern pattern1(kAllSchemes); 562 URLPattern pattern1(URLPattern::IGNORE_PORTS, kAllSchemes);
585 URLPattern pattern2(kAllSchemes); 563 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern1.Parse(pattern_str));
586 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 564
587 pattern1.Parse(pattern_str, URLPattern::IGNORE_PORTS)); 565 URLPattern pattern2(URLPattern::USE_PORTS, kAllSchemes);
588 EXPECT_EQ(URLPattern::PARSE_SUCCESS, 566 EXPECT_EQ(URLPattern::PARSE_SUCCESS, pattern2.Parse(pattern_str));
589 pattern2.Parse(pattern_str, URLPattern::USE_PORTS));
590 567
591 EXPECT_EQ(pattern_str, pattern1.GetAsString()); 568 EXPECT_EQ(pattern_str, pattern1.GetAsString());
592 EXPECT_EQ(pattern_str, pattern2.GetAsString()); 569 EXPECT_EQ(pattern_str, pattern2.GetAsString());
593 EXPECT_FALSE(pattern1.MatchesURL(url)); 570 EXPECT_FALSE(pattern1.MatchesURL(url));
594 EXPECT_FALSE(pattern2.MatchesURL(url)); 571 EXPECT_FALSE(pattern2.MatchesURL(url));
595 } 572 }
596 573
597 TEST(ExtensionURLPatternTest, Equals) { 574 TEST(ExtensionURLPatternTest, Equals) {
598 const struct { 575 const struct {
599 const char* pattern1; 576 const char* pattern1;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 "http://*/*", 648 "http://*/*",
672 false 649 false
673 } 650 }
674 }; 651 };
675 652
676 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEqualsTestCases); ++i) { 653 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEqualsTestCases); ++i) {
677 std::string message = kEqualsTestCases[i].pattern1; 654 std::string message = kEqualsTestCases[i].pattern1;
678 message += " "; 655 message += " ";
679 message += kEqualsTestCases[i].pattern2; 656 message += kEqualsTestCases[i].pattern2;
680 657
681 URLPattern pattern1(URLPattern::SCHEME_ALL); 658 URLPattern pattern1(URLPattern::USE_PORTS, URLPattern::SCHEME_ALL);
682 URLPattern pattern2(URLPattern::SCHEME_ALL); 659 URLPattern pattern2(URLPattern::USE_PORTS, URLPattern::SCHEME_ALL);
683 660
684 pattern1.Parse(kEqualsTestCases[i].pattern1, URLPattern::USE_PORTS); 661 pattern1.Parse(kEqualsTestCases[i].pattern1);
685 pattern2.Parse(kEqualsTestCases[i].pattern2, URLPattern::USE_PORTS); 662 pattern2.Parse(kEqualsTestCases[i].pattern2);
686 EXPECT_EQ(kEqualsTestCases[i].expected_equal, pattern1 == pattern2) 663 EXPECT_EQ(kEqualsTestCases[i].expected_equal, pattern1 == pattern2)
687 << message; 664 << message;
688 } 665 }
689 } 666 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/url_pattern.cc ('k') | chrome/common/extensions/user_script.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698