Make sure webrtc::VideoSourceInterface is released on the main render thread.
[chromium-blink-merge.git] / content / public / test / async_file_test_helper.h
blob271e277f8c22b963c7334b4adf79799c47043e30
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"
13 namespace quota {
14 class QuotaManager;
17 namespace fileapi {
18 class FileSystemContext;
19 class FileSystemURL;
22 namespace content {
24 // A helper class to perform async file operations in a synchronous way.
25 class AsyncFileTestHelper {
26 public:
27 typedef fileapi::FileSystemOperation::FileEntryList FileEntryList;
28 typedef fileapi::FileSystemOperation::CopyProgressCallback
29 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,
53 bool recursive);
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,
72 const char* buf,
73 int buf_size);
75 // Truncates the file |url| to |size|.
76 static base::File::Error TruncateFile(fileapi::FileSystemContext* context,
77 const fileapi::FileSystemURL& url,
78 size_t size);
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
92 // existence).
93 static bool FileExists(fileapi::FileSystemContext* context,
94 const fileapi::FileSystemURL& url,
95 int64 size);
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,
104 const GURL& origin,
105 fileapi::FileSystemType type,
106 int64* usage,
107 int64* quota);
110 } // namespace content
112 #endif // CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_