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 using fileapi::FileSystemContext; | 26 using fileapi::FileSystemContext; |
27 using fileapi::FileSystemOperation; | 27 using fileapi::FileSystemOperation; |
28 using fileapi::FileSystemOperationContext; | 28 using fileapi::FileSystemOperationContext; |
29 using fileapi::FileSystemType; | |
30 using fileapi::FileSystemURL; | 29 using fileapi::FileSystemURL; |
31 | 30 |
32 namespace content { | 31 namespace content { |
33 | 32 |
34 namespace { | 33 namespace { |
35 | 34 |
36 class TestFileUtil : public fileapi::LocalFileUtil { | 35 class TestFileUtil : public fileapi::LocalFileUtil { |
37 public: | 36 public: |
38 explicit TestFileUtil(const base::FilePath& base_path) | 37 explicit TestFileUtil(const base::FilePath& base_path) |
39 : base_path_(base_path) {} | 38 : base_path_(base_path) {} |
(...skipping 24 matching lines...) Expand all Loading... |
64 task_runner_(task_runner) { | 63 task_runner_(task_runner) { |
65 update_observers_ = update_observers_.AddObserver(this, task_runner_.get()); | 64 update_observers_ = update_observers_.AddObserver(this, task_runner_.get()); |
66 } | 65 } |
67 virtual ~QuotaUtil() {} | 66 virtual ~QuotaUtil() {} |
68 | 67 |
69 // FileSystemQuotaUtil overrides. | 68 // FileSystemQuotaUtil overrides. |
70 virtual base::File::Error DeleteOriginDataOnFileTaskRunner( | 69 virtual base::File::Error DeleteOriginDataOnFileTaskRunner( |
71 FileSystemContext* context, | 70 FileSystemContext* context, |
72 quota::QuotaManagerProxy* proxy, | 71 quota::QuotaManagerProxy* proxy, |
73 const GURL& origin_url, | 72 const GURL& origin_url, |
74 FileSystemType type) OVERRIDE { | 73 fileapi::FileSystemType type) OVERRIDE { |
75 NOTREACHED(); | 74 NOTREACHED(); |
76 return base::File::FILE_OK; | 75 return base::File::FILE_OK; |
77 } | 76 } |
78 | 77 |
79 virtual scoped_refptr<fileapi::QuotaReservation> | 78 virtual scoped_refptr<fileapi::QuotaReservation> |
80 CreateQuotaReservationOnFileTaskRunner( | 79 CreateQuotaReservationOnFileTaskRunner( |
81 const GURL& origin_url, | 80 const GURL& origin_url, |
82 FileSystemType type) OVERRIDE { | 81 fileapi::FileSystemType type) OVERRIDE { |
83 NOTREACHED(); | 82 NOTREACHED(); |
84 return scoped_refptr<fileapi::QuotaReservation>(); | 83 return scoped_refptr<fileapi::QuotaReservation>(); |
85 } | 84 } |
86 | 85 |
87 virtual void GetOriginsForTypeOnFileTaskRunner( | 86 virtual void GetOriginsForTypeOnFileTaskRunner( |
88 FileSystemType type, | 87 fileapi::FileSystemType type, |
89 std::set<GURL>* origins) OVERRIDE { | 88 std::set<GURL>* origins) OVERRIDE { |
90 NOTREACHED(); | 89 NOTREACHED(); |
91 } | 90 } |
92 | 91 |
93 virtual void GetOriginsForHostOnFileTaskRunner( | 92 virtual void GetOriginsForHostOnFileTaskRunner( |
94 FileSystemType type, | 93 fileapi::FileSystemType type, |
95 const std::string& host, | 94 const std::string& host, |
96 std::set<GURL>* origins) OVERRIDE { | 95 std::set<GURL>* origins) OVERRIDE { |
97 NOTREACHED(); | 96 NOTREACHED(); |
98 } | 97 } |
99 | 98 |
100 virtual int64 GetOriginUsageOnFileTaskRunner( | 99 virtual int64 GetOriginUsageOnFileTaskRunner( |
101 FileSystemContext* context, | 100 FileSystemContext* context, |
102 const GURL& origin_url, | 101 const GURL& origin_url, |
103 FileSystemType type) OVERRIDE { | 102 fileapi::FileSystemType type) OVERRIDE { |
104 return usage_; | 103 return usage_; |
105 } | 104 } |
106 | 105 |
107 virtual void AddFileUpdateObserver( | 106 virtual void AddFileUpdateObserver( |
108 FileSystemType type, | 107 fileapi::FileSystemType type, |
109 FileUpdateObserver* observer, | 108 FileUpdateObserver* observer, |
110 base::SequencedTaskRunner* task_runner) OVERRIDE { | 109 base::SequencedTaskRunner* task_runner) OVERRIDE { |
111 NOTIMPLEMENTED(); | 110 NOTIMPLEMENTED(); |
112 } | 111 } |
113 | 112 |
114 virtual void AddFileChangeObserver( | 113 virtual void AddFileChangeObserver( |
115 FileSystemType type, | 114 fileapi::FileSystemType type, |
116 fileapi::FileChangeObserver* observer, | 115 fileapi::FileChangeObserver* observer, |
117 base::SequencedTaskRunner* task_runner) OVERRIDE { | 116 base::SequencedTaskRunner* task_runner) OVERRIDE { |
118 change_observers_ = change_observers_.AddObserver(observer, task_runner); | 117 change_observers_ = change_observers_.AddObserver(observer, task_runner); |
119 } | 118 } |
120 | 119 |
121 virtual void AddFileAccessObserver( | 120 virtual void AddFileAccessObserver( |
122 FileSystemType type, | 121 fileapi::FileSystemType type, |
123 fileapi::FileAccessObserver* observer, | 122 fileapi::FileAccessObserver* observer, |
124 base::SequencedTaskRunner* task_runner) OVERRIDE { | 123 base::SequencedTaskRunner* task_runner) OVERRIDE { |
125 NOTIMPLEMENTED(); | 124 NOTIMPLEMENTED(); |
126 } | 125 } |
127 | 126 |
128 virtual const fileapi::UpdateObserverList* GetUpdateObservers( | 127 virtual const fileapi::UpdateObserverList* GetUpdateObservers( |
129 FileSystemType type) const OVERRIDE { | 128 fileapi::FileSystemType type) const OVERRIDE { |
130 return &update_observers_; | 129 return &update_observers_; |
131 } | 130 } |
132 | 131 |
133 virtual const fileapi::ChangeObserverList* GetChangeObservers( | 132 virtual const fileapi::ChangeObserverList* GetChangeObservers( |
134 FileSystemType type) const OVERRIDE { | 133 fileapi::FileSystemType type) const OVERRIDE { |
135 return &change_observers_; | 134 return &change_observers_; |
136 } | 135 } |
137 | 136 |
138 virtual const fileapi::AccessObserverList* GetAccessObservers( | 137 virtual const fileapi::AccessObserverList* GetAccessObservers( |
139 FileSystemType type) const OVERRIDE { | 138 fileapi::FileSystemType type) const OVERRIDE { |
140 return NULL; | 139 return NULL; |
141 } | 140 } |
142 | 141 |
143 // FileUpdateObserver overrides. | 142 // FileUpdateObserver overrides. |
144 virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE {} | 143 virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE {} |
145 virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE { | 144 virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE { |
146 usage_ += delta; | 145 usage_ += delta; |
147 } | 146 } |
148 virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE {} | 147 virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE {} |
149 | 148 |
(...skipping 14 matching lines...) Expand all Loading... |
164 : base_path_(base_path), | 163 : base_path_(base_path), |
165 file_util_( | 164 file_util_( |
166 new fileapi::AsyncFileUtilAdapter(new TestFileUtil(base_path))), | 165 new fileapi::AsyncFileUtilAdapter(new TestFileUtil(base_path))), |
167 quota_util_(new QuotaUtil(task_runner)), | 166 quota_util_(new QuotaUtil(task_runner)), |
168 require_copy_or_move_validator_(false) { | 167 require_copy_or_move_validator_(false) { |
169 } | 168 } |
170 | 169 |
171 TestFileSystemBackend::~TestFileSystemBackend() { | 170 TestFileSystemBackend::~TestFileSystemBackend() { |
172 } | 171 } |
173 | 172 |
174 bool TestFileSystemBackend::CanHandleType(FileSystemType type) const { | 173 bool TestFileSystemBackend::CanHandleType(fileapi::FileSystemType type) const { |
175 return (type == fileapi::kFileSystemTypeTest); | 174 return (type == fileapi::kFileSystemTypeTest); |
176 } | 175 } |
177 | 176 |
178 void TestFileSystemBackend::Initialize(FileSystemContext* context) { | 177 void TestFileSystemBackend::Initialize(FileSystemContext* context) { |
179 } | 178 } |
180 | 179 |
181 void TestFileSystemBackend::ResolveURL(const FileSystemURL& url, | 180 void TestFileSystemBackend::ResolveURL(const FileSystemURL& url, |
182 fileapi::OpenFileSystemMode mode, | 181 fileapi::OpenFileSystemMode mode, |
183 const OpenFileSystemCallback& callback) { | 182 const OpenFileSystemCallback& callback) { |
184 callback.Run(GetFileSystemRootURI(url.origin(), url.type()), | 183 callback.Run(GetFileSystemRootURI(url.origin(), url.type()), |
185 GetFileSystemName(url.origin(), url.type()), | 184 GetFileSystemName(url.origin(), url.type()), |
186 base::File::FILE_OK); | 185 base::File::FILE_OK); |
187 } | 186 } |
188 | 187 |
189 fileapi::AsyncFileUtil* TestFileSystemBackend::GetAsyncFileUtil( | 188 fileapi::AsyncFileUtil* TestFileSystemBackend::GetAsyncFileUtil( |
190 FileSystemType type) { | 189 fileapi::FileSystemType type) { |
191 return file_util_.get(); | 190 return file_util_.get(); |
192 } | 191 } |
193 | 192 |
194 fileapi::CopyOrMoveFileValidatorFactory* | 193 fileapi::CopyOrMoveFileValidatorFactory* |
195 TestFileSystemBackend::GetCopyOrMoveFileValidatorFactory( | 194 TestFileSystemBackend::GetCopyOrMoveFileValidatorFactory( |
196 FileSystemType type, base::File::Error* error_code) { | 195 fileapi::FileSystemType type, |
| 196 base::File::Error* error_code) { |
197 DCHECK(error_code); | 197 DCHECK(error_code); |
198 *error_code = base::File::FILE_OK; | 198 *error_code = base::File::FILE_OK; |
199 if (require_copy_or_move_validator_) { | 199 if (require_copy_or_move_validator_) { |
200 if (!copy_or_move_file_validator_factory_) | 200 if (!copy_or_move_file_validator_factory_) |
201 *error_code = base::File::FILE_ERROR_SECURITY; | 201 *error_code = base::File::FILE_ERROR_SECURITY; |
202 return copy_or_move_file_validator_factory_.get(); | 202 return copy_or_move_file_validator_factory_.get(); |
203 } | 203 } |
204 return NULL; | 204 return NULL; |
205 } | 205 } |
206 | 206 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 return scoped_ptr<fileapi::FileStreamWriter>( | 246 return scoped_ptr<fileapi::FileStreamWriter>( |
247 new fileapi::SandboxFileStreamWriter(context, url, offset, | 247 new fileapi::SandboxFileStreamWriter(context, url, offset, |
248 *GetUpdateObservers(url.type()))); | 248 *GetUpdateObservers(url.type()))); |
249 } | 249 } |
250 | 250 |
251 fileapi::FileSystemQuotaUtil* TestFileSystemBackend::GetQuotaUtil() { | 251 fileapi::FileSystemQuotaUtil* TestFileSystemBackend::GetQuotaUtil() { |
252 return quota_util_.get(); | 252 return quota_util_.get(); |
253 } | 253 } |
254 | 254 |
255 const fileapi::UpdateObserverList* TestFileSystemBackend::GetUpdateObservers( | 255 const fileapi::UpdateObserverList* TestFileSystemBackend::GetUpdateObservers( |
256 FileSystemType type) const { | 256 fileapi::FileSystemType type) const { |
257 return quota_util_->GetUpdateObservers(type); | 257 return quota_util_->GetUpdateObservers(type); |
258 } | 258 } |
259 | 259 |
260 void TestFileSystemBackend::AddFileChangeObserver( | 260 void TestFileSystemBackend::AddFileChangeObserver( |
261 fileapi::FileChangeObserver* observer) { | 261 fileapi::FileChangeObserver* observer) { |
262 quota_util_->AddFileChangeObserver( | 262 quota_util_->AddFileChangeObserver( |
263 fileapi::kFileSystemTypeTest, observer, quota_util_->task_runner()); | 263 fileapi::kFileSystemTypeTest, observer, quota_util_->task_runner()); |
264 } | 264 } |
265 | 265 |
266 } // namespace content | 266 } // namespace content |
OLD | NEW |