OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 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 <map> | 5 #include <map> |
6 #include <queue> | 6 #include <queue> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 typedef FileSystemOperation::FileEntryList FileEntryList; | 28 typedef FileSystemOperation::FileEntryList FileEntryList; |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 void ExpectOk(base::PlatformFileError error) { | 32 void ExpectOk(base::PlatformFileError error) { |
33 ASSERT_EQ(base::PLATFORM_FILE_OK, error); | 33 ASSERT_EQ(base::PLATFORM_FILE_OK, error); |
34 } | 34 } |
35 | 35 |
36 } // namespace | 36 } // namespace |
37 | 37 |
38 class CrossOperationTestHelper { | 38 class CopyOrMoveOperationTestHelper { |
39 public: | 39 public: |
40 CrossOperationTestHelper( | 40 CopyOrMoveOperationTestHelper( |
41 const GURL& origin, | 41 const GURL& origin, |
42 FileSystemType src_type, | 42 FileSystemType src_type, |
43 FileSystemType dest_type) | 43 FileSystemType dest_type) |
44 : origin_(origin), | 44 : origin_(origin), |
45 src_type_(src_type), | 45 src_type_(src_type), |
46 dest_type_(dest_type) {} | 46 dest_type_(dest_type) {} |
47 | 47 |
48 ~CrossOperationTestHelper() { | 48 ~CopyOrMoveOperationTestHelper() { |
49 file_system_context_ = NULL; | 49 file_system_context_ = NULL; |
50 quota_manager_proxy_->SimulateQuotaManagerDestroyed(); | 50 quota_manager_proxy_->SimulateQuotaManagerDestroyed(); |
51 quota_manager_ = NULL; | 51 quota_manager_ = NULL; |
52 quota_manager_proxy_ = NULL; | 52 quota_manager_proxy_ = NULL; |
53 base::MessageLoop::current()->RunUntilIdle(); | 53 base::MessageLoop::current()->RunUntilIdle(); |
54 } | 54 } |
55 | 55 |
56 void SetUp() { | 56 void SetUp() { |
57 ASSERT_TRUE(base_.CreateUniqueTempDir()); | 57 ASSERT_TRUE(base_.CreateUniqueTempDir()); |
58 base::FilePath base_dir = base_.path(); | 58 base::FilePath base_dir = base_.path(); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 | 225 |
226 const GURL origin_; | 226 const GURL origin_; |
227 const FileSystemType src_type_; | 227 const FileSystemType src_type_; |
228 const FileSystemType dest_type_; | 228 const FileSystemType dest_type_; |
229 | 229 |
230 base::MessageLoop message_loop_; | 230 base::MessageLoop message_loop_; |
231 scoped_refptr<FileSystemContext> file_system_context_; | 231 scoped_refptr<FileSystemContext> file_system_context_; |
232 scoped_refptr<quota::MockQuotaManagerProxy> quota_manager_proxy_; | 232 scoped_refptr<quota::MockQuotaManagerProxy> quota_manager_proxy_; |
233 scoped_refptr<quota::MockQuotaManager> quota_manager_; | 233 scoped_refptr<quota::MockQuotaManager> quota_manager_; |
234 | 234 |
235 DISALLOW_COPY_AND_ASSIGN(CrossOperationTestHelper); | 235 DISALLOW_COPY_AND_ASSIGN(CopyOrMoveOperationTestHelper); |
236 }; | 236 }; |
237 | 237 |
238 TEST(LocalFileSystemCrossOperationTest, CopySingleFile) { | 238 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFile) { |
239 CrossOperationTestHelper helper(GURL("http://foo"), | 239 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
240 kFileSystemTypeTemporary, | 240 kFileSystemTypeTemporary, |
241 kFileSystemTypePersistent); | 241 kFileSystemTypePersistent); |
242 helper.SetUp(); | 242 helper.SetUp(); |
243 | 243 |
244 FileSystemURL src = helper.SourceURL("a"); | 244 FileSystemURL src = helper.SourceURL("a"); |
245 FileSystemURL dest = helper.DestURL("b"); | 245 FileSystemURL dest = helper.DestURL("b"); |
246 int64 src_initial_usage = helper.GetSourceUsage(); | 246 int64 src_initial_usage = helper.GetSourceUsage(); |
247 int64 dest_initial_usage = helper.GetDestUsage(); | 247 int64 dest_initial_usage = helper.GetDestUsage(); |
248 | 248 |
249 // Set up a source file. | 249 // Set up a source file. |
250 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); | 250 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); |
251 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 251 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
252 | 252 |
253 // Copy it. | 253 // Copy it. |
254 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); | 254 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); |
255 | 255 |
256 // Verify. | 256 // Verify. |
257 ASSERT_TRUE(helper.FileExists(src, 10)); | 257 ASSERT_TRUE(helper.FileExists(src, 10)); |
258 ASSERT_TRUE(helper.FileExists(dest, 10)); | 258 ASSERT_TRUE(helper.FileExists(dest, 10)); |
259 | 259 |
260 int64 src_new_usage = helper.GetSourceUsage(); | 260 int64 src_new_usage = helper.GetSourceUsage(); |
261 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 261 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
262 | 262 |
263 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 263 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
264 ASSERT_EQ(src_increase, dest_increase); | 264 ASSERT_EQ(src_increase, dest_increase); |
265 } | 265 } |
266 | 266 |
267 TEST(LocalFileSystemCrossOperationTest, MoveSingleFile) { | 267 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleFile) { |
268 CrossOperationTestHelper helper(GURL("http://foo"), | 268 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
269 kFileSystemTypeTemporary, | 269 kFileSystemTypeTemporary, |
270 kFileSystemTypePersistent); | 270 kFileSystemTypePersistent); |
271 helper.SetUp(); | 271 helper.SetUp(); |
272 | 272 |
273 FileSystemURL src = helper.SourceURL("a"); | 273 FileSystemURL src = helper.SourceURL("a"); |
274 FileSystemURL dest = helper.DestURL("b"); | 274 FileSystemURL dest = helper.DestURL("b"); |
275 int64 src_initial_usage = helper.GetSourceUsage(); | 275 int64 src_initial_usage = helper.GetSourceUsage(); |
276 int64 dest_initial_usage = helper.GetDestUsage(); | 276 int64 dest_initial_usage = helper.GetDestUsage(); |
277 | 277 |
278 // Set up a source file. | 278 // Set up a source file. |
279 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); | 279 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); |
280 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 280 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
281 | 281 |
282 // Move it. | 282 // Move it. |
283 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); | 283 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); |
284 | 284 |
285 // Verify. | 285 // Verify. |
286 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); | 286 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); |
287 ASSERT_TRUE(helper.FileExists(dest, 10)); | 287 ASSERT_TRUE(helper.FileExists(dest, 10)); |
288 | 288 |
289 int64 src_new_usage = helper.GetSourceUsage(); | 289 int64 src_new_usage = helper.GetSourceUsage(); |
290 ASSERT_EQ(src_initial_usage, src_new_usage); | 290 ASSERT_EQ(src_initial_usage, src_new_usage); |
291 | 291 |
292 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 292 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
293 ASSERT_EQ(src_increase, dest_increase); | 293 ASSERT_EQ(src_increase, dest_increase); |
294 } | 294 } |
295 | 295 |
296 TEST(LocalFileSystemCrossOperationTest, CopySingleDirectory) { | 296 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleDirectory) { |
297 CrossOperationTestHelper helper(GURL("http://foo"), | 297 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
298 kFileSystemTypeTemporary, | 298 kFileSystemTypeTemporary, |
299 kFileSystemTypePersistent); | 299 kFileSystemTypePersistent); |
300 helper.SetUp(); | 300 helper.SetUp(); |
301 | 301 |
302 FileSystemURL src = helper.SourceURL("a"); | 302 FileSystemURL src = helper.SourceURL("a"); |
303 FileSystemURL dest = helper.DestURL("b"); | 303 FileSystemURL dest = helper.DestURL("b"); |
304 int64 src_initial_usage = helper.GetSourceUsage(); | 304 int64 src_initial_usage = helper.GetSourceUsage(); |
305 int64 dest_initial_usage = helper.GetDestUsage(); | 305 int64 dest_initial_usage = helper.GetDestUsage(); |
306 | 306 |
307 // Set up a source directory. | 307 // Set up a source directory. |
308 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 308 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
309 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 309 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
310 | 310 |
311 // Copy it. | 311 // Copy it. |
312 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); | 312 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); |
313 | 313 |
314 // Verify. | 314 // Verify. |
315 ASSERT_TRUE(helper.DirectoryExists(src)); | 315 ASSERT_TRUE(helper.DirectoryExists(src)); |
316 ASSERT_TRUE(helper.DirectoryExists(dest)); | 316 ASSERT_TRUE(helper.DirectoryExists(dest)); |
317 | 317 |
318 int64 src_new_usage = helper.GetSourceUsage(); | 318 int64 src_new_usage = helper.GetSourceUsage(); |
319 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 319 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
320 | 320 |
321 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 321 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
322 ASSERT_EQ(src_increase, dest_increase); | 322 ASSERT_EQ(src_increase, dest_increase); |
323 } | 323 } |
324 | 324 |
325 TEST(LocalFileSystemCrossOperationTest, MoveSingleDirectory) { | 325 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleDirectory) { |
326 CrossOperationTestHelper helper(GURL("http://foo"), | 326 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
327 kFileSystemTypeTemporary, | 327 kFileSystemTypeTemporary, |
328 kFileSystemTypePersistent); | 328 kFileSystemTypePersistent); |
329 helper.SetUp(); | 329 helper.SetUp(); |
330 | 330 |
331 FileSystemURL src = helper.SourceURL("a"); | 331 FileSystemURL src = helper.SourceURL("a"); |
332 FileSystemURL dest = helper.DestURL("b"); | 332 FileSystemURL dest = helper.DestURL("b"); |
333 int64 src_initial_usage = helper.GetSourceUsage(); | 333 int64 src_initial_usage = helper.GetSourceUsage(); |
334 int64 dest_initial_usage = helper.GetDestUsage(); | 334 int64 dest_initial_usage = helper.GetDestUsage(); |
335 | 335 |
336 // Set up a source directory. | 336 // Set up a source directory. |
337 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 337 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
338 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 338 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
339 | 339 |
340 // Move it. | 340 // Move it. |
341 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); | 341 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); |
342 | 342 |
343 // Verify. | 343 // Verify. |
344 ASSERT_FALSE(helper.DirectoryExists(src)); | 344 ASSERT_FALSE(helper.DirectoryExists(src)); |
345 ASSERT_TRUE(helper.DirectoryExists(dest)); | 345 ASSERT_TRUE(helper.DirectoryExists(dest)); |
346 | 346 |
347 int64 src_new_usage = helper.GetSourceUsage(); | 347 int64 src_new_usage = helper.GetSourceUsage(); |
348 ASSERT_EQ(src_initial_usage, src_new_usage); | 348 ASSERT_EQ(src_initial_usage, src_new_usage); |
349 | 349 |
350 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 350 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
351 ASSERT_EQ(src_increase, dest_increase); | 351 ASSERT_EQ(src_increase, dest_increase); |
352 } | 352 } |
353 | 353 |
354 TEST(LocalFileSystemCrossOperationTest, CopyDirectory) { | 354 TEST(LocalFileSystemCopyOrMoveOperationTest, CopyDirectory) { |
355 CrossOperationTestHelper helper(GURL("http://foo"), | 355 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
356 kFileSystemTypeTemporary, | 356 kFileSystemTypeTemporary, |
357 kFileSystemTypePersistent); | 357 kFileSystemTypePersistent); |
358 helper.SetUp(); | 358 helper.SetUp(); |
359 | 359 |
360 FileSystemURL src = helper.SourceURL("a"); | 360 FileSystemURL src = helper.SourceURL("a"); |
361 FileSystemURL dest = helper.DestURL("b"); | 361 FileSystemURL dest = helper.DestURL("b"); |
362 int64 src_initial_usage = helper.GetSourceUsage(); | 362 int64 src_initial_usage = helper.GetSourceUsage(); |
363 int64 dest_initial_usage = helper.GetDestUsage(); | 363 int64 dest_initial_usage = helper.GetDestUsage(); |
364 | 364 |
365 // Set up a source directory. | 365 // Set up a source directory. |
366 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 366 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
367 ASSERT_EQ(base::PLATFORM_FILE_OK, | 367 ASSERT_EQ(base::PLATFORM_FILE_OK, |
(...skipping 13 matching lines...) Expand all Loading... |
381 test::kRegularTestCases, | 381 test::kRegularTestCases, |
382 test::kRegularTestCaseSize); | 382 test::kRegularTestCaseSize); |
383 | 383 |
384 int64 src_new_usage = helper.GetSourceUsage(); | 384 int64 src_new_usage = helper.GetSourceUsage(); |
385 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 385 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
386 | 386 |
387 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 387 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
388 ASSERT_EQ(src_increase, dest_increase); | 388 ASSERT_EQ(src_increase, dest_increase); |
389 } | 389 } |
390 | 390 |
391 TEST(LocalFileSystemCrossOperationTest, MoveDirectory) { | 391 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) { |
392 CrossOperationTestHelper helper(GURL("http://foo"), | 392 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
393 kFileSystemTypeTemporary, | 393 kFileSystemTypeTemporary, |
394 kFileSystemTypePersistent); | 394 kFileSystemTypePersistent); |
395 helper.SetUp(); | 395 helper.SetUp(); |
396 | 396 |
397 FileSystemURL src = helper.SourceURL("a"); | 397 FileSystemURL src = helper.SourceURL("a"); |
398 FileSystemURL dest = helper.DestURL("b"); | 398 FileSystemURL dest = helper.DestURL("b"); |
399 int64 src_initial_usage = helper.GetSourceUsage(); | 399 int64 src_initial_usage = helper.GetSourceUsage(); |
400 int64 dest_initial_usage = helper.GetDestUsage(); | 400 int64 dest_initial_usage = helper.GetDestUsage(); |
401 | 401 |
402 // Set up a source directory. | 402 // Set up a source directory. |
403 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 403 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
404 ASSERT_EQ(base::PLATFORM_FILE_OK, | 404 ASSERT_EQ(base::PLATFORM_FILE_OK, |
(...skipping 14 matching lines...) Expand all Loading... |
419 test::kRegularTestCaseSize); | 419 test::kRegularTestCaseSize); |
420 | 420 |
421 int64 src_new_usage = helper.GetSourceUsage(); | 421 int64 src_new_usage = helper.GetSourceUsage(); |
422 ASSERT_EQ(src_initial_usage, src_new_usage); | 422 ASSERT_EQ(src_initial_usage, src_new_usage); |
423 | 423 |
424 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 424 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
425 ASSERT_EQ(src_increase, dest_increase); | 425 ASSERT_EQ(src_increase, dest_increase); |
426 } | 426 } |
427 | 427 |
428 } // namespace fileapi | 428 } // namespace fileapi |
OLD | NEW |