1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_ 6 #define WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_ 7 8 #include "base/basictypes.h" 9 #include "webkit/browser/fileapi/file_system_operation.h" 10 #include "webkit/common/fileapi/file_system_types.h" 11 #include "webkit/common/quota/quota_status_code.h" 12 13 namespace quota { 14 class QuotaManager; 15 } 16 17 namespace fileapi { 18 19 class FileSystemContext; 20 class FileSystemURL; 21 22 // A helper class to perform async file operations in a synchronous way. 23 class AsyncFileTestHelper { 24 public: 25 typedef FileSystemOperation::FileEntryList FileEntryList; 26 27 static const int64 kDontCheckSize; 28 29 // Performs Copy from |src| to |dest| and returns the status code. 30 static base::PlatformFileError Copy(FileSystemContext* context, 31 const FileSystemURL& src, 32 const FileSystemURL& dest); 33 34 // Performs Move from |src| to |dest| and returns the status code. 35 static base::PlatformFileError Move(FileSystemContext* context, 36 const FileSystemURL& src, 37 const FileSystemURL& dest); 38 39 // Removes the given |url|. 40 static base::PlatformFileError Remove(FileSystemContext* context, 41 const FileSystemURL& url, 42 bool recursive); 43 44 // Performs ReadDirectory on |url|. 45 static base::PlatformFileError ReadDirectory(FileSystemContext* context, 46 const FileSystemURL& url, 47 FileEntryList* entries); 48 49 // Creates a directory at |url|. 50 static base::PlatformFileError CreateDirectory(FileSystemContext* context, 51 const FileSystemURL& url); 52 53 // Creates a file at |url|. 54 static base::PlatformFileError CreateFile(FileSystemContext* context, 55 const FileSystemURL& url); 56 57 // Truncates the file |url| to |size|. 58 static base::PlatformFileError TruncateFile(FileSystemContext* context, 59 const FileSystemURL& url, 60 size_t size); 61 62 // Retrieves PlatformFileInfo for |url| and populates |file_info|. 63 static base::PlatformFileError GetMetadata(FileSystemContext* context, 64 const FileSystemURL& url, 65 base::PlatformFileInfo* file_info); 66 67 // Retrieves FilePath for |url| and populates |platform_path|. 68 static base::PlatformFileError GetPlatformPath(FileSystemContext* context, 69 const FileSystemURL& url, 70 base::FilePath* platform_path); 71 72 // Returns true if a file exists at |url| with |size|. If |size| is 73 // kDontCheckSize it doesn't check the file size (but just check its 74 // existence). 75 static bool FileExists(FileSystemContext* context, 76 const FileSystemURL& url, 77 int64 size); 78 79 // Returns true if a directory exists at |url|. 80 static bool DirectoryExists(FileSystemContext* context, 81 const FileSystemURL& url); 82 83 // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|. 84 static quota::QuotaStatusCode GetUsageAndQuota( 85 quota::QuotaManager* quota_manager, 86 const GURL& origin, 87 FileSystemType type, 88 int64* usage, 89 int64* quota); 90 }; 91 92 } // namespace fileapi 93 94 #endif // WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_ 95