Separate Simple Backend creation from initialization.
[chromium-blink-merge.git] / webkit / fileapi / async_file_test_helper.h
blob9955b40e8520529d1d49f18acbd7408c8f6c815b
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_FILEAPI_ASYNC_FILE_TEST_HELPER_H_
6 #define WEBKIT_FILEAPI_ASYNC_FILE_TEST_HELPER_H_
8 #include "base/basictypes.h"
9 #include "webkit/fileapi/file_system_operation.h"
10 #include "webkit/fileapi/file_system_types.h"
11 #include "webkit/quota/quota_status_code.h"
13 namespace quota {
14 class QuotaManager;
17 namespace fileapi {
19 class FileSystemContext;
20 class FileSystemURL;
22 // A helper class to perform async file operations in a synchronous way.
23 class AsyncFileTestHelper {
24 public:
25 typedef FileSystemOperation::FileEntryList FileEntryList;
27 static const int64 kDontCheckSize;
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);
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);
39 // Removes the given |url|.
40 static base::PlatformFileError Remove(FileSystemContext* context,
41 const FileSystemURL& url,
42 bool recursive);
44 // Performs ReadDirectory on |url|.
45 static base::PlatformFileError ReadDirectory(FileSystemContext* context,
46 const FileSystemURL& url,
47 FileEntryList* entries);
49 // Creates a directory at |url|.
50 static base::PlatformFileError CreateDirectory(FileSystemContext* context,
51 const FileSystemURL& url);
53 // Creates a file at |url|.
54 static base::PlatformFileError CreateFile(FileSystemContext* context,
55 const FileSystemURL& url);
57 // Truncates the file |url| to |size|.
58 static base::PlatformFileError TruncateFile(FileSystemContext* context,
59 const FileSystemURL& url,
60 size_t size);
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 base::FilePath* platform_path);
68 // Returns true if a file exists at |url| with |size|. If |size| is
69 // kDontCheckSize it doesn't check the file size (but just check its
70 // existence).
71 static bool FileExists(FileSystemContext* context,
72 const FileSystemURL& url,
73 int64 size);
75 // Returns true if a directory exists at |url|.
76 static bool DirectoryExists(FileSystemContext* context,
77 const FileSystemURL& url);
79 // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|.
80 static quota::QuotaStatusCode GetUsageAndQuota(
81 quota::QuotaManager* quota_manager,
82 const GURL& origin,
83 FileSystemType type,
84 int64* usage,
85 int64* quota);
88 } // namespace fileapi
90 #endif // WEBKIT_FILEAPI_ASYNC_FILE_TEST_HELPER_H_