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 storage::FileSystemOperation::FileEntryList FileEntryList
;
28 typedef storage::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(storage::FileSystemContext
* context
,
35 const storage::FileSystemURL
& src
,
36 const storage::FileSystemURL
& dest
);
38 // Same as Copy, but this supports |progress_callback|.
39 static base::File::Error
CopyWithProgress(
40 storage::FileSystemContext
* context
,
41 const storage::FileSystemURL
& src
,
42 const storage::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(storage::FileSystemContext
* context
,
47 const storage::FileSystemURL
& src
,
48 const storage::FileSystemURL
& dest
);
50 // Removes the given |url|.
51 static base::File::Error
Remove(storage::FileSystemContext
* context
,
52 const storage::FileSystemURL
& url
,
55 // Performs ReadDirectory on |url|.
56 static base::File::Error
ReadDirectory(storage::FileSystemContext
* context
,
57 const storage::FileSystemURL
& url
,
58 FileEntryList
* entries
);
60 // Creates a directory at |url|.
61 static base::File::Error
CreateDirectory(storage::FileSystemContext
* context
,
62 const storage::FileSystemURL
& url
);
64 // Creates a file at |url|.
65 static base::File::Error
CreateFile(storage::FileSystemContext
* context
,
66 const storage::FileSystemURL
& url
);
68 // Creates a file at |url| and fills with |buf|.
69 static base::File::Error
CreateFileWithData(
70 storage::FileSystemContext
* context
,
71 const storage::FileSystemURL
& url
,
75 // Truncates the file |url| to |size|.
76 static base::File::Error
TruncateFile(storage::FileSystemContext
* context
,
77 const storage::FileSystemURL
& url
,
80 // Retrieves File::Info for |url| and populates |file_info|.
81 static base::File::Error
GetMetadata(storage::FileSystemContext
* context
,
82 const storage::FileSystemURL
& url
,
83 base::File::Info
* file_info
);
85 // Retrieves FilePath for |url| and populates |platform_path|.
86 static base::File::Error
GetPlatformPath(storage::FileSystemContext
* context
,
87 const storage::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(storage::FileSystemContext
* context
,
94 const storage::FileSystemURL
& url
,
97 // Returns true if a directory exists at |url|.
98 static bool DirectoryExists(storage::FileSystemContext
* context
,
99 const storage::FileSystemURL
& url
);
101 // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|.
102 static storage::QuotaStatusCode
GetUsageAndQuota(
103 storage::QuotaManager
* quota_manager
,
105 storage::FileSystemType type
,
110 } // namespace content
112 #endif // CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_