| 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 "chrome/browser/chromeos/drive/drive_resource_metadata.h" | 5 #include "chrome/browser/chromeos/drive/drive_resource_metadata.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 const std::string& parent_resource_id); | 87 const std::string& parent_resource_id); |
| 88 | 88 |
| 89 virtual void SetUp() OVERRIDE { | 89 virtual void SetUp() OVERRIDE { |
| 90 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 90 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 91 | 91 |
| 92 base::ThreadRestrictions::SetIOAllowed(false); // For strict thread check. | 92 base::ThreadRestrictions::SetIOAllowed(false); // For strict thread check. |
| 93 scoped_refptr<base::SequencedWorkerPool> pool = | 93 scoped_refptr<base::SequencedWorkerPool> pool = |
| 94 content::BrowserThread::GetBlockingPool(); | 94 content::BrowserThread::GetBlockingPool(); |
| 95 blocking_task_runner_ = | 95 blocking_task_runner_ = |
| 96 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); | 96 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); |
| 97 resource_metadata_.reset(new DriveResourceMetadata(kTestRootResourceId, | 97 resource_metadata_.reset(new DriveResourceMetadata(temp_dir_.path(), |
| 98 temp_dir_.path(), | |
| 99 blocking_task_runner_)); | 98 blocking_task_runner_)); |
| 100 Init(resource_metadata_.get()); | 99 Init(resource_metadata_.get()); |
| 101 } | 100 } |
| 102 | 101 |
| 103 virtual void TearDown() OVERRIDE { | 102 virtual void TearDown() OVERRIDE { |
| 104 resource_metadata_.reset(); | 103 resource_metadata_.reset(); |
| 105 base::ThreadRestrictions::SetIOAllowed(true); | 104 base::ThreadRestrictions::SetIOAllowed(true); |
| 106 } | 105 } |
| 107 | 106 |
| 108 // Gets the entry info by path synchronously. Returns NULL on failure. | 107 // Gets the entry info by path synchronously. Returns NULL on failure. |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 }; | 170 }; |
| 172 | 171 |
| 173 // static | 172 // static |
| 174 void DriveResourceMetadataTest::Init(DriveResourceMetadata* resource_metadata) { | 173 void DriveResourceMetadataTest::Init(DriveResourceMetadata* resource_metadata) { |
| 175 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 174 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 176 resource_metadata->Initialize( | 175 resource_metadata->Initialize( |
| 177 google_apis::test_util::CreateCopyResultCallback(&error)); | 176 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 178 google_apis::test_util::RunBlockingPoolTask(); | 177 google_apis::test_util::RunBlockingPoolTask(); |
| 179 ASSERT_EQ(DRIVE_FILE_OK, error); | 178 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 180 | 179 |
| 180 // Create mydrive root directory. |
| 181 { |
| 182 error = DRIVE_FILE_ERROR_FAILED; |
| 183 base::FilePath drive_path; |
| 184 resource_metadata->AddEntry( |
| 185 util::CreateMyDriveRootEntry(kTestRootResourceId), |
| 186 google_apis::test_util::CreateCopyResultCallback(&error, &drive_path)); |
| 187 google_apis::test_util::RunBlockingPoolTask(); |
| 188 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 189 } |
| 190 |
| 181 int sequence_id = 1; | 191 int sequence_id = 1; |
| 182 ASSERT_TRUE(AddDriveEntryProto( | 192 ASSERT_TRUE(AddDriveEntryProto( |
| 183 resource_metadata, sequence_id++, true, kTestRootResourceId)); | 193 resource_metadata, sequence_id++, true, kTestRootResourceId)); |
| 184 ASSERT_TRUE(AddDriveEntryProto( | 194 ASSERT_TRUE(AddDriveEntryProto( |
| 185 resource_metadata, sequence_id++, true, kTestRootResourceId)); | 195 resource_metadata, sequence_id++, true, kTestRootResourceId)); |
| 186 ASSERT_TRUE(AddDriveEntryProto( | 196 ASSERT_TRUE(AddDriveEntryProto( |
| 187 resource_metadata, sequence_id++, true, "resource_id:dir1")); | 197 resource_metadata, sequence_id++, true, "resource_id:dir1")); |
| 188 | 198 |
| 189 ASSERT_TRUE(AddDriveEntryProto( | 199 ASSERT_TRUE(AddDriveEntryProto( |
| 190 resource_metadata, sequence_id++, false, "resource_id:dir1")); | 200 resource_metadata, sequence_id++, false, "resource_id:dir1")); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 TEST_F(DriveResourceMetadataTest, VersionCheck) { | 270 TEST_F(DriveResourceMetadataTest, VersionCheck) { |
| 261 // Set up the root directory. | 271 // Set up the root directory. |
| 262 DriveRootDirectoryProto proto; | 272 DriveRootDirectoryProto proto; |
| 263 DriveEntryProto* mutable_entry = | 273 DriveEntryProto* mutable_entry = |
| 264 proto.mutable_drive_directory()->mutable_drive_entry(); | 274 proto.mutable_drive_directory()->mutable_drive_entry(); |
| 265 mutable_entry->mutable_file_info()->set_is_directory(true); | 275 mutable_entry->mutable_file_info()->set_is_directory(true); |
| 266 mutable_entry->set_resource_id(util::kDriveGrandRootSpecialResourceId); | 276 mutable_entry->set_resource_id(util::kDriveGrandRootSpecialResourceId); |
| 267 mutable_entry->set_title("drive"); | 277 mutable_entry->set_title("drive"); |
| 268 | 278 |
| 269 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 279 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
| 270 resource_metadata(new DriveResourceMetadata(kTestRootResourceId, | 280 resource_metadata(new DriveResourceMetadata(temp_dir_.path(), |
| 271 temp_dir_.path(), | |
| 272 blocking_task_runner_)); | 281 blocking_task_runner_)); |
| 273 ForceUsingMemoryStorage(resource_metadata.get()); | 282 ForceUsingMemoryStorage(resource_metadata.get()); |
| 274 | 283 |
| 275 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 284 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 276 resource_metadata->Initialize( | 285 resource_metadata->Initialize( |
| 277 google_apis::test_util::CreateCopyResultCallback(&error)); | 286 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 278 google_apis::test_util::RunBlockingPoolTask(); | 287 google_apis::test_util::RunBlockingPoolTask(); |
| 279 ASSERT_EQ(DRIVE_FILE_OK, error); | 288 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 280 | 289 |
| 281 std::string serialized_proto; | 290 std::string serialized_proto; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 301 // Set a newer version, and serialize. | 310 // Set a newer version, and serialize. |
| 302 proto.set_version(kProtoVersion + 1); | 311 proto.set_version(kProtoVersion + 1); |
| 303 EXPECT_TRUE(proto.SerializeToString(&serialized_proto)); | 312 EXPECT_TRUE(proto.SerializeToString(&serialized_proto)); |
| 304 // This should fail as the version is newer. | 313 // This should fail as the version is newer. |
| 305 EXPECT_FALSE(ParseMetadataFromString(resource_metadata.get(), | 314 EXPECT_FALSE(ParseMetadataFromString(resource_metadata.get(), |
| 306 serialized_proto)); | 315 serialized_proto)); |
| 307 } | 316 } |
| 308 | 317 |
| 309 TEST_F(DriveResourceMetadataTest, LargestChangestamp) { | 318 TEST_F(DriveResourceMetadataTest, LargestChangestamp) { |
| 310 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 319 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
| 311 resource_metadata(new DriveResourceMetadata(kTestRootResourceId, | 320 resource_metadata(new DriveResourceMetadata(temp_dir_.path(), |
| 312 temp_dir_.path(), | |
| 313 blocking_task_runner_)); | 321 blocking_task_runner_)); |
| 314 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 322 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 315 resource_metadata->Initialize( | 323 resource_metadata->Initialize( |
| 316 google_apis::test_util::CreateCopyResultCallback(&error)); | 324 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 317 google_apis::test_util::RunBlockingPoolTask(); | 325 google_apis::test_util::RunBlockingPoolTask(); |
| 318 ASSERT_EQ(DRIVE_FILE_OK, error); | 326 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 319 | 327 |
| 320 int64 in_changestamp = 123456; | 328 int64 in_changestamp = 123456; |
| 321 resource_metadata->SetLargestChangestamp( | 329 resource_metadata->SetLargestChangestamp( |
| 322 in_changestamp, | 330 in_changestamp, |
| 323 google_apis::test_util::CreateCopyResultCallback(&error)); | 331 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 324 google_apis::test_util::RunBlockingPoolTask(); | 332 google_apis::test_util::RunBlockingPoolTask(); |
| 325 EXPECT_EQ(DRIVE_FILE_OK, error); | 333 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 326 | 334 |
| 327 int64 out_changestamp = 0; | 335 int64 out_changestamp = 0; |
| 328 resource_metadata->GetLargestChangestamp( | 336 resource_metadata->GetLargestChangestamp( |
| 329 google_apis::test_util::CreateCopyResultCallback(&out_changestamp)); | 337 google_apis::test_util::CreateCopyResultCallback(&out_changestamp)); |
| 330 google_apis::test_util::RunBlockingPoolTask(); | 338 google_apis::test_util::RunBlockingPoolTask(); |
| 331 DCHECK_EQ(in_changestamp, out_changestamp); | 339 DCHECK_EQ(in_changestamp, out_changestamp); |
| 332 } | 340 } |
| 333 | 341 |
| 334 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId_RootDirectory) { | 342 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId_RootDirectory) { |
| 335 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 343 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
| 336 resource_metadata(new DriveResourceMetadata(kTestRootResourceId, | 344 resource_metadata(new DriveResourceMetadata(temp_dir_.path(), |
| 337 temp_dir_.path(), | |
| 338 blocking_task_runner_)); | 345 blocking_task_runner_)); |
| 339 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 346 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 340 resource_metadata->Initialize( | 347 resource_metadata->Initialize( |
| 341 google_apis::test_util::CreateCopyResultCallback(&error)); | 348 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 342 google_apis::test_util::RunBlockingPoolTask(); | 349 google_apis::test_util::RunBlockingPoolTask(); |
| 343 ASSERT_EQ(DRIVE_FILE_OK, error); | 350 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 344 | 351 |
| 345 base::FilePath drive_file_path; | 352 base::FilePath drive_file_path; |
| 346 scoped_ptr<DriveEntryProto> entry_proto; | 353 scoped_ptr<DriveEntryProto> entry_proto; |
| 347 | 354 |
| (...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 base::FilePath drive_file_path; | 1258 base::FilePath drive_file_path; |
| 1252 scoped_ptr<DriveEntryProto> entry_proto; | 1259 scoped_ptr<DriveEntryProto> entry_proto; |
| 1253 | 1260 |
| 1254 // root should continue to exist. | 1261 // root should continue to exist. |
| 1255 entry_proto = GetEntryInfoByPathSync(base::FilePath::FromUTF8Unsafe("drive")); | 1262 entry_proto = GetEntryInfoByPathSync(base::FilePath::FromUTF8Unsafe("drive")); |
| 1256 ASSERT_TRUE(entry_proto.get()); | 1263 ASSERT_TRUE(entry_proto.get()); |
| 1257 EXPECT_EQ("drive", entry_proto->base_name()); | 1264 EXPECT_EQ("drive", entry_proto->base_name()); |
| 1258 ASSERT_TRUE(entry_proto->file_info().is_directory()); | 1265 ASSERT_TRUE(entry_proto->file_info().is_directory()); |
| 1259 EXPECT_EQ(util::kDriveGrandRootSpecialResourceId, entry_proto->resource_id()); | 1266 EXPECT_EQ(util::kDriveGrandRootSpecialResourceId, entry_proto->resource_id()); |
| 1260 | 1267 |
| 1261 // There is "root" and "other", which are both empty. | 1268 // There is "other", which are both empty. |
| 1262 entries = ReadDirectoryByPathSync(base::FilePath::FromUTF8Unsafe("drive")); | 1269 entries = ReadDirectoryByPathSync(base::FilePath::FromUTF8Unsafe("drive")); |
| 1263 ASSERT_TRUE(entries.get()); | 1270 ASSERT_TRUE(entries.get()); |
| 1264 EXPECT_EQ(2U, entries->size()); | 1271 EXPECT_EQ(1U, entries->size()); |
| 1265 | |
| 1266 scoped_ptr<DriveEntryProtoVector> entries_in_mydrive = | |
| 1267 ReadDirectoryByPathSync(base::FilePath::FromUTF8Unsafe("drive/root")); | |
| 1268 ASSERT_TRUE(entries_in_mydrive.get()); | |
| 1269 EXPECT_TRUE(entries_in_mydrive->empty()); | |
| 1270 | 1272 |
| 1271 scoped_ptr<DriveEntryProtoVector> entries_in_other = | 1273 scoped_ptr<DriveEntryProtoVector> entries_in_other = |
| 1272 ReadDirectoryByPathSync(base::FilePath::FromUTF8Unsafe("drive/other")); | 1274 ReadDirectoryByPathSync(base::FilePath::FromUTF8Unsafe("drive/other")); |
| 1273 ASSERT_TRUE(entries_in_other.get()); | 1275 ASSERT_TRUE(entries_in_other.get()); |
| 1274 EXPECT_TRUE(entries_in_other->empty()); | 1276 EXPECT_TRUE(entries_in_other->empty()); |
| 1275 } | 1277 } |
| 1276 | 1278 |
| 1277 TEST_F(DriveResourceMetadataTest, IterateEntries) { | 1279 TEST_F(DriveResourceMetadataTest, IterateEntries) { |
| 1278 int count = 0; | 1280 int count = 0; |
| 1279 bool completed = false; | 1281 bool completed = false; |
| 1280 resource_metadata_->IterateEntries( | 1282 resource_metadata_->IterateEntries( |
| 1281 base::Bind(&CountFile, &count), | 1283 base::Bind(&CountFile, &count), |
| 1282 base::Bind(google_apis::test_util::CreateCopyResultCallback(&completed), | 1284 base::Bind(google_apis::test_util::CreateCopyResultCallback(&completed), |
| 1283 true)); | 1285 true)); |
| 1284 google_apis::test_util::RunBlockingPoolTask(); | 1286 google_apis::test_util::RunBlockingPoolTask(); |
| 1285 | 1287 |
| 1286 EXPECT_EQ(7, count); | 1288 EXPECT_EQ(7, count); |
| 1287 EXPECT_TRUE(completed); | 1289 EXPECT_TRUE(completed); |
| 1288 } | 1290 } |
| 1289 | 1291 |
| 1290 TEST_F(DriveResourceMetadataTest, PerDirectoryChangestamp) { | 1292 TEST_F(DriveResourceMetadataTest, PerDirectoryChangestamp) { |
| 1291 const int kNewChangestamp = kTestChangestamp + 1; | 1293 const int kNewChangestamp = kTestChangestamp + 1; |
| 1292 const char kSubDirectoryResourceId[] = "sub-directory-id"; | 1294 const char kSubDirectoryResourceId[] = "sub-directory-id"; |
| 1293 | 1295 |
| 1294 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 1296 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
| 1295 resource_metadata_original(new DriveResourceMetadata( | 1297 resource_metadata_original(new DriveResourceMetadata( |
| 1296 kTestRootResourceId, temp_dir_.path(), blocking_task_runner_)); | 1298 temp_dir_.path(), blocking_task_runner_)); |
| 1297 ForceUsingMemoryStorage(resource_metadata_original.get()); | 1299 ForceUsingMemoryStorage(resource_metadata_original.get()); |
| 1298 | 1300 |
| 1299 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 1301 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 1300 resource_metadata_original->Initialize( | 1302 resource_metadata_original->Initialize( |
| 1301 google_apis::test_util::CreateCopyResultCallback(&error)); | 1303 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 1302 google_apis::test_util::RunBlockingPoolTask(); | 1304 google_apis::test_util::RunBlockingPoolTask(); |
| 1303 ASSERT_EQ(DRIVE_FILE_OK, error); | 1305 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1304 | 1306 |
| 1305 resource_metadata_original->SetLargestChangestamp( | 1307 resource_metadata_original->SetLargestChangestamp( |
| 1306 kNewChangestamp, | 1308 kNewChangestamp, |
| 1307 google_apis::test_util::CreateCopyResultCallback(&error)); | 1309 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 1308 google_apis::test_util::RunBlockingPoolTask(); | 1310 google_apis::test_util::RunBlockingPoolTask(); |
| 1309 EXPECT_EQ(DRIVE_FILE_OK, error); | 1311 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 1310 | 1312 |
| 1313 // Add "/drive/root" directory. |
| 1314 base::FilePath file_path; |
| 1315 resource_metadata_original->AddEntry( |
| 1316 util::CreateMyDriveRootEntry(kTestRootResourceId), |
| 1317 google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| 1318 google_apis::test_util::RunBlockingPoolTask(); |
| 1319 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1320 |
| 1311 // Add a sub directory. | 1321 // Add a sub directory. |
| 1312 DriveEntryProto directory_entry; | 1322 DriveEntryProto directory_entry; |
| 1313 directory_entry.mutable_file_info()->set_is_directory(true); | 1323 directory_entry.mutable_file_info()->set_is_directory(true); |
| 1314 directory_entry.set_resource_id(kSubDirectoryResourceId); | 1324 directory_entry.set_resource_id(kSubDirectoryResourceId); |
| 1315 directory_entry.set_parent_resource_id(kTestRootResourceId); | 1325 directory_entry.set_parent_resource_id(kTestRootResourceId); |
| 1316 directory_entry.set_title("directory"); | 1326 directory_entry.set_title("directory"); |
| 1317 base::FilePath file_path; | |
| 1318 resource_metadata_original->AddEntry( | 1327 resource_metadata_original->AddEntry( |
| 1319 directory_entry, | 1328 directory_entry, |
| 1320 google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); | 1329 google_apis::test_util::CreateCopyResultCallback(&error, &file_path)); |
| 1330 google_apis::test_util::RunBlockingPoolTask(); |
| 1331 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1332 |
| 1321 // At this point, both the root and the sub directory do not contain the | 1333 // At this point, both the root and the sub directory do not contain the |
| 1322 // per-directory changestamp. | 1334 // per-directory changestamp. |
| 1323 resource_metadata_original->MaybeSave(); | 1335 resource_metadata_original->MaybeSave(); |
| 1324 google_apis::test_util::RunBlockingPoolTask(); | 1336 google_apis::test_util::RunBlockingPoolTask(); |
| 1325 | 1337 |
| 1326 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 1338 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
| 1327 resource_metadata(new DriveResourceMetadata( | 1339 resource_metadata(new DriveResourceMetadata(temp_dir_.path(), |
| 1328 util::kDriveGrandRootSpecialResourceId, | 1340 blocking_task_runner_)); |
| 1329 temp_dir_.path(), | |
| 1330 blocking_task_runner_)); | |
| 1331 ForceUsingMemoryStorage(resource_metadata.get()); | 1341 ForceUsingMemoryStorage(resource_metadata.get()); |
| 1332 | 1342 |
| 1333 resource_metadata->Initialize( | 1343 resource_metadata->Initialize( |
| 1334 google_apis::test_util::CreateCopyResultCallback(&error)); | 1344 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 1335 google_apis::test_util::RunBlockingPoolTask(); | 1345 google_apis::test_util::RunBlockingPoolTask(); |
| 1336 ASSERT_EQ(DRIVE_FILE_OK, error); | 1346 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1337 | 1347 |
| 1338 // Load. This should propagate the largest changestamp to every directory. | 1348 // Load. This should propagate the largest changestamp to every directory. |
| 1339 resource_metadata->Load( | 1349 resource_metadata->Load( |
| 1340 google_apis::test_util::CreateCopyResultCallback(&error)); | 1350 google_apis::test_util::CreateCopyResultCallback(&error)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1358 google_apis::test_util::RunBlockingPoolTask(); | 1368 google_apis::test_util::RunBlockingPoolTask(); |
| 1359 ASSERT_EQ(DRIVE_FILE_OK, error); | 1369 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1360 EXPECT_EQ(kNewChangestamp, | 1370 EXPECT_EQ(kNewChangestamp, |
| 1361 entry_proto->directory_specific_info().changestamp()); | 1371 entry_proto->directory_specific_info().changestamp()); |
| 1362 } | 1372 } |
| 1363 | 1373 |
| 1364 TEST_F(DriveResourceMetadataTest, SaveAndLoad) { | 1374 TEST_F(DriveResourceMetadataTest, SaveAndLoad) { |
| 1365 // Save metadata and reset. | 1375 // Save metadata and reset. |
| 1366 resource_metadata_->MaybeSave(); | 1376 resource_metadata_->MaybeSave(); |
| 1367 | 1377 |
| 1368 resource_metadata_.reset(new DriveResourceMetadata( | 1378 resource_metadata_.reset(new DriveResourceMetadata(temp_dir_.path(), |
| 1369 util::kDriveGrandRootSpecialResourceId, | 1379 blocking_task_runner_)); |
| 1370 temp_dir_.path(), | |
| 1371 blocking_task_runner_)); | |
| 1372 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 1380 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 1373 resource_metadata_->Initialize( | 1381 resource_metadata_->Initialize( |
| 1374 google_apis::test_util::CreateCopyResultCallback(&error)); | 1382 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 1375 google_apis::test_util::RunBlockingPoolTask(); | 1383 google_apis::test_util::RunBlockingPoolTask(); |
| 1376 ASSERT_EQ(DRIVE_FILE_OK, error); | 1384 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 1377 | 1385 |
| 1378 // Load metadata. | 1386 // Load metadata. |
| 1379 resource_metadata_->Load( | 1387 resource_metadata_->Load( |
| 1380 google_apis::test_util::CreateCopyResultCallback(&error)); | 1388 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 1381 google_apis::test_util::RunBlockingPoolTask(); | 1389 google_apis::test_util::RunBlockingPoolTask(); |
| 1382 EXPECT_EQ(DRIVE_FILE_OK, error); | 1390 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 1383 | 1391 |
| 1384 // Try to get some data. | 1392 // Try to get some data. |
| 1385 scoped_ptr<DriveEntryProto> entry = GetEntryInfoByPathSync( | 1393 scoped_ptr<DriveEntryProto> entry = GetEntryInfoByPathSync( |
| 1386 base::FilePath::FromUTF8Unsafe("drive/root/dir1/dir3/file9")); | 1394 base::FilePath::FromUTF8Unsafe("drive/root/dir1/dir3/file9")); |
| 1387 ASSERT_TRUE(entry.get()); | 1395 ASSERT_TRUE(entry.get()); |
| 1388 EXPECT_EQ("file9", entry->base_name()); | 1396 EXPECT_EQ("file9", entry->base_name()); |
| 1389 ASSERT_TRUE(!entry->file_info().is_directory()); | 1397 ASSERT_TRUE(!entry->file_info().is_directory()); |
| 1390 EXPECT_EQ("md5:file9", entry->file_specific_info().file_md5()); | 1398 EXPECT_EQ("md5:file9", entry->file_specific_info().file_md5()); |
| 1391 } | 1399 } |
| 1392 | 1400 |
| 1393 } // namespace drive | 1401 } // namespace drive |
| OLD | NEW |