1 // Copyright 2014 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 CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_
6 #define CONTENT_PUBLIC_TEST_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"
18 class FileSystemContext
;
24 // A helper class to perform async file operations in a synchronous way.
25 class AsyncFileTestHelper
{
27 typedef fileapi::FileSystemOperation::FileEntryList FileEntryList
;
28 typedef fileapi::FileSystemOperation::CopyProgressCallback
31 static const int64 kDontCheckSize
;
33 // Performs Copy from |src| to |dest| and returns the status code.
34 static base::File::Error
Copy(fileapi::FileSystemContext
* context
,
35 const fileapi::FileSystemURL
& src
,
36 const fileapi::FileSystemURL
& dest
);
38 // Same as Copy, but this supports |progress_callback|.
39 static base::File::Error
CopyWithProgress(
40 fileapi::FileSystemContext
* context
,
41 const fileapi::FileSystemURL
& src
,
42 const fileapi::FileSystemURL
& dest
,
43 const CopyProgressCallback
& progress_callback
);
45 // Performs Move from |src| to |dest| and returns the status code.
46 static base::File::Error
Move(fileapi::FileSystemContext
* context
,
47 const fileapi::FileSystemURL
& src
,
48 const fileapi::FileSystemURL
& dest
);
50 // Removes the given |url|.
51 static base::File::Error
Remove(fileapi::FileSystemContext
* context
,
52 const fileapi::FileSystemURL
& url
,
55 // Performs ReadDirectory on |url|.
56 static base::File::Error
ReadDirectory(fileapi::FileSystemContext
* context
,
57 const fileapi::FileSystemURL
& url
,
58 FileEntryList
* entries
);
60 // Creates a directory at |url|.
61 static base::File::Error
CreateDirectory(fileapi::FileSystemContext
* context
,
62 const fileapi::FileSystemURL
& url
);
64 // Creates a file at |url|.
65 static base::File::Error
CreateFile(fileapi::FileSystemContext
* context
,
66 const fileapi::FileSystemURL
& url
);
68 // Creates a file at |url| and fills with |buf|.
69 static base::File::Error
CreateFileWithData(
70 fileapi::FileSystemContext
* context
,
71 const fileapi::FileSystemURL
& url
,
75 // Truncates the file |url| to |size|.
76 static base::File::Error
TruncateFile(fileapi::FileSystemContext
* context
,
77 const fileapi::FileSystemURL
& url
,
80 // Retrieves File::Info for |url| and populates |file_info|.
81 static base::File::Error
GetMetadata(fileapi::FileSystemContext
* context
,
82 const fileapi::FileSystemURL
& url
,
83 base::File::Info
* file_info
);
85 // Retrieves FilePath for |url| and populates |platform_path|.
86 static base::File::Error
GetPlatformPath(fileapi::FileSystemContext
* context
,
87 const fileapi::FileSystemURL
& url
,
88 base::FilePath
* platform_path
);
90 // Returns true if a file exists at |url| with |size|. If |size| is
91 // kDontCheckSize it doesn't check the file size (but just check its
93 static bool FileExists(fileapi::FileSystemContext
* context
,
94 const fileapi::FileSystemURL
& url
,
97 // Returns true if a directory exists at |url|.
98 static bool DirectoryExists(fileapi::FileSystemContext
* context
,
99 const fileapi::FileSystemURL
& url
);
101 // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|.
102 static quota::QuotaStatusCode
GetUsageAndQuota(
103 quota::QuotaManager
* quota_manager
,
105 fileapi::FileSystemType type
,
110 } // namespace content
112 #endif // CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_