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://example"; |
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://example1"); |
316 const GURL kOrigin2("http://www2.example.com"); | 316 const GURL kOrigin2("chrome-extension://example2"); |
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://example1"); |
375 const GURL kOrigin2("http://fuga.example.net"); | 375 const GURL kOrigin2("chrome-extension://example2"); |
376 const GURL kOrigin3("http://piyo.example.net"); | 376 const GURL kOrigin3("chrome-extension://example3"); |
377 const GURL kOrigin4("http://mogo.example.net"); | 377 const GURL kOrigin4("chrome-extension://example4"); |
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://example1"); |
436 const GURL kOrigin2("http://fuga.example.net"); | 436 const GURL kOrigin2("chrome-extension://example2"); |
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 |