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

Side by Side Diff: base/file_util_unittest.cc

Issue 1709: CreateDirectory() should check if an existing path is actually a directory... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 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 | « base/file_util_posix.cc ('k') | base/file_util_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <shellapi.h> 9 #include <shellapi.h>
10 #include <shlobj.h> 10 #include <shlobj.h>
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 std::wstring file_name_from(dir_name_from); 510 std::wstring file_name_from(dir_name_from);
511 file_util::AppendToPath(&file_name_from, L"Copy_Test_File.txt"); 511 file_util::AppendToPath(&file_name_from, L"Copy_Test_File.txt");
512 const std::wstring file_contents(L"Gooooooooooooooooooooogle"); 512 const std::wstring file_contents(L"Gooooooooooooooooooooogle");
513 CreateTextFile(file_name_from, file_contents); 513 CreateTextFile(file_name_from, file_contents);
514 ASSERT_TRUE(file_util::PathExists(file_name_from)); 514 ASSERT_TRUE(file_util::PathExists(file_name_from));
515 515
516 // Copy the file. 516 // Copy the file.
517 std::wstring dest_file(dir_name_from); 517 std::wstring dest_file(dir_name_from);
518 file_util::AppendToPath(&dest_file, L"DestFile.txt"); 518 file_util::AppendToPath(&dest_file, L"DestFile.txt");
519 ASSERT_TRUE(file_util::CopyFile(file_name_from, dest_file)); 519 ASSERT_TRUE(file_util::CopyFile(file_name_from, dest_file));
520 520
521 // Copy the file to another location using '..' in the path. 521 // Copy the file to another location using '..' in the path.
522 std::wstring dest_file2(dir_name_from); 522 std::wstring dest_file2(dir_name_from);
523 file_util::AppendToPath(&dest_file2, L".."); 523 file_util::AppendToPath(&dest_file2, L"..");
524 file_util::AppendToPath(&dest_file2, L"DestFile.txt"); 524 file_util::AppendToPath(&dest_file2, L"DestFile.txt");
525 ASSERT_TRUE(file_util::CopyFile(file_name_from, dest_file2)); 525 ASSERT_TRUE(file_util::CopyFile(file_name_from, dest_file2));
526 std::wstring dest_file2_test(dir_name_from); 526 std::wstring dest_file2_test(dir_name_from);
527 file_util::UpOneDirectory(&dest_file2_test); 527 file_util::UpOneDirectory(&dest_file2_test);
528 file_util::AppendToPath(&dest_file2_test, L"DestFile.txt"); 528 file_util::AppendToPath(&dest_file2_test, L"DestFile.txt");
529 529
530 // Check everything has been copied. 530 // Check everything has been copied.
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 690
691 DeleteFile(target_file.c_str()); 691 DeleteFile(target_file.c_str());
692 DeleteFile(link_file.c_str()); 692 DeleteFile(link_file.c_str());
693 CoUninitialize(); 693 CoUninitialize();
694 } 694 }
695 #endif 695 #endif
696 696
697 TEST_F(FileUtilTest, CreateTemporaryFileNameTest) { 697 TEST_F(FileUtilTest, CreateTemporaryFileNameTest) {
698 std::wstring temp_file; 698 std::wstring temp_file;
699 file_util::CreateTemporaryFileName(&temp_file); 699 file_util::CreateTemporaryFileName(&temp_file);
700 EXPECT_EQ(file_util::PathExists(temp_file), true); 700 EXPECT_TRUE(file_util::PathExists(temp_file));
701 EXPECT_EQ(file_util::Delete(temp_file, false), true); 701 EXPECT_TRUE(file_util::Delete(temp_file, false));
702 } 702 }
703 703
704 TEST_F(FileUtilTest, CreateNewTempDirectoryTest) { 704 TEST_F(FileUtilTest, CreateNewTempDirectoryTest) {
705 std::wstring temp_dir; 705 std::wstring temp_dir;
706 file_util::CreateNewTempDirectory(std::wstring(), &temp_dir); 706 file_util::CreateNewTempDirectory(std::wstring(), &temp_dir);
707 EXPECT_EQ(file_util::PathExists(temp_dir), true); 707 EXPECT_TRUE(file_util::PathExists(temp_dir));
708 EXPECT_EQ(file_util::Delete(temp_dir, false), true); 708 EXPECT_TRUE(file_util::Delete(temp_dir, false));
709 } 709 }
710 710
711 TEST_F(FileUtilTest, CreateDirectoryTest) { 711 TEST_F(FileUtilTest, CreateDirectoryTest) {
712 std::wstring test_root = test_dir_; 712 std::wstring test_root = test_dir_;
713 file_util::AppendToPath(&test_root, L"create_directory_test"); 713 file_util::AppendToPath(&test_root, L"create_directory_test");
714 std::wstring test_path(test_root); 714 std::wstring test_path(test_root);
715 #if defined(OS_WIN) 715 #if defined(OS_WIN)
716 file_util::AppendToPath(&test_path, L"dir\\tree\\likely\\doesnt\\exist\\"); 716 file_util::AppendToPath(&test_path, L"dir\\tree\\likely\\doesnt\\exist\\");
717 #elif defined(OS_POSIX) 717 #elif defined(OS_POSIX)
718 file_util::AppendToPath(&test_path, L"dir/tree/likely/doesnt/exist/"); 718 file_util::AppendToPath(&test_path, L"dir/tree/likely/doesnt/exist/");
719 #endif 719 #endif
720 720
721 EXPECT_EQ(file_util::PathExists(test_path), false); 721 EXPECT_FALSE(file_util::PathExists(test_path));
722 EXPECT_EQ(file_util::CreateDirectory(test_path), true); 722 EXPECT_TRUE(file_util::CreateDirectory(test_path));
723 EXPECT_EQ(file_util::PathExists(test_path), true); 723 EXPECT_TRUE(file_util::PathExists(test_path));
724 EXPECT_EQ(file_util::Delete(test_root, true), true); 724 // CreateDirectory returns true if the DirectoryExists returns true.
725 EXPECT_EQ(file_util::PathExists(test_root), false); 725 EXPECT_TRUE(file_util::CreateDirectory(test_path));
726 EXPECT_EQ(file_util::PathExists(test_path), false); 726
727 // Doesn't work to create it on top of a non-dir
728 file_util::AppendToPath(&test_path, L"foobar.txt");
729 EXPECT_FALSE(file_util::PathExists(test_path));
730 CreateTextFile(test_path, L"test file");
731 EXPECT_TRUE(file_util::PathExists(test_path));
732 EXPECT_FALSE(file_util::CreateDirectory(test_path));
733
734 EXPECT_TRUE(file_util::Delete(test_root, true));
735 EXPECT_FALSE(file_util::PathExists(test_root));
736 EXPECT_FALSE(file_util::PathExists(test_path));
737 }
738
739 TEST_F(FileUtilTest, DetectDirectoryTest) {
740 // Check a directory
741 std::wstring test_root = test_dir_;
742 file_util::AppendToPath(&test_root, L"detect_directory_test");
743 EXPECT_FALSE(file_util::PathExists(test_root));
744 EXPECT_TRUE(file_util::CreateDirectory(test_root));
745 EXPECT_TRUE(file_util::PathExists(test_root));
746 EXPECT_TRUE(file_util::DirectoryExists(test_root));
747
748 // Check a file
749 std::wstring test_path(test_root);
750 file_util::AppendToPath(&test_path, L"foobar.txt");
751 EXPECT_FALSE(file_util::PathExists(test_path));
752 CreateTextFile(test_path, L"test file");
753 EXPECT_TRUE(file_util::PathExists(test_path));
754 EXPECT_FALSE(file_util::DirectoryExists(test_path));
755 EXPECT_TRUE(file_util::Delete(test_path, false));
756
757 EXPECT_TRUE(file_util::Delete(test_root, true));
727 } 758 }
728 759
729 static const struct goodbad_pair { 760 static const struct goodbad_pair {
730 std::wstring bad_name; 761 std::wstring bad_name;
731 std::wstring good_name; 762 std::wstring good_name;
732 } kIllegalCharacterCases[] = { 763 } kIllegalCharacterCases[] = {
733 {L"bad*file:name?.jpg", L"bad-file-name-.jpg"}, 764 {L"bad*file:name?.jpg", L"bad-file-name-.jpg"},
734 {L"**********::::.txt", L"--------------.txt"}, 765 {L"**********::::.txt", L"--------------.txt"},
735 // We can't use UCNs (universal character names) for C0/C1 characters and 766 // We can't use UCNs (universal character names) for C0/C1 characters and
736 // U+007F, but \x escape is interpreted by MSVC and gcc as we intend. 767 // U+007F, but \x escape is interpreted by MSVC and gcc as we intend.
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 912
882 // Make sure the destructor closes the find handle while in the middle of a 913 // Make sure the destructor closes the find handle while in the middle of a
883 // query to allow TearDown to delete the directory. 914 // query to allow TearDown to delete the directory.
884 file_util::FileEnumerator f6(test_dir_, true, 915 file_util::FileEnumerator f6(test_dir_, true,
885 file_util::FileEnumerator::FILES_AND_DIRECTORIES); 916 file_util::FileEnumerator::FILES_AND_DIRECTORIES);
886 EXPECT_FALSE(f6.Next().empty()); // Should have found something 917 EXPECT_FALSE(f6.Next().empty()); // Should have found something
887 // (we don't care what). 918 // (we don't care what).
888 } 919 }
889 920
890 } // namespace 921 } // namespace
OLDNEW
« no previous file with comments | « base/file_util_posix.cc ('k') | base/file_util_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698