Chromium Code Reviews| Index: chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
| diff --git a/chrome/browser/chromeos/drive/drive_file_system_unittest.cc b/chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
| index a42db24029c22432d5cefe4df0dd90ada6a75b2d..ca8ead7f977debabbe363e26e475c3e1b41886b4 100644 |
| --- a/chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
| +++ b/chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
| @@ -399,7 +399,7 @@ class DriveFileSystemTest : public testing::Test { |
| USE_SERVER_TIMESTAMP, |
| }; |
| - // Creates a proto file representing a filesystem with directories: |
| + // Saves a file representing a filesystem with directories: |
| // drive, drive/Dir1, drive/Dir1/SubDir2 |
| // and files |
| // drive/File1, drive/Dir1/File2, drive/Dir1/SubDir2/File3. |
| @@ -407,81 +407,96 @@ class DriveFileSystemTest : public testing::Test { |
| // equal to that of "account_metadata.json" test data, indicating the cache is |
| // holding the latest file system info. |
| void SaveTestFileSystem(SaveTestFileSystemParam param) { |
| - DriveRootDirectoryProto root; |
| - root.set_version(kProtoVersion); |
| - root.set_largest_changestamp(param == USE_SERVER_TIMESTAMP ? 654321 : 1); |
| - DriveDirectoryProto* root_dir = root.mutable_drive_directory(); |
| - DriveEntryProto* dir_base = root_dir->mutable_drive_entry(); |
| - PlatformFileInfoProto* platform_info = dir_base->mutable_file_info(); |
| - dir_base->set_title("drive"); |
| - dir_base->set_resource_id(fake_drive_service_->GetRootResourceId()); |
| - dir_base->set_upload_url("http://resumable-create-media/1"); |
| - platform_info->set_is_directory(true); |
| + const std::string root_resource_id = |
| + fake_drive_service_->GetRootResourceId(); |
| + DriveResourceMetadata resource_metadata(root_resource_id, |
| + blocking_task_runner_); |
| + |
| + DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| + resource_metadata.SetLargestChangestamp( |
| + param == USE_SERVER_TIMESTAMP ? 654321 : 1, |
| + google_apis::test_util::CreateCopyResultCallback(&error)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
|
hidehiko
2013/03/18 08:53:08
This is a kind of set up, how about checking the e
hashimoto
2013/03/18 09:10:05
Done.
Return bool and assert the result.
|
| // drive/File1 |
| - DriveEntryProto* file = root_dir->add_child_files(); |
| - file->set_title("File1"); |
| - file->set_resource_id("resource_id:File1"); |
| - file->set_parent_resource_id(root_dir->drive_entry().resource_id()); |
| - file->set_upload_url("http://resumable-edit-media/1"); |
| - file->mutable_file_specific_info()->set_file_md5("md5"); |
| - platform_info = file->mutable_file_info(); |
| - platform_info->set_is_directory(false); |
| - platform_info->set_size(1048576); |
| + DriveEntryProto file1; |
| + file1.set_title("File1"); |
| + file1.set_resource_id("resource_id:File1"); |
| + file1.set_parent_resource_id(root_resource_id); |
| + file1.set_upload_url("http://resumable-edit-media/1"); |
| + file1.mutable_file_specific_info()->set_file_md5("md5"); |
| + file1.mutable_file_info()->set_is_directory(false); |
| + file1.mutable_file_info()->set_size(1048576); |
| + base::FilePath file_path; |
| + resource_metadata.AddEntry( |
| + file1, |
| + google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
| // drive/Dir1 |
| - DriveDirectoryProto* dir1 = root_dir->add_child_directories(); |
| - dir_base = dir1->mutable_drive_entry(); |
| - dir_base->set_title("Dir1"); |
| - dir_base->set_resource_id("resource_id:Dir1"); |
| - dir_base->set_parent_resource_id(root_dir->drive_entry().resource_id()); |
| - dir_base->set_upload_url("http://resumable-create-media/2"); |
| - platform_info = dir_base->mutable_file_info(); |
| - platform_info->set_is_directory(true); |
| + DriveEntryProto dir1; |
| + dir1.set_title("Dir1"); |
| + dir1.set_resource_id("resource_id:Dir1"); |
| + dir1.set_parent_resource_id(root_resource_id); |
| + dir1.set_upload_url("http://resumable-create-media/2"); |
| + dir1.mutable_file_info()->set_is_directory(true); |
| + resource_metadata.AddEntry( |
| + dir1, |
| + google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
| // drive/Dir1/File2 |
| - file = dir1->add_child_files(); |
| - file->set_title("File2"); |
| - file->set_resource_id("resource_id:File2"); |
| - file->set_parent_resource_id(dir1->drive_entry().resource_id()); |
| - file->set_upload_url("http://resumable-edit-media/2"); |
| - file->mutable_file_specific_info()->set_file_md5("md5"); |
| - platform_info = file->mutable_file_info(); |
| - platform_info->set_is_directory(false); |
| - platform_info->set_size(555); |
| + DriveEntryProto file2; |
| + file2.set_title("File2"); |
| + file2.set_resource_id("resource_id:File2"); |
| + file2.set_parent_resource_id(dir1.resource_id()); |
| + file2.set_upload_url("http://resumable-edit-media/2"); |
| + file2.mutable_file_specific_info()->set_file_md5("md5"); |
| + file2.mutable_file_info()->set_is_directory(false); |
| + file2.mutable_file_info()->set_size(555); |
| + resource_metadata.AddEntry( |
| + file2, |
| + google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
| // drive/Dir1/SubDir2 |
| - DriveDirectoryProto* dir2 = dir1->add_child_directories(); |
| - dir_base = dir2->mutable_drive_entry(); |
| - dir_base->set_title("SubDir2"); |
| - dir_base->set_resource_id("resource_id:SubDir2"); |
| - dir_base->set_parent_resource_id(dir1->drive_entry().resource_id()); |
| - dir_base->set_upload_url("http://resumable-create-media/3"); |
| - platform_info = dir_base->mutable_file_info(); |
| - platform_info->set_is_directory(true); |
| + DriveEntryProto dir2; |
| + dir2.set_title("SubDir2"); |
| + dir2.set_resource_id("resource_id:SubDir2"); |
| + dir2.set_parent_resource_id(dir1.resource_id()); |
| + dir2.set_upload_url("http://resumable-create-media/3"); |
| + dir2.mutable_file_info()->set_is_directory(true); |
| + resource_metadata.AddEntry( |
| + dir2, |
| + google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
| // drive/Dir1/SubDir2/File3 |
| - file = dir2->add_child_files(); |
| - file->set_title("File3"); |
| - file->set_resource_id("resource_id:File3"); |
| - file->set_parent_resource_id(dir2->drive_entry().resource_id()); |
| - file->set_upload_url("http://resumable-edit-media/3"); |
| - file->mutable_file_specific_info()->set_file_md5("md5"); |
| - platform_info = file->mutable_file_info(); |
| - platform_info->set_is_directory(false); |
| - platform_info->set_size(12345); |
| - |
| - // Write this proto out to GCache/vi/meta/file_system.pb |
| - std::string serialized_proto; |
| - ASSERT_TRUE(root.SerializeToString(&serialized_proto)); |
| - ASSERT_TRUE(!serialized_proto.empty()); |
| - |
| - base::FilePath cache_dir_path = profile_->GetPath().Append( |
| - FILE_PATH_LITERAL("GCache/v1/meta/")); |
| + DriveEntryProto file3; |
| + file3.set_title("File3"); |
| + file3.set_resource_id("resource_id:File3"); |
| + file3.set_parent_resource_id(dir2.resource_id()); |
| + file3.set_upload_url("http://resumable-edit-media/3"); |
| + file3.mutable_file_specific_info()->set_file_md5("md5"); |
| + file3.mutable_file_info()->set_is_directory(false); |
| + file3.mutable_file_info()->set_size(12345); |
| + resource_metadata.AddEntry( |
| + file3, |
| + google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| + EXPECT_EQ(DRIVE_FILE_OK, error); |
| + |
| + // Write resource metadata. |
| + base::FilePath cache_dir_path = |
| + cache_->GetCacheDirectoryPath(DriveCache::CACHE_TYPE_META); |
| ASSERT_TRUE(file_util::CreateDirectory(cache_dir_path)); |
| - const int file_size = static_cast<int>(serialized_proto.length()); |
| - ASSERT_EQ(file_util::WriteFile(cache_dir_path.AppendASCII("file_system.pb"), |
| - serialized_proto.data(), file_size), file_size); |
| + resource_metadata.MaybeSave(cache_dir_path); |
| + google_apis::test_util::RunBlockingPoolTask(); |
| } |
| // Verifies that |file_path| is a valid JSON file for the hosted document |