OLD | NEW |
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 <stdlib.h> | 5 #include <stdlib.h> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 "file://" HOME "foo"}, | 452 "file://" HOME "foo"}, |
453 {"~x/blah", "", | 453 {"~x/blah", "", |
454 "file://" HOME "x/blah"}, | 454 "file://" HOME "x/blah"}, |
455 }; | 455 }; |
456 #endif | 456 #endif |
457 for (size_t i = 0; i < arraysize(file_cases); i++) { | 457 for (size_t i = 0; i < arraysize(file_cases); i++) { |
458 EXPECT_EQ(file_cases[i].output, URLFixerUpper::FixupURL(file_cases[i].input, | 458 EXPECT_EQ(file_cases[i].output, URLFixerUpper::FixupURL(file_cases[i].input, |
459 file_cases[i].desired_tld).possibly_invalid_spec()); | 459 file_cases[i].desired_tld).possibly_invalid_spec()); |
460 } | 460 } |
461 | 461 |
462 EXPECT_TRUE(base::Delete(original, false)); | 462 EXPECT_TRUE(base::DeleteFile(original, false)); |
463 } | 463 } |
464 | 464 |
465 TEST(URLFixerUpperTest, FixupRelativeFile) { | 465 TEST(URLFixerUpperTest, FixupRelativeFile) { |
466 base::FilePath full_path, dir; | 466 base::FilePath full_path, dir; |
467 base::FilePath file_part( | 467 base::FilePath file_part( |
468 FILE_PATH_LITERAL("url_fixer_upper_existing_file.txt")); | 468 FILE_PATH_LITERAL("url_fixer_upper_existing_file.txt")); |
469 ASSERT_TRUE(PathService::Get(chrome::DIR_APP, &dir)); | 469 ASSERT_TRUE(PathService::Get(chrome::DIR_APP, &dir)); |
470 ASSERT_TRUE(MakeTempFile(dir, file_part, &full_path)); | 470 ASSERT_TRUE(MakeTempFile(dir, file_part, &full_path)); |
471 full_path = base::MakeAbsoluteFilePath(full_path); | 471 full_path = base::MakeAbsoluteFilePath(full_path); |
472 ASSERT_FALSE(full_path.empty()); | 472 ASSERT_FALSE(full_path.empty()); |
473 | 473 |
474 // make sure we pass through good URLs | 474 // make sure we pass through good URLs |
475 for (size_t i = 0; i < arraysize(fixup_cases); ++i) { | 475 for (size_t i = 0; i < arraysize(fixup_cases); ++i) { |
476 FixupCase value = fixup_cases[i]; | 476 FixupCase value = fixup_cases[i]; |
477 base::FilePath input = base::FilePath::FromUTF8Unsafe(value.input); | 477 base::FilePath input = base::FilePath::FromUTF8Unsafe(value.input); |
478 EXPECT_EQ(value.output, | 478 EXPECT_EQ(value.output, |
479 URLFixerUpper::FixupRelativeFile(dir, input).possibly_invalid_spec()); | 479 URLFixerUpper::FixupRelativeFile(dir, input).possibly_invalid_spec()); |
480 } | 480 } |
481 | 481 |
482 // make sure the existing file got fixed-up to a file URL, and that there | 482 // make sure the existing file got fixed-up to a file URL, and that there |
483 // are no backslashes | 483 // are no backslashes |
484 EXPECT_TRUE(IsMatchingFileURL(URLFixerUpper::FixupRelativeFile(dir, | 484 EXPECT_TRUE(IsMatchingFileURL(URLFixerUpper::FixupRelativeFile(dir, |
485 file_part).possibly_invalid_spec(), full_path)); | 485 file_part).possibly_invalid_spec(), full_path)); |
486 EXPECT_TRUE(base::Delete(full_path, false)); | 486 EXPECT_TRUE(base::DeleteFile(full_path, false)); |
487 | 487 |
488 // create a filename we know doesn't exist and make sure it doesn't get | 488 // create a filename we know doesn't exist and make sure it doesn't get |
489 // fixed up to a file URL | 489 // fixed up to a file URL |
490 base::FilePath nonexistent_file( | 490 base::FilePath nonexistent_file( |
491 FILE_PATH_LITERAL("url_fixer_upper_nonexistent_file.txt")); | 491 FILE_PATH_LITERAL("url_fixer_upper_nonexistent_file.txt")); |
492 std::string fixedup(URLFixerUpper::FixupRelativeFile(dir, | 492 std::string fixedup(URLFixerUpper::FixupRelativeFile(dir, |
493 nonexistent_file).possibly_invalid_spec()); | 493 nonexistent_file).possibly_invalid_spec()); |
494 EXPECT_NE(std::string("file:///"), fixedup.substr(0, 8)); | 494 EXPECT_NE(std::string("file:///"), fixedup.substr(0, 8)); |
495 EXPECT_FALSE(IsMatchingFileURL(fixedup, nonexistent_file)); | 495 EXPECT_FALSE(IsMatchingFileURL(fixedup, nonexistent_file)); |
496 | 496 |
(...skipping 23 matching lines...) Expand all Loading... |
520 base::FilePath(relative_file_str)).possibly_invalid_spec(), full_path)); | 520 base::FilePath(relative_file_str)).possibly_invalid_spec(), full_path)); |
521 | 521 |
522 // test relative directories and duplicate slashes | 522 // test relative directories and duplicate slashes |
523 // (should resolve to the same file as above) | 523 // (should resolve to the same file as above) |
524 relative_file_str = sub_dir.value() + FILE_PATH_LITERAL("/../") + | 524 relative_file_str = sub_dir.value() + FILE_PATH_LITERAL("/../") + |
525 sub_dir.value() + FILE_PATH_LITERAL("///./") + sub_file.value(); | 525 sub_dir.value() + FILE_PATH_LITERAL("///./") + sub_file.value(); |
526 EXPECT_TRUE(IsMatchingFileURL(URLFixerUpper::FixupRelativeFile(dir, | 526 EXPECT_TRUE(IsMatchingFileURL(URLFixerUpper::FixupRelativeFile(dir, |
527 base::FilePath(relative_file_str)).possibly_invalid_spec(), full_path)); | 527 base::FilePath(relative_file_str)).possibly_invalid_spec(), full_path)); |
528 | 528 |
529 // done with the subdir | 529 // done with the subdir |
530 EXPECT_TRUE(base::Delete(full_path, false)); | 530 EXPECT_TRUE(base::DeleteFile(full_path, false)); |
531 EXPECT_TRUE(base::Delete(new_dir, true)); | 531 EXPECT_TRUE(base::DeleteFile(new_dir, true)); |
532 | 532 |
533 // Test that an obvious HTTP URL isn't accidentally treated as an absolute | 533 // Test that an obvious HTTP URL isn't accidentally treated as an absolute |
534 // file path (on account of system-specific craziness). | 534 // file path (on account of system-specific craziness). |
535 base::FilePath empty_path; | 535 base::FilePath empty_path; |
536 base::FilePath http_url_path(FILE_PATH_LITERAL("http://../")); | 536 base::FilePath http_url_path(FILE_PATH_LITERAL("http://../")); |
537 EXPECT_TRUE(URLFixerUpper::FixupRelativeFile( | 537 EXPECT_TRUE(URLFixerUpper::FixupRelativeFile( |
538 empty_path, http_url_path).SchemeIs("http")); | 538 empty_path, http_url_path).SchemeIs("http")); |
539 } | 539 } |
OLD | NEW |