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 |