| 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 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 | 884 |
| 885 // Creates a proto file representing a filesystem with directories: | 885 // Creates a proto file representing a filesystem with directories: |
| 886 // gdata, gdata/Dir1, gdata/Dir1/SubDir2 | 886 // gdata, gdata/Dir1, gdata/Dir1/SubDir2 |
| 887 // and files | 887 // and files |
| 888 // gdata/File1, gdata/Dir1/File2, gdata/Dir1/SubDir2/File3 | 888 // gdata/File1, gdata/Dir1/File2, gdata/Dir1/SubDir2/File3 |
| 889 void SaveTestFileSystem() { | 889 void SaveTestFileSystem() { |
| 890 GDataRootDirectoryProto root; | 890 GDataRootDirectoryProto root; |
| 891 GDataDirectoryProto* root_dir = root.mutable_gdata_directory(); | 891 GDataDirectoryProto* root_dir = root.mutable_gdata_directory(); |
| 892 GDataEntryProto* file_base = root_dir->mutable_gdata_entry(); | 892 GDataEntryProto* file_base = root_dir->mutable_gdata_entry(); |
| 893 PlatformFileInfoProto* platform_info = file_base->mutable_file_info(); | 893 PlatformFileInfoProto* platform_info = file_base->mutable_file_info(); |
| 894 file_base->set_file_name("gdata"); | 894 file_base->set_title("gdata"); |
| 895 platform_info->set_is_directory(true); | 895 platform_info->set_is_directory(true); |
| 896 | 896 |
| 897 // gdata/File1 | 897 // gdata/File1 |
| 898 GDataFileProto* file = root_dir->add_child_files(); | 898 GDataFileProto* file = root_dir->add_child_files(); |
| 899 file_base = file->mutable_gdata_entry(); | 899 file_base = file->mutable_gdata_entry(); |
| 900 platform_info = file_base->mutable_file_info(); | 900 platform_info = file_base->mutable_file_info(); |
| 901 file_base->set_file_name("File1"); | 901 file_base->set_title("File1"); |
| 902 platform_info->set_is_directory(false); | 902 platform_info->set_is_directory(false); |
| 903 platform_info->set_size(1048576); | 903 platform_info->set_size(1048576); |
| 904 | 904 |
| 905 // gdata/Dir1 | 905 // gdata/Dir1 |
| 906 GDataDirectoryProto* dir1 = root_dir->add_child_directories(); | 906 GDataDirectoryProto* dir1 = root_dir->add_child_directories(); |
| 907 file_base = dir1->mutable_gdata_entry(); | 907 file_base = dir1->mutable_gdata_entry(); |
| 908 platform_info = file_base->mutable_file_info(); | 908 platform_info = file_base->mutable_file_info(); |
| 909 file_base->set_file_name("Dir1"); | 909 file_base->set_title("Dir1"); |
| 910 platform_info->set_is_directory(true); | 910 platform_info->set_is_directory(true); |
| 911 | 911 |
| 912 // gdata/Dir1/File2 | 912 // gdata/Dir1/File2 |
| 913 file = dir1->add_child_files(); | 913 file = dir1->add_child_files(); |
| 914 file_base = file->mutable_gdata_entry(); | 914 file_base = file->mutable_gdata_entry(); |
| 915 platform_info = file_base->mutable_file_info(); | 915 platform_info = file_base->mutable_file_info(); |
| 916 file_base->set_file_name("File2"); | 916 file_base->set_title("File2"); |
| 917 platform_info->set_is_directory(false); | 917 platform_info->set_is_directory(false); |
| 918 platform_info->set_size(555); | 918 platform_info->set_size(555); |
| 919 | 919 |
| 920 // gdata/Dir1/SubDir2 | 920 // gdata/Dir1/SubDir2 |
| 921 GDataDirectoryProto* dir2 = dir1->add_child_directories(); | 921 GDataDirectoryProto* dir2 = dir1->add_child_directories(); |
| 922 file_base = dir2->mutable_gdata_entry(); | 922 file_base = dir2->mutable_gdata_entry(); |
| 923 platform_info = file_base->mutable_file_info(); | 923 platform_info = file_base->mutable_file_info(); |
| 924 file_base->set_file_name("SubDir2"); | 924 file_base->set_title("SubDir2"); |
| 925 platform_info->set_is_directory(true); | 925 platform_info->set_is_directory(true); |
| 926 | 926 |
| 927 // gdata/Dir1/SubDir2/File3 | 927 // gdata/Dir1/SubDir2/File3 |
| 928 file = dir2->add_child_files(); | 928 file = dir2->add_child_files(); |
| 929 file_base = file->mutable_gdata_entry(); | 929 file_base = file->mutable_gdata_entry(); |
| 930 platform_info = file_base->mutable_file_info(); | 930 platform_info = file_base->mutable_file_info(); |
| 931 file_base->set_file_name("File3"); | 931 file_base->set_title("File3"); |
| 932 platform_info->set_is_directory(false); | 932 platform_info->set_is_directory(false); |
| 933 platform_info->set_size(12345); | 933 platform_info->set_size(12345); |
| 934 | 934 |
| 935 // Write this proto out to GCache/vi/meta/file_system.pb | 935 // Write this proto out to GCache/vi/meta/file_system.pb |
| 936 std::string serialized_proto; | 936 std::string serialized_proto; |
| 937 ASSERT_TRUE(root.SerializeToString(&serialized_proto)); | 937 ASSERT_TRUE(root.SerializeToString(&serialized_proto)); |
| 938 ASSERT_TRUE(!serialized_proto.empty()); | 938 ASSERT_TRUE(!serialized_proto.empty()); |
| 939 | 939 |
| 940 FilePath cache_dir_path = profile_->GetPath().Append( | 940 FilePath cache_dir_path = profile_->GetPath().Append( |
| 941 FILE_PATH_LITERAL("GCache/v1/meta/")); | 941 FILE_PATH_LITERAL("GCache/v1/meta/")); |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 callback_helper_->last_error_); | 1376 callback_helper_->last_error_); |
| 1377 | 1377 |
| 1378 EXPECT_EQ(src_file, FindEntry(src_file_path)); | 1378 EXPECT_EQ(src_file, FindEntry(src_file_path)); |
| 1379 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_path_resource)); | 1379 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_path_resource)); |
| 1380 EXPECT_EQ(dest_parent, FindEntry(dest_parent_path)); | 1380 EXPECT_EQ(dest_parent, FindEntry(dest_parent_path)); |
| 1381 | 1381 |
| 1382 EXPECT_TRUE(FindEntry(dest_file_path) == NULL); | 1382 EXPECT_TRUE(FindEntry(dest_file_path) == NULL); |
| 1383 } | 1383 } |
| 1384 | 1384 |
| 1385 TEST_F(GDataFileSystemTest, RenameFile) { | 1385 TEST_F(GDataFileSystemTest, RenameFile) { |
| 1386 FilePath src_file_path( | 1386 const FilePath src_file_path( |
| 1387 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); | 1387 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); |
| 1388 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); | 1388 const FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); |
| 1389 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); | 1389 const FilePath dest_file_path( |
| 1390 FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); |
| 1390 | 1391 |
| 1391 LoadRootFeedDocument("root_feed.json"); | 1392 LoadRootFeedDocument("root_feed.json"); |
| 1392 | 1393 |
| 1393 GDataEntry* src_file = NULL; | 1394 GDataEntry* src_file = FindEntry(src_file_path); |
| 1394 EXPECT_TRUE((src_file = FindEntry(src_file_path)) != NULL); | 1395 EXPECT_TRUE(src_file != NULL); |
| 1395 EXPECT_TRUE(src_file->AsGDataFile() != NULL); | 1396 EXPECT_TRUE(src_file->AsGDataFile() != NULL); |
| 1396 std::string src_file_resource = src_file->AsGDataFile()->resource_id(); | 1397 std::string src_file_resource = src_file->AsGDataFile()->resource_id(); |
| 1397 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_resource)); | 1398 EXPECT_EQ(src_file, FindEntryByResourceId(src_file_resource)); |
| 1398 | 1399 |
| 1399 EXPECT_CALL(*mock_doc_service_, | 1400 EXPECT_CALL(*mock_doc_service_, |
| 1400 RenameResource(src_file->edit_url(), | 1401 RenameResource(src_file->edit_url(), |
| 1401 FILE_PATH_LITERAL("Test.log"), _)); | 1402 FILE_PATH_LITERAL("Test.log"), _)); |
| 1402 | 1403 |
| 1403 FileOperationCallback callback = | 1404 FileOperationCallback callback = |
| 1404 base::Bind(&CallbackHelper::FileOperationCallback, | 1405 base::Bind(&CallbackHelper::FileOperationCallback, |
| 1405 callback_helper_.get()); | 1406 callback_helper_.get()); |
| 1406 | 1407 |
| 1407 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1408 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
| 1408 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); | 1409 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1409 | 1410 |
| 1410 file_system_->Move(src_file_path, dest_file_path, callback); | 1411 file_system_->Move(src_file_path, dest_file_path, callback); |
| 1411 message_loop_.RunAllPending(); | 1412 message_loop_.RunAllPending(); |
| 1412 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1413 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
| 1413 | 1414 |
| 1414 EXPECT_TRUE(FindEntry(src_file_path) == NULL); | 1415 EXPECT_TRUE(FindEntry(src_file_path) == NULL); |
| 1415 | 1416 |
| 1416 GDataEntry* dest_file = NULL; | 1417 GDataEntry* dest_file = FindEntry(dest_file_path); |
| 1417 EXPECT_TRUE((dest_file = FindEntry(dest_file_path)) != NULL); | 1418 EXPECT_TRUE(dest_file != NULL); |
| 1418 EXPECT_EQ(dest_file, FindEntryByResourceId(src_file_resource)); | 1419 EXPECT_EQ(dest_file, FindEntryByResourceId(src_file_resource)); |
| 1419 EXPECT_EQ(src_file, dest_file); | 1420 EXPECT_EQ(src_file, dest_file); |
| 1420 } | 1421 } |
| 1421 | 1422 |
| 1422 TEST_F(GDataFileSystemTest, MoveFileFromRootToSubDirectory) { | 1423 TEST_F(GDataFileSystemTest, MoveFileFromRootToSubDirectory) { |
| 1423 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt")); | 1424 FilePath src_file_path(FILE_PATH_LITERAL("gdata/File 1.txt")); |
| 1424 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); | 1425 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); |
| 1425 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); | 1426 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/Directory 1/Test.log")); |
| 1426 | 1427 |
| 1427 LoadRootFeedDocument("root_feed.json"); | 1428 LoadRootFeedDocument("root_feed.json"); |
| (...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2954 EXPECT_EQ(1, num_callback_invocations_); | 2955 EXPECT_EQ(1, num_callback_invocations_); |
| 2955 EXPECT_TRUE(CacheEntryExists(resource_id, md5)); | 2956 EXPECT_TRUE(CacheEntryExists(resource_id, md5)); |
| 2956 | 2957 |
| 2957 // Try to remove the file. | 2958 // Try to remove the file. |
| 2958 num_callback_invocations_ = 0; | 2959 num_callback_invocations_ = 0; |
| 2959 TestRemoveFromCache(resource_id, base::PLATFORM_FILE_OK); | 2960 TestRemoveFromCache(resource_id, base::PLATFORM_FILE_OK); |
| 2960 EXPECT_EQ(1, num_callback_invocations_); | 2961 EXPECT_EQ(1, num_callback_invocations_); |
| 2961 } | 2962 } |
| 2962 | 2963 |
| 2963 } // namespace gdata | 2964 } // namespace gdata |
| OLD | NEW |