| 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/sync_file_system/drive_metadata_store.h" | 5 #include "chrome/browser/sync_file_system/drive_metadata_store.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 drive_metadata_store_->RestoreSyncRootDirectory( | 127 drive_metadata_store_->RestoreSyncRootDirectory( |
| 128 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory, | 128 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncRootDirectory, |
| 129 base::Unretained(this))); | 129 base::Unretained(this))); |
| 130 message_loop_.Run(); | 130 message_loop_.Run(); |
| 131 } | 131 } |
| 132 | 132 |
| 133 void DropSyncOriginsInStore() { | 133 void DropSyncOriginsInStore() { |
| 134 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); | 134 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); |
| 135 drive_metadata_store_->batch_sync_origins_.clear(); | 135 drive_metadata_store_->batch_sync_origins_.clear(); |
| 136 drive_metadata_store_->incremental_sync_origins_.clear(); | 136 drive_metadata_store_->incremental_sync_origins_.clear(); |
| 137 drive_metadata_store_->disabled_origins_.clear(); |
| 137 EXPECT_TRUE(drive_metadata_store_->batch_sync_origins().empty()); | 138 EXPECT_TRUE(drive_metadata_store_->batch_sync_origins().empty()); |
| 138 EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty()); | 139 EXPECT_TRUE(drive_metadata_store_->incremental_sync_origins().empty()); |
| 140 EXPECT_TRUE(drive_metadata_store_->disabled_origins().empty()); |
| 139 } | 141 } |
| 140 | 142 |
| 141 void RestoreSyncOriginsFromDB() { | 143 void RestoreOriginsFromDB() { |
| 142 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); | 144 EXPECT_TRUE(ui_task_runner_->RunsTasksOnCurrentThread()); |
| 143 drive_metadata_store_->RestoreSyncOrigins( | 145 drive_metadata_store_->RestoreOrigins( |
| 144 base::Bind(&DriveMetadataStoreTest::DidRestoreSyncOrigins, | 146 base::Bind(&DriveMetadataStoreTest::DidRestoreOrigins, |
| 145 base::Unretained(this))); | 147 base::Unretained(this))); |
| 146 message_loop_.Run(); | 148 message_loop_.Run(); |
| 147 } | 149 } |
| 148 | 150 |
| 151 SyncStatusCode EnableOrigin(const GURL& origin) { |
| 152 SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
| 153 drive_metadata_store_->EnableOrigin( |
| 154 origin, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, |
| 155 base::Unretained(this), &status)); |
| 156 message_loop_.Run(); |
| 157 return status; |
| 158 } |
| 159 |
| 160 SyncStatusCode DisableOrigin(const GURL& origin) { |
| 161 SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
| 162 drive_metadata_store_->DisableOrigin( |
| 163 origin, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, |
| 164 base::Unretained(this), &status)); |
| 165 message_loop_.Run(); |
| 166 return status; |
| 167 } |
| 168 |
| 149 SyncStatusCode RemoveOrigin(const GURL& url) { | 169 SyncStatusCode RemoveOrigin(const GURL& url) { |
| 150 SyncStatusCode status = SYNC_STATUS_UNKNOWN; | 170 SyncStatusCode status = SYNC_STATUS_UNKNOWN; |
| 151 drive_metadata_store_->RemoveOrigin( | 171 drive_metadata_store_->RemoveOrigin( |
| 152 url, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, | 172 url, base::Bind(&DriveMetadataStoreTest::DidFinishDBTask, |
| 153 base::Unretained(this), &status)); | 173 base::Unretained(this), &status)); |
| 154 message_loop_.Run(); | 174 message_loop_.Run(); |
| 155 return status; | 175 return status; |
| 156 } | 176 } |
| 157 | 177 |
| 158 SyncStatusCode UpdateEntry(const fileapi::FileSystemURL& url, | 178 SyncStatusCode UpdateEntry(const fileapi::FileSystemURL& url, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 188 void DidFinishDBTask(SyncStatusCode* status_out, | 208 void DidFinishDBTask(SyncStatusCode* status_out, |
| 189 SyncStatusCode status) { | 209 SyncStatusCode status) { |
| 190 *status_out = status; | 210 *status_out = status; |
| 191 message_loop_.Quit(); | 211 message_loop_.Quit(); |
| 192 } | 212 } |
| 193 | 213 |
| 194 void MarkAsCreated() { | 214 void MarkAsCreated() { |
| 195 created_ = true; | 215 created_ = true; |
| 196 } | 216 } |
| 197 | 217 |
| 218 void VerifyUntrackedOrigin(const GURL& origin) { |
| 219 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
| 220 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
| 221 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); |
| 222 } |
| 223 |
| 224 void VerifyBatchSyncOrigin(const GURL& origin, |
| 225 const std::string& resource_id) { |
| 226 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(origin)); |
| 227 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
| 228 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); |
| 229 EXPECT_EQ(resource_id, |
| 230 GetResourceID(metadata_store()->batch_sync_origins(), origin)); |
| 231 } |
| 232 |
| 233 void VerifyIncrementalSyncOrigin(const GURL& origin, |
| 234 const std::string& resource_id) { |
| 235 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
| 236 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
| 237 EXPECT_FALSE(metadata_store()->IsOriginDisabled(origin)); |
| 238 EXPECT_EQ(resource_id, |
| 239 GetResourceID(metadata_store()->incremental_sync_origins(), |
| 240 origin)); |
| 241 } |
| 242 |
| 243 void VerifyDisabledOrigin(const GURL& origin, |
| 244 const std::string& resource_id) { |
| 245 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(origin)); |
| 246 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(origin)); |
| 247 EXPECT_TRUE(metadata_store()->IsOriginDisabled(origin)); |
| 248 EXPECT_EQ(resource_id, |
| 249 GetResourceID(metadata_store()->disabled_origins(), origin)); |
| 250 } |
| 251 |
| 198 base::FilePath base_dir() { | 252 base::FilePath base_dir() { |
| 199 return base_dir_.path(); | 253 return base_dir_.path(); |
| 200 } | 254 } |
| 201 | 255 |
| 202 DriveMetadataStore* metadata_store() { | 256 DriveMetadataStore* metadata_store() { |
| 203 return drive_metadata_store_.get(); | 257 return drive_metadata_store_.get(); |
| 204 } | 258 } |
| 205 | 259 |
| 206 const DriveMetadataStore::MetadataMap& metadata_map() { | 260 const DriveMetadataStore::MetadataMap& metadata_map() { |
| 207 return drive_metadata_store_->metadata_map_; | 261 return drive_metadata_store_->metadata_map_; |
| 208 } | 262 } |
| 209 | 263 |
| 210 void VerifyReverseMap() { | 264 void VerifyReverseMap() { |
| 211 const ResourceIdByOrigin& batch_sync_origins = | 265 const ResourceIdByOrigin& batch_sync_origins = |
| 212 drive_metadata_store_->batch_sync_origins_; | 266 drive_metadata_store_->batch_sync_origins_; |
| 213 const ResourceIdByOrigin& incremental_sync_origins = | 267 const ResourceIdByOrigin& incremental_sync_origins = |
| 214 drive_metadata_store_->incremental_sync_origins_; | 268 drive_metadata_store_->incremental_sync_origins_; |
| 269 const ResourceIdByOrigin& disabled_origins = |
| 270 drive_metadata_store_->disabled_origins_; |
| 215 const OriginByResourceId& origin_by_resource_id = | 271 const OriginByResourceId& origin_by_resource_id = |
| 216 drive_metadata_store_->origin_by_resource_id_; | 272 drive_metadata_store_->origin_by_resource_id_; |
| 217 | 273 |
| 218 size_t expected_size = | 274 size_t expected_size = |
| 219 batch_sync_origins.size() + incremental_sync_origins.size(); | 275 batch_sync_origins.size() + incremental_sync_origins.size() + |
| 276 disabled_origins.size(); |
| 220 size_t actual_size = origin_by_resource_id.size(); | 277 size_t actual_size = origin_by_resource_id.size(); |
| 221 EXPECT_EQ(expected_size, actual_size); | 278 EXPECT_EQ(expected_size, actual_size); |
| 222 EXPECT_TRUE(VerifyReverseMapInclusion(batch_sync_origins, | 279 EXPECT_TRUE(VerifyReverseMapInclusion(batch_sync_origins, |
| 223 origin_by_resource_id)); | 280 origin_by_resource_id)); |
| 224 EXPECT_TRUE(VerifyReverseMapInclusion(incremental_sync_origins, | 281 EXPECT_TRUE(VerifyReverseMapInclusion(incremental_sync_origins, |
| 225 origin_by_resource_id)); | 282 origin_by_resource_id)); |
| 283 EXPECT_TRUE(VerifyReverseMapInclusion(disabled_origins, |
| 284 origin_by_resource_id)); |
| 226 } | 285 } |
| 227 | 286 |
| 228 private: | 287 private: |
| 229 void DidInitializeDatabase(bool* done_out, | 288 void DidInitializeDatabase(bool* done_out, |
| 230 SyncStatusCode* status_out, | 289 SyncStatusCode* status_out, |
| 231 bool* created_out, | 290 bool* created_out, |
| 232 SyncStatusCode status, | 291 SyncStatusCode status, |
| 233 bool created) { | 292 bool created) { |
| 234 *done_out = true; | 293 *done_out = true; |
| 235 *status_out = status; | 294 *status_out = status; |
| 236 *created_out = created; | 295 *created_out = created; |
| 237 message_loop_.Quit(); | 296 message_loop_.Quit(); |
| 238 } | 297 } |
| 239 | 298 |
| 240 void DidRestoreSyncRootDirectory(SyncStatusCode status) { | 299 void DidRestoreSyncRootDirectory(SyncStatusCode status) { |
| 241 EXPECT_EQ(SYNC_STATUS_OK, status); | 300 EXPECT_EQ(SYNC_STATUS_OK, status); |
| 242 message_loop_.Quit(); | 301 message_loop_.Quit(); |
| 243 } | 302 } |
| 244 | 303 |
| 245 void DidRestoreSyncOrigins(SyncStatusCode status) { | 304 void DidRestoreOrigins(SyncStatusCode status) { |
| 246 EXPECT_EQ(SYNC_STATUS_OK, status); | 305 EXPECT_EQ(SYNC_STATUS_OK, status); |
| 247 message_loop_.Quit(); | 306 message_loop_.Quit(); |
| 248 } | 307 } |
| 249 | 308 |
| 250 bool VerifyReverseMapInclusion(const ResourceIdByOrigin& left, | 309 bool VerifyReverseMapInclusion(const ResourceIdByOrigin& left, |
| 251 const OriginByResourceId& right) { | 310 const OriginByResourceId& right) { |
| 252 for (ResourceIdByOrigin::const_iterator itr = left.begin(); | 311 for (ResourceIdByOrigin::const_iterator itr = left.begin(); |
| 253 itr != left.end(); ++itr) { | 312 itr != left.end(); ++itr) { |
| 254 OriginByResourceId::const_iterator found = right.find(itr->second); | 313 OriginByResourceId::const_iterator found = right.find(itr->second); |
| 255 if (found == right.end() || found->second != itr->first) | 314 if (found == right.end() || found->second != itr->first) |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 EXPECT_EQ(SYNC_STATUS_OK, | 420 EXPECT_EQ(SYNC_STATUS_OK, |
| 362 metadata_store()->GetToBeFetchedFiles(&list)); | 421 metadata_store()->GetToBeFetchedFiles(&list)); |
| 363 EXPECT_EQ(2U, list.size()); | 422 EXPECT_EQ(2U, list.size()); |
| 364 EXPECT_EQ(list[0].first, URL(path2)); | 423 EXPECT_EQ(list[0].first, URL(path2)); |
| 365 EXPECT_EQ(list[1].first, URL(path3)); | 424 EXPECT_EQ(list[1].first, URL(path3)); |
| 366 | 425 |
| 367 VerifyReverseMap(); | 426 VerifyReverseMap(); |
| 368 } | 427 } |
| 369 | 428 |
| 370 TEST_F(DriveMetadataStoreTest, StoreSyncRootDirectory) { | 429 TEST_F(DriveMetadataStoreTest, StoreSyncRootDirectory) { |
| 371 const std::string kResourceID("hoge"); | 430 const std::string kResourceId("hoge"); |
| 372 | 431 |
| 373 InitializeDatabase(); | 432 InitializeDatabase(); |
| 374 | 433 |
| 375 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); | 434 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); |
| 376 | 435 |
| 377 metadata_store()->SetSyncRootDirectory(kResourceID); | 436 metadata_store()->SetSyncRootDirectory(kResourceId); |
| 378 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); | 437 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); |
| 379 | 438 |
| 380 DropSyncRootDirectoryInStore(); | 439 DropSyncRootDirectoryInStore(); |
| 381 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); | 440 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); |
| 382 | 441 |
| 383 RestoreSyncRootDirectoryFromDB(); | 442 RestoreSyncRootDirectoryFromDB(); |
| 384 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); | 443 EXPECT_EQ(kResourceId, metadata_store()->sync_root_directory()); |
| 385 | 444 |
| 386 VerifyReverseMap(); | 445 VerifyReverseMap(); |
| 387 } | 446 } |
| 388 | 447 |
| 389 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { | 448 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { |
| 390 const GURL kOrigin1("chrome-extension://example1"); | 449 const GURL kOrigin1("chrome-extension://example1"); |
| 391 const GURL kOrigin2("chrome-extension://example2"); | 450 const GURL kOrigin2("chrome-extension://example2"); |
| 392 const std::string kResourceID1("hoge"); | 451 const GURL kOrigin3("chrome-extension://example3"); |
| 393 const std::string kResourceID2("fuga"); | 452 const std::string kResourceId1("hoge"); |
| 453 const std::string kResourceId2("fuga"); |
| 454 const std::string kResourceId3("foo"); |
| 394 | 455 |
| 395 InitializeDatabase(); | 456 InitializeDatabase(); |
| 396 | 457 |
| 397 // Make sure origins have not been marked yet. | 458 // Make sure origins have not been marked yet. |
| 398 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 459 VerifyUntrackedOrigin(kOrigin1); |
| 399 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 460 VerifyUntrackedOrigin(kOrigin2); |
| 400 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 461 VerifyUntrackedOrigin(kOrigin3); |
| 401 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | |
| 402 | 462 |
| 403 // Mark origins as batch sync origins. | 463 // Mark origins as batch sync origins. |
| 404 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceID1); | 464 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 405 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceID2); | 465 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 406 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 466 metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
| 407 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 467 VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
| 408 EXPECT_EQ(kResourceID1, | 468 VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
| 409 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin1)); | 469 VerifyBatchSyncOrigin(kOrigin3, kResourceId3); |
| 410 EXPECT_EQ(kResourceID2, | |
| 411 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); | |
| 412 | 470 |
| 413 // Mark |kOrigin1| as an incremental sync origin. |kOrigin2| should have still | 471 // Mark |kOrigin1| as an incremental sync origin, and disable |kOrigin3| as |
| 414 // been marked as a batch sync origin. | 472 // a disabled sync origin. |kOrigin2| should have still been marked as a |
| 473 // batch sync origin. |
| 415 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin1); | 474 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin1); |
| 416 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 475 DisableOrigin(kOrigin3); |
| 417 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 476 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); |
| 418 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 477 VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
| 419 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | 478 VerifyDisabledOrigin(kOrigin3, kResourceId3); |
| 420 EXPECT_EQ(kResourceID1, | |
| 421 GetResourceID(metadata_store()->incremental_sync_origins(), | |
| 422 kOrigin1)); | |
| 423 EXPECT_EQ(kResourceID2, | |
| 424 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); | |
| 425 | 479 |
| 426 DropSyncOriginsInStore(); | 480 DropSyncOriginsInStore(); |
| 427 | 481 |
| 428 // Make sure origins have been dropped. | 482 // Make sure origins have been dropped. |
| 429 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 483 VerifyUntrackedOrigin(kOrigin1); |
| 430 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 484 VerifyUntrackedOrigin(kOrigin2); |
| 431 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 485 VerifyUntrackedOrigin(kOrigin3); |
| 432 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | |
| 433 | 486 |
| 434 RestoreSyncOriginsFromDB(); | 487 RestoreOriginsFromDB(); |
| 435 | 488 |
| 436 // Make sure origins have been restored. | 489 // Make sure origins have been restored. |
| 437 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 490 VerifyIncrementalSyncOrigin(kOrigin1, kResourceId1); |
| 438 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 491 VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
| 439 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 492 VerifyDisabledOrigin(kOrigin3, kResourceId3); |
| 440 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | |
| 441 EXPECT_EQ(kResourceID1, | |
| 442 GetResourceID(metadata_store()->incremental_sync_origins(), | |
| 443 kOrigin1)); | |
| 444 EXPECT_EQ(kResourceID2, | |
| 445 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); | |
| 446 | 493 |
| 447 VerifyReverseMap(); | 494 VerifyReverseMap(); |
| 448 } | 495 } |
| 449 | 496 |
| 497 TEST_F(DriveMetadataStoreTest, DisableOrigin) { |
| 498 const GURL kOrigin1("chrome-extension://example1"); |
| 499 const GURL kOrigin2("chrome-extension://example2"); |
| 500 const std::string kResourceId1("hoge"); |
| 501 const std::string kResourceId2("fuga"); |
| 502 |
| 503 InitializeDatabase(); |
| 504 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
| 505 |
| 506 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 507 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 508 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
| 509 VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
| 510 VerifyIncrementalSyncOrigin(kOrigin2, kResourceId2); |
| 511 |
| 512 DisableOrigin(kOrigin1); |
| 513 DisableOrigin(kOrigin2); |
| 514 VerifyDisabledOrigin(kOrigin1, kResourceId1); |
| 515 VerifyDisabledOrigin(kOrigin2, kResourceId2); |
| 516 |
| 517 EnableOrigin(kOrigin1); |
| 518 EnableOrigin(kOrigin2); |
| 519 VerifyBatchSyncOrigin(kOrigin1, kResourceId1); |
| 520 VerifyBatchSyncOrigin(kOrigin2, kResourceId2); |
| 521 } |
| 522 |
| 450 TEST_F(DriveMetadataStoreTest, RemoveOrigin) { | 523 TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
| 451 const GURL kOrigin1("chrome-extension://example1"); | 524 const GURL kOrigin1("chrome-extension://example1"); |
| 452 const GURL kOrigin2("chrome-extension://example2"); | 525 const GURL kOrigin2("chrome-extension://example2"); |
| 453 const GURL kOrigin3("chrome-extension://example3"); | 526 const GURL kOrigin3("chrome-extension://example3"); |
| 454 const GURL kOrigin4("chrome-extension://example4"); | 527 const GURL kOrigin4("chrome-extension://example4"); |
| 528 const GURL kOrigin5("chrome-extension://example5"); |
| 455 const std::string kResourceId1("hogera"); | 529 const std::string kResourceId1("hogera"); |
| 456 const std::string kResourceId2("fugaga"); | 530 const std::string kResourceId2("fugaga"); |
| 457 const std::string kResourceId3("piyopiyo"); | 531 const std::string kResourceId3("piyopiyo"); |
| 532 const std::string kResourceId5("hogehoge"); |
| 458 | 533 |
| 459 InitializeDatabase(); | 534 InitializeDatabase(); |
| 460 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); | 535 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
| 461 | 536 |
| 462 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); | 537 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 463 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); | 538 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 464 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); | 539 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
| 465 metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); | 540 metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
| 541 metadata_store()->AddBatchSyncOrigin(kOrigin5, kResourceId5); |
| 466 | 542 |
| 467 EXPECT_EQ(SYNC_STATUS_OK, | 543 EXPECT_EQ(SYNC_STATUS_OK, |
| 468 UpdateEntry( | 544 UpdateEntry( |
| 469 CreateSyncableFileSystemURL( | 545 CreateSyncableFileSystemURL( |
| 470 kOrigin1, kServiceName, base::FilePath(FPL("guf"))), | 546 kOrigin1, kServiceName, base::FilePath(FPL("guf"))), |
| 471 CreateMetadata("foo", "spam", false, false))); | 547 CreateMetadata("foo", "spam", false, false))); |
| 472 EXPECT_EQ(SYNC_STATUS_OK, | 548 EXPECT_EQ(SYNC_STATUS_OK, |
| 473 UpdateEntry( | 549 UpdateEntry( |
| 474 CreateSyncableFileSystemURL( | 550 CreateSyncableFileSystemURL( |
| 475 kOrigin2, kServiceName, base::FilePath(FPL("mof"))), | 551 kOrigin2, kServiceName, base::FilePath(FPL("mof"))), |
| 476 CreateMetadata("bar", "ham", false, false))); | 552 CreateMetadata("bar", "ham", false, false))); |
| 477 EXPECT_EQ(SYNC_STATUS_OK, | 553 EXPECT_EQ(SYNC_STATUS_OK, |
| 478 UpdateEntry( | 554 UpdateEntry( |
| 479 CreateSyncableFileSystemURL( | 555 CreateSyncableFileSystemURL( |
| 480 kOrigin3, kServiceName, base::FilePath(FPL("waf"))), | 556 kOrigin3, kServiceName, base::FilePath(FPL("waf"))), |
| 481 CreateMetadata("baz", "egg", false, false))); | 557 CreateMetadata("baz", "egg", false, false))); |
| 482 EXPECT_EQ(SYNC_STATUS_OK, | 558 EXPECT_EQ(SYNC_STATUS_OK, |
| 483 UpdateEntry( | 559 UpdateEntry( |
| 484 CreateSyncableFileSystemURL( | 560 CreateSyncableFileSystemURL( |
| 485 kOrigin4, kServiceName, base::FilePath(FPL("cue"))), | 561 kOrigin4, kServiceName, base::FilePath(FPL("cue"))), |
| 486 CreateMetadata("lat", "fork", false, false))); | 562 CreateMetadata("lat", "fork", false, false))); |
| 487 EXPECT_EQ(SYNC_STATUS_OK, | 563 EXPECT_EQ(SYNC_STATUS_OK, |
| 488 UpdateEntry( | 564 UpdateEntry( |
| 489 CreateSyncableFileSystemURL( | 565 CreateSyncableFileSystemURL( |
| 566 kOrigin5, kServiceName, base::FilePath(FPL("tac"))), |
| 567 CreateMetadata("pov", "spoon", false, false))); |
| 568 EXPECT_EQ(SYNC_STATUS_OK, |
| 569 UpdateEntry( |
| 570 CreateSyncableFileSystemURL( |
| 490 kOrigin1, kServiceName, base::FilePath(FPL("tic"))), | 571 kOrigin1, kServiceName, base::FilePath(FPL("tic"))), |
| 491 CreateMetadata("zav", "sause", false, false))); | 572 CreateMetadata("zav", "sause", false, false))); |
| 492 | 573 |
| 493 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin1)); | 574 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin1)); |
| 494 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2)); | 575 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin2)); |
| 495 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin4)); | 576 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin4)); |
| 577 EXPECT_EQ(SYNC_STATUS_OK, RemoveOrigin(kOrigin5)); |
| 496 | 578 |
| 497 DropDatabase(); | 579 DropDatabase(); |
| 498 InitializeDatabase(); | 580 InitializeDatabase(); |
| 499 | 581 |
| 500 // kOrigin3 should be only remaining batch sync origin. | 582 // kOrigin3 should be only remaining batch sync origin. |
| 501 EXPECT_EQ(1u, metadata_store()->batch_sync_origins().size()); | 583 EXPECT_EQ(1u, metadata_store()->batch_sync_origins().size()); |
| 502 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin3)); | 584 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin3)); |
| 503 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); | 585 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); |
| 586 EXPECT_TRUE(metadata_store()->disabled_origins().empty()); |
| 504 EXPECT_EQ(1u, metadata_map().size()); | 587 EXPECT_EQ(1u, metadata_map().size()); |
| 505 | 588 |
| 506 DriveMetadataStore::MetadataMap::const_iterator found = | 589 DriveMetadataStore::MetadataMap::const_iterator found = |
| 507 metadata_map().find(kOrigin3); | 590 metadata_map().find(kOrigin3); |
| 508 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); | 591 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); |
| 509 | 592 |
| 510 VerifyReverseMap(); | 593 VerifyReverseMap(); |
| 511 } | 594 } |
| 512 | 595 |
| 513 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { | 596 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { |
| 514 const GURL kOrigin1("chrome-extension://example1"); | 597 const GURL kOrigin1("chrome-extension://example1"); |
| 515 const GURL kOrigin2("chrome-extension://example2"); | 598 const GURL kOrigin2("chrome-extension://example2"); |
| 599 const GURL kOrigin3("chrome-extension://example3"); |
| 516 const std::string kResourceId1("hogera"); | 600 const std::string kResourceId1("hogera"); |
| 517 const std::string kResourceId2("fugaga"); | 601 const std::string kResourceId2("fugaga"); |
| 602 const std::string kResourceId3("piyopiyo"); |
| 518 | 603 |
| 519 InitializeDatabase(); | 604 InitializeDatabase(); |
| 520 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); | 605 EXPECT_EQ(SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
| 521 | 606 |
| 522 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); | 607 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 523 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); | 608 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 524 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); | 609 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
| 610 metadata_store()->AddBatchSyncOrigin(kOrigin3, kResourceId3); |
| 611 DisableOrigin(kOrigin3); |
| 525 | 612 |
| 526 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); | 613 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
| 527 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); | 614 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
| 615 EXPECT_EQ(kResourceId3, metadata_store()->GetResourceIdForOrigin(kOrigin3)); |
| 528 | 616 |
| 529 DropDatabase(); | 617 DropDatabase(); |
| 530 InitializeDatabase(); | 618 InitializeDatabase(); |
| 531 | 619 |
| 532 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); | 620 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
| 533 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); | 621 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
| 622 EXPECT_EQ(kResourceId3, metadata_store()->GetResourceIdForOrigin(kOrigin3)); |
| 534 | 623 |
| 535 VerifyReverseMap(); | 624 VerifyReverseMap(); |
| 536 } | 625 } |
| 537 | 626 |
| 538 TEST_F(DriveMetadataStoreTest, MigrationFromV0) { | 627 TEST_F(DriveMetadataStoreTest, MigrationFromV0) { |
| 539 const GURL kOrigin1("chrome-extension://example1"); | 628 const GURL kOrigin1("chrome-extension://example1"); |
| 540 const GURL kOrigin2("chrome-extension://example2"); | 629 const GURL kOrigin2("chrome-extension://example2"); |
| 541 const std::string kSyncRootResourceId("sync_root_resource_id"); | 630 const std::string kSyncRootResourceId("sync_root_resource_id"); |
| 542 const std::string kResourceId1("hoge"); | 631 const std::string kResourceId1("hoge"); |
| 543 const std::string kResourceId2("fuga"); | 632 const std::string kResourceId2("fuga"); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 &metadata)); | 695 &metadata)); |
| 607 EXPECT_EQ(kFileResourceId, metadata.resource_id()); | 696 EXPECT_EQ(kFileResourceId, metadata.resource_id()); |
| 608 EXPECT_EQ(kFileMD5, metadata.md5_checksum()); | 697 EXPECT_EQ(kFileMD5, metadata.md5_checksum()); |
| 609 EXPECT_FALSE(metadata.conflicted()); | 698 EXPECT_FALSE(metadata.conflicted()); |
| 610 EXPECT_FALSE(metadata.to_be_fetched()); | 699 EXPECT_FALSE(metadata.to_be_fetched()); |
| 611 | 700 |
| 612 VerifyReverseMap(); | 701 VerifyReverseMap(); |
| 613 } | 702 } |
| 614 | 703 |
| 615 } // namespace sync_file_system | 704 } // namespace sync_file_system |
| OLD | NEW |