OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <winioctl.h> | 9 #include <winioctl.h> |
10 #include <shellapi.h> | 10 #include <shellapi.h> |
11 #include <shlobj.h> | 11 #include <shlobj.h> |
12 #include <tchar.h> | 12 #include <tchar.h> |
13 #endif | 13 #endif |
14 | 14 |
15 #include <fstream> | 15 #include <fstream> |
16 #include <set> | 16 #include <set> |
17 | 17 |
18 #include "base/base_paths.h" | 18 #include "base/base_paths.h" |
19 #include "base/file_path.h" | 19 #include "base/file_path.h" |
20 #include "base/file_util.h" | 20 #include "base/file_util.h" |
21 #include "base/path_service.h" | 21 #include "base/path_service.h" |
22 #include "base/platform_thread.h" | 22 #include "base/platform_thread.h" |
23 #include "base/scoped_handle.h" | 23 #include "base/scoped_handle.h" |
| 24 #include "base/scoped_temp_dir.h" |
24 #include "base/time.h" | 25 #include "base/time.h" |
25 #include "base/utf_string_conversions.h" | 26 #include "base/utf_string_conversions.h" |
26 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
27 #include "testing/platform_test.h" | 28 #include "testing/platform_test.h" |
28 | 29 |
29 // This macro helps avoid wrapped lines in the test structs. | 30 // This macro helps avoid wrapped lines in the test structs. |
30 #define FPL(x) FILE_PATH_LITERAL(x) | 31 #define FPL(x) FILE_PATH_LITERAL(x) |
31 | 32 |
32 namespace { | 33 namespace { |
33 | 34 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 static_cast<file_util::FileEnumerator::FILE_TYPE>( | 113 static_cast<file_util::FileEnumerator::FILE_TYPE>( |
113 file_util::FileEnumerator::FILES | | 114 file_util::FileEnumerator::FILES | |
114 file_util::FileEnumerator::DIRECTORIES); | 115 file_util::FileEnumerator::DIRECTORIES); |
115 | 116 |
116 // file_util winds up using autoreleased objects on the Mac, so this needs | 117 // file_util winds up using autoreleased objects on the Mac, so this needs |
117 // to be a PlatformTest | 118 // to be a PlatformTest |
118 class FileUtilTest : public PlatformTest { | 119 class FileUtilTest : public PlatformTest { |
119 protected: | 120 protected: |
120 virtual void SetUp() { | 121 virtual void SetUp() { |
121 PlatformTest::SetUp(); | 122 PlatformTest::SetUp(); |
122 // Name a subdirectory of the temp directory. | 123 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
123 ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_)); | |
124 test_dir_ = test_dir_.Append(FILE_PATH_LITERAL("FileUtilTest")); | |
125 | |
126 // Create a fresh, empty copy of this directory. | |
127 file_util::Delete(test_dir_, true); | |
128 file_util::CreateDirectory(test_dir_); | |
129 } | |
130 virtual void TearDown() { | |
131 PlatformTest::TearDown(); | |
132 // Clean up test directory | |
133 ASSERT_TRUE(file_util::Delete(test_dir_, true)); | |
134 ASSERT_FALSE(file_util::PathExists(test_dir_)); | |
135 } | 124 } |
136 | 125 |
137 // the path to temporary directory used to contain the test operations | 126 ScopedTempDir temp_dir_; |
138 FilePath test_dir_; | |
139 }; | 127 }; |
140 | 128 |
141 // Collects all the results from the given file enumerator, and provides an | 129 // Collects all the results from the given file enumerator, and provides an |
142 // interface to query whether a given file is present. | 130 // interface to query whether a given file is present. |
143 class FindResultCollector { | 131 class FindResultCollector { |
144 public: | 132 public: |
145 explicit FindResultCollector(file_util::FileEnumerator& enumerator) { | 133 explicit FindResultCollector(file_util::FileEnumerator& enumerator) { |
146 FilePath cur_file; | 134 FilePath cur_file; |
147 while (!(cur_file = enumerator.Next()).value().empty()) { | 135 while (!(cur_file = enumerator.Next()).value().empty()) { |
148 FilePath::StringType path = cur_file.value(); | 136 FilePath::StringType path = cur_file.value(); |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 const std::wstring parent = | 334 const std::wstring parent = |
347 file_util::GetDirectoryFromPath(dir.full_path); | 335 file_util::GetDirectoryFromPath(dir.full_path); |
348 EXPECT_EQ(dir.directory, parent); | 336 EXPECT_EQ(dir.directory, parent); |
349 } | 337 } |
350 } | 338 } |
351 #endif | 339 #endif |
352 | 340 |
353 // Flaky, http://crbug.com/46246 | 341 // Flaky, http://crbug.com/46246 |
354 TEST_F(FileUtilTest, FLAKY_CountFilesCreatedAfter) { | 342 TEST_F(FileUtilTest, FLAKY_CountFilesCreatedAfter) { |
355 // Create old file (that we don't want to count) | 343 // Create old file (that we don't want to count) |
356 FilePath old_file_name = test_dir_.Append(FILE_PATH_LITERAL("Old File.txt")); | 344 FilePath old_file_name = |
| 345 temp_dir_.path().Append(FILE_PATH_LITERAL("Old File.txt")); |
357 CreateTextFile(old_file_name, L"Just call me Mr. Creakybits"); | 346 CreateTextFile(old_file_name, L"Just call me Mr. Creakybits"); |
358 | 347 |
359 // Age to perfection | 348 // Age to perfection |
360 #if defined(OS_WIN) | 349 #if defined(OS_WIN) |
361 PlatformThread::Sleep(100); | 350 PlatformThread::Sleep(100); |
362 #elif defined(OS_POSIX) | 351 #elif defined(OS_POSIX) |
363 // We need to wait at least one second here because the precision of | 352 // We need to wait at least one second here because the precision of |
364 // file creation time is one second. | 353 // file creation time is one second. |
365 PlatformThread::Sleep(1500); | 354 PlatformThread::Sleep(1500); |
366 #endif | 355 #endif |
367 | 356 |
368 // Establish our cutoff time | 357 // Establish our cutoff time |
369 base::Time now(base::Time::NowFromSystemTime()); | 358 base::Time now(base::Time::NowFromSystemTime()); |
370 EXPECT_EQ(0, file_util::CountFilesCreatedAfter(test_dir_, now)); | 359 EXPECT_EQ(0, file_util::CountFilesCreatedAfter(temp_dir_.path(), now)); |
371 | 360 |
372 // Create a new file (that we do want to count) | 361 // Create a new file (that we do want to count) |
373 FilePath new_file_name = test_dir_.Append(FILE_PATH_LITERAL("New File.txt")); | 362 FilePath new_file_name = |
| 363 temp_dir_.path().Append(FILE_PATH_LITERAL("New File.txt")); |
374 CreateTextFile(new_file_name, L"Waaaaaaaaaaaaaah."); | 364 CreateTextFile(new_file_name, L"Waaaaaaaaaaaaaah."); |
375 | 365 |
376 // We should see only the new file. | 366 // We should see only the new file. |
377 EXPECT_EQ(1, file_util::CountFilesCreatedAfter(test_dir_, now)); | 367 EXPECT_EQ(1, file_util::CountFilesCreatedAfter(temp_dir_.path(), now)); |
378 | 368 |
379 // Delete new file, we should see no files after cutoff now | 369 // Delete new file, we should see no files after cutoff now |
380 EXPECT_TRUE(file_util::Delete(new_file_name, false)); | 370 EXPECT_TRUE(file_util::Delete(new_file_name, false)); |
381 EXPECT_EQ(0, file_util::CountFilesCreatedAfter(test_dir_, now)); | 371 EXPECT_EQ(0, file_util::CountFilesCreatedAfter(temp_dir_.path(), now)); |
382 } | 372 } |
383 | 373 |
384 TEST_F(FileUtilTest, FileAndDirectorySize) { | 374 TEST_F(FileUtilTest, FileAndDirectorySize) { |
385 // Create three files of 20, 30 and 3 chars (utf8). ComputeDirectorySize | 375 // Create three files of 20, 30 and 3 chars (utf8). ComputeDirectorySize |
386 // should return 53 bytes. | 376 // should return 53 bytes. |
387 FilePath file_01 = test_dir_.Append(FPL("The file 01.txt")); | 377 FilePath file_01 = temp_dir_.path().Append(FPL("The file 01.txt")); |
388 CreateTextFile(file_01, L"12345678901234567890"); | 378 CreateTextFile(file_01, L"12345678901234567890"); |
389 int64 size_f1 = 0; | 379 int64 size_f1 = 0; |
390 ASSERT_TRUE(file_util::GetFileSize(file_01, &size_f1)); | 380 ASSERT_TRUE(file_util::GetFileSize(file_01, &size_f1)); |
391 EXPECT_EQ(20ll, size_f1); | 381 EXPECT_EQ(20ll, size_f1); |
392 | 382 |
393 FilePath subdir_path = test_dir_.Append(FPL("Level2")); | 383 FilePath subdir_path = temp_dir_.path().Append(FPL("Level2")); |
394 file_util::CreateDirectory(subdir_path); | 384 file_util::CreateDirectory(subdir_path); |
395 | 385 |
396 FilePath file_02 = subdir_path.Append(FPL("The file 02.txt")); | 386 FilePath file_02 = subdir_path.Append(FPL("The file 02.txt")); |
397 CreateTextFile(file_02, L"123456789012345678901234567890"); | 387 CreateTextFile(file_02, L"123456789012345678901234567890"); |
398 int64 size_f2 = 0; | 388 int64 size_f2 = 0; |
399 ASSERT_TRUE(file_util::GetFileSize(file_02, &size_f2)); | 389 ASSERT_TRUE(file_util::GetFileSize(file_02, &size_f2)); |
400 EXPECT_EQ(30ll, size_f2); | 390 EXPECT_EQ(30ll, size_f2); |
401 | 391 |
402 FilePath subsubdir_path = subdir_path.Append(FPL("Level3")); | 392 FilePath subsubdir_path = subdir_path.Append(FPL("Level3")); |
403 file_util::CreateDirectory(subsubdir_path); | 393 file_util::CreateDirectory(subsubdir_path); |
404 | 394 |
405 FilePath file_03 = subsubdir_path.Append(FPL("The file 03.txt")); | 395 FilePath file_03 = subsubdir_path.Append(FPL("The file 03.txt")); |
406 CreateTextFile(file_03, L"123"); | 396 CreateTextFile(file_03, L"123"); |
407 | 397 |
408 int64 computed_size = file_util::ComputeDirectorySize(test_dir_); | 398 int64 computed_size = file_util::ComputeDirectorySize(temp_dir_.path()); |
409 EXPECT_EQ(size_f1 + size_f2 + 3, computed_size); | 399 EXPECT_EQ(size_f1 + size_f2 + 3, computed_size); |
410 | 400 |
411 computed_size = file_util::ComputeFilesSize(test_dir_, FPL("The file*")); | 401 computed_size = |
| 402 file_util::ComputeFilesSize(temp_dir_.path(), FPL("The file*")); |
412 EXPECT_EQ(size_f1, computed_size); | 403 EXPECT_EQ(size_f1, computed_size); |
413 | 404 |
414 computed_size = file_util::ComputeFilesSize(test_dir_, FPL("bla*")); | 405 computed_size = file_util::ComputeFilesSize(temp_dir_.path(), FPL("bla*")); |
415 EXPECT_EQ(0, computed_size); | 406 EXPECT_EQ(0, computed_size); |
416 } | 407 } |
417 | 408 |
418 TEST_F(FileUtilTest, NormalizeFilePathBasic) { | 409 TEST_F(FileUtilTest, NormalizeFilePathBasic) { |
419 // Create a directory under the test dir. Because we create it, | 410 // Create a directory under the test dir. Because we create it, |
420 // we know it is not a link. | 411 // we know it is not a link. |
421 FilePath file_a_path = test_dir_.Append(FPL("file_a")); | 412 FilePath file_a_path = temp_dir_.path().Append(FPL("file_a")); |
422 FilePath dir_path = test_dir_.Append(FPL("dir")); | 413 FilePath dir_path = temp_dir_.path().Append(FPL("dir")); |
423 FilePath file_b_path = dir_path.Append(FPL("file_b")); | 414 FilePath file_b_path = dir_path.Append(FPL("file_b")); |
424 file_util::CreateDirectory(dir_path); | 415 file_util::CreateDirectory(dir_path); |
425 | 416 |
426 FilePath normalized_file_a_path, normalized_file_b_path; | 417 FilePath normalized_file_a_path, normalized_file_b_path; |
427 ASSERT_FALSE(file_util::PathExists(file_a_path)); | 418 ASSERT_FALSE(file_util::PathExists(file_a_path)); |
428 ASSERT_FALSE(file_util::NormalizeFilePath(file_a_path, | 419 ASSERT_FALSE(file_util::NormalizeFilePath(file_a_path, |
429 &normalized_file_a_path)) | 420 &normalized_file_a_path)) |
430 << "NormalizeFilePath() should fail on nonexistent paths."; | 421 << "NormalizeFilePath() should fail on nonexistent paths."; |
431 | 422 |
432 CreateTextFile(file_a_path, bogus_content); | 423 CreateTextFile(file_a_path, bogus_content); |
(...skipping 11 matching lines...) Expand all Loading... |
444 // must be the parent of the path holding file b. | 435 // must be the parent of the path holding file b. |
445 ASSERT_TRUE(normalized_file_a_path.DirName() | 436 ASSERT_TRUE(normalized_file_a_path.DirName() |
446 .IsParent(normalized_file_b_path.DirName())); | 437 .IsParent(normalized_file_b_path.DirName())); |
447 } | 438 } |
448 | 439 |
449 #if defined(OS_WIN) | 440 #if defined(OS_WIN) |
450 | 441 |
451 TEST_F(FileUtilTest, NormalizeFilePathReparsePoints) { | 442 TEST_F(FileUtilTest, NormalizeFilePathReparsePoints) { |
452 // Build the following directory structure: | 443 // Build the following directory structure: |
453 // | 444 // |
454 // test_dir_ | 445 // temp_dir |
455 // |-> base_a | 446 // |-> base_a |
456 // | |-> sub_a | 447 // | |-> sub_a |
457 // | |-> file.txt | 448 // | |-> file.txt |
458 // | |-> long_name___... (Very long name.) | 449 // | |-> long_name___... (Very long name.) |
459 // | |-> sub_long | 450 // | |-> sub_long |
460 // | |-> deep.txt | 451 // | |-> deep.txt |
461 // |-> base_b | 452 // |-> base_b |
462 // |-> to_sub_a (reparse point to test_dir_\base_a\sub_a) | 453 // |-> to_sub_a (reparse point to temp_dir\base_a\sub_a) |
463 // |-> to_base_b (reparse point to test_dir_\base_b) | 454 // |-> to_base_b (reparse point to temp_dir\base_b) |
464 // |-> to_sub_long (reparse point to test_dir_\sub_a\long_name_\sub_long) | 455 // |-> to_sub_long (reparse point to temp_dir\sub_a\long_name_\sub_long) |
465 | 456 |
466 FilePath base_a = test_dir_.Append(FPL("base_a")); | 457 FilePath base_a = temp_dir_.path().Append(FPL("base_a")); |
467 ASSERT_TRUE(file_util::CreateDirectory(base_a)); | 458 ASSERT_TRUE(file_util::CreateDirectory(base_a)); |
468 | 459 |
469 FilePath sub_a = base_a.Append(FPL("sub_a")); | 460 FilePath sub_a = base_a.Append(FPL("sub_a")); |
470 ASSERT_TRUE(file_util::CreateDirectory(sub_a)); | 461 ASSERT_TRUE(file_util::CreateDirectory(sub_a)); |
471 | 462 |
472 FilePath file_txt = sub_a.Append(FPL("file.txt")); | 463 FilePath file_txt = sub_a.Append(FPL("file.txt")); |
473 CreateTextFile(file_txt, bogus_content); | 464 CreateTextFile(file_txt, bogus_content); |
474 | 465 |
475 // Want a directory whose name is long enough to make the path to the file | 466 // Want a directory whose name is long enough to make the path to the file |
476 // inside just under MAX_PATH chars. This will be used to test that when | 467 // inside just under MAX_PATH chars. This will be used to test that when |
(...skipping 14 matching lines...) Expand all Loading... |
491 long_name_str.resize(target_length, '_'); | 482 long_name_str.resize(target_length, '_'); |
492 | 483 |
493 FilePath long_name = sub_a.Append(FilePath(long_name_str)); | 484 FilePath long_name = sub_a.Append(FilePath(long_name_str)); |
494 FilePath deep_file = long_name.Append(sub_long_rel).Append(deep_txt); | 485 FilePath deep_file = long_name.Append(sub_long_rel).Append(deep_txt); |
495 ASSERT_EQ(MAX_PATH - kCreateDirLimit, deep_file.value().length()); | 486 ASSERT_EQ(MAX_PATH - kCreateDirLimit, deep_file.value().length()); |
496 | 487 |
497 FilePath sub_long = deep_file.DirName(); | 488 FilePath sub_long = deep_file.DirName(); |
498 ASSERT_TRUE(file_util::CreateDirectory(sub_long)); | 489 ASSERT_TRUE(file_util::CreateDirectory(sub_long)); |
499 CreateTextFile(deep_file, bogus_content); | 490 CreateTextFile(deep_file, bogus_content); |
500 | 491 |
501 FilePath base_b = test_dir_.Append(FPL("base_b")); | 492 FilePath base_b = temp_dir_.path().Append(FPL("base_b")); |
502 ASSERT_TRUE(file_util::CreateDirectory(base_b)); | 493 ASSERT_TRUE(file_util::CreateDirectory(base_b)); |
503 | 494 |
504 FilePath to_sub_a = base_b.Append(FPL("to_sub_a")); | 495 FilePath to_sub_a = base_b.Append(FPL("to_sub_a")); |
505 ASSERT_TRUE(file_util::CreateDirectory(to_sub_a)); | 496 ASSERT_TRUE(file_util::CreateDirectory(to_sub_a)); |
506 ScopedHandle reparse_to_sub_a( | 497 ScopedHandle reparse_to_sub_a( |
507 ::CreateFile(to_sub_a.value().c_str(), | 498 ::CreateFile(to_sub_a.value().c_str(), |
508 FILE_ALL_ACCESS, | 499 FILE_ALL_ACCESS, |
509 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, | 500 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, |
510 NULL, | 501 NULL, |
511 OPEN_EXISTING, | 502 OPEN_EXISTING, |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 #if defined(OS_POSIX) | 589 #if defined(OS_POSIX) |
599 | 590 |
600 bool MakeSymlink(const FilePath& link_to, const FilePath& link_from) { | 591 bool MakeSymlink(const FilePath& link_to, const FilePath& link_from) { |
601 return (symlink(link_to.value().c_str(), link_from.value().c_str()) == 0); | 592 return (symlink(link_to.value().c_str(), link_from.value().c_str()) == 0); |
602 } | 593 } |
603 | 594 |
604 TEST_F(FileUtilTest, NormalizeFilePathSymlinks) { | 595 TEST_F(FileUtilTest, NormalizeFilePathSymlinks) { |
605 FilePath normalized_path; | 596 FilePath normalized_path; |
606 | 597 |
607 // Link one file to another. | 598 // Link one file to another. |
608 FilePath link_from = test_dir_.Append(FPL("from_file")); | 599 FilePath link_from = temp_dir_.path().Append(FPL("from_file")); |
609 FilePath link_to = test_dir_.Append(FPL("to_file")); | 600 FilePath link_to = temp_dir_.path().Append(FPL("to_file")); |
610 CreateTextFile(link_to, bogus_content); | 601 CreateTextFile(link_to, bogus_content); |
611 | 602 |
612 ASSERT_TRUE(MakeSymlink(link_to, link_from)) | 603 ASSERT_TRUE(MakeSymlink(link_to, link_from)) |
613 << "Failed to create file symlink."; | 604 << "Failed to create file symlink."; |
614 | 605 |
615 // Check that NormalizeFilePath sees the link. | 606 // Check that NormalizeFilePath sees the link. |
616 ASSERT_TRUE(file_util::NormalizeFilePath(link_from, &normalized_path)); | 607 ASSERT_TRUE(file_util::NormalizeFilePath(link_from, &normalized_path)); |
617 ASSERT_TRUE(link_to != link_from); | 608 ASSERT_TRUE(link_to != link_from); |
618 ASSERT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); | 609 ASSERT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); |
619 ASSERT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); | 610 ASSERT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); |
620 | 611 |
621 // Link to a directory. | 612 // Link to a directory. |
622 link_from = test_dir_.Append(FPL("from_dir")); | 613 link_from = temp_dir_.path().Append(FPL("from_dir")); |
623 link_to = test_dir_.Append(FPL("to_dir")); | 614 link_to = temp_dir_.path().Append(FPL("to_dir")); |
624 file_util::CreateDirectory(link_to); | 615 file_util::CreateDirectory(link_to); |
625 | 616 |
626 ASSERT_TRUE(MakeSymlink(link_to, link_from)) | 617 ASSERT_TRUE(MakeSymlink(link_to, link_from)) |
627 << "Failed to create directory symlink."; | 618 << "Failed to create directory symlink."; |
628 | 619 |
629 ASSERT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path)) | 620 ASSERT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path)) |
630 << "Links to directories should return false."; | 621 << "Links to directories should return false."; |
631 | 622 |
632 // Test that a loop in the links causes NormalizeFilePath() to return false. | 623 // Test that a loop in the links causes NormalizeFilePath() to return false. |
633 link_from = test_dir_.Append(FPL("link_a")); | 624 link_from = temp_dir_.path().Append(FPL("link_a")); |
634 link_to = test_dir_.Append(FPL("link_b")); | 625 link_to = temp_dir_.path().Append(FPL("link_b")); |
635 ASSERT_TRUE(MakeSymlink(link_to, link_from)) | 626 ASSERT_TRUE(MakeSymlink(link_to, link_from)) |
636 << "Failed to create loop symlink a."; | 627 << "Failed to create loop symlink a."; |
637 ASSERT_TRUE(MakeSymlink(link_from, link_to)) | 628 ASSERT_TRUE(MakeSymlink(link_from, link_to)) |
638 << "Failed to create loop symlink b."; | 629 << "Failed to create loop symlink b."; |
639 | 630 |
640 // Infinite loop! | 631 // Infinite loop! |
641 ASSERT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path)); | 632 ASSERT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path)); |
642 } | 633 } |
643 #endif // defined(OS_POSIX) | 634 #endif // defined(OS_POSIX) |
644 | 635 |
645 TEST_F(FileUtilTest, DeleteNonExistent) { | 636 TEST_F(FileUtilTest, DeleteNonExistent) { |
646 FilePath non_existent = test_dir_.AppendASCII("bogus_file_dne.foobar"); | 637 FilePath non_existent = temp_dir_.path().AppendASCII("bogus_file_dne.foobar"); |
647 ASSERT_FALSE(file_util::PathExists(non_existent)); | 638 ASSERT_FALSE(file_util::PathExists(non_existent)); |
648 | 639 |
649 EXPECT_TRUE(file_util::Delete(non_existent, false)); | 640 EXPECT_TRUE(file_util::Delete(non_existent, false)); |
650 ASSERT_FALSE(file_util::PathExists(non_existent)); | 641 ASSERT_FALSE(file_util::PathExists(non_existent)); |
651 EXPECT_TRUE(file_util::Delete(non_existent, true)); | 642 EXPECT_TRUE(file_util::Delete(non_existent, true)); |
652 ASSERT_FALSE(file_util::PathExists(non_existent)); | 643 ASSERT_FALSE(file_util::PathExists(non_existent)); |
653 } | 644 } |
654 | 645 |
655 TEST_F(FileUtilTest, DeleteFile) { | 646 TEST_F(FileUtilTest, DeleteFile) { |
656 // Create a file | 647 // Create a file |
657 FilePath file_name = test_dir_.Append(FPL("Test DeleteFile 1.txt")); | 648 FilePath file_name = temp_dir_.path().Append(FPL("Test DeleteFile 1.txt")); |
658 CreateTextFile(file_name, bogus_content); | 649 CreateTextFile(file_name, bogus_content); |
659 ASSERT_TRUE(file_util::PathExists(file_name)); | 650 ASSERT_TRUE(file_util::PathExists(file_name)); |
660 | 651 |
661 // Make sure it's deleted | 652 // Make sure it's deleted |
662 EXPECT_TRUE(file_util::Delete(file_name, false)); | 653 EXPECT_TRUE(file_util::Delete(file_name, false)); |
663 EXPECT_FALSE(file_util::PathExists(file_name)); | 654 EXPECT_FALSE(file_util::PathExists(file_name)); |
664 | 655 |
665 // Test recursive case, create a new file | 656 // Test recursive case, create a new file |
666 file_name = test_dir_.Append(FPL("Test DeleteFile 2.txt")); | 657 file_name = temp_dir_.path().Append(FPL("Test DeleteFile 2.txt")); |
667 CreateTextFile(file_name, bogus_content); | 658 CreateTextFile(file_name, bogus_content); |
668 ASSERT_TRUE(file_util::PathExists(file_name)); | 659 ASSERT_TRUE(file_util::PathExists(file_name)); |
669 | 660 |
670 // Make sure it's deleted | 661 // Make sure it's deleted |
671 EXPECT_TRUE(file_util::Delete(file_name, true)); | 662 EXPECT_TRUE(file_util::Delete(file_name, true)); |
672 EXPECT_FALSE(file_util::PathExists(file_name)); | 663 EXPECT_FALSE(file_util::PathExists(file_name)); |
673 } | 664 } |
674 | 665 |
675 #if defined(OS_WIN) | 666 #if defined(OS_WIN) |
676 // Tests that the Delete function works for wild cards, especially | 667 // Tests that the Delete function works for wild cards, especially |
677 // with the recursion flag. Also coincidentally tests PathExists. | 668 // with the recursion flag. Also coincidentally tests PathExists. |
678 // TODO(erikkay): see if anyone's actually using this feature of the API | 669 // TODO(erikkay): see if anyone's actually using this feature of the API |
679 TEST_F(FileUtilTest, DeleteWildCard) { | 670 TEST_F(FileUtilTest, DeleteWildCard) { |
680 // Create a file and a directory | 671 // Create a file and a directory |
681 FilePath file_name = test_dir_.Append(FPL("Test DeleteWildCard.txt")); | 672 FilePath file_name = temp_dir_.path().Append(FPL("Test DeleteWildCard.txt")); |
682 CreateTextFile(file_name, bogus_content); | 673 CreateTextFile(file_name, bogus_content); |
683 ASSERT_TRUE(file_util::PathExists(file_name)); | 674 ASSERT_TRUE(file_util::PathExists(file_name)); |
684 | 675 |
685 FilePath subdir_path = test_dir_.Append(FPL("DeleteWildCardDir")); | 676 FilePath subdir_path = temp_dir_.path().Append(FPL("DeleteWildCardDir")); |
686 file_util::CreateDirectory(subdir_path); | 677 file_util::CreateDirectory(subdir_path); |
687 ASSERT_TRUE(file_util::PathExists(subdir_path)); | 678 ASSERT_TRUE(file_util::PathExists(subdir_path)); |
688 | 679 |
689 // Create the wildcard path | 680 // Create the wildcard path |
690 FilePath directory_contents = test_dir_; | 681 FilePath directory_contents = temp_dir_.path(); |
691 directory_contents = directory_contents.Append(FPL("*")); | 682 directory_contents = directory_contents.Append(FPL("*")); |
692 | 683 |
693 // Delete non-recursively and check that only the file is deleted | 684 // Delete non-recursively and check that only the file is deleted |
694 EXPECT_TRUE(file_util::Delete(directory_contents, false)); | 685 EXPECT_TRUE(file_util::Delete(directory_contents, false)); |
695 EXPECT_FALSE(file_util::PathExists(file_name)); | 686 EXPECT_FALSE(file_util::PathExists(file_name)); |
696 EXPECT_TRUE(file_util::PathExists(subdir_path)); | 687 EXPECT_TRUE(file_util::PathExists(subdir_path)); |
697 | 688 |
698 // Delete recursively and make sure all contents are deleted | 689 // Delete recursively and make sure all contents are deleted |
699 EXPECT_TRUE(file_util::Delete(directory_contents, true)); | 690 EXPECT_TRUE(file_util::Delete(directory_contents, true)); |
700 EXPECT_FALSE(file_util::PathExists(file_name)); | 691 EXPECT_FALSE(file_util::PathExists(file_name)); |
701 EXPECT_FALSE(file_util::PathExists(subdir_path)); | 692 EXPECT_FALSE(file_util::PathExists(subdir_path)); |
702 } | 693 } |
703 | 694 |
704 // TODO(erikkay): see if anyone's actually using this feature of the API | 695 // TODO(erikkay): see if anyone's actually using this feature of the API |
705 TEST_F(FileUtilTest, DeleteNonExistantWildCard) { | 696 TEST_F(FileUtilTest, DeleteNonExistantWildCard) { |
706 // Create a file and a directory | 697 // Create a file and a directory |
707 FilePath subdir_path = test_dir_.Append(FPL("DeleteNonExistantWildCard")); | 698 FilePath subdir_path = |
| 699 temp_dir_.path().Append(FPL("DeleteNonExistantWildCard")); |
708 file_util::CreateDirectory(subdir_path); | 700 file_util::CreateDirectory(subdir_path); |
709 ASSERT_TRUE(file_util::PathExists(subdir_path)); | 701 ASSERT_TRUE(file_util::PathExists(subdir_path)); |
710 | 702 |
711 // Create the wildcard path | 703 // Create the wildcard path |
712 FilePath directory_contents = subdir_path; | 704 FilePath directory_contents = subdir_path; |
713 directory_contents = directory_contents.Append(FPL("*")); | 705 directory_contents = directory_contents.Append(FPL("*")); |
714 | 706 |
715 // Delete non-recursively and check nothing got deleted | 707 // Delete non-recursively and check nothing got deleted |
716 EXPECT_TRUE(file_util::Delete(directory_contents, false)); | 708 EXPECT_TRUE(file_util::Delete(directory_contents, false)); |
717 EXPECT_TRUE(file_util::PathExists(subdir_path)); | 709 EXPECT_TRUE(file_util::PathExists(subdir_path)); |
718 | 710 |
719 // Delete recursively and check nothing got deleted | 711 // Delete recursively and check nothing got deleted |
720 EXPECT_TRUE(file_util::Delete(directory_contents, true)); | 712 EXPECT_TRUE(file_util::Delete(directory_contents, true)); |
721 EXPECT_TRUE(file_util::PathExists(subdir_path)); | 713 EXPECT_TRUE(file_util::PathExists(subdir_path)); |
722 } | 714 } |
723 #endif | 715 #endif |
724 | 716 |
725 // Tests non-recursive Delete() for a directory. | 717 // Tests non-recursive Delete() for a directory. |
726 TEST_F(FileUtilTest, DeleteDirNonRecursive) { | 718 TEST_F(FileUtilTest, DeleteDirNonRecursive) { |
727 // Create a subdirectory and put a file and two directories inside. | 719 // Create a subdirectory and put a file and two directories inside. |
728 FilePath test_subdir = test_dir_.Append(FPL("DeleteDirNonRecursive")); | 720 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirNonRecursive")); |
729 file_util::CreateDirectory(test_subdir); | 721 file_util::CreateDirectory(test_subdir); |
730 ASSERT_TRUE(file_util::PathExists(test_subdir)); | 722 ASSERT_TRUE(file_util::PathExists(test_subdir)); |
731 | 723 |
732 FilePath file_name = test_subdir.Append(FPL("Test DeleteDir.txt")); | 724 FilePath file_name = test_subdir.Append(FPL("Test DeleteDir.txt")); |
733 CreateTextFile(file_name, bogus_content); | 725 CreateTextFile(file_name, bogus_content); |
734 ASSERT_TRUE(file_util::PathExists(file_name)); | 726 ASSERT_TRUE(file_util::PathExists(file_name)); |
735 | 727 |
736 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); | 728 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); |
737 file_util::CreateDirectory(subdir_path1); | 729 file_util::CreateDirectory(subdir_path1); |
738 ASSERT_TRUE(file_util::PathExists(subdir_path1)); | 730 ASSERT_TRUE(file_util::PathExists(subdir_path1)); |
739 | 731 |
740 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); | 732 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); |
741 file_util::CreateDirectory(subdir_path2); | 733 file_util::CreateDirectory(subdir_path2); |
742 ASSERT_TRUE(file_util::PathExists(subdir_path2)); | 734 ASSERT_TRUE(file_util::PathExists(subdir_path2)); |
743 | 735 |
744 // Delete non-recursively and check that the empty dir got deleted | 736 // Delete non-recursively and check that the empty dir got deleted |
745 EXPECT_TRUE(file_util::Delete(subdir_path2, false)); | 737 EXPECT_TRUE(file_util::Delete(subdir_path2, false)); |
746 EXPECT_FALSE(file_util::PathExists(subdir_path2)); | 738 EXPECT_FALSE(file_util::PathExists(subdir_path2)); |
747 | 739 |
748 // Delete non-recursively and check that nothing got deleted | 740 // Delete non-recursively and check that nothing got deleted |
749 EXPECT_FALSE(file_util::Delete(test_subdir, false)); | 741 EXPECT_FALSE(file_util::Delete(test_subdir, false)); |
750 EXPECT_TRUE(file_util::PathExists(test_subdir)); | 742 EXPECT_TRUE(file_util::PathExists(test_subdir)); |
751 EXPECT_TRUE(file_util::PathExists(file_name)); | 743 EXPECT_TRUE(file_util::PathExists(file_name)); |
752 EXPECT_TRUE(file_util::PathExists(subdir_path1)); | 744 EXPECT_TRUE(file_util::PathExists(subdir_path1)); |
753 } | 745 } |
754 | 746 |
755 // Tests recursive Delete() for a directory. | 747 // Tests recursive Delete() for a directory. |
756 TEST_F(FileUtilTest, DeleteDirRecursive) { | 748 TEST_F(FileUtilTest, DeleteDirRecursive) { |
757 // Create a subdirectory and put a file and two directories inside. | 749 // Create a subdirectory and put a file and two directories inside. |
758 FilePath test_subdir = test_dir_.Append(FPL("DeleteDirRecursive")); | 750 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirRecursive")); |
759 file_util::CreateDirectory(test_subdir); | 751 file_util::CreateDirectory(test_subdir); |
760 ASSERT_TRUE(file_util::PathExists(test_subdir)); | 752 ASSERT_TRUE(file_util::PathExists(test_subdir)); |
761 | 753 |
762 FilePath file_name = test_subdir.Append(FPL("Test DeleteDirRecursive.txt")); | 754 FilePath file_name = test_subdir.Append(FPL("Test DeleteDirRecursive.txt")); |
763 CreateTextFile(file_name, bogus_content); | 755 CreateTextFile(file_name, bogus_content); |
764 ASSERT_TRUE(file_util::PathExists(file_name)); | 756 ASSERT_TRUE(file_util::PathExists(file_name)); |
765 | 757 |
766 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); | 758 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); |
767 file_util::CreateDirectory(subdir_path1); | 759 file_util::CreateDirectory(subdir_path1); |
768 ASSERT_TRUE(file_util::PathExists(subdir_path1)); | 760 ASSERT_TRUE(file_util::PathExists(subdir_path1)); |
769 | 761 |
770 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); | 762 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); |
771 file_util::CreateDirectory(subdir_path2); | 763 file_util::CreateDirectory(subdir_path2); |
772 ASSERT_TRUE(file_util::PathExists(subdir_path2)); | 764 ASSERT_TRUE(file_util::PathExists(subdir_path2)); |
773 | 765 |
774 // Delete recursively and check that the empty dir got deleted | 766 // Delete recursively and check that the empty dir got deleted |
775 EXPECT_TRUE(file_util::Delete(subdir_path2, true)); | 767 EXPECT_TRUE(file_util::Delete(subdir_path2, true)); |
776 EXPECT_FALSE(file_util::PathExists(subdir_path2)); | 768 EXPECT_FALSE(file_util::PathExists(subdir_path2)); |
777 | 769 |
778 // Delete recursively and check that everything got deleted | 770 // Delete recursively and check that everything got deleted |
779 EXPECT_TRUE(file_util::Delete(test_subdir, true)); | 771 EXPECT_TRUE(file_util::Delete(test_subdir, true)); |
780 EXPECT_FALSE(file_util::PathExists(file_name)); | 772 EXPECT_FALSE(file_util::PathExists(file_name)); |
781 EXPECT_FALSE(file_util::PathExists(subdir_path1)); | 773 EXPECT_FALSE(file_util::PathExists(subdir_path1)); |
782 EXPECT_FALSE(file_util::PathExists(test_subdir)); | 774 EXPECT_FALSE(file_util::PathExists(test_subdir)); |
783 } | 775 } |
784 | 776 |
785 TEST_F(FileUtilTest, MoveFileNew) { | 777 TEST_F(FileUtilTest, MoveFileNew) { |
786 // Create a file | 778 // Create a file |
787 FilePath file_name_from = | 779 FilePath file_name_from = |
788 test_dir_.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 780 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
789 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 781 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
790 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 782 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
791 | 783 |
792 // The destination | 784 // The destination. |
793 FilePath file_name_to = | 785 FilePath file_name_to = temp_dir_.path().Append( |
794 test_dir_.Append(FILE_PATH_LITERAL("Move_Test_File_Destination.txt")); | 786 FILE_PATH_LITERAL("Move_Test_File_Destination.txt")); |
795 ASSERT_FALSE(file_util::PathExists(file_name_to)); | 787 ASSERT_FALSE(file_util::PathExists(file_name_to)); |
796 | 788 |
797 EXPECT_TRUE(file_util::Move(file_name_from, file_name_to)); | 789 EXPECT_TRUE(file_util::Move(file_name_from, file_name_to)); |
798 | 790 |
799 // Check everything has been moved. | 791 // Check everything has been moved. |
800 EXPECT_FALSE(file_util::PathExists(file_name_from)); | 792 EXPECT_FALSE(file_util::PathExists(file_name_from)); |
801 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 793 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
802 } | 794 } |
803 | 795 |
804 TEST_F(FileUtilTest, MoveFileExists) { | 796 TEST_F(FileUtilTest, MoveFileExists) { |
805 // Create a file | 797 // Create a file |
806 FilePath file_name_from = | 798 FilePath file_name_from = |
807 test_dir_.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 799 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
808 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 800 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
809 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 801 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
810 | 802 |
811 // The destination name | 803 // The destination name. |
812 FilePath file_name_to = | 804 FilePath file_name_to = temp_dir_.path().Append( |
813 test_dir_.Append(FILE_PATH_LITERAL("Move_Test_File_Destination.txt")); | 805 FILE_PATH_LITERAL("Move_Test_File_Destination.txt")); |
814 CreateTextFile(file_name_to, L"Old file content"); | 806 CreateTextFile(file_name_to, L"Old file content"); |
815 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 807 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
816 | 808 |
817 EXPECT_TRUE(file_util::Move(file_name_from, file_name_to)); | 809 EXPECT_TRUE(file_util::Move(file_name_from, file_name_to)); |
818 | 810 |
819 // Check everything has been moved. | 811 // Check everything has been moved. |
820 EXPECT_FALSE(file_util::PathExists(file_name_from)); | 812 EXPECT_FALSE(file_util::PathExists(file_name_from)); |
821 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 813 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
822 EXPECT_TRUE(L"Gooooooooooooooooooooogle" == ReadTextFile(file_name_to)); | 814 EXPECT_TRUE(L"Gooooooooooooooooooooogle" == ReadTextFile(file_name_to)); |
823 } | 815 } |
824 | 816 |
825 TEST_F(FileUtilTest, MoveFileDirExists) { | 817 TEST_F(FileUtilTest, MoveFileDirExists) { |
826 // Create a file | 818 // Create a file |
827 FilePath file_name_from = | 819 FilePath file_name_from = |
828 test_dir_.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 820 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
829 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 821 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
830 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 822 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
831 | 823 |
832 // The destination directory | 824 // The destination directory |
833 FilePath dir_name_to = | 825 FilePath dir_name_to = |
834 test_dir_.Append(FILE_PATH_LITERAL("Destination")); | 826 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); |
835 file_util::CreateDirectory(dir_name_to); | 827 file_util::CreateDirectory(dir_name_to); |
836 ASSERT_TRUE(file_util::PathExists(dir_name_to)); | 828 ASSERT_TRUE(file_util::PathExists(dir_name_to)); |
837 | 829 |
838 EXPECT_FALSE(file_util::Move(file_name_from, dir_name_to)); | 830 EXPECT_FALSE(file_util::Move(file_name_from, dir_name_to)); |
839 } | 831 } |
840 | 832 |
841 | 833 |
842 TEST_F(FileUtilTest, MoveNew) { | 834 TEST_F(FileUtilTest, MoveNew) { |
843 // Create a directory | 835 // Create a directory |
844 FilePath dir_name_from = | 836 FilePath dir_name_from = |
845 test_dir_.Append(FILE_PATH_LITERAL("Move_From_Subdir")); | 837 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir")); |
846 file_util::CreateDirectory(dir_name_from); | 838 file_util::CreateDirectory(dir_name_from); |
847 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 839 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
848 | 840 |
849 // Create a file under the directory | 841 // Create a file under the directory |
850 FilePath file_name_from = | 842 FilePath file_name_from = |
851 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 843 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
852 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 844 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
853 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 845 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
854 | 846 |
855 // Move the directory | 847 // Move the directory. |
856 FilePath dir_name_to = test_dir_.Append(FILE_PATH_LITERAL("Move_To_Subdir")); | 848 FilePath dir_name_to = |
| 849 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_To_Subdir")); |
857 FilePath file_name_to = | 850 FilePath file_name_to = |
858 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 851 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
859 | 852 |
860 ASSERT_FALSE(file_util::PathExists(dir_name_to)); | 853 ASSERT_FALSE(file_util::PathExists(dir_name_to)); |
861 | 854 |
862 EXPECT_TRUE(file_util::Move(dir_name_from, dir_name_to)); | 855 EXPECT_TRUE(file_util::Move(dir_name_from, dir_name_to)); |
863 | 856 |
864 // Check everything has been moved. | 857 // Check everything has been moved. |
865 EXPECT_FALSE(file_util::PathExists(dir_name_from)); | 858 EXPECT_FALSE(file_util::PathExists(dir_name_from)); |
866 EXPECT_FALSE(file_util::PathExists(file_name_from)); | 859 EXPECT_FALSE(file_util::PathExists(file_name_from)); |
867 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 860 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
868 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 861 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
869 } | 862 } |
870 | 863 |
871 TEST_F(FileUtilTest, MoveExist) { | 864 TEST_F(FileUtilTest, MoveExist) { |
872 // Create a directory | 865 // Create a directory |
873 FilePath dir_name_from = | 866 FilePath dir_name_from = |
874 test_dir_.Append(FILE_PATH_LITERAL("Move_From_Subdir")); | 867 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir")); |
875 file_util::CreateDirectory(dir_name_from); | 868 file_util::CreateDirectory(dir_name_from); |
876 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 869 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
877 | 870 |
878 // Create a file under the directory | 871 // Create a file under the directory |
879 FilePath file_name_from = | 872 FilePath file_name_from = |
880 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 873 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
881 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 874 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
882 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 875 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
883 | 876 |
884 // Move the directory | 877 // Move the directory |
885 FilePath dir_name_exists = | 878 FilePath dir_name_exists = |
886 test_dir_.Append(FILE_PATH_LITERAL("Destination")); | 879 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); |
887 | 880 |
888 FilePath dir_name_to = | 881 FilePath dir_name_to = |
889 dir_name_exists.Append(FILE_PATH_LITERAL("Move_To_Subdir")); | 882 dir_name_exists.Append(FILE_PATH_LITERAL("Move_To_Subdir")); |
890 FilePath file_name_to = | 883 FilePath file_name_to = |
891 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); | 884 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
892 | 885 |
893 // Create the destination directory. | 886 // Create the destination directory. |
894 file_util::CreateDirectory(dir_name_exists); | 887 file_util::CreateDirectory(dir_name_exists); |
895 ASSERT_TRUE(file_util::PathExists(dir_name_exists)); | 888 ASSERT_TRUE(file_util::PathExists(dir_name_exists)); |
896 | 889 |
897 EXPECT_TRUE(file_util::Move(dir_name_from, dir_name_to)); | 890 EXPECT_TRUE(file_util::Move(dir_name_from, dir_name_to)); |
898 | 891 |
899 // Check everything has been moved. | 892 // Check everything has been moved. |
900 EXPECT_FALSE(file_util::PathExists(dir_name_from)); | 893 EXPECT_FALSE(file_util::PathExists(dir_name_from)); |
901 EXPECT_FALSE(file_util::PathExists(file_name_from)); | 894 EXPECT_FALSE(file_util::PathExists(file_name_from)); |
902 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 895 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
903 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 896 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
904 } | 897 } |
905 | 898 |
906 TEST_F(FileUtilTest, CopyDirectoryRecursivelyNew) { | 899 TEST_F(FileUtilTest, CopyDirectoryRecursivelyNew) { |
907 // Create a directory. | 900 // Create a directory. |
908 FilePath dir_name_from = | 901 FilePath dir_name_from = |
909 test_dir_.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 902 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
910 file_util::CreateDirectory(dir_name_from); | 903 file_util::CreateDirectory(dir_name_from); |
911 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 904 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
912 | 905 |
913 // Create a file under the directory. | 906 // Create a file under the directory. |
914 FilePath file_name_from = | 907 FilePath file_name_from = |
915 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 908 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
916 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 909 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
917 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 910 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
918 | 911 |
919 // Create a subdirectory. | 912 // Create a subdirectory. |
920 FilePath subdir_name_from = | 913 FilePath subdir_name_from = |
921 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); | 914 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); |
922 file_util::CreateDirectory(subdir_name_from); | 915 file_util::CreateDirectory(subdir_name_from); |
923 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); | 916 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); |
924 | 917 |
925 // Create a file under the subdirectory. | 918 // Create a file under the subdirectory. |
926 FilePath file_name2_from = | 919 FilePath file_name2_from = |
927 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 920 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
928 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); | 921 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); |
929 ASSERT_TRUE(file_util::PathExists(file_name2_from)); | 922 ASSERT_TRUE(file_util::PathExists(file_name2_from)); |
930 | 923 |
931 // Copy the directory recursively. | 924 // Copy the directory recursively. |
932 FilePath dir_name_to = | 925 FilePath dir_name_to = |
933 test_dir_.Append(FILE_PATH_LITERAL("Copy_To_Subdir")); | 926 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_To_Subdir")); |
934 FilePath file_name_to = | 927 FilePath file_name_to = |
935 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 928 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
936 FilePath subdir_name_to = | 929 FilePath subdir_name_to = |
937 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); | 930 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); |
938 FilePath file_name2_to = | 931 FilePath file_name2_to = |
939 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 932 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
940 | 933 |
941 ASSERT_FALSE(file_util::PathExists(dir_name_to)); | 934 ASSERT_FALSE(file_util::PathExists(dir_name_to)); |
942 | 935 |
943 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, true)); | 936 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, true)); |
944 | 937 |
945 // Check everything has been copied. | 938 // Check everything has been copied. |
946 EXPECT_TRUE(file_util::PathExists(dir_name_from)); | 939 EXPECT_TRUE(file_util::PathExists(dir_name_from)); |
947 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 940 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
948 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); | 941 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); |
949 EXPECT_TRUE(file_util::PathExists(file_name2_from)); | 942 EXPECT_TRUE(file_util::PathExists(file_name2_from)); |
950 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 943 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
951 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 944 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
952 EXPECT_TRUE(file_util::PathExists(subdir_name_to)); | 945 EXPECT_TRUE(file_util::PathExists(subdir_name_to)); |
953 EXPECT_TRUE(file_util::PathExists(file_name2_to)); | 946 EXPECT_TRUE(file_util::PathExists(file_name2_to)); |
954 } | 947 } |
955 | 948 |
956 TEST_F(FileUtilTest, CopyDirectoryRecursivelyExists) { | 949 TEST_F(FileUtilTest, CopyDirectoryRecursivelyExists) { |
957 // Create a directory. | 950 // Create a directory. |
958 FilePath dir_name_from = | 951 FilePath dir_name_from = |
959 test_dir_.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 952 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
960 file_util::CreateDirectory(dir_name_from); | 953 file_util::CreateDirectory(dir_name_from); |
961 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 954 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
962 | 955 |
963 // Create a file under the directory. | 956 // Create a file under the directory. |
964 FilePath file_name_from = | 957 FilePath file_name_from = |
965 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 958 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
966 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 959 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
967 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 960 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
968 | 961 |
969 // Create a subdirectory. | 962 // Create a subdirectory. |
970 FilePath subdir_name_from = | 963 FilePath subdir_name_from = |
971 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); | 964 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); |
972 file_util::CreateDirectory(subdir_name_from); | 965 file_util::CreateDirectory(subdir_name_from); |
973 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); | 966 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); |
974 | 967 |
975 // Create a file under the subdirectory. | 968 // Create a file under the subdirectory. |
976 FilePath file_name2_from = | 969 FilePath file_name2_from = |
977 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 970 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
978 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); | 971 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); |
979 ASSERT_TRUE(file_util::PathExists(file_name2_from)); | 972 ASSERT_TRUE(file_util::PathExists(file_name2_from)); |
980 | 973 |
981 // Copy the directory recursively. | 974 // Copy the directory recursively. |
982 FilePath dir_name_exists = | 975 FilePath dir_name_exists = |
983 test_dir_.Append(FILE_PATH_LITERAL("Destination")); | 976 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); |
984 | 977 |
985 FilePath dir_name_to = | 978 FilePath dir_name_to = |
986 dir_name_exists.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 979 dir_name_exists.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
987 FilePath file_name_to = | 980 FilePath file_name_to = |
988 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 981 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
989 FilePath subdir_name_to = | 982 FilePath subdir_name_to = |
990 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); | 983 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); |
991 FilePath file_name2_to = | 984 FilePath file_name2_to = |
992 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 985 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
993 | 986 |
(...skipping 10 matching lines...) Expand all Loading... |
1004 EXPECT_TRUE(file_util::PathExists(file_name2_from)); | 997 EXPECT_TRUE(file_util::PathExists(file_name2_from)); |
1005 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 998 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
1006 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 999 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1007 EXPECT_TRUE(file_util::PathExists(subdir_name_to)); | 1000 EXPECT_TRUE(file_util::PathExists(subdir_name_to)); |
1008 EXPECT_TRUE(file_util::PathExists(file_name2_to)); | 1001 EXPECT_TRUE(file_util::PathExists(file_name2_to)); |
1009 } | 1002 } |
1010 | 1003 |
1011 TEST_F(FileUtilTest, CopyDirectoryNew) { | 1004 TEST_F(FileUtilTest, CopyDirectoryNew) { |
1012 // Create a directory. | 1005 // Create a directory. |
1013 FilePath dir_name_from = | 1006 FilePath dir_name_from = |
1014 test_dir_.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 1007 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
1015 file_util::CreateDirectory(dir_name_from); | 1008 file_util::CreateDirectory(dir_name_from); |
1016 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 1009 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
1017 | 1010 |
1018 // Create a file under the directory. | 1011 // Create a file under the directory. |
1019 FilePath file_name_from = | 1012 FilePath file_name_from = |
1020 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1013 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1021 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1014 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1022 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1015 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1023 | 1016 |
1024 // Create a subdirectory. | 1017 // Create a subdirectory. |
1025 FilePath subdir_name_from = | 1018 FilePath subdir_name_from = |
1026 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); | 1019 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); |
1027 file_util::CreateDirectory(subdir_name_from); | 1020 file_util::CreateDirectory(subdir_name_from); |
1028 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); | 1021 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); |
1029 | 1022 |
1030 // Create a file under the subdirectory. | 1023 // Create a file under the subdirectory. |
1031 FilePath file_name2_from = | 1024 FilePath file_name2_from = |
1032 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1025 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1033 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); | 1026 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); |
1034 ASSERT_TRUE(file_util::PathExists(file_name2_from)); | 1027 ASSERT_TRUE(file_util::PathExists(file_name2_from)); |
1035 | 1028 |
1036 // Copy the directory not recursively. | 1029 // Copy the directory not recursively. |
1037 FilePath dir_name_to = | 1030 FilePath dir_name_to = |
1038 test_dir_.Append(FILE_PATH_LITERAL("Copy_To_Subdir")); | 1031 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_To_Subdir")); |
1039 FilePath file_name_to = | 1032 FilePath file_name_to = |
1040 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1033 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1041 FilePath subdir_name_to = | 1034 FilePath subdir_name_to = |
1042 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); | 1035 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); |
1043 | 1036 |
1044 ASSERT_FALSE(file_util::PathExists(dir_name_to)); | 1037 ASSERT_FALSE(file_util::PathExists(dir_name_to)); |
1045 | 1038 |
1046 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, false)); | 1039 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, false)); |
1047 | 1040 |
1048 // Check everything has been copied. | 1041 // Check everything has been copied. |
1049 EXPECT_TRUE(file_util::PathExists(dir_name_from)); | 1042 EXPECT_TRUE(file_util::PathExists(dir_name_from)); |
1050 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 1043 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
1051 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); | 1044 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); |
1052 EXPECT_TRUE(file_util::PathExists(file_name2_from)); | 1045 EXPECT_TRUE(file_util::PathExists(file_name2_from)); |
1053 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 1046 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
1054 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 1047 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1055 EXPECT_FALSE(file_util::PathExists(subdir_name_to)); | 1048 EXPECT_FALSE(file_util::PathExists(subdir_name_to)); |
1056 } | 1049 } |
1057 | 1050 |
1058 TEST_F(FileUtilTest, CopyDirectoryExists) { | 1051 TEST_F(FileUtilTest, CopyDirectoryExists) { |
1059 // Create a directory. | 1052 // Create a directory. |
1060 FilePath dir_name_from = | 1053 FilePath dir_name_from = |
1061 test_dir_.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 1054 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
1062 file_util::CreateDirectory(dir_name_from); | 1055 file_util::CreateDirectory(dir_name_from); |
1063 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 1056 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
1064 | 1057 |
1065 // Create a file under the directory. | 1058 // Create a file under the directory. |
1066 FilePath file_name_from = | 1059 FilePath file_name_from = |
1067 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1060 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1068 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1061 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1069 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1062 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1070 | 1063 |
1071 // Create a subdirectory. | 1064 // Create a subdirectory. |
1072 FilePath subdir_name_from = | 1065 FilePath subdir_name_from = |
1073 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); | 1066 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); |
1074 file_util::CreateDirectory(subdir_name_from); | 1067 file_util::CreateDirectory(subdir_name_from); |
1075 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); | 1068 ASSERT_TRUE(file_util::PathExists(subdir_name_from)); |
1076 | 1069 |
1077 // Create a file under the subdirectory. | 1070 // Create a file under the subdirectory. |
1078 FilePath file_name2_from = | 1071 FilePath file_name2_from = |
1079 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1072 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1080 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); | 1073 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); |
1081 ASSERT_TRUE(file_util::PathExists(file_name2_from)); | 1074 ASSERT_TRUE(file_util::PathExists(file_name2_from)); |
1082 | 1075 |
1083 // Copy the directory not recursively. | 1076 // Copy the directory not recursively. |
1084 FilePath dir_name_to = | 1077 FilePath dir_name_to = |
1085 test_dir_.Append(FILE_PATH_LITERAL("Copy_To_Subdir")); | 1078 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_To_Subdir")); |
1086 FilePath file_name_to = | 1079 FilePath file_name_to = |
1087 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1080 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1088 FilePath subdir_name_to = | 1081 FilePath subdir_name_to = |
1089 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); | 1082 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); |
1090 | 1083 |
1091 // Create the destination directory. | 1084 // Create the destination directory. |
1092 file_util::CreateDirectory(dir_name_to); | 1085 file_util::CreateDirectory(dir_name_to); |
1093 ASSERT_TRUE(file_util::PathExists(dir_name_to)); | 1086 ASSERT_TRUE(file_util::PathExists(dir_name_to)); |
1094 | 1087 |
1095 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, false)); | 1088 EXPECT_TRUE(file_util::CopyDirectory(dir_name_from, dir_name_to, false)); |
1096 | 1089 |
1097 // Check everything has been copied. | 1090 // Check everything has been copied. |
1098 EXPECT_TRUE(file_util::PathExists(dir_name_from)); | 1091 EXPECT_TRUE(file_util::PathExists(dir_name_from)); |
1099 EXPECT_TRUE(file_util::PathExists(file_name_from)); | 1092 EXPECT_TRUE(file_util::PathExists(file_name_from)); |
1100 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); | 1093 EXPECT_TRUE(file_util::PathExists(subdir_name_from)); |
1101 EXPECT_TRUE(file_util::PathExists(file_name2_from)); | 1094 EXPECT_TRUE(file_util::PathExists(file_name2_from)); |
1102 EXPECT_TRUE(file_util::PathExists(dir_name_to)); | 1095 EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
1103 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 1096 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1104 EXPECT_FALSE(file_util::PathExists(subdir_name_to)); | 1097 EXPECT_FALSE(file_util::PathExists(subdir_name_to)); |
1105 } | 1098 } |
1106 | 1099 |
1107 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToNew) { | 1100 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToNew) { |
1108 // Create a file | 1101 // Create a file |
1109 FilePath file_name_from = | 1102 FilePath file_name_from = |
1110 test_dir_.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1103 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1111 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1104 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1112 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1105 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1113 | 1106 |
1114 // The destination name | 1107 // The destination name |
1115 FilePath file_name_to = | 1108 FilePath file_name_to = temp_dir_.path().Append( |
1116 test_dir_.Append(FILE_PATH_LITERAL("Copy_Test_File_Destination.txt")); | 1109 FILE_PATH_LITERAL("Copy_Test_File_Destination.txt")); |
1117 ASSERT_FALSE(file_util::PathExists(file_name_to)); | 1110 ASSERT_FALSE(file_util::PathExists(file_name_to)); |
1118 | 1111 |
1119 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, file_name_to, true)); | 1112 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, file_name_to, true)); |
1120 | 1113 |
1121 // Check the has been copied | 1114 // Check the has been copied |
1122 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 1115 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1123 } | 1116 } |
1124 | 1117 |
1125 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExisting) { | 1118 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExisting) { |
1126 // Create a file | 1119 // Create a file |
1127 FilePath file_name_from = | 1120 FilePath file_name_from = |
1128 test_dir_.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1121 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1129 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1122 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1130 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1123 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1131 | 1124 |
1132 // The destination name | 1125 // The destination name |
1133 FilePath file_name_to = | 1126 FilePath file_name_to = temp_dir_.path().Append( |
1134 test_dir_.Append(FILE_PATH_LITERAL("Copy_Test_File_Destination.txt")); | 1127 FILE_PATH_LITERAL("Copy_Test_File_Destination.txt")); |
1135 CreateTextFile(file_name_to, L"Old file content"); | 1128 CreateTextFile(file_name_to, L"Old file content"); |
1136 ASSERT_TRUE(file_util::PathExists(file_name_to)); | 1129 ASSERT_TRUE(file_util::PathExists(file_name_to)); |
1137 | 1130 |
1138 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, file_name_to, true)); | 1131 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, file_name_to, true)); |
1139 | 1132 |
1140 // Check the has been copied | 1133 // Check the has been copied |
1141 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 1134 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1142 EXPECT_TRUE(L"Gooooooooooooooooooooogle" == ReadTextFile(file_name_to)); | 1135 EXPECT_TRUE(L"Gooooooooooooooooooooogle" == ReadTextFile(file_name_to)); |
1143 } | 1136 } |
1144 | 1137 |
1145 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExistingDirectory) { | 1138 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExistingDirectory) { |
1146 // Create a file | 1139 // Create a file |
1147 FilePath file_name_from = | 1140 FilePath file_name_from = |
1148 test_dir_.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1141 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1149 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1142 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1150 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1143 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1151 | 1144 |
1152 // The destination | 1145 // The destination |
1153 FilePath dir_name_to = | 1146 FilePath dir_name_to = |
1154 test_dir_.Append(FILE_PATH_LITERAL("Destination")); | 1147 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); |
1155 file_util::CreateDirectory(dir_name_to); | 1148 file_util::CreateDirectory(dir_name_to); |
1156 ASSERT_TRUE(file_util::PathExists(dir_name_to)); | 1149 ASSERT_TRUE(file_util::PathExists(dir_name_to)); |
1157 FilePath file_name_to = | 1150 FilePath file_name_to = |
1158 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1151 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1159 | 1152 |
1160 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, dir_name_to, true)); | 1153 EXPECT_TRUE(file_util::CopyDirectory(file_name_from, dir_name_to, true)); |
1161 | 1154 |
1162 // Check the has been copied | 1155 // Check the has been copied |
1163 EXPECT_TRUE(file_util::PathExists(file_name_to)); | 1156 EXPECT_TRUE(file_util::PathExists(file_name_to)); |
1164 } | 1157 } |
1165 | 1158 |
1166 TEST_F(FileUtilTest, CopyFile) { | 1159 TEST_F(FileUtilTest, CopyFile) { |
1167 // Create a directory | 1160 // Create a directory |
1168 FilePath dir_name_from = | 1161 FilePath dir_name_from = |
1169 test_dir_.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); | 1162 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); |
1170 file_util::CreateDirectory(dir_name_from); | 1163 file_util::CreateDirectory(dir_name_from); |
1171 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 1164 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
1172 | 1165 |
1173 // Create a file under the directory | 1166 // Create a file under the directory |
1174 FilePath file_name_from = | 1167 FilePath file_name_from = |
1175 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); | 1168 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); |
1176 const std::wstring file_contents(L"Gooooooooooooooooooooogle"); | 1169 const std::wstring file_contents(L"Gooooooooooooooooooooogle"); |
1177 CreateTextFile(file_name_from, file_contents); | 1170 CreateTextFile(file_name_from, file_contents); |
1178 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1171 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1179 | 1172 |
(...skipping 16 matching lines...) Expand all Loading... |
1196 EXPECT_TRUE(file_util::PathExists(dest_file)); | 1189 EXPECT_TRUE(file_util::PathExists(dest_file)); |
1197 const std::wstring read_contents = ReadTextFile(dest_file); | 1190 const std::wstring read_contents = ReadTextFile(dest_file); |
1198 EXPECT_EQ(file_contents, read_contents); | 1191 EXPECT_EQ(file_contents, read_contents); |
1199 EXPECT_TRUE(file_util::PathExists(dest_file2_test)); | 1192 EXPECT_TRUE(file_util::PathExists(dest_file2_test)); |
1200 EXPECT_TRUE(file_util::PathExists(dest_file2)); | 1193 EXPECT_TRUE(file_util::PathExists(dest_file2)); |
1201 } | 1194 } |
1202 | 1195 |
1203 // TODO(erikkay): implement | 1196 // TODO(erikkay): implement |
1204 #if defined(OS_WIN) | 1197 #if defined(OS_WIN) |
1205 TEST_F(FileUtilTest, GetFileCreationLocalTime) { | 1198 TEST_F(FileUtilTest, GetFileCreationLocalTime) { |
1206 FilePath file_name = test_dir_.Append(L"Test File.txt"); | 1199 FilePath file_name = temp_dir_.path().Append(L"Test File.txt"); |
1207 | 1200 |
1208 SYSTEMTIME start_time; | 1201 SYSTEMTIME start_time; |
1209 GetLocalTime(&start_time); | 1202 GetLocalTime(&start_time); |
1210 Sleep(100); | 1203 Sleep(100); |
1211 CreateTextFile(file_name, L"New file!"); | 1204 CreateTextFile(file_name, L"New file!"); |
1212 Sleep(100); | 1205 Sleep(100); |
1213 SYSTEMTIME end_time; | 1206 SYSTEMTIME end_time; |
1214 GetLocalTime(&end_time); | 1207 GetLocalTime(&end_time); |
1215 | 1208 |
1216 SYSTEMTIME file_creation_time; | 1209 SYSTEMTIME file_creation_time; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 EXPECT_FALSE(file_util::TextContentsEqual(first1_file, first2_file)); | 1327 EXPECT_FALSE(file_util::TextContentsEqual(first1_file, first2_file)); |
1335 EXPECT_TRUE(file_util::TextContentsEqual(empty1_file, empty2_file)); | 1328 EXPECT_TRUE(file_util::TextContentsEqual(empty1_file, empty2_file)); |
1336 EXPECT_FALSE(file_util::TextContentsEqual(original_file, empty1_file)); | 1329 EXPECT_FALSE(file_util::TextContentsEqual(original_file, empty1_file)); |
1337 EXPECT_TRUE(file_util::TextContentsEqual(blank_line_file, | 1330 EXPECT_TRUE(file_util::TextContentsEqual(blank_line_file, |
1338 blank_line_crlf_file)); | 1331 blank_line_crlf_file)); |
1339 } | 1332 } |
1340 | 1333 |
1341 // We don't need equivalent functionality outside of Windows. | 1334 // We don't need equivalent functionality outside of Windows. |
1342 #if defined(OS_WIN) | 1335 #if defined(OS_WIN) |
1343 TEST_F(FileUtilTest, ResolveShortcutTest) { | 1336 TEST_F(FileUtilTest, ResolveShortcutTest) { |
1344 FilePath target_file = test_dir_.Append(L"Target.txt"); | 1337 FilePath target_file = temp_dir_.path().Append(L"Target.txt"); |
1345 CreateTextFile(target_file, L"This is the target."); | 1338 CreateTextFile(target_file, L"This is the target."); |
1346 | 1339 |
1347 FilePath link_file = test_dir_.Append(L"Link.lnk"); | 1340 FilePath link_file = temp_dir_.path().Append(L"Link.lnk"); |
1348 | 1341 |
1349 HRESULT result; | 1342 HRESULT result; |
1350 IShellLink *shell = NULL; | 1343 IShellLink *shell = NULL; |
1351 IPersistFile *persist = NULL; | 1344 IPersistFile *persist = NULL; |
1352 | 1345 |
1353 CoInitialize(NULL); | 1346 CoInitialize(NULL); |
1354 // Temporarily create a shortcut for test | 1347 // Temporarily create a shortcut for test |
1355 result = CoCreateInstance(CLSID_ShellLink, NULL, | 1348 result = CoCreateInstance(CLSID_ShellLink, NULL, |
1356 CLSCTX_INPROC_SERVER, IID_IShellLink, | 1349 CLSCTX_INPROC_SERVER, IID_IShellLink, |
1357 reinterpret_cast<LPVOID*>(&shell)); | 1350 reinterpret_cast<LPVOID*>(&shell)); |
(...skipping 20 matching lines...) Expand all Loading... |
1378 EXPECT_EQ(L"This is the target.", contents); | 1371 EXPECT_EQ(L"This is the target.", contents); |
1379 | 1372 |
1380 // Cleaning | 1373 // Cleaning |
1381 DeleteFile(target_file.value().c_str()); | 1374 DeleteFile(target_file.value().c_str()); |
1382 DeleteFile(link_file.value().c_str()); | 1375 DeleteFile(link_file.value().c_str()); |
1383 CoUninitialize(); | 1376 CoUninitialize(); |
1384 } | 1377 } |
1385 | 1378 |
1386 TEST_F(FileUtilTest, CreateShortcutTest) { | 1379 TEST_F(FileUtilTest, CreateShortcutTest) { |
1387 const wchar_t file_contents[] = L"This is another target."; | 1380 const wchar_t file_contents[] = L"This is another target."; |
1388 FilePath target_file = test_dir_.Append(L"Target1.txt"); | 1381 FilePath target_file = temp_dir_.path().Append(L"Target1.txt"); |
1389 CreateTextFile(target_file, file_contents); | 1382 CreateTextFile(target_file, file_contents); |
1390 | 1383 |
1391 FilePath link_file = test_dir_.Append(L"Link1.lnk"); | 1384 FilePath link_file = temp_dir_.path().Append(L"Link1.lnk"); |
1392 | 1385 |
1393 CoInitialize(NULL); | 1386 CoInitialize(NULL); |
1394 EXPECT_TRUE(file_util::CreateShortcutLink(target_file.value().c_str(), | 1387 EXPECT_TRUE(file_util::CreateShortcutLink(target_file.value().c_str(), |
1395 link_file.value().c_str(), | 1388 link_file.value().c_str(), |
1396 NULL, NULL, NULL, NULL, 0, NULL)); | 1389 NULL, NULL, NULL, NULL, 0, NULL)); |
1397 FilePath resolved_name = link_file; | 1390 FilePath resolved_name = link_file; |
1398 EXPECT_TRUE(file_util::ResolveShortcut(&resolved_name)); | 1391 EXPECT_TRUE(file_util::ResolveShortcut(&resolved_name)); |
1399 std::wstring read_contents = ReadTextFile(resolved_name); | 1392 std::wstring read_contents = ReadTextFile(resolved_name); |
1400 EXPECT_EQ(file_contents, read_contents); | 1393 EXPECT_EQ(file_contents, read_contents); |
1401 | 1394 |
1402 DeleteFile(target_file.value().c_str()); | 1395 DeleteFile(target_file.value().c_str()); |
1403 DeleteFile(link_file.value().c_str()); | 1396 DeleteFile(link_file.value().c_str()); |
1404 CoUninitialize(); | 1397 CoUninitialize(); |
1405 } | 1398 } |
1406 | 1399 |
1407 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) { | 1400 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) { |
1408 // Create a directory | 1401 // Create a directory |
1409 FilePath dir_name_from = | 1402 FilePath dir_name_from = |
1410 test_dir_.Append(FILE_PATH_LITERAL("CopyAndDelete_From_Subdir")); | 1403 temp_dir_.path().Append(FILE_PATH_LITERAL("CopyAndDelete_From_Subdir")); |
1411 file_util::CreateDirectory(dir_name_from); | 1404 file_util::CreateDirectory(dir_name_from); |
1412 ASSERT_TRUE(file_util::PathExists(dir_name_from)); | 1405 ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
1413 | 1406 |
1414 // Create a file under the directory | 1407 // Create a file under the directory |
1415 FilePath file_name_from = | 1408 FilePath file_name_from = |
1416 dir_name_from.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt")); | 1409 dir_name_from.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt")); |
1417 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); | 1410 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
1418 ASSERT_TRUE(file_util::PathExists(file_name_from)); | 1411 ASSERT_TRUE(file_util::PathExists(file_name_from)); |
1419 | 1412 |
1420 // Move the directory by using CopyAndDeleteDirectory | 1413 // Move the directory by using CopyAndDeleteDirectory |
1421 FilePath dir_name_to = test_dir_.Append( | 1414 FilePath dir_name_to = temp_dir_.path().Append( |
1422 FILE_PATH_LITERAL("CopyAndDelete_To_Subdir")); | 1415 FILE_PATH_LITERAL("CopyAndDelete_To_Subdir")); |
1423 FilePath file_name_to = | 1416 FilePath file_name_to = |
1424 dir_name_to.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt")); | 1417 dir_name_to.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt")); |
1425 | 1418 |
1426 ASSERT_FALSE(file_util::PathExists(dir_name_to)); | 1419 ASSERT_FALSE(file_util::PathExists(dir_name_to)); |
1427 | 1420 |
1428 EXPECT_TRUE(file_util::CopyAndDeleteDirectory(dir_name_from, dir_name_to)); | 1421 EXPECT_TRUE(file_util::CopyAndDeleteDirectory(dir_name_from, dir_name_to)); |
1429 | 1422 |
1430 // Check everything has been moved. | 1423 // Check everything has been moved. |
1431 EXPECT_FALSE(file_util::PathExists(dir_name_from)); | 1424 EXPECT_FALSE(file_util::PathExists(dir_name_from)); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1504 FilePath temp_dir; | 1497 FilePath temp_dir; |
1505 ASSERT_TRUE(file_util::CreateNewTempDirectory(FilePath::StringType(), | 1498 ASSERT_TRUE(file_util::CreateNewTempDirectory(FilePath::StringType(), |
1506 &temp_dir)); | 1499 &temp_dir)); |
1507 EXPECT_TRUE(file_util::PathExists(temp_dir)); | 1500 EXPECT_TRUE(file_util::PathExists(temp_dir)); |
1508 EXPECT_TRUE(file_util::Delete(temp_dir, false)); | 1501 EXPECT_TRUE(file_util::Delete(temp_dir, false)); |
1509 } | 1502 } |
1510 | 1503 |
1511 TEST_F(FileUtilTest, CreateNewTemporaryDirInDirTest) { | 1504 TEST_F(FileUtilTest, CreateNewTemporaryDirInDirTest) { |
1512 FilePath new_dir; | 1505 FilePath new_dir; |
1513 ASSERT_TRUE(file_util::CreateTemporaryDirInDir( | 1506 ASSERT_TRUE(file_util::CreateTemporaryDirInDir( |
1514 test_dir_, | 1507 temp_dir_.path(), |
1515 FILE_PATH_LITERAL("CreateNewTemporaryDirInDirTest"), | 1508 FILE_PATH_LITERAL("CreateNewTemporaryDirInDirTest"), |
1516 &new_dir)); | 1509 &new_dir)); |
1517 EXPECT_TRUE(file_util::PathExists(new_dir)); | 1510 EXPECT_TRUE(file_util::PathExists(new_dir)); |
1518 EXPECT_TRUE(test_dir_.IsParent(new_dir)); | 1511 EXPECT_TRUE(temp_dir_.path().IsParent(new_dir)); |
1519 EXPECT_TRUE(file_util::Delete(new_dir, false)); | 1512 EXPECT_TRUE(file_util::Delete(new_dir, false)); |
1520 } | 1513 } |
1521 | 1514 |
1522 TEST_F(FileUtilTest, GetShmemTempDirTest) { | 1515 TEST_F(FileUtilTest, GetShmemTempDirTest) { |
1523 FilePath dir; | 1516 FilePath dir; |
1524 EXPECT_TRUE(file_util::GetShmemTempDir(&dir)); | 1517 EXPECT_TRUE(file_util::GetShmemTempDir(&dir)); |
1525 EXPECT_TRUE(file_util::DirectoryExists(dir)); | 1518 EXPECT_TRUE(file_util::DirectoryExists(dir)); |
1526 } | 1519 } |
1527 | 1520 |
1528 TEST_F(FileUtilTest, CreateDirectoryTest) { | 1521 TEST_F(FileUtilTest, CreateDirectoryTest) { |
1529 FilePath test_root = | 1522 FilePath test_root = |
1530 test_dir_.Append(FILE_PATH_LITERAL("create_directory_test")); | 1523 temp_dir_.path().Append(FILE_PATH_LITERAL("create_directory_test")); |
1531 #if defined(OS_WIN) | 1524 #if defined(OS_WIN) |
1532 FilePath test_path = | 1525 FilePath test_path = |
1533 test_root.Append(FILE_PATH_LITERAL("dir\\tree\\likely\\doesnt\\exist\\")); | 1526 test_root.Append(FILE_PATH_LITERAL("dir\\tree\\likely\\doesnt\\exist\\")); |
1534 #elif defined(OS_POSIX) | 1527 #elif defined(OS_POSIX) |
1535 FilePath test_path = | 1528 FilePath test_path = |
1536 test_root.Append(FILE_PATH_LITERAL("dir/tree/likely/doesnt/exist/")); | 1529 test_root.Append(FILE_PATH_LITERAL("dir/tree/likely/doesnt/exist/")); |
1537 #endif | 1530 #endif |
1538 | 1531 |
1539 EXPECT_FALSE(file_util::PathExists(test_path)); | 1532 EXPECT_FALSE(file_util::PathExists(test_path)); |
1540 EXPECT_TRUE(file_util::CreateDirectory(test_path)); | 1533 EXPECT_TRUE(file_util::CreateDirectory(test_path)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 invalid_drive.Append(FILE_PATH_LITERAL("some\\inaccessible\\dir")); | 1569 invalid_drive.Append(FILE_PATH_LITERAL("some\\inaccessible\\dir")); |
1577 if (!file_util::PathExists(invalid_drive)) { | 1570 if (!file_util::PathExists(invalid_drive)) { |
1578 EXPECT_FALSE(file_util::CreateDirectory(invalid_path)); | 1571 EXPECT_FALSE(file_util::CreateDirectory(invalid_path)); |
1579 } | 1572 } |
1580 #endif | 1573 #endif |
1581 } | 1574 } |
1582 | 1575 |
1583 TEST_F(FileUtilTest, DetectDirectoryTest) { | 1576 TEST_F(FileUtilTest, DetectDirectoryTest) { |
1584 // Check a directory | 1577 // Check a directory |
1585 FilePath test_root = | 1578 FilePath test_root = |
1586 test_dir_.Append(FILE_PATH_LITERAL("detect_directory_test")); | 1579 temp_dir_.path().Append(FILE_PATH_LITERAL("detect_directory_test")); |
1587 EXPECT_FALSE(file_util::PathExists(test_root)); | 1580 EXPECT_FALSE(file_util::PathExists(test_root)); |
1588 EXPECT_TRUE(file_util::CreateDirectory(test_root)); | 1581 EXPECT_TRUE(file_util::CreateDirectory(test_root)); |
1589 EXPECT_TRUE(file_util::PathExists(test_root)); | 1582 EXPECT_TRUE(file_util::PathExists(test_root)); |
1590 EXPECT_TRUE(file_util::DirectoryExists(test_root)); | 1583 EXPECT_TRUE(file_util::DirectoryExists(test_root)); |
1591 | 1584 |
1592 // Check a file | 1585 // Check a file |
1593 FilePath test_path = | 1586 FilePath test_path = |
1594 test_root.Append(FILE_PATH_LITERAL("foobar.txt")); | 1587 test_root.Append(FILE_PATH_LITERAL("foobar.txt")); |
1595 EXPECT_FALSE(file_util::PathExists(test_path)); | 1588 EXPECT_FALSE(file_util::PathExists(test_path)); |
1596 CreateTextFile(test_path, L"test file"); | 1589 CreateTextFile(test_path, L"test file"); |
1597 EXPECT_TRUE(file_util::PathExists(test_path)); | 1590 EXPECT_TRUE(file_util::PathExists(test_path)); |
1598 EXPECT_FALSE(file_util::DirectoryExists(test_path)); | 1591 EXPECT_FALSE(file_util::DirectoryExists(test_path)); |
1599 EXPECT_TRUE(file_util::Delete(test_path, false)); | 1592 EXPECT_TRUE(file_util::Delete(test_path, false)); |
1600 | 1593 |
1601 EXPECT_TRUE(file_util::Delete(test_root, true)); | 1594 EXPECT_TRUE(file_util::Delete(test_root, true)); |
1602 } | 1595 } |
1603 | 1596 |
1604 TEST_F(FileUtilTest, FileEnumeratorTest) { | 1597 TEST_F(FileUtilTest, FileEnumeratorTest) { |
1605 // Test an empty directory. | 1598 // Test an empty directory. |
1606 file_util::FileEnumerator f0(test_dir_, true, FILES_AND_DIRECTORIES); | 1599 file_util::FileEnumerator f0(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1607 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); | 1600 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); |
1608 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); | 1601 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); |
1609 | 1602 |
1610 // Test an empty directory, non-recursively, including "..". | 1603 // Test an empty directory, non-recursively, including "..". |
1611 file_util::FileEnumerator f0_dotdot(test_dir_, false, | 1604 file_util::FileEnumerator f0_dotdot(temp_dir_.path(), false, |
1612 static_cast<file_util::FileEnumerator::FILE_TYPE>( | 1605 static_cast<file_util::FileEnumerator::FILE_TYPE>( |
1613 FILES_AND_DIRECTORIES | file_util::FileEnumerator::INCLUDE_DOT_DOT)); | 1606 FILES_AND_DIRECTORIES | file_util::FileEnumerator::INCLUDE_DOT_DOT)); |
1614 EXPECT_EQ(test_dir_.Append(FILE_PATH_LITERAL("..")).value(), | 1607 EXPECT_EQ(temp_dir_.path().Append(FILE_PATH_LITERAL("..")).value(), |
1615 f0_dotdot.Next().value()); | 1608 f0_dotdot.Next().value()); |
1616 EXPECT_EQ(FILE_PATH_LITERAL(""), | 1609 EXPECT_EQ(FILE_PATH_LITERAL(""), |
1617 f0_dotdot.Next().value()); | 1610 f0_dotdot.Next().value()); |
1618 | 1611 |
1619 // create the directories | 1612 // create the directories |
1620 FilePath dir1 = test_dir_.Append(FILE_PATH_LITERAL("dir1")); | 1613 FilePath dir1 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir1")); |
1621 EXPECT_TRUE(file_util::CreateDirectory(dir1)); | 1614 EXPECT_TRUE(file_util::CreateDirectory(dir1)); |
1622 FilePath dir2 = test_dir_.Append(FILE_PATH_LITERAL("dir2")); | 1615 FilePath dir2 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir2")); |
1623 EXPECT_TRUE(file_util::CreateDirectory(dir2)); | 1616 EXPECT_TRUE(file_util::CreateDirectory(dir2)); |
1624 FilePath dir2inner = dir2.Append(FILE_PATH_LITERAL("inner")); | 1617 FilePath dir2inner = dir2.Append(FILE_PATH_LITERAL("inner")); |
1625 EXPECT_TRUE(file_util::CreateDirectory(dir2inner)); | 1618 EXPECT_TRUE(file_util::CreateDirectory(dir2inner)); |
1626 | 1619 |
1627 // create the files | 1620 // create the files |
1628 FilePath dir2file = dir2.Append(FILE_PATH_LITERAL("dir2file.txt")); | 1621 FilePath dir2file = dir2.Append(FILE_PATH_LITERAL("dir2file.txt")); |
1629 CreateTextFile(dir2file, L""); | 1622 CreateTextFile(dir2file, L""); |
1630 FilePath dir2innerfile = dir2inner.Append(FILE_PATH_LITERAL("innerfile.txt")); | 1623 FilePath dir2innerfile = dir2inner.Append(FILE_PATH_LITERAL("innerfile.txt")); |
1631 CreateTextFile(dir2innerfile, L""); | 1624 CreateTextFile(dir2innerfile, L""); |
1632 FilePath file1 = test_dir_.Append(FILE_PATH_LITERAL("file1.txt")); | 1625 FilePath file1 = temp_dir_.path().Append(FILE_PATH_LITERAL("file1.txt")); |
1633 CreateTextFile(file1, L""); | 1626 CreateTextFile(file1, L""); |
1634 FilePath file2_rel = | 1627 FilePath file2_rel = |
1635 dir2.Append(FilePath::kParentDirectory) | 1628 dir2.Append(FilePath::kParentDirectory) |
1636 .Append(FILE_PATH_LITERAL("file2.txt")); | 1629 .Append(FILE_PATH_LITERAL("file2.txt")); |
1637 CreateTextFile(file2_rel, L""); | 1630 CreateTextFile(file2_rel, L""); |
1638 FilePath file2_abs = test_dir_.Append(FILE_PATH_LITERAL("file2.txt")); | 1631 FilePath file2_abs = temp_dir_.path().Append(FILE_PATH_LITERAL("file2.txt")); |
1639 | 1632 |
1640 // Only enumerate files. | 1633 // Only enumerate files. |
1641 file_util::FileEnumerator f1(test_dir_, true, | 1634 file_util::FileEnumerator f1(temp_dir_.path(), true, |
1642 file_util::FileEnumerator::FILES); | 1635 file_util::FileEnumerator::FILES); |
1643 FindResultCollector c1(f1); | 1636 FindResultCollector c1(f1); |
1644 EXPECT_TRUE(c1.HasFile(file1)); | 1637 EXPECT_TRUE(c1.HasFile(file1)); |
1645 EXPECT_TRUE(c1.HasFile(file2_abs)); | 1638 EXPECT_TRUE(c1.HasFile(file2_abs)); |
1646 EXPECT_TRUE(c1.HasFile(dir2file)); | 1639 EXPECT_TRUE(c1.HasFile(dir2file)); |
1647 EXPECT_TRUE(c1.HasFile(dir2innerfile)); | 1640 EXPECT_TRUE(c1.HasFile(dir2innerfile)); |
1648 EXPECT_EQ(c1.size(), 4); | 1641 EXPECT_EQ(c1.size(), 4); |
1649 | 1642 |
1650 // Only enumerate directories. | 1643 // Only enumerate directories. |
1651 file_util::FileEnumerator f2(test_dir_, true, | 1644 file_util::FileEnumerator f2(temp_dir_.path(), true, |
1652 file_util::FileEnumerator::DIRECTORIES); | 1645 file_util::FileEnumerator::DIRECTORIES); |
1653 FindResultCollector c2(f2); | 1646 FindResultCollector c2(f2); |
1654 EXPECT_TRUE(c2.HasFile(dir1)); | 1647 EXPECT_TRUE(c2.HasFile(dir1)); |
1655 EXPECT_TRUE(c2.HasFile(dir2)); | 1648 EXPECT_TRUE(c2.HasFile(dir2)); |
1656 EXPECT_TRUE(c2.HasFile(dir2inner)); | 1649 EXPECT_TRUE(c2.HasFile(dir2inner)); |
1657 EXPECT_EQ(c2.size(), 3); | 1650 EXPECT_EQ(c2.size(), 3); |
1658 | 1651 |
1659 // Only enumerate directories non-recursively. | 1652 // Only enumerate directories non-recursively. |
1660 file_util::FileEnumerator f2_non_recursive( | 1653 file_util::FileEnumerator f2_non_recursive( |
1661 test_dir_, false, file_util::FileEnumerator::DIRECTORIES); | 1654 temp_dir_.path(), false, file_util::FileEnumerator::DIRECTORIES); |
1662 FindResultCollector c2_non_recursive(f2_non_recursive); | 1655 FindResultCollector c2_non_recursive(f2_non_recursive); |
1663 EXPECT_TRUE(c2_non_recursive.HasFile(dir1)); | 1656 EXPECT_TRUE(c2_non_recursive.HasFile(dir1)); |
1664 EXPECT_TRUE(c2_non_recursive.HasFile(dir2)); | 1657 EXPECT_TRUE(c2_non_recursive.HasFile(dir2)); |
1665 EXPECT_EQ(c2_non_recursive.size(), 2); | 1658 EXPECT_EQ(c2_non_recursive.size(), 2); |
1666 | 1659 |
1667 // Only enumerate directories, non-recursively, including "..". | 1660 // Only enumerate directories, non-recursively, including "..". |
1668 file_util::FileEnumerator f2_dotdot( | 1661 file_util::FileEnumerator f2_dotdot( |
1669 test_dir_, false, | 1662 temp_dir_.path(), false, |
1670 static_cast<file_util::FileEnumerator::FILE_TYPE>( | 1663 static_cast<file_util::FileEnumerator::FILE_TYPE>( |
1671 file_util::FileEnumerator::DIRECTORIES | | 1664 file_util::FileEnumerator::DIRECTORIES | |
1672 file_util::FileEnumerator::INCLUDE_DOT_DOT)); | 1665 file_util::FileEnumerator::INCLUDE_DOT_DOT)); |
1673 FindResultCollector c2_dotdot(f2_dotdot); | 1666 FindResultCollector c2_dotdot(f2_dotdot); |
1674 EXPECT_TRUE(c2_dotdot.HasFile(dir1)); | 1667 EXPECT_TRUE(c2_dotdot.HasFile(dir1)); |
1675 EXPECT_TRUE(c2_dotdot.HasFile(dir2)); | 1668 EXPECT_TRUE(c2_dotdot.HasFile(dir2)); |
1676 EXPECT_TRUE(c2_dotdot.HasFile(test_dir_.Append(FILE_PATH_LITERAL("..")))); | 1669 EXPECT_TRUE(c2_dotdot.HasFile( |
| 1670 temp_dir_.path().Append(FILE_PATH_LITERAL("..")))); |
1677 EXPECT_EQ(c2_dotdot.size(), 3); | 1671 EXPECT_EQ(c2_dotdot.size(), 3); |
1678 | 1672 |
1679 // Enumerate files and directories. | 1673 // Enumerate files and directories. |
1680 file_util::FileEnumerator f3(test_dir_, true, FILES_AND_DIRECTORIES); | 1674 file_util::FileEnumerator f3(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1681 FindResultCollector c3(f3); | 1675 FindResultCollector c3(f3); |
1682 EXPECT_TRUE(c3.HasFile(dir1)); | 1676 EXPECT_TRUE(c3.HasFile(dir1)); |
1683 EXPECT_TRUE(c3.HasFile(dir2)); | 1677 EXPECT_TRUE(c3.HasFile(dir2)); |
1684 EXPECT_TRUE(c3.HasFile(file1)); | 1678 EXPECT_TRUE(c3.HasFile(file1)); |
1685 EXPECT_TRUE(c3.HasFile(file2_abs)); | 1679 EXPECT_TRUE(c3.HasFile(file2_abs)); |
1686 EXPECT_TRUE(c3.HasFile(dir2file)); | 1680 EXPECT_TRUE(c3.HasFile(dir2file)); |
1687 EXPECT_TRUE(c3.HasFile(dir2inner)); | 1681 EXPECT_TRUE(c3.HasFile(dir2inner)); |
1688 EXPECT_TRUE(c3.HasFile(dir2innerfile)); | 1682 EXPECT_TRUE(c3.HasFile(dir2innerfile)); |
1689 EXPECT_EQ(c3.size(), 7); | 1683 EXPECT_EQ(c3.size(), 7); |
1690 | 1684 |
1691 // Non-recursive operation. | 1685 // Non-recursive operation. |
1692 file_util::FileEnumerator f4(test_dir_, false, FILES_AND_DIRECTORIES); | 1686 file_util::FileEnumerator f4(temp_dir_.path(), false, FILES_AND_DIRECTORIES); |
1693 FindResultCollector c4(f4); | 1687 FindResultCollector c4(f4); |
1694 EXPECT_TRUE(c4.HasFile(dir2)); | 1688 EXPECT_TRUE(c4.HasFile(dir2)); |
1695 EXPECT_TRUE(c4.HasFile(dir2)); | 1689 EXPECT_TRUE(c4.HasFile(dir2)); |
1696 EXPECT_TRUE(c4.HasFile(file1)); | 1690 EXPECT_TRUE(c4.HasFile(file1)); |
1697 EXPECT_TRUE(c4.HasFile(file2_abs)); | 1691 EXPECT_TRUE(c4.HasFile(file2_abs)); |
1698 EXPECT_EQ(c4.size(), 4); | 1692 EXPECT_EQ(c4.size(), 4); |
1699 | 1693 |
1700 // Enumerate with a pattern. | 1694 // Enumerate with a pattern. |
1701 file_util::FileEnumerator f5(test_dir_, true, FILES_AND_DIRECTORIES, | 1695 file_util::FileEnumerator f5(temp_dir_.path(), true, FILES_AND_DIRECTORIES, |
1702 FILE_PATH_LITERAL("dir*")); | 1696 FILE_PATH_LITERAL("dir*")); |
1703 FindResultCollector c5(f5); | 1697 FindResultCollector c5(f5); |
1704 EXPECT_TRUE(c5.HasFile(dir1)); | 1698 EXPECT_TRUE(c5.HasFile(dir1)); |
1705 EXPECT_TRUE(c5.HasFile(dir2)); | 1699 EXPECT_TRUE(c5.HasFile(dir2)); |
1706 EXPECT_TRUE(c5.HasFile(dir2file)); | 1700 EXPECT_TRUE(c5.HasFile(dir2file)); |
1707 EXPECT_TRUE(c5.HasFile(dir2inner)); | 1701 EXPECT_TRUE(c5.HasFile(dir2inner)); |
1708 EXPECT_TRUE(c5.HasFile(dir2innerfile)); | 1702 EXPECT_TRUE(c5.HasFile(dir2innerfile)); |
1709 EXPECT_EQ(c5.size(), 5); | 1703 EXPECT_EQ(c5.size(), 5); |
1710 | 1704 |
1711 // Make sure the destructor closes the find handle while in the middle of a | 1705 // Make sure the destructor closes the find handle while in the middle of a |
1712 // query to allow TearDown to delete the directory. | 1706 // query to allow TearDown to delete the directory. |
1713 file_util::FileEnumerator f6(test_dir_, true, FILES_AND_DIRECTORIES); | 1707 file_util::FileEnumerator f6(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1714 EXPECT_FALSE(f6.Next().value().empty()); // Should have found something | 1708 EXPECT_FALSE(f6.Next().value().empty()); // Should have found something |
1715 // (we don't care what). | 1709 // (we don't care what). |
1716 } | 1710 } |
1717 | 1711 |
1718 TEST_F(FileUtilTest, Contains) { | 1712 TEST_F(FileUtilTest, Contains) { |
1719 FilePath data_dir = test_dir_.Append(FILE_PATH_LITERAL("FilePathTest")); | 1713 FilePath data_dir = |
| 1714 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); |
1720 | 1715 |
1721 // Create a fresh, empty copy of this directory. | 1716 // Create a fresh, empty copy of this directory. |
1722 if (file_util::PathExists(data_dir)) { | 1717 if (file_util::PathExists(data_dir)) { |
1723 ASSERT_TRUE(file_util::Delete(data_dir, true)); | 1718 ASSERT_TRUE(file_util::Delete(data_dir, true)); |
1724 } | 1719 } |
1725 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); | 1720 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); |
1726 | 1721 |
1727 FilePath foo(data_dir.Append(FILE_PATH_LITERAL("foo"))); | 1722 FilePath foo(data_dir.Append(FILE_PATH_LITERAL("foo"))); |
1728 FilePath bar(foo.Append(FILE_PATH_LITERAL("bar.txt"))); | 1723 FilePath bar(foo.Append(FILE_PATH_LITERAL("bar.txt"))); |
1729 FilePath baz(data_dir.Append(FILE_PATH_LITERAL("baz.txt"))); | 1724 FilePath baz(data_dir.Append(FILE_PATH_LITERAL("baz.txt"))); |
(...skipping 22 matching lines...) Expand all Loading... |
1752 #elif defined(OS_MACOSX) | 1747 #elif defined(OS_MACOSX) |
1753 // We can't really do this test on OS X since the case-sensitivity of the | 1748 // We can't really do this test on OS X since the case-sensitivity of the |
1754 // filesystem is configurable. | 1749 // filesystem is configurable. |
1755 #elif defined(OS_POSIX) | 1750 #elif defined(OS_POSIX) |
1756 EXPECT_FALSE(file_util::ContainsPath(foo, | 1751 EXPECT_FALSE(file_util::ContainsPath(foo, |
1757 foo_caps.Append(FILE_PATH_LITERAL("bar.txt")))); | 1752 foo_caps.Append(FILE_PATH_LITERAL("bar.txt")))); |
1758 #endif | 1753 #endif |
1759 } | 1754 } |
1760 | 1755 |
1761 TEST_F(FileUtilTest, LastModified) { | 1756 TEST_F(FileUtilTest, LastModified) { |
1762 FilePath data_dir = test_dir_.Append(FILE_PATH_LITERAL("FilePathTest")); | 1757 FilePath data_dir = |
| 1758 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); |
1763 | 1759 |
1764 // Create a fresh, empty copy of this directory. | 1760 // Create a fresh, empty copy of this directory. |
1765 if (file_util::PathExists(data_dir)) { | 1761 if (file_util::PathExists(data_dir)) { |
1766 ASSERT_TRUE(file_util::Delete(data_dir, true)); | 1762 ASSERT_TRUE(file_util::Delete(data_dir, true)); |
1767 } | 1763 } |
1768 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); | 1764 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); |
1769 | 1765 |
1770 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); | 1766 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); |
1771 std::string data("hello"); | 1767 std::string data("hello"); |
1772 ASSERT_TRUE(file_util::WriteFile(foobar, data.c_str(), data.length())); | 1768 ASSERT_TRUE(file_util::WriteFile(foobar, data.c_str(), data.length())); |
1773 | 1769 |
1774 base::Time modification_time; | 1770 base::Time modification_time; |
1775 // Note that this timestamp is divisible by two (seconds) - FAT stores | 1771 // Note that this timestamp is divisible by two (seconds) - FAT stores |
1776 // modification times with 2s resolution. | 1772 // modification times with 2s resolution. |
1777 ASSERT_TRUE(base::Time::FromString(L"Tue, 15 Nov 1994, 12:45:26 GMT", | 1773 ASSERT_TRUE(base::Time::FromString(L"Tue, 15 Nov 1994, 12:45:26 GMT", |
1778 &modification_time)); | 1774 &modification_time)); |
1779 ASSERT_TRUE(file_util::SetLastModifiedTime(foobar, modification_time)); | 1775 ASSERT_TRUE(file_util::SetLastModifiedTime(foobar, modification_time)); |
1780 base::PlatformFileInfo file_info; | 1776 base::PlatformFileInfo file_info; |
1781 ASSERT_TRUE(file_util::GetFileInfo(foobar, &file_info)); | 1777 ASSERT_TRUE(file_util::GetFileInfo(foobar, &file_info)); |
1782 ASSERT_TRUE(file_info.last_modified == modification_time); | 1778 ASSERT_TRUE(file_info.last_modified == modification_time); |
1783 } | 1779 } |
1784 | 1780 |
1785 TEST_F(FileUtilTest, IsDirectoryEmpty) { | 1781 TEST_F(FileUtilTest, IsDirectoryEmpty) { |
1786 FilePath empty_dir = test_dir_.Append(FILE_PATH_LITERAL("EmptyDir")); | 1782 FilePath empty_dir = temp_dir_.path().Append(FILE_PATH_LITERAL("EmptyDir")); |
1787 | 1783 |
1788 ASSERT_FALSE(file_util::PathExists(empty_dir)); | 1784 ASSERT_FALSE(file_util::PathExists(empty_dir)); |
1789 | 1785 |
1790 ASSERT_TRUE(file_util::CreateDirectory(empty_dir)); | 1786 ASSERT_TRUE(file_util::CreateDirectory(empty_dir)); |
1791 | 1787 |
1792 EXPECT_TRUE(file_util::IsDirectoryEmpty(empty_dir)); | 1788 EXPECT_TRUE(file_util::IsDirectoryEmpty(empty_dir)); |
1793 | 1789 |
1794 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt"))); | 1790 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt"))); |
1795 std::string bar("baz"); | 1791 std::string bar("baz"); |
1796 ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length())); | 1792 ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length())); |
1797 | 1793 |
1798 EXPECT_FALSE(file_util::IsDirectoryEmpty(empty_dir)); | 1794 EXPECT_FALSE(file_util::IsDirectoryEmpty(empty_dir)); |
1799 } | 1795 } |
1800 | 1796 |
1801 } // namespace | 1797 } // namespace |
OLD | NEW |