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 <stddef.h> |
| 6 #include <stdint.h> |
| 7 |
5 #include <map> | 8 #include <map> |
6 #include <queue> | 9 #include <queue> |
7 | 10 |
8 #include "base/basictypes.h" | |
9 #include "base/bind.h" | 11 #include "base/bind.h" |
10 #include "base/files/file_util.h" | 12 #include "base/files/file_util.h" |
11 #include "base/files/scoped_temp_dir.h" | 13 #include "base/files/scoped_temp_dir.h" |
12 #include "base/location.h" | 14 #include "base/location.h" |
| 15 #include "base/macros.h" |
13 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
14 #include "base/single_thread_task_runner.h" | 17 #include "base/single_thread_task_runner.h" |
15 #include "base/stl_util.h" | 18 #include "base/stl_util.h" |
16 #include "base/thread_task_runner_handle.h" | 19 #include "base/thread_task_runner_handle.h" |
17 #include "content/browser/quota/mock_quota_manager.h" | 20 #include "content/browser/quota/mock_quota_manager.h" |
18 #include "content/browser/quota/mock_quota_manager_proxy.h" | 21 #include "content/browser/quota/mock_quota_manager_proxy.h" |
19 #include "content/public/test/async_file_test_helper.h" | 22 #include "content/public/test/async_file_test_helper.h" |
20 #include "content/public/test/test_file_system_backend.h" | 23 #include "content/public/test/test_file_system_backend.h" |
21 #include "content/public/test/test_file_system_context.h" | 24 #include "content/public/test/test_file_system_context.h" |
22 #include "content/test/fileapi_test_file_set.h" | 25 #include "content/test/fileapi_test_file_set.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 | 108 |
106 DISALLOW_COPY_AND_ASSIGN(TestValidator); | 109 DISALLOW_COPY_AND_ASSIGN(TestValidator); |
107 }; | 110 }; |
108 }; | 111 }; |
109 | 112 |
110 // Records CopyProgressCallback invocations. | 113 // Records CopyProgressCallback invocations. |
111 struct ProgressRecord { | 114 struct ProgressRecord { |
112 storage::FileSystemOperation::CopyProgressType type; | 115 storage::FileSystemOperation::CopyProgressType type; |
113 FileSystemURL source_url; | 116 FileSystemURL source_url; |
114 FileSystemURL dest_url; | 117 FileSystemURL dest_url; |
115 int64 size; | 118 int64_t size; |
116 }; | 119 }; |
117 | 120 |
118 void RecordProgressCallback(std::vector<ProgressRecord>* records, | 121 void RecordProgressCallback(std::vector<ProgressRecord>* records, |
119 storage::FileSystemOperation::CopyProgressType type, | 122 storage::FileSystemOperation::CopyProgressType type, |
120 const FileSystemURL& source_url, | 123 const FileSystemURL& source_url, |
121 const FileSystemURL& dest_url, | 124 const FileSystemURL& dest_url, |
122 int64 size) { | 125 int64_t size) { |
123 ProgressRecord record; | 126 ProgressRecord record; |
124 record.type = type; | 127 record.type = type; |
125 record.source_url = source_url; | 128 record.source_url = source_url; |
126 record.dest_url = dest_url; | 129 record.dest_url = dest_url; |
127 record.size = size; | 130 record.size = size; |
128 records->push_back(record); | 131 records->push_back(record); |
129 } | 132 } |
130 | 133 |
131 void RecordFileProgressCallback(std::vector<int64>* records, | 134 void RecordFileProgressCallback(std::vector<int64_t>* records, |
132 int64 progress) { | 135 int64_t progress) { |
133 records->push_back(progress); | 136 records->push_back(progress); |
134 } | 137 } |
135 | 138 |
136 void AssignAndQuit(base::RunLoop* run_loop, | 139 void AssignAndQuit(base::RunLoop* run_loop, |
137 base::File::Error* result_out, | 140 base::File::Error* result_out, |
138 base::File::Error result) { | 141 base::File::Error result) { |
139 *result_out = result; | 142 *result_out = result; |
140 run_loop->Quit(); | 143 run_loop->Quit(); |
141 } | 144 } |
142 | 145 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 quota_manager_->SetQuota( | 233 quota_manager_->SetQuota( |
231 origin_, | 234 origin_, |
232 storage::FileSystemTypeToQuotaStorageType(src_type_), | 235 storage::FileSystemTypeToQuotaStorageType(src_type_), |
233 1024 * 1024); | 236 1024 * 1024); |
234 quota_manager_->SetQuota( | 237 quota_manager_->SetQuota( |
235 origin_, | 238 origin_, |
236 storage::FileSystemTypeToQuotaStorageType(dest_type_), | 239 storage::FileSystemTypeToQuotaStorageType(dest_type_), |
237 1024 * 1024); | 240 1024 * 1024); |
238 } | 241 } |
239 | 242 |
240 int64 GetSourceUsage() { | 243 int64_t GetSourceUsage() { |
241 int64 usage = 0; | 244 int64_t usage = 0; |
242 GetUsageAndQuota(src_type_, &usage, NULL); | 245 GetUsageAndQuota(src_type_, &usage, NULL); |
243 return usage; | 246 return usage; |
244 } | 247 } |
245 | 248 |
246 int64 GetDestUsage() { | 249 int64_t GetDestUsage() { |
247 int64 usage = 0; | 250 int64_t usage = 0; |
248 GetUsageAndQuota(dest_type_, &usage, NULL); | 251 GetUsageAndQuota(dest_type_, &usage, NULL); |
249 return usage; | 252 return usage; |
250 } | 253 } |
251 | 254 |
252 FileSystemURL SourceURL(const std::string& path) { | 255 FileSystemURL SourceURL(const std::string& path) { |
253 return file_system_context_->CreateCrackedFileSystemURL( | 256 return file_system_context_->CreateCrackedFileSystemURL( |
254 origin_, src_type_, base::FilePath::FromUTF8Unsafe(path)); | 257 origin_, src_type_, base::FilePath::FromUTF8Unsafe(path)); |
255 } | 258 } |
256 | 259 |
257 FileSystemURL DestURL(const std::string& path) { | 260 FileSystemURL DestURL(const std::string& path) { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 | 360 |
358 base::File::Error CreateFile(const FileSystemURL& url, size_t size) { | 361 base::File::Error CreateFile(const FileSystemURL& url, size_t size) { |
359 base::File::Error result = | 362 base::File::Error result = |
360 AsyncFileTestHelper::CreateFile(file_system_context_.get(), url); | 363 AsyncFileTestHelper::CreateFile(file_system_context_.get(), url); |
361 if (result != base::File::FILE_OK) | 364 if (result != base::File::FILE_OK) |
362 return result; | 365 return result; |
363 return AsyncFileTestHelper::TruncateFile( | 366 return AsyncFileTestHelper::TruncateFile( |
364 file_system_context_.get(), url, size); | 367 file_system_context_.get(), url, size); |
365 } | 368 } |
366 | 369 |
367 bool FileExists(const FileSystemURL& url, int64 expected_size) { | 370 bool FileExists(const FileSystemURL& url, int64_t expected_size) { |
368 return AsyncFileTestHelper::FileExists( | 371 return AsyncFileTestHelper::FileExists( |
369 file_system_context_.get(), url, expected_size); | 372 file_system_context_.get(), url, expected_size); |
370 } | 373 } |
371 | 374 |
372 bool DirectoryExists(const FileSystemURL& url) { | 375 bool DirectoryExists(const FileSystemURL& url) { |
373 return AsyncFileTestHelper::DirectoryExists(file_system_context_.get(), | 376 return AsyncFileTestHelper::DirectoryExists(file_system_context_.get(), |
374 url); | 377 url); |
375 } | 378 } |
376 | 379 |
377 private: | 380 private: |
378 void GetUsageAndQuota(storage::FileSystemType type, | 381 void GetUsageAndQuota(storage::FileSystemType type, |
379 int64* usage, | 382 int64_t* usage, |
380 int64* quota) { | 383 int64_t* quota) { |
381 storage::QuotaStatusCode status = AsyncFileTestHelper::GetUsageAndQuota( | 384 storage::QuotaStatusCode status = AsyncFileTestHelper::GetUsageAndQuota( |
382 quota_manager_.get(), origin_, type, usage, quota); | 385 quota_manager_.get(), origin_, type, usage, quota); |
383 ASSERT_EQ(storage::kQuotaStatusOk, status); | 386 ASSERT_EQ(storage::kQuotaStatusOk, status); |
384 } | 387 } |
385 | 388 |
386 private: | 389 private: |
387 base::ScopedTempDir base_; | 390 base::ScopedTempDir base_; |
388 | 391 |
389 const GURL origin_; | 392 const GURL origin_; |
390 const storage::FileSystemType src_type_; | 393 const storage::FileSystemType src_type_; |
391 const storage::FileSystemType dest_type_; | 394 const storage::FileSystemType dest_type_; |
392 | 395 |
393 base::MessageLoopForIO message_loop_; | 396 base::MessageLoopForIO message_loop_; |
394 scoped_refptr<storage::FileSystemContext> file_system_context_; | 397 scoped_refptr<storage::FileSystemContext> file_system_context_; |
395 scoped_refptr<MockQuotaManagerProxy> quota_manager_proxy_; | 398 scoped_refptr<MockQuotaManagerProxy> quota_manager_proxy_; |
396 scoped_refptr<MockQuotaManager> quota_manager_; | 399 scoped_refptr<MockQuotaManager> quota_manager_; |
397 | 400 |
398 DISALLOW_COPY_AND_ASSIGN(CopyOrMoveOperationTestHelper); | 401 DISALLOW_COPY_AND_ASSIGN(CopyOrMoveOperationTestHelper); |
399 }; | 402 }; |
400 | 403 |
401 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFile) { | 404 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFile) { |
402 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 405 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
403 storage::kFileSystemTypeTemporary, | 406 storage::kFileSystemTypeTemporary, |
404 storage::kFileSystemTypePersistent); | 407 storage::kFileSystemTypePersistent); |
405 helper.SetUp(); | 408 helper.SetUp(); |
406 | 409 |
407 FileSystemURL src = helper.SourceURL("a"); | 410 FileSystemURL src = helper.SourceURL("a"); |
408 FileSystemURL dest = helper.DestURL("b"); | 411 FileSystemURL dest = helper.DestURL("b"); |
409 int64 src_initial_usage = helper.GetSourceUsage(); | 412 int64_t src_initial_usage = helper.GetSourceUsage(); |
410 int64 dest_initial_usage = helper.GetDestUsage(); | 413 int64_t dest_initial_usage = helper.GetDestUsage(); |
411 | 414 |
412 // Set up a source file. | 415 // Set up a source file. |
413 ASSERT_EQ(base::File::FILE_OK, helper.CreateFile(src, 10)); | 416 ASSERT_EQ(base::File::FILE_OK, helper.CreateFile(src, 10)); |
414 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 417 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
415 | 418 |
416 // Copy it. | 419 // Copy it. |
417 ASSERT_EQ(base::File::FILE_OK, helper.Copy(src, dest)); | 420 ASSERT_EQ(base::File::FILE_OK, helper.Copy(src, dest)); |
418 | 421 |
419 // Verify. | 422 // Verify. |
420 ASSERT_TRUE(helper.FileExists(src, 10)); | 423 ASSERT_TRUE(helper.FileExists(src, 10)); |
421 ASSERT_TRUE(helper.FileExists(dest, 10)); | 424 ASSERT_TRUE(helper.FileExists(dest, 10)); |
422 | 425 |
423 int64 src_new_usage = helper.GetSourceUsage(); | 426 int64_t src_new_usage = helper.GetSourceUsage(); |
424 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 427 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
425 | 428 |
426 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 429 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
427 ASSERT_EQ(src_increase, dest_increase); | 430 ASSERT_EQ(src_increase, dest_increase); |
428 } | 431 } |
429 | 432 |
430 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleFile) { | 433 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleFile) { |
431 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 434 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
432 storage::kFileSystemTypeTemporary, | 435 storage::kFileSystemTypeTemporary, |
433 storage::kFileSystemTypePersistent); | 436 storage::kFileSystemTypePersistent); |
434 helper.SetUp(); | 437 helper.SetUp(); |
435 | 438 |
436 FileSystemURL src = helper.SourceURL("a"); | 439 FileSystemURL src = helper.SourceURL("a"); |
437 FileSystemURL dest = helper.DestURL("b"); | 440 FileSystemURL dest = helper.DestURL("b"); |
438 int64 src_initial_usage = helper.GetSourceUsage(); | 441 int64_t src_initial_usage = helper.GetSourceUsage(); |
439 int64 dest_initial_usage = helper.GetDestUsage(); | 442 int64_t dest_initial_usage = helper.GetDestUsage(); |
440 | 443 |
441 // Set up a source file. | 444 // Set up a source file. |
442 ASSERT_EQ(base::File::FILE_OK, helper.CreateFile(src, 10)); | 445 ASSERT_EQ(base::File::FILE_OK, helper.CreateFile(src, 10)); |
443 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 446 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
444 | 447 |
445 // Move it. | 448 // Move it. |
446 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); | 449 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); |
447 | 450 |
448 // Verify. | 451 // Verify. |
449 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); | 452 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); |
450 ASSERT_TRUE(helper.FileExists(dest, 10)); | 453 ASSERT_TRUE(helper.FileExists(dest, 10)); |
451 | 454 |
452 int64 src_new_usage = helper.GetSourceUsage(); | 455 int64_t src_new_usage = helper.GetSourceUsage(); |
453 ASSERT_EQ(src_initial_usage, src_new_usage); | 456 ASSERT_EQ(src_initial_usage, src_new_usage); |
454 | 457 |
455 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 458 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
456 ASSERT_EQ(src_increase, dest_increase); | 459 ASSERT_EQ(src_increase, dest_increase); |
457 } | 460 } |
458 | 461 |
459 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleDirectory) { | 462 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleDirectory) { |
460 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 463 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
461 storage::kFileSystemTypeTemporary, | 464 storage::kFileSystemTypeTemporary, |
462 storage::kFileSystemTypePersistent); | 465 storage::kFileSystemTypePersistent); |
463 helper.SetUp(); | 466 helper.SetUp(); |
464 | 467 |
465 FileSystemURL src = helper.SourceURL("a"); | 468 FileSystemURL src = helper.SourceURL("a"); |
466 FileSystemURL dest = helper.DestURL("b"); | 469 FileSystemURL dest = helper.DestURL("b"); |
467 int64 src_initial_usage = helper.GetSourceUsage(); | 470 int64_t src_initial_usage = helper.GetSourceUsage(); |
468 int64 dest_initial_usage = helper.GetDestUsage(); | 471 int64_t dest_initial_usage = helper.GetDestUsage(); |
469 | 472 |
470 // Set up a source directory. | 473 // Set up a source directory. |
471 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); | 474 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); |
472 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 475 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
473 | 476 |
474 // Copy it. | 477 // Copy it. |
475 ASSERT_EQ(base::File::FILE_OK, helper.Copy(src, dest)); | 478 ASSERT_EQ(base::File::FILE_OK, helper.Copy(src, dest)); |
476 | 479 |
477 // Verify. | 480 // Verify. |
478 ASSERT_TRUE(helper.DirectoryExists(src)); | 481 ASSERT_TRUE(helper.DirectoryExists(src)); |
479 ASSERT_TRUE(helper.DirectoryExists(dest)); | 482 ASSERT_TRUE(helper.DirectoryExists(dest)); |
480 | 483 |
481 int64 src_new_usage = helper.GetSourceUsage(); | 484 int64_t src_new_usage = helper.GetSourceUsage(); |
482 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 485 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
483 | 486 |
484 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 487 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
485 ASSERT_EQ(src_increase, dest_increase); | 488 ASSERT_EQ(src_increase, dest_increase); |
486 } | 489 } |
487 | 490 |
488 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleDirectory) { | 491 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleDirectory) { |
489 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 492 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
490 storage::kFileSystemTypeTemporary, | 493 storage::kFileSystemTypeTemporary, |
491 storage::kFileSystemTypePersistent); | 494 storage::kFileSystemTypePersistent); |
492 helper.SetUp(); | 495 helper.SetUp(); |
493 | 496 |
494 FileSystemURL src = helper.SourceURL("a"); | 497 FileSystemURL src = helper.SourceURL("a"); |
495 FileSystemURL dest = helper.DestURL("b"); | 498 FileSystemURL dest = helper.DestURL("b"); |
496 int64 src_initial_usage = helper.GetSourceUsage(); | 499 int64_t src_initial_usage = helper.GetSourceUsage(); |
497 int64 dest_initial_usage = helper.GetDestUsage(); | 500 int64_t dest_initial_usage = helper.GetDestUsage(); |
498 | 501 |
499 // Set up a source directory. | 502 // Set up a source directory. |
500 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); | 503 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); |
501 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 504 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
502 | 505 |
503 // Move it. | 506 // Move it. |
504 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); | 507 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); |
505 | 508 |
506 // Verify. | 509 // Verify. |
507 ASSERT_FALSE(helper.DirectoryExists(src)); | 510 ASSERT_FALSE(helper.DirectoryExists(src)); |
508 ASSERT_TRUE(helper.DirectoryExists(dest)); | 511 ASSERT_TRUE(helper.DirectoryExists(dest)); |
509 | 512 |
510 int64 src_new_usage = helper.GetSourceUsage(); | 513 int64_t src_new_usage = helper.GetSourceUsage(); |
511 ASSERT_EQ(src_initial_usage, src_new_usage); | 514 ASSERT_EQ(src_initial_usage, src_new_usage); |
512 | 515 |
513 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 516 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
514 ASSERT_EQ(src_increase, dest_increase); | 517 ASSERT_EQ(src_increase, dest_increase); |
515 } | 518 } |
516 | 519 |
517 TEST(LocalFileSystemCopyOrMoveOperationTest, CopyDirectory) { | 520 TEST(LocalFileSystemCopyOrMoveOperationTest, CopyDirectory) { |
518 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 521 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
519 storage::kFileSystemTypeTemporary, | 522 storage::kFileSystemTypeTemporary, |
520 storage::kFileSystemTypePersistent); | 523 storage::kFileSystemTypePersistent); |
521 helper.SetUp(); | 524 helper.SetUp(); |
522 | 525 |
523 FileSystemURL src = helper.SourceURL("a"); | 526 FileSystemURL src = helper.SourceURL("a"); |
524 FileSystemURL dest = helper.DestURL("b"); | 527 FileSystemURL dest = helper.DestURL("b"); |
525 int64 src_initial_usage = helper.GetSourceUsage(); | 528 int64_t src_initial_usage = helper.GetSourceUsage(); |
526 int64 dest_initial_usage = helper.GetDestUsage(); | 529 int64_t dest_initial_usage = helper.GetDestUsage(); |
527 | 530 |
528 // Set up a source directory. | 531 // Set up a source directory. |
529 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); | 532 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); |
530 ASSERT_EQ(base::File::FILE_OK, | 533 ASSERT_EQ(base::File::FILE_OK, |
531 helper.SetUpTestCaseFiles(src, | 534 helper.SetUpTestCaseFiles(src, |
532 kRegularFileSystemTestCases, | 535 kRegularFileSystemTestCases, |
533 kRegularFileSystemTestCaseSize)); | 536 kRegularFileSystemTestCaseSize)); |
534 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 537 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
535 | 538 |
536 // Copy it. | 539 // Copy it. |
537 ASSERT_EQ(base::File::FILE_OK, | 540 ASSERT_EQ(base::File::FILE_OK, |
538 helper.CopyWithProgress( | 541 helper.CopyWithProgress( |
539 src, dest, | 542 src, dest, |
540 AsyncFileTestHelper::CopyProgressCallback())); | 543 AsyncFileTestHelper::CopyProgressCallback())); |
541 | 544 |
542 // Verify. | 545 // Verify. |
543 ASSERT_TRUE(helper.DirectoryExists(src)); | 546 ASSERT_TRUE(helper.DirectoryExists(src)); |
544 ASSERT_TRUE(helper.DirectoryExists(dest)); | 547 ASSERT_TRUE(helper.DirectoryExists(dest)); |
545 | 548 |
546 helper.VerifyTestCaseFiles(dest, | 549 helper.VerifyTestCaseFiles(dest, |
547 kRegularFileSystemTestCases, | 550 kRegularFileSystemTestCases, |
548 kRegularFileSystemTestCaseSize); | 551 kRegularFileSystemTestCaseSize); |
549 | 552 |
550 int64 src_new_usage = helper.GetSourceUsage(); | 553 int64_t src_new_usage = helper.GetSourceUsage(); |
551 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 554 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
552 | 555 |
553 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 556 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
554 ASSERT_EQ(src_increase, dest_increase); | 557 ASSERT_EQ(src_increase, dest_increase); |
555 } | 558 } |
556 | 559 |
557 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) { | 560 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) { |
558 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 561 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
559 storage::kFileSystemTypeTemporary, | 562 storage::kFileSystemTypeTemporary, |
560 storage::kFileSystemTypePersistent); | 563 storage::kFileSystemTypePersistent); |
561 helper.SetUp(); | 564 helper.SetUp(); |
562 | 565 |
563 FileSystemURL src = helper.SourceURL("a"); | 566 FileSystemURL src = helper.SourceURL("a"); |
564 FileSystemURL dest = helper.DestURL("b"); | 567 FileSystemURL dest = helper.DestURL("b"); |
565 int64 src_initial_usage = helper.GetSourceUsage(); | 568 int64_t src_initial_usage = helper.GetSourceUsage(); |
566 int64 dest_initial_usage = helper.GetDestUsage(); | 569 int64_t dest_initial_usage = helper.GetDestUsage(); |
567 | 570 |
568 // Set up a source directory. | 571 // Set up a source directory. |
569 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); | 572 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); |
570 ASSERT_EQ(base::File::FILE_OK, | 573 ASSERT_EQ(base::File::FILE_OK, |
571 helper.SetUpTestCaseFiles(src, | 574 helper.SetUpTestCaseFiles(src, |
572 kRegularFileSystemTestCases, | 575 kRegularFileSystemTestCases, |
573 kRegularFileSystemTestCaseSize)); | 576 kRegularFileSystemTestCaseSize)); |
574 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 577 int64_t src_increase = helper.GetSourceUsage() - src_initial_usage; |
575 | 578 |
576 // Move it. | 579 // Move it. |
577 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); | 580 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); |
578 | 581 |
579 // Verify. | 582 // Verify. |
580 ASSERT_FALSE(helper.DirectoryExists(src)); | 583 ASSERT_FALSE(helper.DirectoryExists(src)); |
581 ASSERT_TRUE(helper.DirectoryExists(dest)); | 584 ASSERT_TRUE(helper.DirectoryExists(dest)); |
582 | 585 |
583 helper.VerifyTestCaseFiles(dest, | 586 helper.VerifyTestCaseFiles(dest, |
584 kRegularFileSystemTestCases, | 587 kRegularFileSystemTestCases, |
585 kRegularFileSystemTestCaseSize); | 588 kRegularFileSystemTestCaseSize); |
586 | 589 |
587 int64 src_new_usage = helper.GetSourceUsage(); | 590 int64_t src_new_usage = helper.GetSourceUsage(); |
588 ASSERT_EQ(src_initial_usage, src_new_usage); | 591 ASSERT_EQ(src_initial_usage, src_new_usage); |
589 | 592 |
590 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 593 int64_t dest_increase = helper.GetDestUsage() - dest_initial_usage; |
591 ASSERT_EQ(src_increase, dest_increase); | 594 ASSERT_EQ(src_increase, dest_increase); |
592 } | 595 } |
593 | 596 |
594 TEST(LocalFileSystemCopyOrMoveOperationTest, | 597 TEST(LocalFileSystemCopyOrMoveOperationTest, |
595 MoveDirectoryFailPostWriteValidation) { | 598 MoveDirectoryFailPostWriteValidation) { |
596 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), | 599 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
597 storage::kFileSystemTypeTemporary, | 600 storage::kFileSystemTypeTemporary, |
598 storage::kFileSystemTypeTest); | 601 storage::kFileSystemTypeTest); |
599 helper.SetUp(); | 602 helper.SetUp(); |
600 | 603 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
694 records[begin_index].type); | 697 records[begin_index].type); |
695 EXPECT_FALSE(records[begin_index].dest_url.is_valid()); | 698 EXPECT_FALSE(records[begin_index].dest_url.is_valid()); |
696 EXPECT_EQ(FileSystemOperation::END_COPY_ENTRY, records[end_index].type); | 699 EXPECT_EQ(FileSystemOperation::END_COPY_ENTRY, records[end_index].type); |
697 EXPECT_EQ(dest_url, records[end_index].dest_url); | 700 EXPECT_EQ(dest_url, records[end_index].dest_url); |
698 | 701 |
699 if (test_case.is_directory) { | 702 if (test_case.is_directory) { |
700 // For directory copy, the progress shouldn't be interlaced. | 703 // For directory copy, the progress shouldn't be interlaced. |
701 EXPECT_EQ(begin_index + 1, end_index); | 704 EXPECT_EQ(begin_index + 1, end_index); |
702 } else { | 705 } else { |
703 // PROGRESS event's size should be assending order. | 706 // PROGRESS event's size should be assending order. |
704 int64 current_size = 0; | 707 int64_t current_size = 0; |
705 for (size_t j = begin_index + 1; j < end_index; ++j) { | 708 for (size_t j = begin_index + 1; j < end_index; ++j) { |
706 if (records[j].source_url == src_url) { | 709 if (records[j].source_url == src_url) { |
707 EXPECT_EQ(FileSystemOperation::PROGRESS, records[j].type); | 710 EXPECT_EQ(FileSystemOperation::PROGRESS, records[j].type); |
708 EXPECT_FALSE(records[j].dest_url.is_valid()); | 711 EXPECT_FALSE(records[j].dest_url.is_valid()); |
709 EXPECT_GE(records[j].size, current_size); | 712 EXPECT_GE(records[j].size, current_size); |
710 current_size = records[j].size; | 713 current_size = records[j].size; |
711 } | 714 } |
712 } | 715 } |
713 } | 716 } |
714 } | 717 } |
(...skipping 17 matching lines...) Expand all Loading... |
732 scoped_refptr<base::SingleThreadTaskRunner> task_runner = | 735 scoped_refptr<base::SingleThreadTaskRunner> task_runner = |
733 file_thread.task_runner(); | 736 file_thread.task_runner(); |
734 | 737 |
735 scoped_ptr<storage::FileStreamReader> reader( | 738 scoped_ptr<storage::FileStreamReader> reader( |
736 storage::FileStreamReader::CreateForLocalFile( | 739 storage::FileStreamReader::CreateForLocalFile( |
737 task_runner.get(), source_path, 0, base::Time())); | 740 task_runner.get(), source_path, 0, base::Time())); |
738 | 741 |
739 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( | 742 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( |
740 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); | 743 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); |
741 | 744 |
742 std::vector<int64> progress; | 745 std::vector<int64_t> progress; |
743 CopyOrMoveOperationDelegate::StreamCopyHelper helper( | 746 CopyOrMoveOperationDelegate::StreamCopyHelper helper( |
744 reader.Pass(), writer.Pass(), | 747 reader.Pass(), writer.Pass(), |
745 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, | 748 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, |
746 10, // buffer size | 749 10, // buffer size |
747 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), | 750 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), |
748 base::TimeDelta()); // For testing, we need all the progress. | 751 base::TimeDelta()); // For testing, we need all the progress. |
749 | 752 |
750 base::File::Error error = base::File::FILE_ERROR_FAILED; | 753 base::File::Error error = base::File::FILE_ERROR_FAILED; |
751 base::RunLoop run_loop; | 754 base::RunLoop run_loop; |
752 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); | 755 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
788 scoped_refptr<base::SingleThreadTaskRunner> task_runner = | 791 scoped_refptr<base::SingleThreadTaskRunner> task_runner = |
789 file_thread.task_runner(); | 792 file_thread.task_runner(); |
790 | 793 |
791 scoped_ptr<storage::FileStreamReader> reader( | 794 scoped_ptr<storage::FileStreamReader> reader( |
792 storage::FileStreamReader::CreateForLocalFile( | 795 storage::FileStreamReader::CreateForLocalFile( |
793 task_runner.get(), source_path, 0, base::Time())); | 796 task_runner.get(), source_path, 0, base::Time())); |
794 | 797 |
795 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( | 798 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( |
796 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); | 799 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); |
797 | 800 |
798 std::vector<int64> progress; | 801 std::vector<int64_t> progress; |
799 CopyOrMoveOperationDelegate::StreamCopyHelper helper( | 802 CopyOrMoveOperationDelegate::StreamCopyHelper helper( |
800 reader.Pass(), writer.Pass(), | 803 reader.Pass(), writer.Pass(), |
801 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, | 804 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, |
802 10, // buffer size | 805 10, // buffer size |
803 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), | 806 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), |
804 base::TimeDelta()); // For testing, we need all the progress. | 807 base::TimeDelta()); // For testing, we need all the progress. |
805 | 808 |
806 base::File::Error error = base::File::FILE_ERROR_FAILED; | 809 base::File::Error error = base::File::FILE_ERROR_FAILED; |
807 base::RunLoop run_loop; | 810 base::RunLoop run_loop; |
808 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); | 811 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); |
(...skipping 30 matching lines...) Expand all Loading... |
839 scoped_refptr<base::SingleThreadTaskRunner> task_runner = | 842 scoped_refptr<base::SingleThreadTaskRunner> task_runner = |
840 file_thread.task_runner(); | 843 file_thread.task_runner(); |
841 | 844 |
842 scoped_ptr<storage::FileStreamReader> reader( | 845 scoped_ptr<storage::FileStreamReader> reader( |
843 storage::FileStreamReader::CreateForLocalFile( | 846 storage::FileStreamReader::CreateForLocalFile( |
844 task_runner.get(), source_path, 0, base::Time())); | 847 task_runner.get(), source_path, 0, base::Time())); |
845 | 848 |
846 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( | 849 scoped_ptr<FileStreamWriter> writer(FileStreamWriter::CreateForLocalFile( |
847 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); | 850 task_runner.get(), dest_path, 0, FileStreamWriter::CREATE_NEW_FILE)); |
848 | 851 |
849 std::vector<int64> progress; | 852 std::vector<int64_t> progress; |
850 CopyOrMoveOperationDelegate::StreamCopyHelper helper( | 853 CopyOrMoveOperationDelegate::StreamCopyHelper helper( |
851 reader.Pass(), writer.Pass(), | 854 reader.Pass(), writer.Pass(), |
852 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, | 855 storage::FlushPolicy::NO_FLUSH_ON_COMPLETION, |
853 10, // buffer size | 856 10, // buffer size |
854 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), | 857 base::Bind(&RecordFileProgressCallback, base::Unretained(&progress)), |
855 base::TimeDelta()); // For testing, we need all the progress. | 858 base::TimeDelta()); // For testing, we need all the progress. |
856 | 859 |
857 // Call Cancel() later. | 860 // Call Cancel() later. |
858 base::ThreadTaskRunnerHandle::Get()->PostTask( | 861 base::ThreadTaskRunnerHandle::Get()->PostTask( |
859 FROM_HERE, | 862 FROM_HERE, |
860 base::Bind(&CopyOrMoveOperationDelegate::StreamCopyHelper::Cancel, | 863 base::Bind(&CopyOrMoveOperationDelegate::StreamCopyHelper::Cancel, |
861 base::Unretained(&helper))); | 864 base::Unretained(&helper))); |
862 | 865 |
863 base::File::Error error = base::File::FILE_ERROR_FAILED; | 866 base::File::Error error = base::File::FILE_ERROR_FAILED; |
864 base::RunLoop run_loop; | 867 base::RunLoop run_loop; |
865 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); | 868 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); |
866 run_loop.Run(); | 869 run_loop.Run(); |
867 | 870 |
868 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error); | 871 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error); |
869 } | 872 } |
870 | 873 |
871 } // namespace content | 874 } // namespace content |
OLD | NEW |