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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc

Issue 9662041: Implement copy and move operations within the same remote file system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <errno.h> 5 #include <errno.h>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 class CallbackHelper 311 class CallbackHelper
312 : public base::RefCountedThreadSafe<CallbackHelper> { 312 : public base::RefCountedThreadSafe<CallbackHelper> {
313 public: 313 public:
314 CallbackHelper() : last_error_(base::PLATFORM_FILE_OK) {} 314 CallbackHelper() : last_error_(base::PLATFORM_FILE_OK) {}
315 virtual ~CallbackHelper() {} 315 virtual ~CallbackHelper() {}
316 virtual void GetFileCallback(base::PlatformFileError error, 316 virtual void GetFileCallback(base::PlatformFileError error,
317 const FilePath& file_path) { 317 const FilePath& file_path) {
318 last_error_ = error; 318 last_error_ = error;
319 download_path_ = file_path; 319 download_path_ = file_path;
320 } 320 }
321 virtual void FileOperationCallback(base::PlatformFileError error) { 321 virtual void FileOperationCallback(base::PlatformFileError error) {
satorux1 2012/03/12 17:48:24 I think we should add a DCHECK() to ensure that th
Ben Chan 2012/03/13 00:29:21 Done.
322 last_error_ = error; 322 last_error_ = error;
323 } 323 }
324 324
325 base::PlatformFileError last_error_; 325 base::PlatformFileError last_error_;
326 FilePath download_path_; 326 FilePath download_path_;
327 }; 327 };
328 328
329 MessageLoopForUI message_loop_; 329 MessageLoopForUI message_loop_;
330 content::TestBrowserThread ui_thread_; 330 content::TestBrowserThread ui_thread_;
331 scoped_ptr<TestingProfile> profile_; 331 scoped_ptr<TestingProfile> profile_;
(...skipping 16 matching lines...) Expand all
348 // Delegate used to find a directory element for file system updates. 348 // Delegate used to find a directory element for file system updates.
349 class MockFindFileDelegate : public gdata::FindFileDelegate { 349 class MockFindFileDelegate : public gdata::FindFileDelegate {
350 public: 350 public:
351 MockFindFileDelegate() { 351 MockFindFileDelegate() {
352 } 352 }
353 353
354 virtual ~MockFindFileDelegate() { 354 virtual ~MockFindFileDelegate() {
355 } 355 }
356 356
357 // gdata::FindFileDelegate overrides. 357 // gdata::FindFileDelegate overrides.
358 MOCK_METHOD1(OnFileFound, void(GDataFile*)); 358 MOCK_METHOD1(OnFileFound, void(GDataFile* file));
359 MOCK_METHOD2(OnDirectoryFound, void(const FilePath&, GDataDirectory* dir)); 359 MOCK_METHOD2(OnDirectoryFound, void(const FilePath&, GDataDirectory* dir));
360 MOCK_METHOD2(OnEnterDirectory, FindFileTraversalCommand( 360 MOCK_METHOD2(OnEnterDirectory, FindFileTraversalCommand(
361 const FilePath&, GDataDirectory* dir)); 361 const FilePath&, GDataDirectory* dir));
362 MOCK_METHOD1(OnError, void(base::PlatformFileError)); 362 MOCK_METHOD1(OnError, void(base::PlatformFileError));
363 }; 363 };
364 364
365 TEST_F(GDataFileSystemTest, SearchRootDirectory) { 365 TEST_F(GDataFileSystemTest, SearchRootDirectory) {
366 scoped_refptr<MockFindFileDelegate> mock_find_file_delegate = 366 scoped_refptr<MockFindFileDelegate> mock_find_file_delegate =
367 new MockFindFileDelegate(); 367 new MockFindFileDelegate();
368 368
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 LoadRootFeedDocument("root_feed.json"); 532 LoadRootFeedDocument("root_feed.json");
533 LoadSubdirFeedDocument(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")), 533 LoadSubdirFeedDocument(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")),
534 "subdir_feed.json"); 534 "subdir_feed.json");
535 535
536 FindAndTestFilePath(FilePath(FILE_PATH_LITERAL("gdata/File 1.txt"))); 536 FindAndTestFilePath(FilePath(FILE_PATH_LITERAL("gdata/File 1.txt")));
537 FindAndTestFilePath(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))); 537 FindAndTestFilePath(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")));
538 FindAndTestFilePath( 538 FindAndTestFilePath(
539 FilePath(FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"))); 539 FilePath(FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")));
540 } 540 }
541 541
542 TEST_F(GDataFileSystemTest, GetCopyMoveFileParams) {
543 LoadRootFeedDocument("root_feed.json");
544 LoadSubdirFeedDocument(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")),
545 "subdir_feed.json");
546
547 // Create directory in root.
548 FilePath dir_path(FILE_PATH_LITERAL("gdata/New Folder 1"));
549 AddDirectoryFromFile(dir_path, "directory_entry_atom.json");
550
551 // Create directory in a sub dirrectory.
552 FilePath subdir_path(FILE_PATH_LITERAL("gdata/New Folder 1/New Folder 2"));
553 AddDirectoryFromFile(subdir_path, "directory_entry_atom.json");
554
555 // Non-existing file
556 GDataFileSystem::CopyMoveFileParams params;
557 EXPECT_FALSE(file_system_->GetCopyMoveFileParams(FilePath("gdata/Dummy"),
558 &params));
559 EXPECT_EQ("", params.self_url.spec());
560 EXPECT_EQ("", params.content_url.spec());
561 EXPECT_EQ("", params.resource_id);
562 EXPECT_EQ("", params.document_extension);
563 EXPECT_FALSE(params.is_directory);
564 EXPECT_FALSE(params.is_root_directory);
565 EXPECT_FALSE(params.is_hosted_document);
566
567 // Root directory
568 GDataFileSystem::CopyMoveFileParams root_params;
569 EXPECT_TRUE(file_system_->GetCopyMoveFileParams(FilePath("gdata"),
570 &root_params));
571 EXPECT_EQ("", root_params.self_url.spec());
572 EXPECT_EQ("", root_params.content_url.spec());
573 EXPECT_EQ("", root_params.resource_id);
574 EXPECT_EQ("", root_params.document_extension);
575 EXPECT_TRUE(root_params.is_directory);
576 EXPECT_TRUE(root_params.is_root_directory);
577 EXPECT_FALSE(root_params.is_hosted_document);
578
579 // Subdirectory
580 GDataFileSystem::CopyMoveFileParams subdir_params;
581 EXPECT_TRUE(file_system_->GetCopyMoveFileParams(FilePath("gdata/Directory 1"),
582 &subdir_params));
583 EXPECT_EQ("https://1_self_link/", subdir_params.self_url.spec());
584 EXPECT_EQ("https://1_folder_content_url/", subdir_params.content_url.spec());
585 EXPECT_EQ("folder:1_folder_resource_id", subdir_params.resource_id);
586 EXPECT_EQ("", subdir_params.document_extension);
587 EXPECT_TRUE(subdir_params.is_directory);
588 EXPECT_FALSE(subdir_params.is_root_directory);
589 EXPECT_FALSE(subdir_params.is_hosted_document);
590
591 // Regular file
592 GDataFileSystem::CopyMoveFileParams file_params;
593 EXPECT_TRUE(file_system_->GetCopyMoveFileParams(FilePath("gdata/File 1.txt"),
594 &file_params));
595 EXPECT_EQ("https://file_link_self/", file_params.self_url.spec());
596 EXPECT_EQ("https://file_content_url/", file_params.content_url.spec());
597 EXPECT_EQ("file:2_file_resource_id", file_params.resource_id);
598 EXPECT_EQ("", file_params.document_extension);
599 EXPECT_FALSE(file_params.is_directory);
600 EXPECT_FALSE(file_params.is_root_directory);
601 EXPECT_FALSE(file_params.is_hosted_document);
602
603 // Hosted document
604 GDataFileSystem::CopyMoveFileParams doc_params;
605 EXPECT_TRUE(file_system_->GetCopyMoveFileParams(
606 FilePath("gdata/Document 1.gdoc"), &doc_params));
607 EXPECT_EQ("https://3_document_self_link/", doc_params.self_url.spec());
608 EXPECT_EQ("https://3_document_content/", doc_params.content_url.spec());
609 EXPECT_EQ("document:5_document_resource_id", doc_params.resource_id);
610 EXPECT_EQ(".gdoc", doc_params.document_extension);
611 EXPECT_FALSE(doc_params.is_directory);
612 EXPECT_FALSE(doc_params.is_root_directory);
613 EXPECT_TRUE(doc_params.is_hosted_document);
614 }
615
616 TEST_F(GDataFileSystemTest, CopyFileFromSubDirectoryToRoot) {
617 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1"));
618 FilePath src_file_path(
619 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"));
620 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Test.log"));
621
622 LoadRootFeedDocument("root_feed.json");
623 LoadSubdirFeedDocument(src_parent_path, "subdir_feed.json");
624
625 GDataFileBase* src_file = NULL;
626 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
627 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
628 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
629 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
630 EXPECT_FALSE(src_file->self_url().is_empty());
631
632 GDataFileBase* src_parent = NULL;
633 EXPECT_TRUE((src_parent = FindFile(src_parent_path)) != NULL);
634 EXPECT_TRUE(src_parent->AsGDataDirectory() != NULL);
635 EXPECT_FALSE(src_parent->content_url().is_empty());
636
637 EXPECT_CALL(*mock_doc_service_,
638 RenameResource(src_file->self_url(),
639 FILE_PATH_LITERAL("Test.log"), _));
640 EXPECT_CALL(*mock_doc_service_,
641 RemoveResourceFromDirectory(src_parent->content_url(),
642 src_file->self_url(),
643 src_file_path_resource, _));
644
645 GDataFileSystem::FileOperationCallback callback =
646 base::Bind(&CallbackHelper::FileOperationCallback,
647 callback_helper_.get());
648
649 file_system_->Move(src_file_path, dest_file_path, callback);
650 message_loop_.RunAllPending(); // Wait to get our result.
651 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
652
653 EXPECT_TRUE(FindFile(src_file_path) == NULL);
654
655 GDataFileBase* dest_file = NULL;
656 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL);
657 EXPECT_EQ(dest_file, FindFileByResource(src_file_path_resource));
658 EXPECT_EQ(src_file, dest_file);
659 }
660
661 TEST_F(GDataFileSystemTest, RenameFile) {
662 FilePath src_file_path(
663 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"));
664 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1"));
665 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log"));
666
667 LoadRootFeedDocument("root_feed.json");
668 LoadSubdirFeedDocument(src_parent_path, "subdir_feed.json");
669
670 GDataFileBase* src_file = NULL;
671 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
672 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
673 std::string src_file_resource = src_file->AsGDataFile()->resource();
674 EXPECT_EQ(src_file, FindFileByResource(src_file_resource));
675
676 EXPECT_CALL(*mock_doc_service_,
677 RenameResource(src_file->self_url(),
678 FILE_PATH_LITERAL("Test.log"), _));
679
680 GDataFileSystem::FileOperationCallback callback =
681 base::Bind(&CallbackHelper::FileOperationCallback,
682 callback_helper_.get());
683
684 file_system_->Move(src_file_path, dest_file_path, callback);
685 message_loop_.RunAllPending(); // Wait to get our result.
686 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
687
688 EXPECT_TRUE(FindFile(src_file_path) == NULL);
689
690 GDataFileBase* dest_file = NULL;
691 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL);
692 EXPECT_EQ(dest_file, FindFileByResource(src_file_resource));
693 EXPECT_EQ(src_file, dest_file);
694 }
695
696 TEST_F(GDataFileSystemTest, MoveFileFromRootToSubDirectory) {
697 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt"));
698 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Directory 1"));
699 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log"));
700
701 LoadRootFeedDocument("root_feed.json");
702 LoadSubdirFeedDocument(dest_parent_path, "subdir_feed.json");
703
704 GDataFileBase* src_file = NULL;
705 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
706 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
707 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
708 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
709 EXPECT_FALSE(src_file->self_url().is_empty());
710
711 GDataFileBase* dest_parent = NULL;
712 EXPECT_TRUE((dest_parent = FindFile(dest_parent_path)) != NULL);
713 EXPECT_TRUE(dest_parent->AsGDataDirectory() != NULL);
714 EXPECT_FALSE(dest_parent->content_url().is_empty());
715
716 EXPECT_CALL(*mock_doc_service_,
717 RenameResource(src_file->self_url(),
718 FILE_PATH_LITERAL("Test.log"), _));
719 EXPECT_CALL(*mock_doc_service_,
720 AddResourceToDirectory(dest_parent->content_url(),
721 src_file->self_url(), _));
722
723 GDataFileSystem::FileOperationCallback callback =
724 base::Bind(&CallbackHelper::FileOperationCallback,
725 callback_helper_.get());
726
727 file_system_->Move(src_file_path, dest_file_path, callback);
728 message_loop_.RunAllPending(); // Wait to get our result.
729 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
730
731 EXPECT_TRUE(FindFile(src_file_path) == NULL);
732
733 GDataFileBase* dest_file = NULL;
734 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL);
735 EXPECT_EQ(dest_file, FindFileByResource(src_file_path_resource));
736 EXPECT_EQ(src_file, dest_file);
737 }
738
739 TEST_F(GDataFileSystemTest, MoveFileFromSubDirectoryToRoot) {
740 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1"));
741 FilePath src_file_path(
742 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"));
743 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Test.log"));
744
745 LoadRootFeedDocument("root_feed.json");
746 LoadSubdirFeedDocument(src_parent_path, "subdir_feed.json");
747
748 GDataFileBase* src_file = NULL;
749 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
750 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
751 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
752 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
753 EXPECT_FALSE(src_file->self_url().is_empty());
754
755 GDataFileBase* src_parent = NULL;
756 EXPECT_TRUE((src_parent = FindFile(src_parent_path)) != NULL);
757 EXPECT_TRUE(src_parent->AsGDataDirectory() != NULL);
758 EXPECT_FALSE(src_parent->content_url().is_empty());
759
760 EXPECT_CALL(*mock_doc_service_,
761 RenameResource(src_file->self_url(),
762 FILE_PATH_LITERAL("Test.log"), _));
763 EXPECT_CALL(*mock_doc_service_,
764 RemoveResourceFromDirectory(src_parent->content_url(),
765 src_file->self_url(),
766 src_file_path_resource, _));
767
768 GDataFileSystem::FileOperationCallback callback =
769 base::Bind(&CallbackHelper::FileOperationCallback,
770 callback_helper_.get());
771
772 file_system_->Move(src_file_path, dest_file_path, callback);
773 message_loop_.RunAllPending(); // Wait to get our result.
774 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
775
776 EXPECT_TRUE(FindFile(src_file_path) == NULL);
777
778 GDataFileBase* dest_file = NULL;
779 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL);
780 EXPECT_EQ(dest_file, FindFileByResource(src_file_path_resource));
781 EXPECT_EQ(src_file, dest_file);
782 }
783
784 TEST_F(GDataFileSystemTest, MoveFileBetweenSubDirectories) {
785 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1"));
786 FilePath src_file_path(
787 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"));
788 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/New Folder 1"));
789 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/New Folder 1/Test.log"));
790 FilePath interim_file_path(FILE_PATH_LITERAL("gdata/Test.log"));
791
792 LoadRootFeedDocument("root_feed.json");
793 LoadSubdirFeedDocument(src_parent_path, "subdir_feed.json");
794 AddDirectoryFromFile(dest_parent_path, "directory_entry_atom.json");
795
796 GDataFileBase* src_file = NULL;
797 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
798 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
799 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
800 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
801 EXPECT_FALSE(src_file->self_url().is_empty());
802
803 GDataFileBase* src_parent = NULL;
804 EXPECT_TRUE((src_parent = FindFile(src_parent_path)) != NULL);
805 EXPECT_TRUE(src_parent->AsGDataDirectory() != NULL);
806 EXPECT_FALSE(src_parent->content_url().is_empty());
807
808 GDataFileBase* dest_parent = NULL;
809 EXPECT_TRUE((dest_parent = FindFile(dest_parent_path)) != NULL);
810 EXPECT_TRUE(dest_parent->AsGDataDirectory() != NULL);
811 EXPECT_FALSE(dest_parent->content_url().is_empty());
812
813 EXPECT_TRUE(FindFile(interim_file_path) == NULL);
814
815 EXPECT_CALL(*mock_doc_service_,
816 RenameResource(src_file->self_url(),
817 FILE_PATH_LITERAL("Test.log"), _));
818 EXPECT_CALL(*mock_doc_service_,
819 RemoveResourceFromDirectory(src_parent->content_url(),
820 src_file->self_url(),
821 src_file_path_resource, _));
822 EXPECT_CALL(*mock_doc_service_,
823 AddResourceToDirectory(dest_parent->content_url(),
824 src_file->self_url(), _));
825
826 GDataFileSystem::FileOperationCallback callback =
827 base::Bind(&CallbackHelper::FileOperationCallback,
828 callback_helper_.get());
829
830 file_system_->Move(src_file_path, dest_file_path, callback);
831 message_loop_.RunAllPending(); // Wait to get our result.
832 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_);
833
834 EXPECT_TRUE(FindFile(src_file_path) == NULL);
835 EXPECT_TRUE(FindFile(interim_file_path) == NULL);
836
837 GDataFileBase* dest_file = NULL;
838 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL);
839 EXPECT_EQ(dest_file, FindFileByResource(src_file_path_resource));
840 EXPECT_EQ(src_file, dest_file);
841 }
842
843 TEST_F(GDataFileSystemTest, MoveNotExistingFile) {
844 FilePath src_file_path(FILE_PATH_LITERAL("gdata/Dummy file.txt"));
845 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Test.log"));
846
847 LoadRootFeedDocument("root_feed.json");
848
849 GDataFileBase* src_file = NULL;
850 EXPECT_TRUE((src_file = FindFile(src_file_path)) == NULL);
851
852 GDataFileSystem::FileOperationCallback callback =
853 base::Bind(&CallbackHelper::FileOperationCallback,
854 callback_helper_.get());
855
856 file_system_->Move(src_file_path, dest_file_path, callback);
857 message_loop_.RunAllPending(); // Wait to get our result
858 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_);
859
860 EXPECT_TRUE(FindFile(src_file_path) == NULL);
861 EXPECT_TRUE(FindFile(dest_file_path) == NULL);
862 }
863
864 TEST_F(GDataFileSystemTest, MoveFileToNonExistingDirectory) {
865 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt"));
866 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Dummy"));
867 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Dummy/Test.log"));
868
869 LoadRootFeedDocument("root_feed.json");
870
871 GDataFileBase* src_file = NULL;
872 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
873 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
874 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
875 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
876 EXPECT_FALSE(src_file->self_url().is_empty());
877
878 EXPECT_TRUE(FindFile(dest_parent_path) == NULL);
879
880 GDataFileSystem::FileOperationCallback callback =
881 base::Bind(&CallbackHelper::FileOperationCallback,
882 callback_helper_.get());
883
884 file_system_->Move(src_file_path, dest_file_path, callback);
885 message_loop_.RunAllPending(); // Wait to get our result.
886 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_);
887
888 EXPECT_EQ(src_file, FindFile(src_file_path));
889 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
890
891 EXPECT_TRUE(FindFile(dest_parent_path) == NULL);
892 EXPECT_TRUE(FindFile(dest_file_path) == NULL);
893 }
894
895 // Test the case where the parent of |dest_file_path| is a existing file,
896 // not a directory.
897 TEST_F(GDataFileSystemTest, MoveFileToInvalidPath) {
898 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt"));
899 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Duplicate Name.txt"));
900 FilePath dest_file_path(FILE_PATH_LITERAL(
901 "gdata/Duplicate Name.txt/Test.log"));
902
903 LoadRootFeedDocument("root_feed.json");
904
905 GDataFileBase* src_file = NULL;
906 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL);
907 EXPECT_TRUE(src_file->AsGDataFile() != NULL);
908 std::string src_file_path_resource = src_file->AsGDataFile()->resource();
909 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
910 EXPECT_FALSE(src_file->self_url().is_empty());
911
912 GDataFileBase* dest_parent = NULL;
913 EXPECT_TRUE((dest_parent = FindFile(dest_parent_path)) != NULL);
914 EXPECT_TRUE(dest_parent->AsGDataFile() != NULL);
915
916 GDataFileSystem::FileOperationCallback callback =
917 base::Bind(&CallbackHelper::FileOperationCallback,
918 callback_helper_.get());
919
920 file_system_->Move(src_file_path, dest_file_path, callback);
921 message_loop_.RunAllPending(); // Wait to get our result.
922 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY,
923 callback_helper_->last_error_);
924
925 EXPECT_EQ(src_file, FindFile(src_file_path));
926 EXPECT_EQ(src_file, FindFileByResource(src_file_path_resource));
927 EXPECT_EQ(dest_parent, FindFile(dest_parent_path));
928
929 EXPECT_TRUE(FindFile(dest_file_path) == NULL);
930 }
931
542 TEST_F(GDataFileSystemTest, RemoveFiles) { 932 TEST_F(GDataFileSystemTest, RemoveFiles) {
543 LoadRootFeedDocument("root_feed.json"); 933 LoadRootFeedDocument("root_feed.json");
544 LoadSubdirFeedDocument(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")), 934 LoadSubdirFeedDocument(FilePath(FILE_PATH_LITERAL("gdata/Directory 1")),
545 "subdir_feed.json"); 935 "subdir_feed.json");
546 936
547 FilePath nonexisting_file(FILE_PATH_LITERAL("gdata/Dummy file.txt")); 937 FilePath nonexisting_file(FILE_PATH_LITERAL("gdata/Dummy file.txt"));
548 FilePath file_in_root(FILE_PATH_LITERAL("gdata/File 1.txt")); 938 FilePath file_in_root(FILE_PATH_LITERAL("gdata/File 1.txt"));
549 FilePath dir_in_root(FILE_PATH_LITERAL("gdata/Directory 1")); 939 FilePath dir_in_root(FILE_PATH_LITERAL("gdata/Directory 1"));
550 FilePath file_in_subdir( 940 FilePath file_in_subdir(
551 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); 941 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt"));
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 1172
783 virtual void SetUp() OVERRIDE { 1173 virtual void SetUp() OVERRIDE {
784 profile_.reset(new TestingProfile); 1174 profile_.reset(new TestingProfile);
785 // TODO(kuan): Create some cache files to trigger scanning of cache dir, 1175 // TODO(kuan): Create some cache files to trigger scanning of cache dir,
786 // and write tests to check the cache map. 1176 // and write tests to check the cache map.
787 Init(profile_.get()); 1177 Init(profile_.get());
788 } 1178 }
789 }; 1179 };
790 1180
791 } // namespace gdata 1181 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698