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

Side by Side Diff: webkit/fileapi/obfuscated_file_util_unittest.cc

Issue 11960003: Cleanup: Move more recursive operation logic from FileUtilHelper to FileUtil (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 7 years, 11 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
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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); 911 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL));
912 912
913 bool exclusive = false; 913 bool exclusive = false;
914 bool recursive = false; 914 bool recursive = false;
915 FileSystemURL url = CreateURLFromUTF8("foo/bar"); 915 FileSystemURL url = CreateURLFromUTF8("foo/bar");
916 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, ofu()->CreateDirectory( 916 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, ofu()->CreateDirectory(
917 context.get(), url, exclusive, recursive)); 917 context.get(), url, exclusive, recursive));
918 918
919 context.reset(NewContext(NULL)); 919 context.reset(NewContext(NULL));
920 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, 920 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND,
921 ofu()->DeleteSingleDirectory(context.get(), url)); 921 ofu()->DeleteDirectory(context.get(), url));
922 922
923 FileSystemURL root = CreateURLFromUTF8(""); 923 FileSystemURL root = CreateURLFromUTF8("");
924 EXPECT_FALSE(DirectoryExists(url)); 924 EXPECT_FALSE(DirectoryExists(url));
925 EXPECT_FALSE(PathExists(url)); 925 EXPECT_FALSE(PathExists(url));
926 context.reset(NewContext(NULL)); 926 context.reset(NewContext(NULL));
927 EXPECT_TRUE(ofu()->IsDirectoryEmpty(context.get(), root)); 927 EXPECT_TRUE(ofu()->IsDirectoryEmpty(context.get(), root));
928 928
929 context.reset(NewContext(NULL)); 929 context.reset(NewContext(NULL));
930 exclusive = false; 930 exclusive = false;
931 recursive = true; 931 recursive = true;
932 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory( 932 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory(
933 context.get(), url, exclusive, recursive)); 933 context.get(), url, exclusive, recursive));
934 EXPECT_EQ(2, change_observer()->get_and_reset_create_directory_count()); 934 EXPECT_EQ(2, change_observer()->get_and_reset_create_directory_count());
935 935
936 EXPECT_TRUE(DirectoryExists(url)); 936 EXPECT_TRUE(DirectoryExists(url));
937 EXPECT_TRUE(PathExists(url)); 937 EXPECT_TRUE(PathExists(url));
938 938
939 context.reset(NewContext(NULL)); 939 context.reset(NewContext(NULL));
940 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), root)); 940 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), root));
941 EXPECT_TRUE(DirectoryExists(url.WithPath(url.path().DirName()))); 941 EXPECT_TRUE(DirectoryExists(url.WithPath(url.path().DirName())));
942 942
943 context.reset(NewContext(NULL)); 943 context.reset(NewContext(NULL));
944 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), 944 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(),
945 url.WithPath(url.path().DirName()))); 945 url.WithPath(url.path().DirName())));
946 946
947 // Can't remove a non-empty directory. 947 // Can't remove a non-empty directory.
948 context.reset(NewContext(NULL)); 948 context.reset(NewContext(NULL));
949 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY, 949 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY,
950 ofu()->DeleteSingleDirectory(context.get(), 950 ofu()->DeleteDirectory(context.get(),
951 url.WithPath(url.path().DirName()))); 951 url.WithPath(url.path().DirName())));
952 EXPECT_TRUE(change_observer()->HasNoChange()); 952 EXPECT_TRUE(change_observer()->HasNoChange());
953 953
954 base::PlatformFileInfo file_info; 954 base::PlatformFileInfo file_info;
955 FilePath local_path; 955 FilePath local_path;
956 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetFileInfo( 956 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetFileInfo(
957 context.get(), url, &file_info, &local_path)); 957 context.get(), url, &file_info, &local_path));
958 EXPECT_TRUE(local_path.empty()); 958 EXPECT_TRUE(local_path.empty());
959 EXPECT_TRUE(file_info.is_directory); 959 EXPECT_TRUE(file_info.is_directory);
960 EXPECT_FALSE(file_info.is_symbolic_link); 960 EXPECT_FALSE(file_info.is_symbolic_link);
961 961
962 // Same create again should succeed, since exclusive is false. 962 // Same create again should succeed, since exclusive is false.
963 context.reset(NewContext(NULL)); 963 context.reset(NewContext(NULL));
964 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory( 964 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory(
965 context.get(), url, exclusive, recursive)); 965 context.get(), url, exclusive, recursive));
966 EXPECT_TRUE(change_observer()->HasNoChange()); 966 EXPECT_TRUE(change_observer()->HasNoChange());
967 967
968 exclusive = true; 968 exclusive = true;
969 recursive = true; 969 recursive = true;
970 context.reset(NewContext(NULL)); 970 context.reset(NewContext(NULL));
971 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, ofu()->CreateDirectory( 971 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, ofu()->CreateDirectory(
972 context.get(), url, exclusive, recursive)); 972 context.get(), url, exclusive, recursive));
973 EXPECT_TRUE(change_observer()->HasNoChange()); 973 EXPECT_TRUE(change_observer()->HasNoChange());
974 974
975 // Verify that deleting a directory isn't stopped by zero quota, and that it 975 // Verify that deleting a directory isn't stopped by zero quota, and that it
976 // frees up quota from its path. 976 // frees up quota from its path.
977 context.reset(NewContext(NULL)); 977 context.reset(NewContext(NULL));
978 context->set_allowed_bytes_growth(0); 978 context->set_allowed_bytes_growth(0);
979 EXPECT_EQ(base::PLATFORM_FILE_OK, 979 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->DeleteDirectory(context.get(), url));
980 ofu()->DeleteSingleDirectory(context.get(), url));
981 EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count()); 980 EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count());
982 EXPECT_EQ(ObfuscatedFileUtil::ComputeFilePathCost(url.path()), 981 EXPECT_EQ(ObfuscatedFileUtil::ComputeFilePathCost(url.path()),
983 context->allowed_bytes_growth()); 982 context->allowed_bytes_growth());
984 983
985 url = CreateURLFromUTF8("foo/bop"); 984 url = CreateURLFromUTF8("foo/bop");
986 985
987 EXPECT_FALSE(DirectoryExists(url)); 986 EXPECT_FALSE(DirectoryExists(url));
988 EXPECT_FALSE(PathExists(url)); 987 EXPECT_FALSE(PathExists(url));
989 988
990 context.reset(NewContext(NULL)); 989 context.reset(NewContext(NULL));
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 ofu()->DeleteFile(context.get(), url)); 1815 ofu()->DeleteFile(context.get(), url));
1817 EXPECT_NE(base::Time(), GetModifiedTime(dir_url)); 1816 EXPECT_NE(base::Time(), GetModifiedTime(dir_url));
1818 1817
1819 // fail case. 1818 // fail case.
1820 ClearTimestamp(dir_url); 1819 ClearTimestamp(dir_url);
1821 context.reset(NewContext(NULL)); 1820 context.reset(NewContext(NULL));
1822 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, 1821 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND,
1823 ofu()->DeleteFile(context.get(), url)); 1822 ofu()->DeleteFile(context.get(), url));
1824 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url)); 1823 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url));
1825 1824
1826 // DeleteSingleDirectory, fail case. 1825 // DeleteDirectory, fail case.
1827 url = dir_url.WithPath( 1826 url = dir_url.WithPath(dir_url.path().AppendASCII("DeleteDirectory_dir"));
1828 dir_url.path().AppendASCII("DeleteSingleDirectory_dir"));
1829 FileSystemURL file_path(url.WithPath(url.path().AppendASCII("pakeratta"))); 1827 FileSystemURL file_path(url.WithPath(url.path().AppendASCII("pakeratta")));
1830 context.reset(NewContext(NULL)); 1828 context.reset(NewContext(NULL));
1831 EXPECT_EQ(base::PLATFORM_FILE_OK, 1829 EXPECT_EQ(base::PLATFORM_FILE_OK,
1832 ofu()->CreateDirectory(context.get(), url, true, true)); 1830 ofu()->CreateDirectory(context.get(), url, true, true));
1833 created = false; 1831 created = false;
1834 context.reset(NewContext(NULL)); 1832 context.reset(NewContext(NULL));
1835 EXPECT_EQ(base::PLATFORM_FILE_OK, 1833 EXPECT_EQ(base::PLATFORM_FILE_OK,
1836 ofu()->EnsureFileExists(context.get(), file_path, &created)); 1834 ofu()->EnsureFileExists(context.get(), file_path, &created));
1837 EXPECT_TRUE(created); 1835 EXPECT_TRUE(created);
1838 1836
1839 ClearTimestamp(dir_url); 1837 ClearTimestamp(dir_url);
1840 context.reset(NewContext(NULL)); 1838 context.reset(NewContext(NULL));
1841 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY, 1839 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY,
1842 ofu()->DeleteSingleDirectory(context.get(), url)); 1840 ofu()->DeleteDirectory(context.get(), url));
1843 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url)); 1841 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url));
1844 1842
1845 // delete case. 1843 // delete case.
1846 context.reset(NewContext(NULL)); 1844 context.reset(NewContext(NULL));
1847 EXPECT_EQ(base::PLATFORM_FILE_OK, 1845 EXPECT_EQ(base::PLATFORM_FILE_OK,
1848 ofu()->DeleteFile(context.get(), file_path)); 1846 ofu()->DeleteFile(context.get(), file_path));
1849 1847
1850 ClearTimestamp(dir_url); 1848 ClearTimestamp(dir_url);
1851 context.reset(NewContext(NULL)); 1849 context.reset(NewContext(NULL));
1852 EXPECT_EQ(base::PLATFORM_FILE_OK, 1850 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->DeleteDirectory(context.get(), url));
1853 ofu()->DeleteSingleDirectory(context.get(), url));
1854 EXPECT_NE(base::Time(), GetModifiedTime(dir_url)); 1851 EXPECT_NE(base::Time(), GetModifiedTime(dir_url));
1855 } 1852 }
1856 1853
1857 TEST_F(ObfuscatedFileUtilTest, TestDirectoryTimestampForCopyAndMove) { 1854 TEST_F(ObfuscatedFileUtilTest, TestDirectoryTimestampForCopyAndMove) {
1858 TestDirectoryTimestampHelper( 1855 TestDirectoryTimestampHelper(
1859 CreateURLFromUTF8("copy overwrite"), true, true); 1856 CreateURLFromUTF8("copy overwrite"), true, true);
1860 TestDirectoryTimestampHelper( 1857 TestDirectoryTimestampHelper(
1861 CreateURLFromUTF8("copy non-overwrite"), true, false); 1858 CreateURLFromUTF8("copy non-overwrite"), true, false);
1862 TestDirectoryTimestampHelper( 1859 TestDirectoryTimestampHelper(
1863 CreateURLFromUTF8("move overwrite"), false, true); 1860 CreateURLFromUTF8("move overwrite"), false, true);
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
2226 ASSERT_EQ(base::PLATFORM_FILE_OK, 2223 ASSERT_EQ(base::PLATFORM_FILE_OK,
2227 ofu()->CreateOrOpen( 2224 ofu()->CreateOrOpen(
2228 AllowUsageIncrease(-length)->context(), file, 2225 AllowUsageIncrease(-length)->context(), file,
2229 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, 2226 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE,
2230 &file_handle, &created)); 2227 &file_handle, &created));
2231 ASSERT_EQ(0, ComputeTotalFileSize()); 2228 ASSERT_EQ(0, ComputeTotalFileSize());
2232 EXPECT_TRUE(base::ClosePlatformFile(file_handle)); 2229 EXPECT_TRUE(base::ClosePlatformFile(file_handle));
2233 } 2230 }
2234 2231
2235 } // namespace fileapi 2232 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/fileapi/obfuscated_file_util.cc ('k') | webkit/fileapi/syncable/local_file_sync_context_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698