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

Side by Side Diff: trunk/src/base/file_util_unittest.cc

Issue 14824006: Revert 198820 "Move FileEnumerator to its own file, do some refa..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 7 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 | « trunk/src/base/file_util_posix.cc ('k') | trunk/src/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) 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
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
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
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
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
OLDNEW
« no previous file with comments | « trunk/src/base/file_util_posix.cc ('k') | trunk/src/base/file_util_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698