OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/public/test/test_file_system_backend.h" | 5 #include "content/public/test/test_file_system_backend.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/sequenced_task_runner.h" | 12 #include "base/sequenced_task_runner.h" |
13 #include "webkit/browser/blob/file_stream_reader.h" | 13 #include "webkit/browser/blob/file_stream_reader.h" |
14 #include "webkit/browser/fileapi/copy_or_move_file_validator.h" | 14 #include "webkit/browser/fileapi/copy_or_move_file_validator.h" |
15 #include "webkit/browser/fileapi/file_observers.h" | 15 #include "webkit/browser/fileapi/file_observers.h" |
16 #include "webkit/browser/fileapi/file_system_operation.h" | 16 #include "webkit/browser/fileapi/file_system_operation.h" |
17 #include "webkit/browser/fileapi/file_system_operation_context.h" | 17 #include "webkit/browser/fileapi/file_system_operation_context.h" |
18 #include "webkit/browser/fileapi/file_system_quota_util.h" | 18 #include "webkit/browser/fileapi/file_system_quota_util.h" |
19 #include "webkit/browser/fileapi/local_file_util.h" | 19 #include "webkit/browser/fileapi/local_file_util.h" |
20 #include "webkit/browser/fileapi/native_file_util.h" | 20 #include "webkit/browser/fileapi/native_file_util.h" |
21 #include "webkit/browser/fileapi/quota/quota_reservation.h" | 21 #include "webkit/browser/fileapi/quota/quota_reservation.h" |
22 #include "webkit/browser/fileapi/sandbox_file_stream_writer.h" | 22 #include "webkit/browser/fileapi/sandbox_file_stream_writer.h" |
23 #include "webkit/browser/quota/quota_manager.h" | 23 #include "webkit/browser/quota/quota_manager.h" |
24 #include "webkit/common/fileapi/file_system_util.h" | 24 #include "webkit/common/fileapi/file_system_util.h" |
25 | 25 |
26 namespace fileapi { | 26 using fileapi::FileSystemContext; |
| 27 using fileapi::FileSystemOperation; |
| 28 using fileapi::FileSystemOperationContext; |
| 29 using fileapi::FileSystemType; |
| 30 using fileapi::FileSystemURL; |
| 31 |
| 32 namespace content { |
27 | 33 |
28 namespace { | 34 namespace { |
29 | 35 |
30 class TestFileUtil : public LocalFileUtil { | 36 class TestFileUtil : public fileapi::LocalFileUtil { |
31 public: | 37 public: |
32 explicit TestFileUtil(const base::FilePath& base_path) | 38 explicit TestFileUtil(const base::FilePath& base_path) |
33 : base_path_(base_path) {} | 39 : base_path_(base_path) {} |
34 virtual ~TestFileUtil() {} | 40 virtual ~TestFileUtil() {} |
35 | 41 |
36 // LocalFileUtil overrides. | 42 // LocalFileUtil overrides. |
37 virtual base::PlatformFileError GetLocalFilePath( | 43 virtual base::PlatformFileError GetLocalFilePath( |
38 FileSystemOperationContext* context, | 44 FileSystemOperationContext* context, |
39 const FileSystemURL& file_system_url, | 45 const FileSystemURL& file_system_url, |
40 base::FilePath* local_file_path) OVERRIDE { | 46 base::FilePath* local_file_path) OVERRIDE { |
41 *local_file_path = base_path_.Append(file_system_url.path()); | 47 *local_file_path = base_path_.Append(file_system_url.path()); |
42 return base::PLATFORM_FILE_OK; | 48 return base::PLATFORM_FILE_OK; |
43 } | 49 } |
44 | 50 |
45 private: | 51 private: |
46 base::FilePath base_path_; | 52 base::FilePath base_path_; |
47 }; | 53 }; |
48 | 54 |
49 } // namespace | 55 } // namespace |
50 | 56 |
51 // This only supports single origin. | 57 // This only supports single origin. |
52 class TestFileSystemBackend::QuotaUtil | 58 class TestFileSystemBackend::QuotaUtil |
53 : public FileSystemQuotaUtil, | 59 : public fileapi::FileSystemQuotaUtil, |
54 public FileUpdateObserver { | 60 public fileapi::FileUpdateObserver { |
55 public: | 61 public: |
56 explicit QuotaUtil(base::SequencedTaskRunner* task_runner) | 62 explicit QuotaUtil(base::SequencedTaskRunner* task_runner) |
57 : usage_(0), | 63 : usage_(0), |
58 task_runner_(task_runner) { | 64 task_runner_(task_runner) { |
59 update_observers_ = update_observers_.AddObserver(this, task_runner_.get()); | 65 update_observers_ = update_observers_.AddObserver(this, task_runner_.get()); |
60 } | 66 } |
61 virtual ~QuotaUtil() {} | 67 virtual ~QuotaUtil() {} |
62 | 68 |
63 // FileSystemQuotaUtil overrides. | 69 // FileSystemQuotaUtil overrides. |
64 virtual base::PlatformFileError DeleteOriginDataOnFileTaskRunner( | 70 virtual base::PlatformFileError DeleteOriginDataOnFileTaskRunner( |
65 FileSystemContext* context, | 71 FileSystemContext* context, |
66 quota::QuotaManagerProxy* proxy, | 72 quota::QuotaManagerProxy* proxy, |
67 const GURL& origin_url, | 73 const GURL& origin_url, |
68 FileSystemType type) OVERRIDE { | 74 FileSystemType type) OVERRIDE { |
69 NOTREACHED(); | 75 NOTREACHED(); |
70 return base::PLATFORM_FILE_OK; | 76 return base::PLATFORM_FILE_OK; |
71 } | 77 } |
72 | 78 |
73 virtual scoped_refptr<QuotaReservation> | 79 virtual scoped_refptr<fileapi::QuotaReservation> |
74 CreateQuotaReservationOnFileTaskRunner( | 80 CreateQuotaReservationOnFileTaskRunner( |
75 const GURL& origin_url, | 81 const GURL& origin_url, |
76 FileSystemType type) OVERRIDE { | 82 FileSystemType type) OVERRIDE { |
77 NOTREACHED(); | 83 NOTREACHED(); |
78 return scoped_refptr<QuotaReservation>(); | 84 return scoped_refptr<fileapi::QuotaReservation>(); |
79 } | 85 } |
80 | 86 |
81 virtual void GetOriginsForTypeOnFileTaskRunner( | 87 virtual void GetOriginsForTypeOnFileTaskRunner( |
82 FileSystemType type, | 88 FileSystemType type, |
83 std::set<GURL>* origins) OVERRIDE { | 89 std::set<GURL>* origins) OVERRIDE { |
84 NOTREACHED(); | 90 NOTREACHED(); |
85 } | 91 } |
86 | 92 |
87 virtual void GetOriginsForHostOnFileTaskRunner( | 93 virtual void GetOriginsForHostOnFileTaskRunner( |
88 FileSystemType type, | 94 FileSystemType type, |
(...skipping 11 matching lines...) Expand all Loading... |
100 | 106 |
101 virtual void AddFileUpdateObserver( | 107 virtual void AddFileUpdateObserver( |
102 FileSystemType type, | 108 FileSystemType type, |
103 FileUpdateObserver* observer, | 109 FileUpdateObserver* observer, |
104 base::SequencedTaskRunner* task_runner) OVERRIDE { | 110 base::SequencedTaskRunner* task_runner) OVERRIDE { |
105 NOTIMPLEMENTED(); | 111 NOTIMPLEMENTED(); |
106 } | 112 } |
107 | 113 |
108 virtual void AddFileChangeObserver( | 114 virtual void AddFileChangeObserver( |
109 FileSystemType type, | 115 FileSystemType type, |
110 FileChangeObserver* observer, | 116 fileapi::FileChangeObserver* observer, |
111 base::SequencedTaskRunner* task_runner) OVERRIDE { | 117 base::SequencedTaskRunner* task_runner) OVERRIDE { |
112 change_observers_ = change_observers_.AddObserver(observer, task_runner); | 118 change_observers_ = change_observers_.AddObserver(observer, task_runner); |
113 } | 119 } |
114 | 120 |
115 virtual void AddFileAccessObserver( | 121 virtual void AddFileAccessObserver( |
116 FileSystemType type, | 122 FileSystemType type, |
117 FileAccessObserver* observer, | 123 fileapi::FileAccessObserver* observer, |
118 base::SequencedTaskRunner* task_runner) OVERRIDE { | 124 base::SequencedTaskRunner* task_runner) OVERRIDE { |
119 NOTIMPLEMENTED(); | 125 NOTIMPLEMENTED(); |
120 } | 126 } |
121 | 127 |
122 virtual const UpdateObserverList* GetUpdateObservers( | 128 virtual const fileapi::UpdateObserverList* GetUpdateObservers( |
123 FileSystemType type) const OVERRIDE { | 129 FileSystemType type) const OVERRIDE { |
124 return &update_observers_; | 130 return &update_observers_; |
125 } | 131 } |
126 | 132 |
127 virtual const ChangeObserverList* GetChangeObservers( | 133 virtual const fileapi::ChangeObserverList* GetChangeObservers( |
128 FileSystemType type) const OVERRIDE { | 134 FileSystemType type) const OVERRIDE { |
129 return &change_observers_; | 135 return &change_observers_; |
130 } | 136 } |
131 | 137 |
132 virtual const AccessObserverList* GetAccessObservers( | 138 virtual const fileapi::AccessObserverList* GetAccessObservers( |
133 FileSystemType type) const OVERRIDE { | 139 FileSystemType type) const OVERRIDE { |
134 NOTIMPLEMENTED(); | 140 NOTIMPLEMENTED(); |
135 return NULL; | 141 return NULL; |
136 } | 142 } |
137 | 143 |
138 // FileUpdateObserver overrides. | 144 // FileUpdateObserver overrides. |
139 virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE {} | 145 virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE {} |
140 virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE { | 146 virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE { |
141 usage_ += delta; | 147 usage_ += delta; |
142 } | 148 } |
143 virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE {} | 149 virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE {} |
144 | 150 |
145 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } | 151 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } |
146 | 152 |
147 private: | 153 private: |
148 int64 usage_; | 154 int64 usage_; |
149 | 155 |
150 scoped_refptr<base::SequencedTaskRunner> task_runner_; | 156 scoped_refptr<base::SequencedTaskRunner> task_runner_; |
151 | 157 |
152 UpdateObserverList update_observers_; | 158 fileapi::UpdateObserverList update_observers_; |
153 ChangeObserverList change_observers_; | 159 fileapi::ChangeObserverList change_observers_; |
154 }; | 160 }; |
155 | 161 |
156 TestFileSystemBackend::TestFileSystemBackend( | 162 TestFileSystemBackend::TestFileSystemBackend( |
157 base::SequencedTaskRunner* task_runner, | 163 base::SequencedTaskRunner* task_runner, |
158 const base::FilePath& base_path) | 164 const base::FilePath& base_path) |
159 : base_path_(base_path), | 165 : base_path_(base_path), |
160 file_util_(new AsyncFileUtilAdapter(new TestFileUtil(base_path))), | 166 file_util_( |
| 167 new fileapi::AsyncFileUtilAdapter(new TestFileUtil(base_path))), |
161 quota_util_(new QuotaUtil(task_runner)), | 168 quota_util_(new QuotaUtil(task_runner)), |
162 require_copy_or_move_validator_(false) { | 169 require_copy_or_move_validator_(false) { |
163 } | 170 } |
164 | 171 |
165 TestFileSystemBackend::~TestFileSystemBackend() { | 172 TestFileSystemBackend::~TestFileSystemBackend() { |
166 } | 173 } |
167 | 174 |
168 bool TestFileSystemBackend::CanHandleType(FileSystemType type) const { | 175 bool TestFileSystemBackend::CanHandleType(FileSystemType type) const { |
169 return (type == kFileSystemTypeTest); | 176 return (type == fileapi::kFileSystemTypeTest); |
170 } | 177 } |
171 | 178 |
172 void TestFileSystemBackend::Initialize(FileSystemContext* context) { | 179 void TestFileSystemBackend::Initialize(FileSystemContext* context) { |
173 } | 180 } |
174 | 181 |
175 void TestFileSystemBackend::OpenFileSystem( | 182 void TestFileSystemBackend::OpenFileSystem( |
176 const GURL& origin_url, | 183 const GURL& origin_url, |
177 FileSystemType type, | 184 FileSystemType type, |
178 OpenFileSystemMode mode, | 185 fileapi::OpenFileSystemMode mode, |
179 const OpenFileSystemCallback& callback) { | 186 const OpenFileSystemCallback& callback) { |
180 callback.Run(GetFileSystemRootURI(origin_url, type), | 187 callback.Run(GetFileSystemRootURI(origin_url, type), |
181 GetFileSystemName(origin_url, type), | 188 GetFileSystemName(origin_url, type), |
182 base::PLATFORM_FILE_OK); | 189 base::PLATFORM_FILE_OK); |
183 } | 190 } |
184 | 191 |
185 AsyncFileUtil* TestFileSystemBackend::GetAsyncFileUtil(FileSystemType type) { | 192 fileapi::AsyncFileUtil* TestFileSystemBackend::GetAsyncFileUtil( |
| 193 FileSystemType type) { |
186 return file_util_.get(); | 194 return file_util_.get(); |
187 } | 195 } |
188 | 196 |
189 CopyOrMoveFileValidatorFactory* | 197 fileapi::CopyOrMoveFileValidatorFactory* |
190 TestFileSystemBackend::GetCopyOrMoveFileValidatorFactory( | 198 TestFileSystemBackend::GetCopyOrMoveFileValidatorFactory( |
191 FileSystemType type, base::PlatformFileError* error_code) { | 199 FileSystemType type, base::PlatformFileError* error_code) { |
192 DCHECK(error_code); | 200 DCHECK(error_code); |
193 *error_code = base::PLATFORM_FILE_OK; | 201 *error_code = base::PLATFORM_FILE_OK; |
194 if (require_copy_or_move_validator_) { | 202 if (require_copy_or_move_validator_) { |
195 if (!copy_or_move_file_validator_factory_) | 203 if (!copy_or_move_file_validator_factory_) |
196 *error_code = base::PLATFORM_FILE_ERROR_SECURITY; | 204 *error_code = base::PLATFORM_FILE_ERROR_SECURITY; |
197 return copy_or_move_file_validator_factory_.get(); | 205 return copy_or_move_file_validator_factory_.get(); |
198 } | 206 } |
199 return NULL; | 207 return NULL; |
200 } | 208 } |
201 | 209 |
202 void TestFileSystemBackend::InitializeCopyOrMoveFileValidatorFactory( | 210 void TestFileSystemBackend::InitializeCopyOrMoveFileValidatorFactory( |
203 scoped_ptr<CopyOrMoveFileValidatorFactory> factory) { | 211 scoped_ptr<fileapi::CopyOrMoveFileValidatorFactory> factory) { |
204 if (!copy_or_move_file_validator_factory_) | 212 if (!copy_or_move_file_validator_factory_) |
205 copy_or_move_file_validator_factory_ = factory.Pass(); | 213 copy_or_move_file_validator_factory_ = factory.Pass(); |
206 } | 214 } |
207 | 215 |
208 FileSystemOperation* TestFileSystemBackend::CreateFileSystemOperation( | 216 FileSystemOperation* TestFileSystemBackend::CreateFileSystemOperation( |
209 const FileSystemURL& url, | 217 const FileSystemURL& url, |
210 FileSystemContext* context, | 218 FileSystemContext* context, |
211 base::PlatformFileError* error_code) const { | 219 base::PlatformFileError* error_code) const { |
212 scoped_ptr<FileSystemOperationContext> operation_context( | 220 scoped_ptr<FileSystemOperationContext> operation_context( |
213 new FileSystemOperationContext(context)); | 221 new FileSystemOperationContext(context)); |
(...skipping 13 matching lines...) Expand all Loading... |
227 webkit_blob::FileStreamReader::CreateForFileSystemFile( | 235 webkit_blob::FileStreamReader::CreateForFileSystemFile( |
228 context, url, offset, expected_modification_time)); | 236 context, url, offset, expected_modification_time)); |
229 } | 237 } |
230 | 238 |
231 scoped_ptr<fileapi::FileStreamWriter> | 239 scoped_ptr<fileapi::FileStreamWriter> |
232 TestFileSystemBackend::CreateFileStreamWriter( | 240 TestFileSystemBackend::CreateFileStreamWriter( |
233 const FileSystemURL& url, | 241 const FileSystemURL& url, |
234 int64 offset, | 242 int64 offset, |
235 FileSystemContext* context) const { | 243 FileSystemContext* context) const { |
236 return scoped_ptr<fileapi::FileStreamWriter>( | 244 return scoped_ptr<fileapi::FileStreamWriter>( |
237 new SandboxFileStreamWriter(context, url, offset, | 245 new fileapi::SandboxFileStreamWriter(context, url, offset, |
238 *GetUpdateObservers(url.type()))); | 246 *GetUpdateObservers(url.type()))); |
239 } | 247 } |
240 | 248 |
241 FileSystemQuotaUtil* TestFileSystemBackend::GetQuotaUtil() { | 249 fileapi::FileSystemQuotaUtil* TestFileSystemBackend::GetQuotaUtil() { |
242 return quota_util_.get(); | 250 return quota_util_.get(); |
243 } | 251 } |
244 | 252 |
245 const UpdateObserverList* TestFileSystemBackend::GetUpdateObservers( | 253 const fileapi::UpdateObserverList* TestFileSystemBackend::GetUpdateObservers( |
246 FileSystemType type) const { | 254 FileSystemType type) const { |
247 return quota_util_->GetUpdateObservers(type); | 255 return quota_util_->GetUpdateObservers(type); |
248 } | 256 } |
249 | 257 |
250 void TestFileSystemBackend::AddFileChangeObserver( | 258 void TestFileSystemBackend::AddFileChangeObserver( |
251 FileChangeObserver* observer) { | 259 fileapi::FileChangeObserver* observer) { |
252 quota_util_->AddFileChangeObserver( | 260 quota_util_->AddFileChangeObserver( |
253 kFileSystemTypeTest, observer, quota_util_->task_runner()); | 261 fileapi::kFileSystemTypeTest, observer, quota_util_->task_runner()); |
254 } | 262 } |
255 | 263 |
256 } // namespace fileapi | 264 } // namespace content |
OLD | NEW |