OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 ¶ms)); | |
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 Loading... | |
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 |
OLD | NEW |