Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc

Issue 204133004: [SyncFS] Make SyncEngineInitializer run as a background task (3/3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_backend/sync_engine_initializer. h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine_initializer. h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "chrome/browser/drive/drive_api_util.h" 10 #include "chrome/browser/drive/drive_api_util.h"
11 #include "chrome/browser/drive/fake_drive_service.h" 11 #include "chrome/browser/drive/fake_drive_service.h"
12 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" 12 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h"
13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h" 13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util. h"
14 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" 14 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
15 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 15 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
16 #include "chrome/browser/sync_file_system/drive_backend/sync_task_manager.h"
16 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h" 17 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h"
17 #include "content/public/test/test_browser_thread_bundle.h" 18 #include "content/public/test/test_browser_thread_bundle.h"
18 #include "google_apis/drive/drive_api_parser.h" 19 #include "google_apis/drive/drive_api_parser.h"
19 #include "google_apis/drive/gdata_wapi_parser.h" 20 #include "google_apis/drive/gdata_wapi_parser.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h" 22 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h"
22 #include "third_party/leveldatabase/src/include/leveldb/env.h" 23 #include "third_party/leveldatabase/src/include/leveldb/env.h"
23 24
24 namespace sync_file_system { 25 namespace sync_file_system {
25 namespace drive_backend { 26 namespace drive_backend {
(...skipping 15 matching lines...) Expand all
41 SyncEngineInitializerTest() {} 42 SyncEngineInitializerTest() {}
42 virtual ~SyncEngineInitializerTest() {} 43 virtual ~SyncEngineInitializerTest() {}
43 44
44 virtual void SetUp() OVERRIDE { 45 virtual void SetUp() OVERRIDE {
45 ASSERT_TRUE(database_dir_.CreateUniqueTempDir()); 46 ASSERT_TRUE(database_dir_.CreateUniqueTempDir());
46 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default())); 47 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default()));
47 ASSERT_TRUE(fake_drive_service_.LoadAccountMetadataForWapi( 48 ASSERT_TRUE(fake_drive_service_.LoadAccountMetadataForWapi(
48 "sync_file_system/account_metadata.json")); 49 "sync_file_system/account_metadata.json"));
49 ASSERT_TRUE(fake_drive_service_.LoadResourceListForWapi( 50 ASSERT_TRUE(fake_drive_service_.LoadResourceListForWapi(
50 "gdata/empty_feed.json")); 51 "gdata/empty_feed.json"));
52
53 sync_task_manager_.reset(new SyncTaskManager(
54 base::WeakPtr<SyncTaskManager::Client>(),
55 1 /* maximum_parallel_task */));
56 sync_task_manager_->Initialize(SYNC_STATUS_OK);
51 } 57 }
52 58
53 virtual void TearDown() OVERRIDE { 59 virtual void TearDown() OVERRIDE {
54 initializer_.reset(); 60 sync_task_manager_.reset();
55 metadata_database_.reset(); 61 metadata_database_.reset();
56 base::RunLoop().RunUntilIdle(); 62 base::RunLoop().RunUntilIdle();
57 } 63 }
58 64
59 base::FilePath database_path() { 65 base::FilePath database_path() {
60 return database_dir_.path(); 66 return database_dir_.path();
61 } 67 }
62 68
63 SyncStatusCode RunInitializer() { 69 SyncStatusCode RunInitializer() {
64 initializer_.reset(new SyncEngineInitializer( 70 SyncEngineInitializer* initializer =
71 new SyncEngineInitializer(
65 NULL, 72 NULL,
66 base::MessageLoopProxy::current(), 73 base::MessageLoopProxy::current(),
67 &fake_drive_service_, 74 &fake_drive_service_,
68 database_path(), 75 database_path(),
69 in_memory_env_.get())); 76 in_memory_env_.get());
nhiroki 2014/03/28 03:47:26 nit: Can you make up these inconsistency indents?
tzik 2014/03/28 04:55:08 Done.
70 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 77 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
71 78
72 initializer_->RunSequential(CreateResultReceiver(&status)); 79 sync_task_manager_->ScheduleSyncTask(
80 FROM_HERE,
81 scoped_ptr<SyncTask>(initializer),
82 SyncTaskManager::PRIORITY_MED,
83 base::Bind(&SyncEngineInitializerTest::DidRunInitializer,
84 base::Unretained(this), initializer, &status));
85
73 base::RunLoop().RunUntilIdle(); 86 base::RunLoop().RunUntilIdle();
87 return status;
88 }
74 89
75 metadata_database_ = initializer_->PassMetadataDatabase(); 90 void DidRunInitializer(SyncEngineInitializer* initializer,
76 return status; 91 SyncStatusCode* status_out,
92 SyncStatusCode status) {
93 *status_out = status;
94 metadata_database_ = initializer->PassMetadataDatabase();
77 } 95 }
78 96
79 SyncStatusCode PopulateDatabase( 97 SyncStatusCode PopulateDatabase(
80 const google_apis::FileResource& sync_root, 98 const google_apis::FileResource& sync_root,
81 const google_apis::FileResource** app_roots, 99 const google_apis::FileResource** app_roots,
82 size_t app_roots_count) { 100 size_t app_roots_count) {
83 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 101 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
84 scoped_ptr<MetadataDatabase> database; 102 scoped_ptr<MetadataDatabase> database;
85 MetadataDatabase::Create( 103 MetadataDatabase::Create(
86 base::MessageLoopProxy::current(), 104 base::MessageLoopProxy::current(),
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 base::RunLoop().RunUntilIdle(); 212 base::RunLoop().RunUntilIdle();
195 return error; 213 return error;
196 } 214 }
197 215
198 private: 216 private:
199 content::TestBrowserThreadBundle browser_threads_; 217 content::TestBrowserThreadBundle browser_threads_;
200 base::ScopedTempDir database_dir_; 218 base::ScopedTempDir database_dir_;
201 scoped_ptr<leveldb::Env> in_memory_env_; 219 scoped_ptr<leveldb::Env> in_memory_env_;
202 drive::FakeDriveService fake_drive_service_; 220 drive::FakeDriveService fake_drive_service_;
203 221
204 scoped_ptr<SyncEngineInitializer> initializer_;
205 scoped_ptr<MetadataDatabase> metadata_database_; 222 scoped_ptr<MetadataDatabase> metadata_database_;
223 scoped_ptr<SyncTaskManager> sync_task_manager_;
206 224
207 DISALLOW_COPY_AND_ASSIGN(SyncEngineInitializerTest); 225 DISALLOW_COPY_AND_ASSIGN(SyncEngineInitializerTest);
208 }; 226 };
209 227
210 TEST_F(SyncEngineInitializerTest, EmptyDatabase_NoRemoteSyncRoot) { 228 TEST_F(SyncEngineInitializerTest, EmptyDatabase_NoRemoteSyncRoot) {
211 EXPECT_EQ(SYNC_STATUS_OK, RunInitializer()); 229 EXPECT_EQ(SYNC_STATUS_OK, RunInitializer());
212 230
213 std::string sync_root_folder_id = GetSyncRootFolderID(); 231 std::string sync_root_folder_id = GetSyncRootFolderID();
214 EXPECT_EQ(1u, CountTrackersForFile(sync_root_folder_id)); 232 EXPECT_EQ(1u, CountTrackersForFile(sync_root_folder_id));
215 233
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 344
327 EXPECT_EQ(0u, CountTrackersForFile(sync_root->file_id())); 345 EXPECT_EQ(0u, CountTrackersForFile(sync_root->file_id()));
328 EXPECT_FALSE(HasNoParent(sync_root->file_id())); 346 EXPECT_FALSE(HasNoParent(sync_root->file_id()));
329 347
330 EXPECT_EQ(1u, CountFileMetadata()); 348 EXPECT_EQ(1u, CountFileMetadata());
331 EXPECT_EQ(1u, CountFileTracker()); 349 EXPECT_EQ(1u, CountFileTracker());
332 } 350 }
333 351
334 } // namespace drive_backend 352 } // namespace drive_backend
335 } // namespace sync_file_system 353 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698