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.
5 #ifndef WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_
6 #define WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_
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"
19 class FileSystemContext;
22 // A helper class to perform async file operations in a synchronous way.
23 class AsyncFileTestHelper {
25 typedef FileSystemOperation::FileEntryList FileEntryList;
26 typedef FileSystemOperation::CopyProgressCallback CopyProgressCallback;
28 static const int64 kDontCheckSize;
30 // Performs Copy from |src| to |dest| and returns the status code.
31 static base::PlatformFileError Copy(FileSystemContext* context,
32 const FileSystemURL& src,
33 const FileSystemURL& dest);
35 // Same as Copy, but this supports |progress_callback|.
36 static base::PlatformFileError CopyWithProgress(
37 FileSystemContext* context,
38 const FileSystemURL& src,
39 const FileSystemURL& dest,
40 const CopyProgressCallback& progress_callback);
42 // Performs Move from |src| to |dest| and returns the status code.
43 static base::PlatformFileError Move(FileSystemContext* context,
44 const FileSystemURL& src,
45 const FileSystemURL& dest);
47 // Removes the given |url|.
48 static base::PlatformFileError Remove(FileSystemContext* context,
49 const FileSystemURL& url,
52 // Performs ReadDirectory on |url|.
53 static base::PlatformFileError ReadDirectory(FileSystemContext* context,
54 const FileSystemURL& url,
55 FileEntryList* entries);
57 // Creates a directory at |url|.
58 static base::PlatformFileError CreateDirectory(FileSystemContext* context,
59 const FileSystemURL& url);
61 // Creates a file at |url|.
62 static base::PlatformFileError CreateFile(FileSystemContext* context,
63 const FileSystemURL& url);
65 // Creates a file at |url| and fills with |buf|.
66 static base::PlatformFileError CreateFileWithData(
67 FileSystemContext* context,
68 const FileSystemURL& url,
72 // Truncates the file |url| to |size|.
73 static base::PlatformFileError TruncateFile(FileSystemContext* context,
74 const FileSystemURL& url,
77 // Retrieves PlatformFileInfo for |url| and populates |file_info|.
78 static base::PlatformFileError GetMetadata(FileSystemContext* context,
79 const FileSystemURL& url,
80 base::PlatformFileInfo* file_info);
82 // Retrieves FilePath for |url| and populates |platform_path|.
83 static base::PlatformFileError GetPlatformPath(FileSystemContext* context,
84 const FileSystemURL& url,
85 base::FilePath* platform_path);
87 // Returns true if a file exists at |url| with |size|. If |size| is
88 // kDontCheckSize it doesn't check the file size (but just check its
90 static bool FileExists(FileSystemContext* context,
91 const FileSystemURL& url,
94 // Returns true if a directory exists at |url|.
95 static bool DirectoryExists(FileSystemContext* context,
96 const FileSystemURL& url);
98 // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|.
99 static quota::QuotaStatusCode GetUsageAndQuota(
100 quota::QuotaManager* quota_manager,
107 } // namespace fileapi
109 #endif // WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_