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

Side by Side Diff: base/file_util_unittest.cc

Issue 3444003: GTTF: Fix FileUtilTest so multiple test instances can run in parallel.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698