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

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

Issue 12051010: (For-try) Divide recursive Copy/Move into multiple async tasks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test fix 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 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); 917 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL));
918 918
919 bool exclusive = false; 919 bool exclusive = false;
920 bool recursive = false; 920 bool recursive = false;
921 FileSystemURL url = CreateURLFromUTF8("foo/bar"); 921 FileSystemURL url = CreateURLFromUTF8("foo/bar");
922 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, ofu()->CreateDirectory( 922 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, ofu()->CreateDirectory(
923 context.get(), url, exclusive, recursive)); 923 context.get(), url, exclusive, recursive));
924 924
925 context.reset(NewContext(NULL)); 925 context.reset(NewContext(NULL));
926 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, 926 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND,
927 ofu()->DeleteSingleDirectory(context.get(), url)); 927 ofu()->DeleteDirectory(context.get(), url));
928 928
929 FileSystemURL root = CreateURLFromUTF8(""); 929 FileSystemURL root = CreateURLFromUTF8("");
930 EXPECT_FALSE(DirectoryExists(url)); 930 EXPECT_FALSE(DirectoryExists(url));
931 EXPECT_FALSE(PathExists(url)); 931 EXPECT_FALSE(PathExists(url));
932 context.reset(NewContext(NULL)); 932 context.reset(NewContext(NULL));
933 EXPECT_TRUE(ofu()->IsDirectoryEmpty(context.get(), root)); 933 EXPECT_TRUE(ofu()->IsDirectoryEmpty(context.get(), root));
934 934
935 context.reset(NewContext(NULL)); 935 context.reset(NewContext(NULL));
936 exclusive = false; 936 exclusive = false;
937 recursive = true; 937 recursive = true;
938 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory( 938 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory(
939 context.get(), url, exclusive, recursive)); 939 context.get(), url, exclusive, recursive));
940 EXPECT_EQ(2, change_observer()->get_and_reset_create_directory_count()); 940 EXPECT_EQ(2, change_observer()->get_and_reset_create_directory_count());
941 941
942 EXPECT_TRUE(DirectoryExists(url)); 942 EXPECT_TRUE(DirectoryExists(url));
943 EXPECT_TRUE(PathExists(url)); 943 EXPECT_TRUE(PathExists(url));
944 944
945 context.reset(NewContext(NULL)); 945 context.reset(NewContext(NULL));
946 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), root)); 946 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), root));
947 EXPECT_TRUE(DirectoryExists(url.WithPath(url.path().DirName()))); 947 EXPECT_TRUE(DirectoryExists(url.WithPath(url.path().DirName())));
948 948
949 context.reset(NewContext(NULL)); 949 context.reset(NewContext(NULL));
950 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(), 950 EXPECT_FALSE(ofu()->IsDirectoryEmpty(context.get(),
951 url.WithPath(url.path().DirName()))); 951 url.WithPath(url.path().DirName())));
952 952
953 // Can't remove a non-empty directory. 953 // Can't remove a non-empty directory.
954 context.reset(NewContext(NULL)); 954 context.reset(NewContext(NULL));
955 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY, 955 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY,
956 ofu()->DeleteSingleDirectory(context.get(), 956 ofu()->DeleteDirectory(context.get(),
957 url.WithPath(url.path().DirName()))); 957 url.WithPath(url.path().DirName())));
958 EXPECT_TRUE(change_observer()->HasNoChange()); 958 EXPECT_TRUE(change_observer()->HasNoChange());
959 959
960 base::PlatformFileInfo file_info; 960 base::PlatformFileInfo file_info;
961 FilePath local_path; 961 FilePath local_path;
962 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetFileInfo( 962 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetFileInfo(
963 context.get(), url, &file_info, &local_path)); 963 context.get(), url, &file_info, &local_path));
964 EXPECT_TRUE(local_path.empty()); 964 EXPECT_TRUE(local_path.empty());
965 EXPECT_TRUE(file_info.is_directory); 965 EXPECT_TRUE(file_info.is_directory);
966 EXPECT_FALSE(file_info.is_symbolic_link); 966 EXPECT_FALSE(file_info.is_symbolic_link);
967 967
968 // Same create again should succeed, since exclusive is false. 968 // Same create again should succeed, since exclusive is false.
969 context.reset(NewContext(NULL)); 969 context.reset(NewContext(NULL));
970 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory( 970 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->CreateDirectory(
971 context.get(), url, exclusive, recursive)); 971 context.get(), url, exclusive, recursive));
972 EXPECT_TRUE(change_observer()->HasNoChange()); 972 EXPECT_TRUE(change_observer()->HasNoChange());
973 973
974 exclusive = true; 974 exclusive = true;
975 recursive = true; 975 recursive = true;
976 context.reset(NewContext(NULL)); 976 context.reset(NewContext(NULL));
977 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, ofu()->CreateDirectory( 977 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, ofu()->CreateDirectory(
978 context.get(), url, exclusive, recursive)); 978 context.get(), url, exclusive, recursive));
979 EXPECT_TRUE(change_observer()->HasNoChange()); 979 EXPECT_TRUE(change_observer()->HasNoChange());
980 980
981 // Verify that deleting a directory isn't stopped by zero quota, and that it 981 // Verify that deleting a directory isn't stopped by zero quota, and that it
982 // frees up quota from its path. 982 // frees up quota from its path.
983 context.reset(NewContext(NULL)); 983 context.reset(NewContext(NULL));
984 context->set_allowed_bytes_growth(0); 984 context->set_allowed_bytes_growth(0);
985 EXPECT_EQ(base::PLATFORM_FILE_OK, 985 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->DeleteDirectory(context.get(), url));
986 ofu()->DeleteSingleDirectory(context.get(), url));
987 EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count()); 986 EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count());
988 EXPECT_EQ(ObfuscatedFileUtil::ComputeFilePathCost(url.path()), 987 EXPECT_EQ(ObfuscatedFileUtil::ComputeFilePathCost(url.path()),
989 context->allowed_bytes_growth()); 988 context->allowed_bytes_growth());
990 989
991 url = CreateURLFromUTF8("foo/bop"); 990 url = CreateURLFromUTF8("foo/bop");
992 991
993 EXPECT_FALSE(DirectoryExists(url)); 992 EXPECT_FALSE(DirectoryExists(url));
994 EXPECT_FALSE(PathExists(url)); 993 EXPECT_FALSE(PathExists(url));
995 994
996 context.reset(NewContext(NULL)); 995 context.reset(NewContext(NULL));
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1822 ofu()->DeleteFile(context.get(), url)); 1821 ofu()->DeleteFile(context.get(), url));
1823 EXPECT_NE(base::Time(), GetModifiedTime(dir_url)); 1822 EXPECT_NE(base::Time(), GetModifiedTime(dir_url));
1824 1823
1825 // fail case. 1824 // fail case.
1826 ClearTimestamp(dir_url); 1825 ClearTimestamp(dir_url);
1827 context.reset(NewContext(NULL)); 1826 context.reset(NewContext(NULL));
1828 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, 1827 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND,
1829 ofu()->DeleteFile(context.get(), url)); 1828 ofu()->DeleteFile(context.get(), url));
1830 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url)); 1829 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url));
1831 1830
1832 // DeleteSingleDirectory, fail case. 1831 // DeleteDirectory, fail case.
1833 url = dir_url.WithPath( 1832 url = dir_url.WithPath(dir_url.path().AppendASCII("DeleteDirectory_dir"));
1834 dir_url.path().AppendASCII("DeleteSingleDirectory_dir"));
1835 FileSystemURL file_path(url.WithPath(url.path().AppendASCII("pakeratta"))); 1833 FileSystemURL file_path(url.WithPath(url.path().AppendASCII("pakeratta")));
1836 context.reset(NewContext(NULL)); 1834 context.reset(NewContext(NULL));
1837 EXPECT_EQ(base::PLATFORM_FILE_OK, 1835 EXPECT_EQ(base::PLATFORM_FILE_OK,
1838 ofu()->CreateDirectory(context.get(), url, true, true)); 1836 ofu()->CreateDirectory(context.get(), url, true, true));
1839 created = false; 1837 created = false;
1840 context.reset(NewContext(NULL)); 1838 context.reset(NewContext(NULL));
1841 EXPECT_EQ(base::PLATFORM_FILE_OK, 1839 EXPECT_EQ(base::PLATFORM_FILE_OK,
1842 ofu()->EnsureFileExists(context.get(), file_path, &created)); 1840 ofu()->EnsureFileExists(context.get(), file_path, &created));
1843 EXPECT_TRUE(created); 1841 EXPECT_TRUE(created);
1844 1842
1845 ClearTimestamp(dir_url); 1843 ClearTimestamp(dir_url);
1846 context.reset(NewContext(NULL)); 1844 context.reset(NewContext(NULL));
1847 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY, 1845 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_EMPTY,
1848 ofu()->DeleteSingleDirectory(context.get(), url)); 1846 ofu()->DeleteDirectory(context.get(), url));
1849 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url)); 1847 EXPECT_EQ(base::Time(), GetModifiedTime(dir_url));
1850 1848
1851 // delete case. 1849 // delete case.
1852 context.reset(NewContext(NULL)); 1850 context.reset(NewContext(NULL));
1853 EXPECT_EQ(base::PLATFORM_FILE_OK, 1851 EXPECT_EQ(base::PLATFORM_FILE_OK,
1854 ofu()->DeleteFile(context.get(), file_path)); 1852 ofu()->DeleteFile(context.get(), file_path));
1855 1853
1856 ClearTimestamp(dir_url); 1854 ClearTimestamp(dir_url);
1857 context.reset(NewContext(NULL)); 1855 context.reset(NewContext(NULL));
1858 EXPECT_EQ(base::PLATFORM_FILE_OK, 1856 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->DeleteDirectory(context.get(), url));
1859 ofu()->DeleteSingleDirectory(context.get(), url));
1860 EXPECT_NE(base::Time(), GetModifiedTime(dir_url)); 1857 EXPECT_NE(base::Time(), GetModifiedTime(dir_url));
1861 } 1858 }
1862 1859
1863 TEST_F(ObfuscatedFileUtilTest, TestDirectoryTimestampForCopyAndMove) { 1860 TEST_F(ObfuscatedFileUtilTest, TestDirectoryTimestampForCopyAndMove) {
1864 TestDirectoryTimestampHelper( 1861 TestDirectoryTimestampHelper(
1865 CreateURLFromUTF8("copy overwrite"), true, true); 1862 CreateURLFromUTF8("copy overwrite"), true, true);
1866 TestDirectoryTimestampHelper( 1863 TestDirectoryTimestampHelper(
1867 CreateURLFromUTF8("copy non-overwrite"), true, false); 1864 CreateURLFromUTF8("copy non-overwrite"), true, false);
1868 TestDirectoryTimestampHelper( 1865 TestDirectoryTimestampHelper(
1869 CreateURLFromUTF8("move overwrite"), false, true); 1866 CreateURLFromUTF8("move overwrite"), false, true);
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
2232 ASSERT_EQ(base::PLATFORM_FILE_OK, 2229 ASSERT_EQ(base::PLATFORM_FILE_OK,
2233 ofu()->CreateOrOpen( 2230 ofu()->CreateOrOpen(
2234 AllowUsageIncrease(-length)->context(), file, 2231 AllowUsageIncrease(-length)->context(), file,
2235 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, 2232 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE,
2236 &file_handle, &created)); 2233 &file_handle, &created));
2237 ASSERT_EQ(0, ComputeTotalFileSize()); 2234 ASSERT_EQ(0, ComputeTotalFileSize());
2238 EXPECT_TRUE(base::ClosePlatformFile(file_handle)); 2235 EXPECT_TRUE(base::ClosePlatformFile(file_handle));
2239 } 2236 }
2240 2237
2241 } // namespace fileapi 2238 } // namespace fileapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698