- add sources.
[platform/framework/web/crosswalk.git] / src / webkit / browser / fileapi / async_file_test_helper.h
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   typedef FileSystemOperation::CopyProgressCallback CopyProgressCallback;
27
28   static const int64 kDontCheckSize;
29
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);
34
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);
41
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);
46
47   // Removes the given |url|.
48   static base::PlatformFileError Remove(FileSystemContext* context,
49                                         const FileSystemURL& url,
50                                         bool recursive);
51
52   // Performs ReadDirectory on |url|.
53   static base::PlatformFileError ReadDirectory(FileSystemContext* context,
54                                                const FileSystemURL& url,
55                                                FileEntryList* entries);
56
57   // Creates a directory at |url|.
58   static base::PlatformFileError CreateDirectory(FileSystemContext* context,
59                                                  const FileSystemURL& url);
60
61   // Creates a file at |url|.
62   static base::PlatformFileError CreateFile(FileSystemContext* context,
63                                             const FileSystemURL& url);
64
65   // Creates a file at |url| and fills with |buf|.
66   static base::PlatformFileError CreateFileWithData(
67       FileSystemContext* context,
68       const FileSystemURL& url,
69       const char* buf,
70       int buf_size);
71
72   // Truncates the file |url| to |size|.
73   static base::PlatformFileError TruncateFile(FileSystemContext* context,
74                                               const FileSystemURL& url,
75                                               size_t size);
76
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);
81
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);
86
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
89   // existence).
90   static bool FileExists(FileSystemContext* context,
91                          const FileSystemURL& url,
92                          int64 size);
93
94   // Returns true if a directory exists at |url|.
95   static bool DirectoryExists(FileSystemContext* context,
96                               const FileSystemURL& url);
97
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,
101       const GURL& origin,
102       FileSystemType type,
103       int64* usage,
104       int64* quota);
105 };
106
107 }  // namespace fileapi
108
109 #endif  // WEBKIT_BROWSER_FILEAPI_ASYNC_FILE_TEST_HELPER_H_