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..466cc18ebc519f0a72f8d0e0bc853cd684624392 100644 |
--- a/chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
+++ b/chrome/browser/chromeos/drive/drive_file_system_unittest.cc |
@@ -399,89 +399,113 @@ 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. |
// If |use_up_to_date_timestamp| is true, sets the changestamp to 654321, |
// 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); |
+ bool SaveTestFileSystem(SaveTestFileSystemParam param) { |
+ 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
// 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
// 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
// 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
// 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
// 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/")); |
- 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); |
+ 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(); |
+ if (error != DRIVE_FILE_OK) |
+ return false; |
+ |
+ // Write resource metadata. |
+ base::FilePath cache_dir_path = |
+ cache_->GetCacheDirectoryPath(DriveCache::CACHE_TYPE_META); |
+ if (!file_util::CreateDirectory(cache_dir_path)) |
+ return false; |
+ resource_metadata.MaybeSave(cache_dir_path); |
+ google_apis::test_util::RunBlockingPoolTask(); |
+ |
+ return true; |
} |
// Verifies that |file_path| is a valid JSON file for the hosted document |
@@ -933,7 +957,7 @@ TEST_F(DriveFileSystemTest, ChangeFeed_FileRenamedInDirectory) { |
} |
TEST_F(DriveFileSystemTest, CachedFeedLoading) { |
- SaveTestFileSystem(USE_OLD_TIMESTAMP); |
+ ASSERT_TRUE(SaveTestFileSystem(USE_OLD_TIMESTAMP)); |
ASSERT_TRUE(TestLoadMetadataFromCache()); |
EXPECT_TRUE(EntryExists(base::FilePath(FILE_PATH_LITERAL("drive/File1")))); |
@@ -947,7 +971,7 @@ TEST_F(DriveFileSystemTest, CachedFeedLoading) { |
} |
TEST_F(DriveFileSystemTest, CachedFeedLoadingThenServerFeedLoading) { |
- SaveTestFileSystem(USE_SERVER_TIMESTAMP); |
+ ASSERT_TRUE(SaveTestFileSystem(USE_SERVER_TIMESTAMP)); |
// Kicks loading of cached file system and query for server update. |
EXPECT_TRUE(EntryExists(base::FilePath(FILE_PATH_LITERAL("drive/File1")))); |
@@ -967,7 +991,7 @@ TEST_F(DriveFileSystemTest, CachedFeedLoadingThenServerFeedLoading) { |
} |
TEST_F(DriveFileSystemTest, OfflineCachedFeedLoading) { |
- SaveTestFileSystem(USE_OLD_TIMESTAMP); |
+ ASSERT_TRUE(SaveTestFileSystem(USE_OLD_TIMESTAMP)); |
// Make GetResourceList fail for simulating offline situation. This will leave |
// the file system "loaded from cache, but not synced with server" state. |
@@ -2161,7 +2185,7 @@ TEST_F(DriveFileSystemTest, OpenAndCloseFile) { |
// TODO(satorux): Testing if WebAppsRegistry is loaded here is awkward. We |
// should move this to change_list_loader_unittest.cc. crbug.com/161703 |
TEST_F(DriveFileSystemTest, WebAppsRegistryIsLoaded) { |
- SaveTestFileSystem(USE_SERVER_TIMESTAMP); |
+ ASSERT_TRUE(SaveTestFileSystem(USE_SERVER_TIMESTAMP)); |
// No apps should be found as the webapps registry is empty. |
ScopedVector<DriveWebAppInfo> apps; |