OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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> |
11 #include <tchar.h> | 11 #include <tchar.h> |
12 #include <winioctl.h> | 12 #include <winioctl.h> |
13 #endif | 13 #endif |
14 | 14 |
15 #include <algorithm> | 15 #include <algorithm> |
16 #include <fstream> | 16 #include <fstream> |
17 #include <set> | 17 #include <set> |
18 | 18 |
19 #include "base/base_paths.h" | 19 #include "base/base_paths.h" |
20 #include "base/file_util.h" | 20 #include "base/file_util.h" |
21 #include "base/files/file_enumerator.h" | |
22 #include "base/files/file_path.h" | 21 #include "base/files/file_path.h" |
23 #include "base/files/scoped_temp_dir.h" | 22 #include "base/files/scoped_temp_dir.h" |
24 #include "base/path_service.h" | 23 #include "base/path_service.h" |
25 #include "base/test/test_file_util.h" | 24 #include "base/test/test_file_util.h" |
26 #include "base/threading/platform_thread.h" | 25 #include "base/threading/platform_thread.h" |
27 #include "base/utf_string_conversions.h" | 26 #include "base/utf_string_conversions.h" |
28 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
29 #include "testing/platform_test.h" | 28 #include "testing/platform_test.h" |
30 | 29 |
31 #if defined(OS_WIN) | 30 #if defined(OS_WIN) |
32 #include "base/win/scoped_handle.h" | 31 #include "base/win/scoped_handle.h" |
33 #endif | 32 #endif |
34 | 33 |
35 // This macro helps avoid wrapped lines in the test structs. | 34 // This macro helps avoid wrapped lines in the test structs. |
36 #define FPL(x) FILE_PATH_LITERAL(x) | 35 #define FPL(x) FILE_PATH_LITERAL(x) |
37 | 36 |
38 using base::FileEnumerator; | |
39 using base::FilePath; | 37 using base::FilePath; |
40 | 38 |
41 namespace { | 39 namespace { |
42 | 40 |
43 // To test that file_util::Normalize FilePath() deals with NTFS reparse points | 41 // To test that file_util::Normalize FilePath() deals with NTFS reparse points |
44 // correctly, we need functions to create and delete reparse points. | 42 // correctly, we need functions to create and delete reparse points. |
45 #if defined(OS_WIN) | 43 #if defined(OS_WIN) |
46 typedef struct _REPARSE_DATA_BUFFER { | 44 typedef struct _REPARSE_DATA_BUFFER { |
47 ULONG ReparseTag; | 45 ULONG ReparseTag; |
48 USHORT ReparseDataLength; | 46 USHORT ReparseDataLength; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 ASSERT_TRUE(file_util::GetPosixFilePermissions(path, &mode)); | 127 ASSERT_TRUE(file_util::GetPosixFilePermissions(path, &mode)); |
130 mode |= mode_bits_to_set; | 128 mode |= mode_bits_to_set; |
131 mode &= ~mode_bits_to_clear; | 129 mode &= ~mode_bits_to_clear; |
132 ASSERT_TRUE(file_util::SetPosixFilePermissions(path, mode)); | 130 ASSERT_TRUE(file_util::SetPosixFilePermissions(path, mode)); |
133 } | 131 } |
134 #endif // defined(OS_POSIX) | 132 #endif // defined(OS_POSIX) |
135 | 133 |
136 const wchar_t bogus_content[] = L"I'm cannon fodder."; | 134 const wchar_t bogus_content[] = L"I'm cannon fodder."; |
137 | 135 |
138 const int FILES_AND_DIRECTORIES = | 136 const int FILES_AND_DIRECTORIES = |
139 FileEnumerator::FILES | FileEnumerator::DIRECTORIES; | 137 file_util::FileEnumerator::FILES | file_util::FileEnumerator::DIRECTORIES; |
140 | 138 |
141 // file_util winds up using autoreleased objects on the Mac, so this needs | 139 // file_util winds up using autoreleased objects on the Mac, so this needs |
142 // to be a PlatformTest | 140 // to be a PlatformTest |
143 class FileUtilTest : public PlatformTest { | 141 class FileUtilTest : public PlatformTest { |
144 protected: | 142 protected: |
145 virtual void SetUp() OVERRIDE { | 143 virtual void SetUp() OVERRIDE { |
146 PlatformTest::SetUp(); | 144 PlatformTest::SetUp(); |
147 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 145 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
148 } | 146 } |
149 | 147 |
150 base::ScopedTempDir temp_dir_; | 148 base::ScopedTempDir temp_dir_; |
151 }; | 149 }; |
152 | 150 |
153 // Collects all the results from the given file enumerator, and provides an | 151 // Collects all the results from the given file enumerator, and provides an |
154 // interface to query whether a given file is present. | 152 // interface to query whether a given file is present. |
155 class FindResultCollector { | 153 class FindResultCollector { |
156 public: | 154 public: |
157 explicit FindResultCollector(FileEnumerator& enumerator) { | 155 explicit FindResultCollector(file_util::FileEnumerator& enumerator) { |
158 FilePath cur_file; | 156 FilePath cur_file; |
159 while (!(cur_file = enumerator.Next()).value().empty()) { | 157 while (!(cur_file = enumerator.Next()).value().empty()) { |
160 FilePath::StringType path = cur_file.value(); | 158 FilePath::StringType path = cur_file.value(); |
161 // The file should not be returned twice. | 159 // The file should not be returned twice. |
162 EXPECT_TRUE(files_.end() == files_.find(path)) | 160 EXPECT_TRUE(files_.end() == files_.find(path)) |
163 << "Same file returned twice"; | 161 << "Same file returned twice"; |
164 | 162 |
165 // Save for later. | 163 // Save for later. |
166 files_.insert(path); | 164 files_.insert(path); |
167 } | 165 } |
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
912 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); | 910 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); |
913 EXPECT_EQ(file_util::FILE_PERMISSION_USER_MASK, | 911 EXPECT_EQ(file_util::FILE_PERMISSION_USER_MASK, |
914 mode & file_util::FILE_PERMISSION_USER_MASK); | 912 mode & file_util::FILE_PERMISSION_USER_MASK); |
915 | 913 |
916 // Get rid of the permissions from the directory. | 914 // Get rid of the permissions from the directory. |
917 EXPECT_TRUE(file_util::SetPosixFilePermissions(subdir_path, 0u)); | 915 EXPECT_TRUE(file_util::SetPosixFilePermissions(subdir_path, 0u)); |
918 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); | 916 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); |
919 EXPECT_FALSE(mode & file_util::FILE_PERMISSION_USER_MASK); | 917 EXPECT_FALSE(mode & file_util::FILE_PERMISSION_USER_MASK); |
920 | 918 |
921 // Make sure the file in the directory can't be enumerated. | 919 // Make sure the file in the directory can't be enumerated. |
922 FileEnumerator f1(subdir_path, true, FileEnumerator::FILES); | 920 file_util::FileEnumerator f1(subdir_path, true, |
| 921 file_util::FileEnumerator::FILES); |
923 EXPECT_TRUE(file_util::PathExists(subdir_path)); | 922 EXPECT_TRUE(file_util::PathExists(subdir_path)); |
924 FindResultCollector c1(f1); | 923 FindResultCollector c1(f1); |
925 EXPECT_EQ(c1.size(), 0); | 924 EXPECT_EQ(c1.size(), 0); |
926 EXPECT_FALSE(file_util::GetPosixFilePermissions(file_name, &mode)); | 925 EXPECT_FALSE(file_util::GetPosixFilePermissions(file_name, &mode)); |
927 | 926 |
928 // Give the permissions to the directory. | 927 // Give the permissions to the directory. |
929 EXPECT_TRUE(file_util::SetPosixFilePermissions( | 928 EXPECT_TRUE(file_util::SetPosixFilePermissions( |
930 subdir_path, | 929 subdir_path, |
931 file_util::FILE_PERMISSION_USER_MASK)); | 930 file_util::FILE_PERMISSION_USER_MASK)); |
932 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); | 931 EXPECT_TRUE(file_util::GetPosixFilePermissions(subdir_path, &mode)); |
933 EXPECT_EQ(file_util::FILE_PERMISSION_USER_MASK, | 932 EXPECT_EQ(file_util::FILE_PERMISSION_USER_MASK, |
934 mode & file_util::FILE_PERMISSION_USER_MASK); | 933 mode & file_util::FILE_PERMISSION_USER_MASK); |
935 | 934 |
936 // Make sure the file in the directory can be enumerated. | 935 // Make sure the file in the directory can be enumerated. |
937 FileEnumerator f2(subdir_path, true, FileEnumerator::FILES); | 936 file_util::FileEnumerator f2(subdir_path, true, |
| 937 file_util::FileEnumerator::FILES); |
938 FindResultCollector c2(f2); | 938 FindResultCollector c2(f2); |
939 EXPECT_TRUE(c2.HasFile(file_name)); | 939 EXPECT_TRUE(c2.HasFile(file_name)); |
940 EXPECT_EQ(c2.size(), 1); | 940 EXPECT_EQ(c2.size(), 1); |
941 | 941 |
942 // Delete the file. | 942 // Delete the file. |
943 EXPECT_TRUE(file_util::Delete(subdir_path, true)); | 943 EXPECT_TRUE(file_util::Delete(subdir_path, true)); |
944 EXPECT_FALSE(file_util::PathExists(subdir_path)); | 944 EXPECT_FALSE(file_util::PathExists(subdir_path)); |
945 } | 945 } |
946 | 946 |
947 #endif // defined(OS_POSIX) | 947 #endif // defined(OS_POSIX) |
(...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1817 CreateTextFile(test_path, L"test file"); | 1817 CreateTextFile(test_path, L"test file"); |
1818 EXPECT_TRUE(file_util::PathExists(test_path)); | 1818 EXPECT_TRUE(file_util::PathExists(test_path)); |
1819 EXPECT_FALSE(file_util::DirectoryExists(test_path)); | 1819 EXPECT_FALSE(file_util::DirectoryExists(test_path)); |
1820 EXPECT_TRUE(file_util::Delete(test_path, false)); | 1820 EXPECT_TRUE(file_util::Delete(test_path, false)); |
1821 | 1821 |
1822 EXPECT_TRUE(file_util::Delete(test_root, true)); | 1822 EXPECT_TRUE(file_util::Delete(test_root, true)); |
1823 } | 1823 } |
1824 | 1824 |
1825 TEST_F(FileUtilTest, FileEnumeratorTest) { | 1825 TEST_F(FileUtilTest, FileEnumeratorTest) { |
1826 // Test an empty directory. | 1826 // Test an empty directory. |
1827 FileEnumerator f0(temp_dir_.path(), true, FILES_AND_DIRECTORIES); | 1827 file_util::FileEnumerator f0(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1828 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); | 1828 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); |
1829 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); | 1829 EXPECT_EQ(f0.Next().value(), FILE_PATH_LITERAL("")); |
1830 | 1830 |
1831 // Test an empty directory, non-recursively, including "..". | 1831 // Test an empty directory, non-recursively, including "..". |
1832 FileEnumerator f0_dotdot(temp_dir_.path(), false, | 1832 file_util::FileEnumerator f0_dotdot(temp_dir_.path(), false, |
1833 FILES_AND_DIRECTORIES | FileEnumerator::INCLUDE_DOT_DOT); | 1833 FILES_AND_DIRECTORIES | file_util::FileEnumerator::INCLUDE_DOT_DOT); |
1834 EXPECT_EQ(temp_dir_.path().Append(FILE_PATH_LITERAL("..")).value(), | 1834 EXPECT_EQ(temp_dir_.path().Append(FILE_PATH_LITERAL("..")).value(), |
1835 f0_dotdot.Next().value()); | 1835 f0_dotdot.Next().value()); |
1836 EXPECT_EQ(FILE_PATH_LITERAL(""), | 1836 EXPECT_EQ(FILE_PATH_LITERAL(""), |
1837 f0_dotdot.Next().value()); | 1837 f0_dotdot.Next().value()); |
1838 | 1838 |
1839 // create the directories | 1839 // create the directories |
1840 FilePath dir1 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir1")); | 1840 FilePath dir1 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir1")); |
1841 EXPECT_TRUE(file_util::CreateDirectory(dir1)); | 1841 EXPECT_TRUE(file_util::CreateDirectory(dir1)); |
1842 FilePath dir2 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir2")); | 1842 FilePath dir2 = temp_dir_.path().Append(FILE_PATH_LITERAL("dir2")); |
1843 EXPECT_TRUE(file_util::CreateDirectory(dir2)); | 1843 EXPECT_TRUE(file_util::CreateDirectory(dir2)); |
1844 FilePath dir2inner = dir2.Append(FILE_PATH_LITERAL("inner")); | 1844 FilePath dir2inner = dir2.Append(FILE_PATH_LITERAL("inner")); |
1845 EXPECT_TRUE(file_util::CreateDirectory(dir2inner)); | 1845 EXPECT_TRUE(file_util::CreateDirectory(dir2inner)); |
1846 | 1846 |
1847 // create the files | 1847 // create the files |
1848 FilePath dir2file = dir2.Append(FILE_PATH_LITERAL("dir2file.txt")); | 1848 FilePath dir2file = dir2.Append(FILE_PATH_LITERAL("dir2file.txt")); |
1849 CreateTextFile(dir2file, std::wstring()); | 1849 CreateTextFile(dir2file, std::wstring()); |
1850 FilePath dir2innerfile = dir2inner.Append(FILE_PATH_LITERAL("innerfile.txt")); | 1850 FilePath dir2innerfile = dir2inner.Append(FILE_PATH_LITERAL("innerfile.txt")); |
1851 CreateTextFile(dir2innerfile, std::wstring()); | 1851 CreateTextFile(dir2innerfile, std::wstring()); |
1852 FilePath file1 = temp_dir_.path().Append(FILE_PATH_LITERAL("file1.txt")); | 1852 FilePath file1 = temp_dir_.path().Append(FILE_PATH_LITERAL("file1.txt")); |
1853 CreateTextFile(file1, std::wstring()); | 1853 CreateTextFile(file1, std::wstring()); |
1854 FilePath file2_rel = dir2.Append(FilePath::kParentDirectory) | 1854 FilePath file2_rel = dir2.Append(FilePath::kParentDirectory) |
1855 .Append(FILE_PATH_LITERAL("file2.txt")); | 1855 .Append(FILE_PATH_LITERAL("file2.txt")); |
1856 CreateTextFile(file2_rel, std::wstring()); | 1856 CreateTextFile(file2_rel, std::wstring()); |
1857 FilePath file2_abs = temp_dir_.path().Append(FILE_PATH_LITERAL("file2.txt")); | 1857 FilePath file2_abs = temp_dir_.path().Append(FILE_PATH_LITERAL("file2.txt")); |
1858 | 1858 |
1859 // Only enumerate files. | 1859 // Only enumerate files. |
1860 FileEnumerator f1(temp_dir_.path(), true, FileEnumerator::FILES); | 1860 file_util::FileEnumerator f1(temp_dir_.path(), true, |
| 1861 file_util::FileEnumerator::FILES); |
1861 FindResultCollector c1(f1); | 1862 FindResultCollector c1(f1); |
1862 EXPECT_TRUE(c1.HasFile(file1)); | 1863 EXPECT_TRUE(c1.HasFile(file1)); |
1863 EXPECT_TRUE(c1.HasFile(file2_abs)); | 1864 EXPECT_TRUE(c1.HasFile(file2_abs)); |
1864 EXPECT_TRUE(c1.HasFile(dir2file)); | 1865 EXPECT_TRUE(c1.HasFile(dir2file)); |
1865 EXPECT_TRUE(c1.HasFile(dir2innerfile)); | 1866 EXPECT_TRUE(c1.HasFile(dir2innerfile)); |
1866 EXPECT_EQ(c1.size(), 4); | 1867 EXPECT_EQ(c1.size(), 4); |
1867 | 1868 |
1868 // Only enumerate directories. | 1869 // Only enumerate directories. |
1869 FileEnumerator f2(temp_dir_.path(), true, FileEnumerator::DIRECTORIES); | 1870 file_util::FileEnumerator f2(temp_dir_.path(), true, |
| 1871 file_util::FileEnumerator::DIRECTORIES); |
1870 FindResultCollector c2(f2); | 1872 FindResultCollector c2(f2); |
1871 EXPECT_TRUE(c2.HasFile(dir1)); | 1873 EXPECT_TRUE(c2.HasFile(dir1)); |
1872 EXPECT_TRUE(c2.HasFile(dir2)); | 1874 EXPECT_TRUE(c2.HasFile(dir2)); |
1873 EXPECT_TRUE(c2.HasFile(dir2inner)); | 1875 EXPECT_TRUE(c2.HasFile(dir2inner)); |
1874 EXPECT_EQ(c2.size(), 3); | 1876 EXPECT_EQ(c2.size(), 3); |
1875 | 1877 |
1876 // Only enumerate directories non-recursively. | 1878 // Only enumerate directories non-recursively. |
1877 FileEnumerator f2_non_recursive( | 1879 file_util::FileEnumerator f2_non_recursive( |
1878 temp_dir_.path(), false, FileEnumerator::DIRECTORIES); | 1880 temp_dir_.path(), false, file_util::FileEnumerator::DIRECTORIES); |
1879 FindResultCollector c2_non_recursive(f2_non_recursive); | 1881 FindResultCollector c2_non_recursive(f2_non_recursive); |
1880 EXPECT_TRUE(c2_non_recursive.HasFile(dir1)); | 1882 EXPECT_TRUE(c2_non_recursive.HasFile(dir1)); |
1881 EXPECT_TRUE(c2_non_recursive.HasFile(dir2)); | 1883 EXPECT_TRUE(c2_non_recursive.HasFile(dir2)); |
1882 EXPECT_EQ(c2_non_recursive.size(), 2); | 1884 EXPECT_EQ(c2_non_recursive.size(), 2); |
1883 | 1885 |
1884 // Only enumerate directories, non-recursively, including "..". | 1886 // Only enumerate directories, non-recursively, including "..". |
1885 FileEnumerator f2_dotdot(temp_dir_.path(), false, | 1887 file_util::FileEnumerator f2_dotdot(temp_dir_.path(), false, |
1886 FileEnumerator::DIRECTORIES | | 1888 file_util::FileEnumerator::DIRECTORIES | |
1887 FileEnumerator::INCLUDE_DOT_DOT); | 1889 file_util::FileEnumerator::INCLUDE_DOT_DOT); |
1888 FindResultCollector c2_dotdot(f2_dotdot); | 1890 FindResultCollector c2_dotdot(f2_dotdot); |
1889 EXPECT_TRUE(c2_dotdot.HasFile(dir1)); | 1891 EXPECT_TRUE(c2_dotdot.HasFile(dir1)); |
1890 EXPECT_TRUE(c2_dotdot.HasFile(dir2)); | 1892 EXPECT_TRUE(c2_dotdot.HasFile(dir2)); |
1891 EXPECT_TRUE(c2_dotdot.HasFile( | 1893 EXPECT_TRUE(c2_dotdot.HasFile( |
1892 temp_dir_.path().Append(FILE_PATH_LITERAL("..")))); | 1894 temp_dir_.path().Append(FILE_PATH_LITERAL("..")))); |
1893 EXPECT_EQ(c2_dotdot.size(), 3); | 1895 EXPECT_EQ(c2_dotdot.size(), 3); |
1894 | 1896 |
1895 // Enumerate files and directories. | 1897 // Enumerate files and directories. |
1896 FileEnumerator f3(temp_dir_.path(), true, FILES_AND_DIRECTORIES); | 1898 file_util::FileEnumerator f3(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1897 FindResultCollector c3(f3); | 1899 FindResultCollector c3(f3); |
1898 EXPECT_TRUE(c3.HasFile(dir1)); | 1900 EXPECT_TRUE(c3.HasFile(dir1)); |
1899 EXPECT_TRUE(c3.HasFile(dir2)); | 1901 EXPECT_TRUE(c3.HasFile(dir2)); |
1900 EXPECT_TRUE(c3.HasFile(file1)); | 1902 EXPECT_TRUE(c3.HasFile(file1)); |
1901 EXPECT_TRUE(c3.HasFile(file2_abs)); | 1903 EXPECT_TRUE(c3.HasFile(file2_abs)); |
1902 EXPECT_TRUE(c3.HasFile(dir2file)); | 1904 EXPECT_TRUE(c3.HasFile(dir2file)); |
1903 EXPECT_TRUE(c3.HasFile(dir2inner)); | 1905 EXPECT_TRUE(c3.HasFile(dir2inner)); |
1904 EXPECT_TRUE(c3.HasFile(dir2innerfile)); | 1906 EXPECT_TRUE(c3.HasFile(dir2innerfile)); |
1905 EXPECT_EQ(c3.size(), 7); | 1907 EXPECT_EQ(c3.size(), 7); |
1906 | 1908 |
1907 // Non-recursive operation. | 1909 // Non-recursive operation. |
1908 FileEnumerator f4(temp_dir_.path(), false, FILES_AND_DIRECTORIES); | 1910 file_util::FileEnumerator f4(temp_dir_.path(), false, FILES_AND_DIRECTORIES); |
1909 FindResultCollector c4(f4); | 1911 FindResultCollector c4(f4); |
1910 EXPECT_TRUE(c4.HasFile(dir2)); | 1912 EXPECT_TRUE(c4.HasFile(dir2)); |
1911 EXPECT_TRUE(c4.HasFile(dir2)); | 1913 EXPECT_TRUE(c4.HasFile(dir2)); |
1912 EXPECT_TRUE(c4.HasFile(file1)); | 1914 EXPECT_TRUE(c4.HasFile(file1)); |
1913 EXPECT_TRUE(c4.HasFile(file2_abs)); | 1915 EXPECT_TRUE(c4.HasFile(file2_abs)); |
1914 EXPECT_EQ(c4.size(), 4); | 1916 EXPECT_EQ(c4.size(), 4); |
1915 | 1917 |
1916 // Enumerate with a pattern. | 1918 // Enumerate with a pattern. |
1917 FileEnumerator f5(temp_dir_.path(), true, FILES_AND_DIRECTORIES, | 1919 file_util::FileEnumerator f5(temp_dir_.path(), true, FILES_AND_DIRECTORIES, |
1918 FILE_PATH_LITERAL("dir*")); | 1920 FILE_PATH_LITERAL("dir*")); |
1919 FindResultCollector c5(f5); | 1921 FindResultCollector c5(f5); |
1920 EXPECT_TRUE(c5.HasFile(dir1)); | 1922 EXPECT_TRUE(c5.HasFile(dir1)); |
1921 EXPECT_TRUE(c5.HasFile(dir2)); | 1923 EXPECT_TRUE(c5.HasFile(dir2)); |
1922 EXPECT_TRUE(c5.HasFile(dir2file)); | 1924 EXPECT_TRUE(c5.HasFile(dir2file)); |
1923 EXPECT_TRUE(c5.HasFile(dir2inner)); | 1925 EXPECT_TRUE(c5.HasFile(dir2inner)); |
1924 EXPECT_TRUE(c5.HasFile(dir2innerfile)); | 1926 EXPECT_TRUE(c5.HasFile(dir2innerfile)); |
1925 EXPECT_EQ(c5.size(), 5); | 1927 EXPECT_EQ(c5.size(), 5); |
1926 | 1928 |
1927 // Make sure the destructor closes the find handle while in the middle of a | 1929 // Make sure the destructor closes the find handle while in the middle of a |
1928 // query to allow TearDown to delete the directory. | 1930 // query to allow TearDown to delete the directory. |
1929 FileEnumerator f6(temp_dir_.path(), true, FILES_AND_DIRECTORIES); | 1931 file_util::FileEnumerator f6(temp_dir_.path(), true, FILES_AND_DIRECTORIES); |
1930 EXPECT_FALSE(f6.Next().value().empty()); // Should have found something | 1932 EXPECT_FALSE(f6.Next().value().empty()); // Should have found something |
1931 // (we don't care what). | 1933 // (we don't care what). |
1932 } | 1934 } |
1933 | 1935 |
1934 TEST_F(FileUtilTest, AppendToFile) { | 1936 TEST_F(FileUtilTest, AppendToFile) { |
1935 FilePath data_dir = | 1937 FilePath data_dir = |
1936 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); | 1938 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); |
1937 | 1939 |
1938 // Create a fresh, empty copy of this directory. | 1940 // Create a fresh, empty copy of this directory. |
1939 if (file_util::PathExists(data_dir)) { | 1941 if (file_util::PathExists(data_dir)) { |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2376 file_util::VerifyPathControlledByUser( | 2378 file_util::VerifyPathControlledByUser( |
2377 base_dir_, text_file_, uid_, ok_gids_)); | 2379 base_dir_, text_file_, uid_, ok_gids_)); |
2378 EXPECT_TRUE( | 2380 EXPECT_TRUE( |
2379 file_util::VerifyPathControlledByUser( | 2381 file_util::VerifyPathControlledByUser( |
2380 sub_dir_, text_file_, uid_, ok_gids_)); | 2382 sub_dir_, text_file_, uid_, ok_gids_)); |
2381 } | 2383 } |
2382 | 2384 |
2383 #endif // defined(OS_POSIX) | 2385 #endif // defined(OS_POSIX) |
2384 | 2386 |
2385 } // namespace | 2387 } // namespace |
OLD | NEW |