| 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 "base/file_path.h" | 7 #include "base/file_path.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 11 #include "base/stl_util.h" | 11 #include "base/stl_util.h" |
| 12 #include "base/threading/thread.h" | 12 #include "base/threading/thread.h" |
| 13 #include "chrome/browser/sync_file_system/drive_file_sync_service.h" | 13 #include "chrome/browser/sync_file_system/drive_file_sync_service.h" |
| 14 #include "chrome/browser/sync_file_system/sync_file_system.pb.h" | 14 #include "chrome/browser/sync_file_system/sync_file_system.pb.h" |
| 15 #include "content/public/browser/browser_thread.h" | 15 #include "content/public/browser/browser_thread.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 17 #include "webkit/fileapi/isolated_context.h" | 17 #include "webkit/fileapi/isolated_context.h" |
| 18 #include "webkit/fileapi/syncable/syncable_file_system_util.h" | 18 #include "webkit/fileapi/syncable/syncable_file_system_util.h" |
| 19 | 19 |
| 20 #define FPL FILE_PATH_LITERAL | 20 #define FPL FILE_PATH_LITERAL |
| 21 | 21 |
| 22 using content::BrowserThread; | 22 using content::BrowserThread; |
| 23 using fileapi::SyncStatusCode; | 23 using fileapi::SyncStatusCode; |
| 24 | 24 |
| 25 namespace sync_file_system { | 25 namespace sync_file_system { |
| 26 | 26 |
| 27 namespace { | 27 namespace { |
| 28 | 28 |
| 29 const char kOrigin[] = "http://www.example.com"; | 29 const char kOrigin[] = "chrome-extension://www.example.com"; |
| 30 const char* const kServiceName = DriveFileSyncService::kServiceName; | 30 const char* const kServiceName = DriveFileSyncService::kServiceName; |
| 31 | 31 |
| 32 typedef DriveMetadataStore::ResourceIDMap ResourceIDMap; | 32 typedef DriveMetadataStore::ResourceIDMap ResourceIDMap; |
| 33 | 33 |
| 34 fileapi::FileSystemURL URL(const FilePath& path) { | 34 fileapi::FileSystemURL URL(const FilePath& path) { |
| 35 return fileapi::CreateSyncableFileSystemURL( | 35 return fileapi::CreateSyncableFileSystemURL( |
| 36 GURL(kOrigin), kServiceName, path); | 36 GURL(kOrigin), kServiceName, path); |
| 37 } | 37 } |
| 38 | 38 |
| 39 std::string GetResourceID(const ResourceIDMap& sync_origins, | 39 std::string GetResourceID(const ResourceIDMap& sync_origins, |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); | 305 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); |
| 306 | 306 |
| 307 DropSyncRootDirectoryInStore(); | 307 DropSyncRootDirectoryInStore(); |
| 308 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); | 308 EXPECT_TRUE(metadata_store()->sync_root_directory().empty()); |
| 309 | 309 |
| 310 RestoreSyncRootDirectoryFromDB(); | 310 RestoreSyncRootDirectoryFromDB(); |
| 311 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); | 311 EXPECT_EQ(kResourceID, metadata_store()->sync_root_directory()); |
| 312 } | 312 } |
| 313 | 313 |
| 314 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { | 314 TEST_F(DriveMetadataStoreTest, StoreSyncOrigin) { |
| 315 const GURL kOrigin1("http://www1.example.com"); | 315 const GURL kOrigin1("chrome-extension://www1.example.com"); |
| 316 const GURL kOrigin2("http://www2.example.com"); | 316 const GURL kOrigin2("chrome-extension://www2.example.com"); |
| 317 const std::string kResourceID1("hoge"); | 317 const std::string kResourceID1("hoge"); |
| 318 const std::string kResourceID2("fuga"); | 318 const std::string kResourceID2("fuga"); |
| 319 | 319 |
| 320 InitializeDatabase(); | 320 InitializeDatabase(); |
| 321 | 321 |
| 322 // Make sure origins have not been marked yet. | 322 // Make sure origins have not been marked yet. |
| 323 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); | 323 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin1)); |
| 324 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); | 324 EXPECT_FALSE(metadata_store()->IsBatchSyncOrigin(kOrigin2)); |
| 325 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 325 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
| 326 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | 326 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); | 364 EXPECT_TRUE(metadata_store()->IsIncrementalSyncOrigin(kOrigin1)); |
| 365 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); | 365 EXPECT_FALSE(metadata_store()->IsIncrementalSyncOrigin(kOrigin2)); |
| 366 EXPECT_EQ(kResourceID1, | 366 EXPECT_EQ(kResourceID1, |
| 367 GetResourceID(metadata_store()->incremental_sync_origins(), | 367 GetResourceID(metadata_store()->incremental_sync_origins(), |
| 368 kOrigin1)); | 368 kOrigin1)); |
| 369 EXPECT_EQ(kResourceID2, | 369 EXPECT_EQ(kResourceID2, |
| 370 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); | 370 GetResourceID(metadata_store()->batch_sync_origins(), kOrigin2)); |
| 371 } | 371 } |
| 372 | 372 |
| 373 TEST_F(DriveMetadataStoreTest, RemoveOrigin) { | 373 TEST_F(DriveMetadataStoreTest, RemoveOrigin) { |
| 374 const GURL kOrigin1("http://hoge.example.com"); | 374 const GURL kOrigin1("chrome-extension://hoge.example.com"); |
| 375 const GURL kOrigin2("http://fuga.example.net"); | 375 const GURL kOrigin2("chrome-extension://fuga.example.net"); |
| 376 const GURL kOrigin3("http://piyo.example.net"); | 376 const GURL kOrigin3("chrome-extension://piyo.example.net"); |
| 377 const GURL kOrigin4("http://mogo.example.net"); | 377 const GURL kOrigin4("chrome-extension://mogo.example.net"); |
| 378 const std::string kResourceId1("hogera"); | 378 const std::string kResourceId1("hogera"); |
| 379 const std::string kResourceId2("fugaga"); | 379 const std::string kResourceId2("fugaga"); |
| 380 const std::string kResourceId3("piyopiyo"); | 380 const std::string kResourceId3("piyopiyo"); |
| 381 | 381 |
| 382 InitializeDatabase(); | 382 InitializeDatabase(); |
| 383 EXPECT_EQ(fileapi::SYNC_STATUS_OK, SetLargestChangeStamp(1)); | 383 EXPECT_EQ(fileapi::SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
| 384 | 384 |
| 385 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); | 385 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 386 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); | 386 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 387 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); | 387 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin3)); | 425 EXPECT_TRUE(metadata_store()->IsBatchSyncOrigin(kOrigin3)); |
| 426 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); | 426 EXPECT_TRUE(metadata_store()->incremental_sync_origins().empty()); |
| 427 EXPECT_EQ(1u, metadata_map().size()); | 427 EXPECT_EQ(1u, metadata_map().size()); |
| 428 | 428 |
| 429 DriveMetadataStore::MetadataMap::const_iterator found = | 429 DriveMetadataStore::MetadataMap::const_iterator found = |
| 430 metadata_map().find(kOrigin3); | 430 metadata_map().find(kOrigin3); |
| 431 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); | 431 EXPECT_TRUE(found != metadata_map().end() && found->second.size() == 1u); |
| 432 } | 432 } |
| 433 | 433 |
| 434 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { | 434 TEST_F(DriveMetadataStoreTest, GetResourceIdForOrigin) { |
| 435 const GURL kOrigin1("http://hoge.example.com"); | 435 const GURL kOrigin1("chrome-extension://hoge.example.com"); |
| 436 const GURL kOrigin2("http://fuga.example.net"); | 436 const GURL kOrigin2("chrome-extension://fuga.example.net"); |
| 437 const std::string kResourceId1("hogera"); | 437 const std::string kResourceId1("hogera"); |
| 438 const std::string kResourceId2("fugaga"); | 438 const std::string kResourceId2("fugaga"); |
| 439 | 439 |
| 440 InitializeDatabase(); | 440 InitializeDatabase(); |
| 441 EXPECT_EQ(fileapi::SYNC_STATUS_OK, SetLargestChangeStamp(1)); | 441 EXPECT_EQ(fileapi::SYNC_STATUS_OK, SetLargestChangeStamp(1)); |
| 442 | 442 |
| 443 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); | 443 metadata_store()->AddBatchSyncOrigin(kOrigin1, kResourceId1); |
| 444 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); | 444 metadata_store()->AddBatchSyncOrigin(kOrigin2, kResourceId2); |
| 445 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); | 445 metadata_store()->MoveBatchSyncOriginToIncremental(kOrigin2); |
| 446 | 446 |
| 447 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); | 447 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
| 448 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); | 448 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
| 449 | 449 |
| 450 DropDatabase(); | 450 DropDatabase(); |
| 451 InitializeDatabase(); | 451 InitializeDatabase(); |
| 452 | 452 |
| 453 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); | 453 EXPECT_EQ(kResourceId1, metadata_store()->GetResourceIdForOrigin(kOrigin1)); |
| 454 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); | 454 EXPECT_EQ(kResourceId2, metadata_store()->GetResourceIdForOrigin(kOrigin2)); |
| 455 } | 455 } |
| 456 | 456 |
| 457 } // namespace sync_file_system | 457 } // namespace sync_file_system |
| OLD | NEW |