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

Side by Side Diff: components/url_formatter/url_fixer_unittest.cc

Issue 2378213002: Mark URLs with empty schemes as invalid. (Closed)
Patch Set: Comments Created 4 years, 2 months 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
« no previous file with comments | « components/url_formatter/url_fixer.cc ('k') | url/gurl_unittest.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 <stddef.h> 5 #include <stddef.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 7
8 #include "base/base_paths.h" 8 #include "base/base_paths.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 { "http://:b005::68]", "http", 175 { "http://:b005::68]", "http",
176 url::Component(0, 4), // scheme 176 url::Component(0, 4), // scheme
177 url::Component(), // username 177 url::Component(), // username
178 url::Component(), // password 178 url::Component(), // password
179 url::Component(7, 10), // host 179 url::Component(7, 10), // host
180 url::Component(), // port 180 url::Component(), // port
181 url::Component(), // path 181 url::Component(), // path
182 url::Component(), // query 182 url::Component(), // query
183 url::Component(), // ref 183 url::Component(), // ref
184 }, 184 },
185 // Can't do anything useful with this. 185 { ":b005::68]", "http",
186 { ":b005::68]", "", 186 url::Component(), // scheme
187 url::Component(0, 0), // scheme
188 url::Component(), // username 187 url::Component(), // username
189 url::Component(), // password 188 url::Component(), // password
190 url::Component(), // host 189 url::Component(1, 9), // host
191 url::Component(), // port 190 url::Component(), // port
192 url::Component(), // path 191 url::Component(), // path
193 url::Component(), // query 192 url::Component(), // query
194 url::Component(), // ref 193 url::Component(), // ref
195 }, 194 },
196 }; 195 };
197 196
198 typedef testing::Test URLFixerTest; 197 typedef testing::Test URLFixerTest;
199 198
200 TEST(URLFixerTest, SegmentURL) { 199 TEST(URLFixerTest, SegmentURL) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 {"http://foo.com/s?q=\xf0\x90\x80\x85", "http://foo.com/s?q=%F0%90%80%85"}, 289 {"http://foo.com/s?q=\xf0\x90\x80\x85", "http://foo.com/s?q=%F0%90%80%85"},
291 // URLs which end with 0xA0 (non-break space in ISO-8859). 290 // URLs which end with 0xA0 (non-break space in ISO-8859).
292 {"http://foo.com/s?q=\xd0\xa0", "http://foo.com/s?q=%D0%A0"}, 291 {"http://foo.com/s?q=\xd0\xa0", "http://foo.com/s?q=%D0%A0"},
293 {"http://foo.com/s?q=\xec\x97\xa0", "http://foo.com/s?q=%EC%97%A0"}, 292 {"http://foo.com/s?q=\xec\x97\xa0", "http://foo.com/s?q=%EC%97%A0"},
294 {"http://foo.com/s?q=\xf0\x90\x80\xa0", "http://foo.com/s?q=%F0%90%80%A0"}, 293 {"http://foo.com/s?q=\xf0\x90\x80\xa0", "http://foo.com/s?q=%F0%90%80%A0"},
295 // URLs containing IPv6 literals. 294 // URLs containing IPv6 literals.
296 {"[2001:db8::2]", "http://[2001:db8::2]/"}, 295 {"[2001:db8::2]", "http://[2001:db8::2]/"},
297 {"[::]:80", "http://[::]/"}, 296 {"[::]:80", "http://[::]/"},
298 {"[::]:80/path", "http://[::]/path"}, 297 {"[::]:80/path", "http://[::]/path"},
299 {"[::]:180/path", "http://[::]:180/path"}, 298 {"[::]:180/path", "http://[::]:180/path"},
300 // TODO(pmarks): Maybe we should parse bare IPv6 literals someday. 299 // TODO(pmarks): Maybe we should parse bare IPv6 literals someday. Currently
301 {"::1", "::1"}, 300 // the first colon is treated as a scheme separator, and we default
301 // unspecified schemes to "http".
302 {"::1", "http://:1/"},
302 // Semicolon as scheme separator for standard schemes. 303 // Semicolon as scheme separator for standard schemes.
303 {"http;//www.google.com/", "http://www.google.com/"}, 304 {"http;//www.google.com/", "http://www.google.com/"},
304 {"about;chrome", "chrome://chrome/"}, 305 {"about;chrome", "chrome://chrome/"},
305 // Semicolon in non-standard schemes is not replaced by colon. 306 // Semicolon in non-standard schemes is not replaced by colon.
306 {"whatsup;//fool", "http://whatsup%3B//fool"}, 307 {"whatsup;//fool", "http://whatsup%3B//fool"},
307 // Semicolon left as-is in URL itself. 308 // Semicolon left as-is in URL itself.
308 {"http://host/port?query;moar", "http://host/port?query;moar"}, 309 {"http://host/port?query;moar", "http://host/port?query;moar"},
309 // Fewer slashes than expected. 310 // Fewer slashes than expected.
310 {"http;www.google.com/", "http://www.google.com/"}, 311 {"http;www.google.com/", "http://www.google.com/"},
311 {"http;/www.google.com/", "http://www.google.com/"}, 312 {"http;/www.google.com/", "http://www.google.com/"},
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 EXPECT_TRUE(base::DeleteFile(full_path, false)); 536 EXPECT_TRUE(base::DeleteFile(full_path, false));
536 EXPECT_TRUE(base::DeleteFile(new_dir, true)); 537 EXPECT_TRUE(base::DeleteFile(new_dir, true));
537 538
538 // Test that an obvious HTTP URL isn't accidentally treated as an absolute 539 // Test that an obvious HTTP URL isn't accidentally treated as an absolute
539 // file path (on account of system-specific craziness). 540 // file path (on account of system-specific craziness).
540 base::FilePath empty_path; 541 base::FilePath empty_path;
541 base::FilePath http_url_path(FILE_PATH_LITERAL("http://../")); 542 base::FilePath http_url_path(FILE_PATH_LITERAL("http://../"));
542 EXPECT_TRUE(url_formatter::FixupRelativeFile(empty_path, http_url_path) 543 EXPECT_TRUE(url_formatter::FixupRelativeFile(empty_path, http_url_path)
543 .SchemeIs("http")); 544 .SchemeIs("http"));
544 } 545 }
OLDNEW
« no previous file with comments | « components/url_formatter/url_fixer.cc ('k') | url/gurl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698