| Index: base/file_util_unittest.cc
|
| ===================================================================
|
| --- base/file_util_unittest.cc (revision 46599)
|
| +++ base/file_util_unittest.cc (working copy)
|
| @@ -31,6 +31,8 @@
|
|
|
| namespace {
|
|
|
| +const wchar_t bogus_content[] = L"I'm cannon fodder.";
|
| +
|
| const file_util::FileEnumerator::FILE_TYPE FILES_AND_DIRECTORIES =
|
| static_cast<file_util::FileEnumerator::FILE_TYPE>(
|
| file_util::FileEnumerator::FILES |
|
| @@ -385,36 +387,146 @@
|
| EXPECT_EQ(size_f1 + size_f2 + 3, computed_size);
|
| }
|
|
|
| -// Tests that the Delete function works as expected, especially
|
| -// the recursion flag. Also coincidentally tests PathExists.
|
| -TEST_F(FileUtilTest, Delete) {
|
| +TEST_F(FileUtilTest, DeleteNonExistent) {
|
| + FilePath non_existent = test_dir_.AppendASCII("bogus_file_dne.foobar");
|
| + ASSERT_FALSE(file_util::PathExists(non_existent));
|
| +
|
| + EXPECT_TRUE(file_util::Delete(non_existent, false));
|
| + ASSERT_FALSE(file_util::PathExists(non_existent));
|
| + EXPECT_TRUE(file_util::Delete(non_existent, true));
|
| + ASSERT_FALSE(file_util::PathExists(non_existent));
|
| +}
|
| +
|
| +TEST_F(FileUtilTest, DeleteFile) {
|
| // Create a file
|
| - FilePath file_name = test_dir_.Append(FILE_PATH_LITERAL("Test File.txt"));
|
| - CreateTextFile(file_name, L"I'm cannon fodder.");
|
| + FilePath file_name = test_dir_.Append(FPL("Test DeleteFile 1.txt"));
|
| + CreateTextFile(file_name, bogus_content);
|
| + ASSERT_TRUE(file_util::PathExists(file_name));
|
|
|
| + // Make sure it's deleted
|
| + EXPECT_TRUE(file_util::Delete(file_name, false));
|
| + EXPECT_FALSE(file_util::PathExists(file_name));
|
| +
|
| + // Test recursive case, create a new file
|
| + file_name = test_dir_.Append(FPL("Test DeleteFile 2.txt"));
|
| + CreateTextFile(file_name, bogus_content);
|
| ASSERT_TRUE(file_util::PathExists(file_name));
|
|
|
| - FilePath subdir_path = test_dir_.Append(FILE_PATH_LITERAL("Subdirectory"));
|
| + // Make sure it's deleted
|
| + EXPECT_TRUE(file_util::Delete(file_name, true));
|
| + EXPECT_FALSE(file_util::PathExists(file_name));
|
| +}
|
| +
|
| +#if defined(OS_WIN)
|
| +// Tests that the Delete function works for wild cards, especially
|
| +// with the recursion flag. Also coincidentally tests PathExists.
|
| +// TODO(erikkay): see if anyone's actually using this feature of the API
|
| +TEST_F(FileUtilTest, DeleteWildCard) {
|
| + // Create a file and a directory
|
| + FilePath file_name = test_dir_.Append(FPL("Test DeleteWildCard.txt"));
|
| + CreateTextFile(file_name, bogus_content);
|
| + ASSERT_TRUE(file_util::PathExists(file_name));
|
| +
|
| + FilePath subdir_path = test_dir_.Append(FPL("DeleteWildCardDir"));
|
| file_util::CreateDirectory(subdir_path);
|
| -
|
| ASSERT_TRUE(file_util::PathExists(subdir_path));
|
|
|
| + // Create the wildcard path
|
| FilePath directory_contents = test_dir_;
|
| -#if defined(OS_WIN)
|
| - // TODO(erikkay): see if anyone's actually using this feature of the API
|
| - directory_contents = directory_contents.Append(FILE_PATH_LITERAL("*"));
|
| + directory_contents = directory_contents.Append(FPL("*"));
|
| +
|
| // Delete non-recursively and check that only the file is deleted
|
| - ASSERT_TRUE(file_util::Delete(directory_contents, false));
|
| + EXPECT_TRUE(file_util::Delete(directory_contents, false));
|
| EXPECT_FALSE(file_util::PathExists(file_name));
|
| EXPECT_TRUE(file_util::PathExists(subdir_path));
|
| -#endif
|
|
|
| // Delete recursively and make sure all contents are deleted
|
| - ASSERT_TRUE(file_util::Delete(directory_contents, true));
|
| + EXPECT_TRUE(file_util::Delete(directory_contents, true));
|
| EXPECT_FALSE(file_util::PathExists(file_name));
|
| EXPECT_FALSE(file_util::PathExists(subdir_path));
|
| }
|
|
|
| +// TODO(erikkay): see if anyone's actually using this feature of the API
|
| +TEST_F(FileUtilTest, DeleteNonExistantWildCard) {
|
| + // Create a file and a directory
|
| + FilePath subdir_path = test_dir_.Append(FPL("DeleteNonExistantWildCard"));
|
| + file_util::CreateDirectory(subdir_path);
|
| + ASSERT_TRUE(file_util::PathExists(subdir_path));
|
| +
|
| + // Create the wildcard path
|
| + FilePath directory_contents = subdir_path;
|
| + directory_contents = directory_contents.Append(FPL("*"));
|
| +
|
| + // Delete non-recursively and check nothing got deleted
|
| + EXPECT_TRUE(file_util::Delete(directory_contents, false));
|
| + EXPECT_TRUE(file_util::PathExists(subdir_path));
|
| +
|
| + // Delete recursively and check nothing got deleted
|
| + EXPECT_TRUE(file_util::Delete(directory_contents, true));
|
| + EXPECT_TRUE(file_util::PathExists(subdir_path));
|
| +}
|
| +#endif
|
| +
|
| +// Tests non-recursive Delete() for a directory.
|
| +TEST_F(FileUtilTest, DeleteDirNonRecursive) {
|
| + // Create a subdirectory and put a file and two directories inside.
|
| + FilePath test_subdir = test_dir_.Append(FPL("DeleteDirNonRecursive"));
|
| + file_util::CreateDirectory(test_subdir);
|
| + ASSERT_TRUE(file_util::PathExists(test_subdir));
|
| +
|
| + FilePath file_name = test_subdir.Append(FPL("Test DeleteDir.txt"));
|
| + CreateTextFile(file_name, bogus_content);
|
| + ASSERT_TRUE(file_util::PathExists(file_name));
|
| +
|
| + FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1"));
|
| + file_util::CreateDirectory(subdir_path1);
|
| + ASSERT_TRUE(file_util::PathExists(subdir_path1));
|
| +
|
| + FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2"));
|
| + file_util::CreateDirectory(subdir_path2);
|
| + ASSERT_TRUE(file_util::PathExists(subdir_path2));
|
| +
|
| + // Delete non-recursively and check that the empty dir got deleted
|
| + EXPECT_TRUE(file_util::Delete(subdir_path2, false));
|
| + EXPECT_FALSE(file_util::PathExists(subdir_path2));
|
| +
|
| + // Delete non-recursively and check that nothing got deleted
|
| + EXPECT_FALSE(file_util::Delete(test_subdir, false));
|
| + EXPECT_TRUE(file_util::PathExists(test_subdir));
|
| + EXPECT_TRUE(file_util::PathExists(file_name));
|
| + EXPECT_TRUE(file_util::PathExists(subdir_path1));
|
| +}
|
| +
|
| +// Tests recursive Delete() for a directory.
|
| +TEST_F(FileUtilTest, DeleteDirRecursive) {
|
| + // Create a subdirectory and put a file and two directories inside.
|
| + FilePath test_subdir = test_dir_.Append(FPL("DeleteDirRecursive"));
|
| + file_util::CreateDirectory(test_subdir);
|
| + ASSERT_TRUE(file_util::PathExists(test_subdir));
|
| +
|
| + FilePath file_name = test_subdir.Append(FPL("Test DeleteDirRecursive.txt"));
|
| + CreateTextFile(file_name, bogus_content);
|
| + ASSERT_TRUE(file_util::PathExists(file_name));
|
| +
|
| + FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1"));
|
| + file_util::CreateDirectory(subdir_path1);
|
| + ASSERT_TRUE(file_util::PathExists(subdir_path1));
|
| +
|
| + FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2"));
|
| + file_util::CreateDirectory(subdir_path2);
|
| + ASSERT_TRUE(file_util::PathExists(subdir_path2));
|
| +
|
| + // Delete recursively and check that the empty dir got deleted
|
| + EXPECT_TRUE(file_util::Delete(subdir_path2, true));
|
| + EXPECT_FALSE(file_util::PathExists(subdir_path2));
|
| +
|
| + // Delete recursively and check that everything got deleted
|
| + EXPECT_TRUE(file_util::Delete(test_subdir, true));
|
| + EXPECT_FALSE(file_util::PathExists(file_name));
|
| + EXPECT_FALSE(file_util::PathExists(subdir_path1));
|
| + EXPECT_FALSE(file_util::PathExists(test_subdir));
|
| +}
|
| +
|
| TEST_F(FileUtilTest, MoveFileNew) {
|
| // Create a file
|
| FilePath file_name_from =
|
|
|