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

Side by Side Diff: url/url_parse_unittest.cc

Issue 23835019: Support URL fragment resolution againt non-hierarchical schemes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: brettw2 Created 7 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 | « url/url_parse_internal.h ('k') | url/url_util.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "url/url_parse.h" 5 #include "url/url_parse.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "url/url_parse.h" 9 #include "url/url_parse.h"
10 10
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 } 336 }
337 337
338 // PathURL -------------------------------------------------------------------- 338 // PathURL --------------------------------------------------------------------
339 339
340 // Various incarnations of path URLs. 340 // Various incarnations of path URLs.
341 static PathURLParseCase path_cases[] = { 341 static PathURLParseCase path_cases[] = {
342 {"", NULL, NULL}, 342 {"", NULL, NULL},
343 {":", "", NULL}, 343 {":", "", NULL},
344 {":/", "", "/"}, 344 {":/", "", "/"},
345 {"/", NULL, "/"}, 345 {"/", NULL, "/"},
346 {" This is \\interesting// \t", NULL, "This is \\interestin g//"}, 346 {" This is \\interesting// \t", NULL, "This is \\interestin g// \t"},
347 {"about:", "about", NULL}, 347 {"about:", "about", NULL},
348 {"about:blank", "about", "blank"}, 348 {"about:blank", "about", "blank"},
349 {" about: blank ", "about", " blank"}, 349 {" about: blank ", "about", " blank "},
350 {"javascript :alert(\"He:/l\\l#o?foo\"); ", "javascript ", "alert(\"He:/l\\l#o?f oo\");"}, 350 {"javascript :alert(\"He:/l\\l#o?foo\"); ", "javascript ", "alert(\"He:/l\\l#o?f oo\"); "},
351 }; 351 };
352 352
353 TEST(URLParser, PathURL) { 353 TEST(URLParser, PathURL) {
354 // Declared outside for loop to try to catch cases in init() where we forget 354 // Declared outside for loop to try to catch cases in init() where we forget
355 // to reset something that is reset by the construtor. 355 // to reset something that is reset by the construtor.
356 url_parse::Parsed parsed; 356 url_parse::Parsed parsed;
357 for (size_t i = 0; i < arraysize(path_cases); i++) { 357 for (size_t i = 0; i < arraysize(path_cases); i++) {
358 const char* url = path_cases[i].input; 358 const char* url = path_cases[i].input;
359 url_parse::ParsePathURL(url, static_cast<int>(strlen(url)), &parsed); 359 url_parse::ParsePathURL(url, static_cast<int>(strlen(url)), false, &parsed);
360 360
361 EXPECT_TRUE(ComponentMatches(url, path_cases[i].scheme, parsed.scheme)); 361 EXPECT_TRUE(ComponentMatches(url, path_cases[i].scheme, parsed.scheme))
362 EXPECT_TRUE(ComponentMatches(url, path_cases[i].path, parsed.path)); 362 << i;
363 EXPECT_TRUE(ComponentMatches(url, path_cases[i].path, parsed.GetContent()))
364 << i;
363 365
364 // The remaining components are never used for path urls. 366 // The remaining components are never used for path urls.
365 ExpectInvalidComponent(parsed.username); 367 ExpectInvalidComponent(parsed.username);
366 ExpectInvalidComponent(parsed.password); 368 ExpectInvalidComponent(parsed.password);
367 ExpectInvalidComponent(parsed.host); 369 ExpectInvalidComponent(parsed.host);
368 ExpectInvalidComponent(parsed.port); 370 ExpectInvalidComponent(parsed.port);
369 ExpectInvalidComponent(parsed.query);
370 ExpectInvalidComponent(parsed.ref);
371 } 371 }
372 } 372 }
373 373
374 // Various incarnations of file URLs. 374 // Various incarnations of file URLs.
375 static URLParseCase file_cases[] = { 375 static URLParseCase file_cases[] = {
376 #ifdef WIN32 376 #ifdef WIN32
377 {"file:server", "file", NULL, NULL, "server", -1, NULL, NU LL, NULL}, 377 {"file:server", "file", NULL, NULL, "server", -1, NULL, NU LL, NULL},
378 {" file: server \t", "file", NULL, NULL, " server",-1, NULL, NU LL, NULL}, 378 {" file: server \t", "file", NULL, NULL, " server",-1, NULL, NU LL, NULL},
379 {"FiLe:c|", "FiLe", NULL, NULL, NULL, -1, "c|", NU LL, NULL}, 379 {"FiLe:c|", "FiLe", NULL, NULL, NULL, -1, "c|", NU LL, NULL},
380 {"FILE:/\\\\/server/file", "FILE", NULL, NULL, "server", -1, "/file", NU LL, NULL}, 380 {"FILE:/\\\\/server/file", "FILE", NULL, NULL, "server", -1, "/file", NU LL, NULL},
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 // The remaining components are never used for filesystem urls. 681 // The remaining components are never used for filesystem urls.
682 ExpectInvalidComponent(parsed.username); 682 ExpectInvalidComponent(parsed.username);
683 ExpectInvalidComponent(parsed.password); 683 ExpectInvalidComponent(parsed.password);
684 ExpectInvalidComponent(parsed.host); 684 ExpectInvalidComponent(parsed.host);
685 ExpectInvalidComponent(parsed.port); 685 ExpectInvalidComponent(parsed.port);
686 } 686 }
687 } 687 }
688 688
689 } // namespace 689 } // namespace
690 } // namespace url_parse 690 } // namespace url_parse
OLDNEW
« no previous file with comments | « url/url_parse_internal.h ('k') | url/url_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698