| 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/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 | 887 |
| 888 // Creates a proto file representing a filesystem with directories: | 888 // Creates a proto file representing a filesystem with directories: |
| 889 // gdata, gdata/Dir1, gdata/Dir1/SubDir2 | 889 // gdata, gdata/Dir1, gdata/Dir1/SubDir2 |
| 890 // and files | 890 // and files |
| 891 // gdata/File1, gdata/Dir1/File2, gdata/Dir1/SubDir2/File3 | 891 // gdata/File1, gdata/Dir1/File2, gdata/Dir1/SubDir2/File3 |
| 892 void SaveTestFileSystem() { | 892 void SaveTestFileSystem() { |
| 893 GDataRootDirectoryProto root; | 893 GDataRootDirectoryProto root; |
| 894 GDataDirectoryProto* root_dir = root.mutable_gdata_directory(); | 894 GDataDirectoryProto* root_dir = root.mutable_gdata_directory(); |
| 895 GDataEntryProto* file_base = root_dir->mutable_gdata_entry(); | 895 GDataEntryProto* file_base = root_dir->mutable_gdata_entry(); |
| 896 PlatformFileInfoProto* platform_info = file_base->mutable_file_info(); | 896 PlatformFileInfoProto* platform_info = file_base->mutable_file_info(); |
| 897 file_base->set_file_name("gdata"); | 897 file_base->set_title("gdata"); |
| 898 platform_info->set_is_directory(true); | 898 platform_info->set_is_directory(true); |
| 899 | 899 |
| 900 // gdata/File1 | 900 // gdata/File1 |
| 901 GDataFileProto* file = root_dir->add_child_files(); | 901 GDataFileProto* file = root_dir->add_child_files(); |
| 902 file_base = file->mutable_gdata_entry(); | 902 file_base = file->mutable_gdata_entry(); |
| 903 platform_info = file_base->mutable_file_info(); | 903 platform_info = file_base->mutable_file_info(); |
| 904 file_base->set_file_name("File1"); | 904 file_base->set_title("File1"); |
| 905 platform_info->set_is_directory(false); | 905 platform_info->set_is_directory(false); |
| 906 platform_info->set_size(1048576); | 906 platform_info->set_size(1048576); |
| 907 | 907 |
| 908 // gdata/Dir1 | 908 // gdata/Dir1 |
| 909 GDataDirectoryProto* dir1 = root_dir->add_child_directories(); | 909 GDataDirectoryProto* dir1 = root_dir->add_child_directories(); |
| 910 file_base = dir1->mutable_gdata_entry(); | 910 file_base = dir1->mutable_gdata_entry(); |
| 911 platform_info = file_base->mutable_file_info(); | 911 platform_info = file_base->mutable_file_info(); |
| 912 file_base->set_file_name("Dir1"); | 912 file_base->set_title("Dir1"); |
| 913 platform_info->set_is_directory(true); | 913 platform_info->set_is_directory(true); |
| 914 | 914 |
| 915 // gdata/Dir1/File2 | 915 // gdata/Dir1/File2 |
| 916 file = dir1->add_child_files(); | 916 file = dir1->add_child_files(); |
| 917 file_base = file->mutable_gdata_entry(); | 917 file_base = file->mutable_gdata_entry(); |
| 918 platform_info = file_base->mutable_file_info(); | 918 platform_info = file_base->mutable_file_info(); |
| 919 file_base->set_file_name("File2"); | 919 file_base->set_title("File2"); |
| 920 platform_info->set_is_directory(false); | 920 platform_info->set_is_directory(false); |
| 921 platform_info->set_size(555); | 921 platform_info->set_size(555); |
| 922 | 922 |
| 923 // gdata/Dir1/SubDir2 | 923 // gdata/Dir1/SubDir2 |
| 924 GDataDirectoryProto* dir2 = dir1->add_child_directories(); | 924 GDataDirectoryProto* dir2 = dir1->add_child_directories(); |
| 925 file_base = dir2->mutable_gdata_entry(); | 925 file_base = dir2->mutable_gdata_entry(); |
| 926 platform_info = file_base->mutable_file_info(); | 926 platform_info = file_base->mutable_file_info(); |
| 927 file_base->set_file_name("SubDir2"); | 927 file_base->set_title("SubDir2"); |
| 928 platform_info->set_is_directory(true); | 928 platform_info->set_is_directory(true); |
| 929 | 929 |
| 930 // gdata/Dir1/SubDir2/File3 | 930 // gdata/Dir1/SubDir2/File3 |
| 931 file = dir2->add_child_files(); | 931 file = dir2->add_child_files(); |
| 932 file_base = file->mutable_gdata_entry(); | 932 file_base = file->mutable_gdata_entry(); |
| 933 platform_info = file_base->mutable_file_info(); | 933 platform_info = file_base->mutable_file_info(); |
| 934 file_base->set_file_name("File3"); | 934 file_base->set_title("File3"); |
| 935 platform_info->set_is_directory(false); | 935 platform_info->set_is_directory(false); |
| 936 platform_info->set_size(12345); | 936 platform_info->set_size(12345); |
| 937 | 937 |
| 938 // Write this proto out to GCache/vi/meta/file_system.pb | 938 // Write this proto out to GCache/vi/meta/file_system.pb |
| 939 std::string serialized_proto; | 939 std::string serialized_proto; |
| 940 ASSERT_TRUE(root.SerializeToString(&serialized_proto)); | 940 ASSERT_TRUE(root.SerializeToString(&serialized_proto)); |
| 941 ASSERT_TRUE(!serialized_proto.empty()); | 941 ASSERT_TRUE(!serialized_proto.empty()); |
| 942 | 942 |
| 943 FilePath cache_dir_path = profile_->GetPath().Append( | 943 FilePath cache_dir_path = profile_->GetPath().Append( |
| 944 FILE_PATH_LITERAL("GCache/v1/meta/")); | 944 FILE_PATH_LITERAL("GCache/v1/meta/")); |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1472 callback_helper_->last_error_); | 1472 callback_helper_->last_error_); |
| 1473 | 1473 |
| 1474 EXPECT_EQ(src_file, FindEntry(src_file_path)); | 1474 EXPECT_EQ(src_file, FindEntry(src_file_path)); |
| 1475 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_path_resource)); | 1475 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_path_resource)); |
| 1476 EXPECT_EQ(dest_parent, FindEntry(dest_parent_path)); | 1476 EXPECT_EQ(dest_parent, FindEntry(dest_parent_path)); |
| 1477 | 1477 |
| 1478 EXPECT_TRUE(FindEntry(dest_file_path) == NULL); | 1478 EXPECT_TRUE(FindEntry(dest_file_path) == NULL); |
| 1479 } | 1479 } |
| 1480 | 1480 |
| 1481 TEST_F(GDataFileSystemTest, RenameFile) { | 1481 TEST_F(GDataFileSystemTest, RenameFile) { |
| 1482 FilePath src_file_path( | 1482 const FilePath src_file_path( |
| 1483 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); | 1483 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); |
| 1484 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); | 1484 const FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); |
| 1485 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); | 1485 const FilePath dest_file_path( |
| 1486 FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); |
| 1486 | 1487 |
| 1487 LoadRootFeedDocument("root_feed.json"); | 1488 LoadRootFeedDocument("root_feed.json"); |
| 1488 | 1489 |
| 1489 GDataEntry* src_file = NULL; | 1490 GDataEntry* src_file = FindEntry(src_file_path); |
| 1490 EXPECT_TRUE((src_file = FindEntry(src_file_path)) != NULL); | 1491 EXPECT_TRUE(src_file != NULL); |
| 1491 EXPECT_TRUE(src_file->AsGDataFile() != NULL); | 1492 EXPECT_TRUE(src_file->AsGDataFile() != NULL); |
| 1492 std::string src_file_resource = src_file->AsGDataFile()->resource_id(); | 1493 std::string src_file_resource = src_file->AsGDataFile()->resource_id(); |
| 1493 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_resource)); | 1494 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_resource)); |
| 1494 | 1495 |
| 1495 EXPECT_CALL(*mock_doc_service_, | 1496 EXPECT_CALL(*mock_doc_service_, |
| 1496 RenameResource(src_file->edit_url(), | 1497 RenameResource(src_file->edit_url(), |
| 1497 FILE_PATH_LITERAL("Test.log"), _)); | 1498 FILE_PATH_LITERAL("Test.log"), _)); |
| 1498 | 1499 |
| 1499 FileOperationCallback callback = | 1500 FileOperationCallback callback = |
| 1500 base::Bind(&CallbackHelper::FileOperationCallback, | 1501 base::Bind(&CallbackHelper::FileOperationCallback, |
| 1501 callback_helper_.get()); | 1502 callback_helper_.get()); |
| 1502 | 1503 |
| 1503 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1504 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1504 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); | 1505 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1505 | 1506 |
| 1506 file_system_->Move(src_file_path, dest_file_path, callback); | 1507 file_system_->Move(src_file_path, dest_file_path, callback); |
| 1507 message_loop_.RunAllPending(); | 1508 message_loop_.RunAllPending(); |
| 1508 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1509 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
| 1509 | 1510 |
| 1510 EXPECT_TRUE(FindEntry(src_file_path) == NULL); | 1511 EXPECT_TRUE(FindEntry(src_file_path) == NULL); |
| 1511 | 1512 |
| 1512 GDataEntry* dest_file = NULL; | 1513 GDataEntry* dest_file = FindEntry(dest_file_path); |
| 1513 EXPECT_TRUE((dest_file = FindEntry(dest_file_path)) != NULL); | 1514 EXPECT_TRUE(dest_file != NULL); |
| 1514 EXPECT_EQ(dest_file, FindEntryByResourceId(src_file_resource)); | 1515 EXPECT_EQ(dest_file, FindEntryByResourceId(src_file_resource)); |
| 1515 EXPECT_EQ(src_file, dest_file); | 1516 EXPECT_EQ(src_file, dest_file); |
| 1516 } | 1517 } |
| 1517 | 1518 |
| 1518 TEST_F(GDataFileSystemTest, MoveFileFromRootToSubDirectory) { | 1519 TEST_F(GDataFileSystemTest, MoveFileFromRootToSubDirectory) { |
| 1519 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt")); | 1520 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt")); |
| 1520 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); | 1521 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); |
| 1521 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); | 1522 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); |
| 1522 | 1523 |
| 1523 LoadRootFeedDocument("root_feed.json"); | 1524 LoadRootFeedDocument("root_feed.json"); |
| (...skipping 1520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3044 EXPECT_EQ(1, num_callback_invocations_); | 3045 EXPECT_EQ(1, num_callback_invocations_); |
| 3045 EXPECT_TRUE(CacheEntryExists(resource_id, md5)); | 3046 EXPECT_TRUE(CacheEntryExists(resource_id, md5)); |
| 3046 | 3047 |
| 3047 // Try to remove the file. | 3048 // Try to remove the file. |
| 3048 num_callback_invocations_ = 0; | 3049 num_callback_invocations_ = 0; |
| 3049 TestRemoveFromCache(resource_id, base::PLATFORM_FILE_OK); | 3050 TestRemoveFromCache(resource_id, base::PLATFORM_FILE_OK); |
| 3050 EXPECT_EQ(1, num_callback_invocations_); | 3051 EXPECT_EQ(1, num_callback_invocations_); |
| 3051 } | 3052 } |
| 3052 | 3053 |
| 3053 } // namespace gdata | 3054 } // namespace gdata |
| OLD | NEW |