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 <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 }; | 179 }; |
180 | 180 |
181 TEST_F(FileSystemOperationImplWriteTest, TestWriteSuccess) { | 181 TEST_F(FileSystemOperationImplWriteTest, TestWriteSuccess) { |
182 ScopedTextBlob blob(url_request_context(), | 182 ScopedTextBlob blob(url_request_context(), |
183 "blob-id:success", | 183 "blob-id:success", |
184 "Hello, world!\n"); | 184 "Hello, world!\n"); |
185 file_system_context_->operation_runner()->Write( | 185 file_system_context_->operation_runner()->Write( |
186 &url_request_context(), URLForPath(virtual_path_), | 186 &url_request_context(), URLForPath(virtual_path_), |
187 blob.GetBlobDataHandle(), | 187 blob.GetBlobDataHandle(), |
188 0, RecordWriteCallback()); | 188 0, RecordWriteCallback()); |
189 base::MessageLoop::current()->Run(); | 189 base::RunLoop().Run(); |
190 | 190 |
191 EXPECT_EQ(14, bytes_written()); | 191 EXPECT_EQ(14, bytes_written()); |
192 EXPECT_EQ(base::File::FILE_OK, status()); | 192 EXPECT_EQ(base::File::FILE_OK, status()); |
193 EXPECT_TRUE(complete()); | 193 EXPECT_TRUE(complete()); |
194 | 194 |
195 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); | 195 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); |
196 } | 196 } |
197 | 197 |
198 TEST_F(FileSystemOperationImplWriteTest, TestWriteZero) { | 198 TEST_F(FileSystemOperationImplWriteTest, TestWriteZero) { |
199 ScopedTextBlob blob(url_request_context(), "blob_id:zero", ""); | 199 ScopedTextBlob blob(url_request_context(), "blob_id:zero", ""); |
200 file_system_context_->operation_runner()->Write( | 200 file_system_context_->operation_runner()->Write( |
201 &url_request_context(), URLForPath(virtual_path_), | 201 &url_request_context(), URLForPath(virtual_path_), |
202 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); | 202 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); |
203 base::MessageLoop::current()->Run(); | 203 base::RunLoop().Run(); |
204 | 204 |
205 EXPECT_EQ(0, bytes_written()); | 205 EXPECT_EQ(0, bytes_written()); |
206 EXPECT_EQ(base::File::FILE_OK, status()); | 206 EXPECT_EQ(base::File::FILE_OK, status()); |
207 EXPECT_TRUE(complete()); | 207 EXPECT_TRUE(complete()); |
208 | 208 |
209 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); | 209 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); |
210 } | 210 } |
211 | 211 |
212 | 212 |
213 TEST_F(FileSystemOperationImplWriteTest, TestWriteInvalidBlobUrl) { | 213 TEST_F(FileSystemOperationImplWriteTest, TestWriteInvalidBlobUrl) { |
214 std::unique_ptr<storage::BlobDataHandle> null_handle; | 214 std::unique_ptr<storage::BlobDataHandle> null_handle; |
215 file_system_context_->operation_runner()->Write( | 215 file_system_context_->operation_runner()->Write( |
216 &url_request_context(), URLForPath(virtual_path_), std::move(null_handle), | 216 &url_request_context(), URLForPath(virtual_path_), std::move(null_handle), |
217 0, RecordWriteCallback()); | 217 0, RecordWriteCallback()); |
218 base::MessageLoop::current()->Run(); | 218 base::RunLoop().Run(); |
219 | 219 |
220 EXPECT_EQ(0, bytes_written()); | 220 EXPECT_EQ(0, bytes_written()); |
221 EXPECT_EQ(base::File::FILE_ERROR_FAILED, status()); | 221 EXPECT_EQ(base::File::FILE_ERROR_FAILED, status()); |
222 EXPECT_TRUE(complete()); | 222 EXPECT_TRUE(complete()); |
223 | 223 |
224 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); | 224 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); |
225 } | 225 } |
226 | 226 |
227 TEST_F(FileSystemOperationImplWriteTest, TestWriteInvalidFile) { | 227 TEST_F(FileSystemOperationImplWriteTest, TestWriteInvalidFile) { |
228 ScopedTextBlob blob(url_request_context(), "blob_id:writeinvalidfile", | 228 ScopedTextBlob blob(url_request_context(), "blob_id:writeinvalidfile", |
229 "It\'ll not be written."); | 229 "It\'ll not be written."); |
230 file_system_context_->operation_runner()->Write( | 230 file_system_context_->operation_runner()->Write( |
231 &url_request_context(), | 231 &url_request_context(), |
232 URLForPath(base::FilePath(FILE_PATH_LITERAL("nonexist"))), | 232 URLForPath(base::FilePath(FILE_PATH_LITERAL("nonexist"))), |
233 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); | 233 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); |
234 base::MessageLoop::current()->Run(); | 234 base::RunLoop().Run(); |
235 | 235 |
236 EXPECT_EQ(0, bytes_written()); | 236 EXPECT_EQ(0, bytes_written()); |
237 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, status()); | 237 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, status()); |
238 EXPECT_TRUE(complete()); | 238 EXPECT_TRUE(complete()); |
239 | 239 |
240 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); | 240 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); |
241 } | 241 } |
242 | 242 |
243 TEST_F(FileSystemOperationImplWriteTest, TestWriteDir) { | 243 TEST_F(FileSystemOperationImplWriteTest, TestWriteDir) { |
244 base::FilePath virtual_dir_path(FILE_PATH_LITERAL("d")); | 244 base::FilePath virtual_dir_path(FILE_PATH_LITERAL("d")); |
245 file_system_context_->operation_runner()->CreateDirectory( | 245 file_system_context_->operation_runner()->CreateDirectory( |
246 URLForPath(virtual_dir_path), | 246 URLForPath(virtual_dir_path), |
247 true /* exclusive */, false /* recursive */, | 247 true /* exclusive */, false /* recursive */, |
248 base::Bind(&AssertStatusEq, base::File::FILE_OK)); | 248 base::Bind(&AssertStatusEq, base::File::FILE_OK)); |
249 | 249 |
250 ScopedTextBlob blob(url_request_context(), "blob:writedir", | 250 ScopedTextBlob blob(url_request_context(), "blob:writedir", |
251 "It\'ll not be written, too."); | 251 "It\'ll not be written, too."); |
252 file_system_context_->operation_runner()->Write( | 252 file_system_context_->operation_runner()->Write( |
253 &url_request_context(), URLForPath(virtual_dir_path), | 253 &url_request_context(), URLForPath(virtual_dir_path), |
254 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); | 254 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); |
255 base::MessageLoop::current()->Run(); | 255 base::RunLoop().Run(); |
256 | 256 |
257 EXPECT_EQ(0, bytes_written()); | 257 EXPECT_EQ(0, bytes_written()); |
258 // TODO(kinuko): This error code is platform- or fileutil- dependent | 258 // TODO(kinuko): This error code is platform- or fileutil- dependent |
259 // right now. Make it return File::FILE_ERROR_NOT_A_FILE in every case. | 259 // right now. Make it return File::FILE_ERROR_NOT_A_FILE in every case. |
260 EXPECT_TRUE(status() == base::File::FILE_ERROR_NOT_A_FILE || | 260 EXPECT_TRUE(status() == base::File::FILE_ERROR_NOT_A_FILE || |
261 status() == base::File::FILE_ERROR_ACCESS_DENIED || | 261 status() == base::File::FILE_ERROR_ACCESS_DENIED || |
262 status() == base::File::FILE_ERROR_FAILED); | 262 status() == base::File::FILE_ERROR_FAILED); |
263 EXPECT_TRUE(complete()); | 263 EXPECT_TRUE(complete()); |
264 | 264 |
265 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); | 265 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); |
266 } | 266 } |
267 | 267 |
268 TEST_F(FileSystemOperationImplWriteTest, TestWriteFailureByQuota) { | 268 TEST_F(FileSystemOperationImplWriteTest, TestWriteFailureByQuota) { |
269 ScopedTextBlob blob(url_request_context(), "blob:success", | 269 ScopedTextBlob blob(url_request_context(), "blob:success", |
270 "Hello, world!\n"); | 270 "Hello, world!\n"); |
271 quota_manager_->SetQuota( | 271 quota_manager_->SetQuota( |
272 kOrigin, FileSystemTypeToQuotaStorageType(kFileSystemType), 10); | 272 kOrigin, FileSystemTypeToQuotaStorageType(kFileSystemType), 10); |
273 file_system_context_->operation_runner()->Write( | 273 file_system_context_->operation_runner()->Write( |
274 &url_request_context(), URLForPath(virtual_path_), | 274 &url_request_context(), URLForPath(virtual_path_), |
275 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); | 275 blob.GetBlobDataHandle(), 0, RecordWriteCallback()); |
276 base::MessageLoop::current()->Run(); | 276 base::RunLoop().Run(); |
277 | 277 |
278 EXPECT_EQ(10, bytes_written()); | 278 EXPECT_EQ(10, bytes_written()); |
279 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, status()); | 279 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, status()); |
280 EXPECT_TRUE(complete()); | 280 EXPECT_TRUE(complete()); |
281 | 281 |
282 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); | 282 EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count()); |
283 } | 283 } |
284 | 284 |
285 TEST_F(FileSystemOperationImplWriteTest, TestImmediateCancelSuccessfulWrite) { | 285 TEST_F(FileSystemOperationImplWriteTest, TestImmediateCancelSuccessfulWrite) { |
286 ScopedTextBlob blob(url_request_context(), "blob:success", | 286 ScopedTextBlob blob(url_request_context(), "blob:success", |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 EXPECT_EQ(base::File::FILE_ERROR_ABORT, status()); | 325 EXPECT_EQ(base::File::FILE_ERROR_ABORT, status()); |
326 EXPECT_EQ(base::File::FILE_OK, cancel_status()); | 326 EXPECT_EQ(base::File::FILE_OK, cancel_status()); |
327 EXPECT_TRUE(complete()); | 327 EXPECT_TRUE(complete()); |
328 | 328 |
329 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); | 329 EXPECT_EQ(0, change_observer()->get_and_reset_modify_file_count()); |
330 } | 330 } |
331 | 331 |
332 // TODO(ericu,dmikurube,kinuko): Add more tests for cancel cases. | 332 // TODO(ericu,dmikurube,kinuko): Add more tests for cancel cases. |
333 | 333 |
334 } // namespace content | 334 } // namespace content |
OLD | NEW |