Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: content/browser/fileapi/copy_or_move_operation_delegate_unittest.cc

Issue 183343002: Move test_file_set to content/test/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, rename files Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/browser/fileapi/dragged_file_util_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <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/file_util.h" 10 #include "base/file_util.h"
11 #include "base/files/scoped_temp_dir.h" 11 #include "base/files/scoped_temp_dir.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "content/public/test/async_file_test_helper.h" 15 #include "content/public/test/async_file_test_helper.h"
16 #include "content/public/test/test_file_system_backend.h" 16 #include "content/public/test/test_file_system_backend.h"
17 #include "content/public/test/test_file_system_context.h" 17 #include "content/public/test/test_file_system_context.h"
18 #include "content/test/fileapi_test_file_set.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 #include "webkit/browser/blob/file_stream_reader.h" 20 #include "webkit/browser/blob/file_stream_reader.h"
20 #include "webkit/browser/fileapi/copy_or_move_file_validator.h" 21 #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
21 #include "webkit/browser/fileapi/copy_or_move_operation_delegate.h" 22 #include "webkit/browser/fileapi/copy_or_move_operation_delegate.h"
22 #include "webkit/browser/fileapi/file_stream_writer.h" 23 #include "webkit/browser/fileapi/file_stream_writer.h"
23 #include "webkit/browser/fileapi/file_system_backend.h" 24 #include "webkit/browser/fileapi/file_system_backend.h"
24 #include "webkit/browser/fileapi/file_system_context.h" 25 #include "webkit/browser/fileapi/file_system_context.h"
25 #include "webkit/browser/fileapi/file_system_operation.h" 26 #include "webkit/browser/fileapi/file_system_operation.h"
26 #include "webkit/browser/fileapi/file_system_url.h" 27 #include "webkit/browser/fileapi/file_system_url.h"
27 #include "webkit/browser/fileapi/test_file_set.h"
28 #include "webkit/browser/quota/mock_quota_manager.h" 28 #include "webkit/browser/quota/mock_quota_manager.h"
29 #include "webkit/browser/quota/mock_quota_manager_proxy.h" 29 #include "webkit/browser/quota/mock_quota_manager_proxy.h"
30 #include "webkit/browser/quota/quota_manager.h" 30 #include "webkit/browser/quota/quota_manager.h"
31 #include "webkit/common/fileapi/file_system_util.h" 31 #include "webkit/common/fileapi/file_system_util.h"
32 32
33 using content::AsyncFileTestHelper; 33 using content::AsyncFileTestHelper;
34 using fileapi::CopyOrMoveOperationDelegate; 34 using fileapi::CopyOrMoveOperationDelegate;
35 using fileapi::FileStreamWriter; 35 using fileapi::FileStreamWriter;
36 using fileapi::FileSystemOperation; 36 using fileapi::FileSystemOperation;
37 using fileapi::FileSystemType; 37 using fileapi::FileSystemType;
38 using fileapi::FileSystemURL; 38 using fileapi::FileSystemURL;
39 using fileapi::test::TestCaseRecord;
40 39
41 namespace content { 40 namespace content {
42 41
43 typedef fileapi::FileSystemOperation::FileEntryList FileEntryList; 42 typedef fileapi::FileSystemOperation::FileEntryList FileEntryList;
44 43
45 namespace { 44 namespace {
46 45
47 void ExpectOk(const GURL& origin_url, 46 void ExpectOk(const GURL& origin_url,
48 const std::string& name, 47 const std::string& name,
49 base::File::Error error) { 48 base::File::Error error) {
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 file_system_context_.get(), src, dest, progress_callback); 274 file_system_context_.get(), src, dest, progress_callback);
276 } 275 }
277 276
278 base::File::Error Move(const FileSystemURL& src, 277 base::File::Error Move(const FileSystemURL& src,
279 const FileSystemURL& dest) { 278 const FileSystemURL& dest) {
280 return AsyncFileTestHelper::Move(file_system_context_.get(), src, dest); 279 return AsyncFileTestHelper::Move(file_system_context_.get(), src, dest);
281 } 280 }
282 281
283 base::File::Error SetUpTestCaseFiles( 282 base::File::Error SetUpTestCaseFiles(
284 const FileSystemURL& root, 283 const FileSystemURL& root,
285 const TestCaseRecord* const test_cases, 284 const FileSystemTestCaseRecord* const test_cases,
286 size_t test_case_size) { 285 size_t test_case_size) {
287 base::File::Error result = base::File::FILE_ERROR_FAILED; 286 base::File::Error result = base::File::FILE_ERROR_FAILED;
288 for (size_t i = 0; i < test_case_size; ++i) { 287 for (size_t i = 0; i < test_case_size; ++i) {
289 const TestCaseRecord& test_case = test_cases[i]; 288 const FileSystemTestCaseRecord& test_case = test_cases[i];
290 FileSystemURL url = file_system_context_->CreateCrackedFileSystemURL( 289 FileSystemURL url = file_system_context_->CreateCrackedFileSystemURL(
291 root.origin(), 290 root.origin(),
292 root.mount_type(), 291 root.mount_type(),
293 root.virtual_path().Append(test_case.path)); 292 root.virtual_path().Append(test_case.path));
294 if (test_case.is_directory) 293 if (test_case.is_directory)
295 result = CreateDirectory(url); 294 result = CreateDirectory(url);
296 else 295 else
297 result = CreateFile(url, test_case.data_file_size); 296 result = CreateFile(url, test_case.data_file_size);
298 EXPECT_EQ(base::File::FILE_OK, result) << url.DebugString(); 297 EXPECT_EQ(base::File::FILE_OK, result) << url.DebugString();
299 if (result != base::File::FILE_OK) 298 if (result != base::File::FILE_OK)
300 return result; 299 return result;
301 } 300 }
302 return result; 301 return result;
303 } 302 }
304 303
305 void VerifyTestCaseFiles( 304 void VerifyTestCaseFiles(
306 const FileSystemURL& root, 305 const FileSystemURL& root,
307 const TestCaseRecord* const test_cases, 306 const FileSystemTestCaseRecord* const test_cases,
308 size_t test_case_size) { 307 size_t test_case_size) {
309 std::map<base::FilePath, const TestCaseRecord*> test_case_map; 308 std::map<base::FilePath, const FileSystemTestCaseRecord*> test_case_map;
310 for (size_t i = 0; i < test_case_size; ++i) { 309 for (size_t i = 0; i < test_case_size; ++i) {
311 test_case_map[ 310 test_case_map[
312 base::FilePath(test_cases[i].path).NormalizePathSeparators()] = 311 base::FilePath(test_cases[i].path).NormalizePathSeparators()] =
313 &test_cases[i]; 312 &test_cases[i];
314 } 313 }
315 314
316 std::queue<FileSystemURL> directories; 315 std::queue<FileSystemURL> directories;
317 FileEntryList entries; 316 FileEntryList entries;
318 directories.push(root); 317 directories.push(root);
319 while (!directories.empty()) { 318 while (!directories.empty()) {
(...skipping 13 matching lines...) Expand all
333 EXPECT_TRUE(test_case_map[relative]->is_directory); 332 EXPECT_TRUE(test_case_map[relative]->is_directory);
334 directories.push(url); 333 directories.push(url);
335 } else { 334 } else {
336 EXPECT_FALSE(test_case_map[relative]->is_directory); 335 EXPECT_FALSE(test_case_map[relative]->is_directory);
337 EXPECT_TRUE(FileExists(url, test_case_map[relative]->data_file_size)); 336 EXPECT_TRUE(FileExists(url, test_case_map[relative]->data_file_size));
338 } 337 }
339 test_case_map.erase(relative); 338 test_case_map.erase(relative);
340 } 339 }
341 } 340 }
342 EXPECT_TRUE(test_case_map.empty()); 341 EXPECT_TRUE(test_case_map.empty());
343 std::map<base::FilePath, const TestCaseRecord*>::const_iterator it; 342 std::map<base::FilePath,
343 const FileSystemTestCaseRecord*>::const_iterator it;
344 for (it = test_case_map.begin(); it != test_case_map.end(); ++it) { 344 for (it = test_case_map.begin(); it != test_case_map.end(); ++it) {
345 LOG(ERROR) << "Extra entry: " << it->first.LossyDisplayName(); 345 LOG(ERROR) << "Extra entry: " << it->first.LossyDisplayName();
346 } 346 }
347 } 347 }
348 348
349 base::File::Error ReadDirectory(const FileSystemURL& url, 349 base::File::Error ReadDirectory(const FileSystemURL& url,
350 FileEntryList* entries) { 350 FileEntryList* entries) {
351 return AsyncFileTestHelper::ReadDirectory( 351 return AsyncFileTestHelper::ReadDirectory(
352 file_system_context_.get(), url, entries); 352 file_system_context_.get(), url, entries);
353 } 353 }
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 522
523 FileSystemURL src = helper.SourceURL("a"); 523 FileSystemURL src = helper.SourceURL("a");
524 FileSystemURL dest = helper.DestURL("b"); 524 FileSystemURL dest = helper.DestURL("b");
525 int64 src_initial_usage = helper.GetSourceUsage(); 525 int64 src_initial_usage = helper.GetSourceUsage();
526 int64 dest_initial_usage = helper.GetDestUsage(); 526 int64 dest_initial_usage = helper.GetDestUsage();
527 527
528 // Set up a source directory. 528 // Set up a source directory.
529 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); 529 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src));
530 ASSERT_EQ(base::File::FILE_OK, 530 ASSERT_EQ(base::File::FILE_OK,
531 helper.SetUpTestCaseFiles(src, 531 helper.SetUpTestCaseFiles(src,
532 fileapi::test::kRegularTestCases, 532 kRegularFileSystemTestCases,
533 fileapi::test::kRegularTestCaseSize)); 533 kRegularFileSystemTestCaseSize));
534 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; 534 int64 src_increase = helper.GetSourceUsage() - src_initial_usage;
535 535
536 // Copy it. 536 // Copy it.
537 ASSERT_EQ(base::File::FILE_OK, 537 ASSERT_EQ(base::File::FILE_OK,
538 helper.CopyWithProgress( 538 helper.CopyWithProgress(
539 src, dest, 539 src, dest,
540 AsyncFileTestHelper::CopyProgressCallback())); 540 AsyncFileTestHelper::CopyProgressCallback()));
541 541
542 // Verify. 542 // Verify.
543 ASSERT_TRUE(helper.DirectoryExists(src)); 543 ASSERT_TRUE(helper.DirectoryExists(src));
544 ASSERT_TRUE(helper.DirectoryExists(dest)); 544 ASSERT_TRUE(helper.DirectoryExists(dest));
545 545
546 helper.VerifyTestCaseFiles(dest, 546 helper.VerifyTestCaseFiles(dest,
547 fileapi::test::kRegularTestCases, 547 kRegularFileSystemTestCases,
548 fileapi::test::kRegularTestCaseSize); 548 kRegularFileSystemTestCaseSize);
549 549
550 int64 src_new_usage = helper.GetSourceUsage(); 550 int64 src_new_usage = helper.GetSourceUsage();
551 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); 551 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage);
552 552
553 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; 553 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage;
554 ASSERT_EQ(src_increase, dest_increase); 554 ASSERT_EQ(src_increase, dest_increase);
555 } 555 }
556 556
557 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) { 557 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) {
558 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), 558 CopyOrMoveOperationTestHelper helper(GURL("http://foo"),
559 fileapi::kFileSystemTypeTemporary, 559 fileapi::kFileSystemTypeTemporary,
560 fileapi::kFileSystemTypePersistent); 560 fileapi::kFileSystemTypePersistent);
561 helper.SetUp(); 561 helper.SetUp();
562 562
563 FileSystemURL src = helper.SourceURL("a"); 563 FileSystemURL src = helper.SourceURL("a");
564 FileSystemURL dest = helper.DestURL("b"); 564 FileSystemURL dest = helper.DestURL("b");
565 int64 src_initial_usage = helper.GetSourceUsage(); 565 int64 src_initial_usage = helper.GetSourceUsage();
566 int64 dest_initial_usage = helper.GetDestUsage(); 566 int64 dest_initial_usage = helper.GetDestUsage();
567 567
568 // Set up a source directory. 568 // Set up a source directory.
569 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); 569 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src));
570 ASSERT_EQ(base::File::FILE_OK, 570 ASSERT_EQ(base::File::FILE_OK,
571 helper.SetUpTestCaseFiles(src, 571 helper.SetUpTestCaseFiles(src,
572 fileapi::test::kRegularTestCases, 572 kRegularFileSystemTestCases,
573 fileapi::test::kRegularTestCaseSize)); 573 kRegularFileSystemTestCaseSize));
574 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; 574 int64 src_increase = helper.GetSourceUsage() - src_initial_usage;
575 575
576 // Move it. 576 // Move it.
577 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest)); 577 ASSERT_EQ(base::File::FILE_OK, helper.Move(src, dest));
578 578
579 // Verify. 579 // Verify.
580 ASSERT_FALSE(helper.DirectoryExists(src)); 580 ASSERT_FALSE(helper.DirectoryExists(src));
581 ASSERT_TRUE(helper.DirectoryExists(dest)); 581 ASSERT_TRUE(helper.DirectoryExists(dest));
582 582
583 helper.VerifyTestCaseFiles(dest, 583 helper.VerifyTestCaseFiles(dest,
584 fileapi::test::kRegularTestCases, 584 kRegularFileSystemTestCases,
585 fileapi::test::kRegularTestCaseSize); 585 kRegularFileSystemTestCaseSize);
586 586
587 int64 src_new_usage = helper.GetSourceUsage(); 587 int64 src_new_usage = helper.GetSourceUsage();
588 ASSERT_EQ(src_initial_usage, src_new_usage); 588 ASSERT_EQ(src_initial_usage, src_new_usage);
589 589
590 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; 590 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage;
591 ASSERT_EQ(src_increase, dest_increase); 591 ASSERT_EQ(src_increase, dest_increase);
592 } 592 }
593 593
594 TEST(LocalFileSystemCopyOrMoveOperationTest, 594 TEST(LocalFileSystemCopyOrMoveOperationTest,
595 MoveDirectoryFailPostWriteValidation) { 595 MoveDirectoryFailPostWriteValidation) {
596 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), 596 CopyOrMoveOperationTestHelper helper(GURL("http://foo"),
597 fileapi::kFileSystemTypeTemporary, 597 fileapi::kFileSystemTypeTemporary,
598 fileapi::kFileSystemTypeTest); 598 fileapi::kFileSystemTypeTest);
599 helper.SetUp(); 599 helper.SetUp();
600 600
601 FileSystemURL src = helper.SourceURL("a"); 601 FileSystemURL src = helper.SourceURL("a");
602 FileSystemURL dest = helper.DestURL("b"); 602 FileSystemURL dest = helper.DestURL("b");
603 603
604 // Set up a source directory. 604 // Set up a source directory.
605 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); 605 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src));
606 ASSERT_EQ(base::File::FILE_OK, 606 ASSERT_EQ(base::File::FILE_OK,
607 helper.SetUpTestCaseFiles(src, 607 helper.SetUpTestCaseFiles(src,
608 fileapi::test::kRegularTestCases, 608 kRegularFileSystemTestCases,
609 fileapi::test::kRegularTestCaseSize)); 609 kRegularFileSystemTestCaseSize));
610 610
611 // Move it. 611 // Move it.
612 helper.Move(src, dest); 612 helper.Move(src, dest);
613 613
614 // Verify. 614 // Verify.
615 ASSERT_TRUE(helper.DirectoryExists(src)); 615 ASSERT_TRUE(helper.DirectoryExists(src));
616 ASSERT_TRUE(helper.DirectoryExists(dest)); 616 ASSERT_TRUE(helper.DirectoryExists(dest));
617 617
618 TestCaseRecord kMoveDirResultCases[] = { 618 FileSystemTestCaseRecord kMoveDirResultCases[] = {
619 {false, FILE_PATH_LITERAL("file 0"), 38}, 619 {false, FILE_PATH_LITERAL("file 0"), 38},
620 {false, FILE_PATH_LITERAL("file 3"), 0}, 620 {false, FILE_PATH_LITERAL("file 3"), 0},
621 }; 621 };
622 622
623 helper.VerifyTestCaseFiles(dest, 623 helper.VerifyTestCaseFiles(dest,
624 kMoveDirResultCases, 624 kMoveDirResultCases,
625 arraysize(kMoveDirResultCases)); 625 arraysize(kMoveDirResultCases));
626 } 626 }
627 627
628 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFileNoValidator) { 628 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFileNoValidator) {
(...skipping 20 matching lines...) Expand all
649 fileapi::kFileSystemTypePersistent); 649 fileapi::kFileSystemTypePersistent);
650 helper.SetUp(); 650 helper.SetUp();
651 651
652 FileSystemURL src = helper.SourceURL("a"); 652 FileSystemURL src = helper.SourceURL("a");
653 FileSystemURL dest = helper.DestURL("b"); 653 FileSystemURL dest = helper.DestURL("b");
654 654
655 // Set up a source directory. 655 // Set up a source directory.
656 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src)); 656 ASSERT_EQ(base::File::FILE_OK, helper.CreateDirectory(src));
657 ASSERT_EQ(base::File::FILE_OK, 657 ASSERT_EQ(base::File::FILE_OK,
658 helper.SetUpTestCaseFiles(src, 658 helper.SetUpTestCaseFiles(src,
659 fileapi::test::kRegularTestCases, 659 kRegularFileSystemTestCases,
660 fileapi::test::kRegularTestCaseSize)); 660 kRegularFileSystemTestCaseSize));
661 661
662 std::vector<ProgressRecord> records; 662 std::vector<ProgressRecord> records;
663 ASSERT_EQ(base::File::FILE_OK, 663 ASSERT_EQ(base::File::FILE_OK,
664 helper.CopyWithProgress(src, dest, 664 helper.CopyWithProgress(src, dest,
665 base::Bind(&RecordProgressCallback, 665 base::Bind(&RecordProgressCallback,
666 base::Unretained(&records)))); 666 base::Unretained(&records))));
667 667
668 // Verify progress callback. 668 // Verify progress callback.
669 for (size_t i = 0; i < fileapi::test::kRegularTestCaseSize; ++i) { 669 for (size_t i = 0; i < kRegularFileSystemTestCaseSize; ++i) {
670 const TestCaseRecord& test_case = fileapi::test::kRegularTestCases[i]; 670 const FileSystemTestCaseRecord& test_case = kRegularFileSystemTestCases[i];
671 671
672 FileSystemURL src_url = helper.SourceURL( 672 FileSystemURL src_url = helper.SourceURL(
673 std::string("a/") + base::FilePath(test_case.path).AsUTF8Unsafe()); 673 std::string("a/") + base::FilePath(test_case.path).AsUTF8Unsafe());
674 FileSystemURL dest_url = helper.DestURL( 674 FileSystemURL dest_url = helper.DestURL(
675 std::string("b/") + base::FilePath(test_case.path).AsUTF8Unsafe()); 675 std::string("b/") + base::FilePath(test_case.path).AsUTF8Unsafe());
676 676
677 // Find the first and last progress record. 677 // Find the first and last progress record.
678 size_t begin_index = records.size(); 678 size_t begin_index = records.size();
679 size_t end_index = records.size(); 679 size_t end_index = records.size();
680 for (size_t j = 0; j < records.size(); ++j) { 680 for (size_t j = 0; j < records.size(); ++j) {
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 870
871 base::File::Error error = base::File::FILE_ERROR_FAILED; 871 base::File::Error error = base::File::FILE_ERROR_FAILED;
872 base::RunLoop run_loop; 872 base::RunLoop run_loop;
873 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error)); 873 helper.Run(base::Bind(&AssignAndQuit, &run_loop, &error));
874 run_loop.Run(); 874 run_loop.Run();
875 875
876 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error); 876 EXPECT_EQ(base::File::FILE_ERROR_ABORT, error);
877 } 877 }
878 878
879 } // namespace content 879 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/fileapi/dragged_file_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698