OLD | NEW |
---|---|
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.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" |
6 | 6 |
7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/test/sequenced_worker_pool_owner.h" | |
10 #include "base/thread_task_runner_handle.h" | 11 #include "base/thread_task_runner_handle.h" |
11 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" | 12 #include "chrome/browser/sync_file_system/drive_backend/callback_helper.h" |
12 #include "chrome/browser/sync_file_system/drive_backend/fake_sync_worker.h" | 13 #include "chrome/browser/sync_file_system/drive_backend/fake_sync_worker.h" |
13 #include "chrome/browser/sync_file_system/drive_backend/sync_worker_interface.h" | 14 #include "chrome/browser/sync_file_system/drive_backend/sync_worker_interface.h" |
14 #include "chrome/browser/sync_file_system/remote_file_sync_service.h" | 15 #include "chrome/browser/sync_file_system/remote_file_sync_service.h" |
15 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h" | 16 #include "chrome/browser/sync_file_system/sync_file_system_test_util.h" |
16 #include "components/drive/drive_uploader.h" | 17 #include "components/drive/drive_uploader.h" |
17 #include "components/drive/service/fake_drive_service.h" | 18 #include "components/drive/service/fake_drive_service.h" |
18 #include "content/public/browser/browser_thread.h" | 19 #include "content/public/browser/browser_thread.h" |
19 #include "content/public/test/test_browser_thread_bundle.h" | 20 #include "content/public/test/test_browser_thread_bundle.h" |
20 #include "net/url_request/url_request_context_getter.h" | 21 #include "net/url_request/url_request_context_getter.h" |
21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
22 | 23 |
23 namespace sync_file_system { | 24 namespace sync_file_system { |
24 namespace drive_backend { | 25 namespace drive_backend { |
25 | 26 |
26 class SyncEngineTest : public testing::Test, | 27 class SyncEngineTest : public testing::Test, |
27 public base::SupportsWeakPtr<SyncEngineTest> { | 28 public base::SupportsWeakPtr<SyncEngineTest> { |
28 public: | 29 public: |
29 typedef RemoteFileSyncService::OriginStatusMap RemoteOriginStatusMap; | 30 typedef RemoteFileSyncService::OriginStatusMap RemoteOriginStatusMap; |
30 | 31 |
31 SyncEngineTest() {} | 32 SyncEngineTest() : worker_pool_owner_(1, "Worker") {} |
32 ~SyncEngineTest() override {} | 33 ~SyncEngineTest() override {} |
33 | 34 |
34 void SetUp() override { | 35 void SetUp() override { |
35 ASSERT_TRUE(profile_dir_.CreateUniqueTempDir()); | 36 ASSERT_TRUE(profile_dir_.CreateUniqueTempDir()); |
36 | 37 |
37 scoped_ptr<drive::DriveServiceInterface> | 38 scoped_ptr<drive::DriveServiceInterface> |
38 fake_drive_service(new drive::FakeDriveService); | 39 fake_drive_service(new drive::FakeDriveService); |
39 | 40 |
40 worker_pool_ = new base::SequencedWorkerPool(1, "Worker"); | |
41 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = | 41 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = |
42 base::ThreadTaskRunnerHandle::Get(); | 42 base::ThreadTaskRunnerHandle::Get(); |
43 worker_task_runner_ = | 43 worker_task_runner_ = |
44 worker_pool_->GetSequencedTaskRunnerWithShutdownBehavior( | 44 worker_pool_owner_.pool()->GetSequencedTaskRunnerWithShutdownBehavior( |
45 worker_pool_->GetSequenceToken(), | 45 worker_pool_owner_.pool()->GetSequenceToken(), |
46 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); | 46 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
47 | 47 |
48 sync_engine_.reset(new drive_backend::SyncEngine( | 48 sync_engine_.reset(new drive_backend::SyncEngine( |
49 ui_task_runner.get(), | 49 ui_task_runner.get(), worker_task_runner_.get(), |
brettw
2015/12/01 18:17:50
I found the old formatting here much better. If cl
tommycli
2015/12/02 19:57:04
Done. See if this patchset looks better. It's also
| |
50 worker_task_runner_.get(), | 50 nullptr /* drive_task_runner */, worker_pool_owner_.pool().get(), |
51 nullptr /* drive_task_runner */, | 51 profile_dir_.path(), nullptr /* task_logger */, |
52 worker_pool_.get(), | 52 nullptr /* notification_manager */, nullptr /* extension_service */, |
53 profile_dir_.path(), | 53 nullptr /* signin_manager */, nullptr /* token_service */, |
54 nullptr /* task_logger */, | 54 nullptr /* request_context */, nullptr /* drive_service_factory */, |
55 nullptr /* notification_manager */, | |
56 nullptr /* extension_service */, | |
57 nullptr /* signin_manager */, | |
58 nullptr /* token_service */, | |
59 nullptr /* request_context */, | |
60 nullptr /* drive_service_factory */, | |
61 nullptr /* in_memory_env */)); | 55 nullptr /* in_memory_env */)); |
62 | 56 |
63 sync_engine_->InitializeForTesting( | 57 sync_engine_->InitializeForTesting( |
64 fake_drive_service.Pass(), | 58 fake_drive_service.Pass(), |
65 nullptr, // drive_uploader | 59 nullptr, // drive_uploader |
66 scoped_ptr<SyncWorkerInterface>(new FakeSyncWorker)); | 60 scoped_ptr<SyncWorkerInterface>(new FakeSyncWorker)); |
67 sync_engine_->SetSyncEnabled(true); | 61 sync_engine_->SetSyncEnabled(true); |
68 sync_engine_->OnReadyToSendRequests(); | 62 sync_engine_->OnReadyToSendRequests(); |
69 | 63 |
70 WaitForWorkerTaskRunner(); | 64 WaitForWorkerTaskRunner(); |
71 } | 65 } |
72 | 66 |
73 void TearDown() override { | 67 void TearDown() override { |
74 sync_engine_.reset(); | 68 sync_engine_.reset(); |
75 WaitForWorkerTaskRunner(); | 69 WaitForWorkerTaskRunner(); |
76 worker_pool_->Shutdown(); | |
77 | 70 |
78 worker_task_runner_ = nullptr; | 71 worker_task_runner_ = nullptr; |
79 worker_pool_ = nullptr; | |
80 | |
81 base::RunLoop().RunUntilIdle(); | |
82 } | 72 } |
83 | 73 |
84 bool FindOriginStatus(const GURL& origin, std::string* status) { | 74 bool FindOriginStatus(const GURL& origin, std::string* status) { |
85 scoped_ptr<RemoteOriginStatusMap> status_map; | 75 scoped_ptr<RemoteOriginStatusMap> status_map; |
86 sync_engine()->GetOriginStatusMap(CreateResultReceiver(&status_map)); | 76 sync_engine()->GetOriginStatusMap(CreateResultReceiver(&status_map)); |
87 WaitForWorkerTaskRunner(); | 77 WaitForWorkerTaskRunner(); |
88 | 78 |
89 RemoteOriginStatusMap::const_iterator itr = status_map->find(origin); | 79 RemoteOriginStatusMap::const_iterator itr = status_map->find(origin); |
90 if (itr == status_map->end()) | 80 if (itr == status_map->end()) |
91 return false; | 81 return false; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 | 114 |
125 FakeSyncWorker* fake_sync_worker() { | 115 FakeSyncWorker* fake_sync_worker() { |
126 return static_cast<FakeSyncWorker*>(sync_engine_->sync_worker_.get()); | 116 return static_cast<FakeSyncWorker*>(sync_engine_->sync_worker_.get()); |
127 } | 117 } |
128 | 118 |
129 private: | 119 private: |
130 content::TestBrowserThreadBundle browser_threads_; | 120 content::TestBrowserThreadBundle browser_threads_; |
131 base::ScopedTempDir profile_dir_; | 121 base::ScopedTempDir profile_dir_; |
132 scoped_ptr<drive_backend::SyncEngine> sync_engine_; | 122 scoped_ptr<drive_backend::SyncEngine> sync_engine_; |
133 | 123 |
134 scoped_refptr<base::SequencedWorkerPool> worker_pool_; | 124 base::SequencedWorkerPoolOwner worker_pool_owner_; |
135 scoped_refptr<base::SequencedTaskRunner> worker_task_runner_; | 125 scoped_refptr<base::SequencedTaskRunner> worker_task_runner_; |
136 | 126 |
137 DISALLOW_COPY_AND_ASSIGN(SyncEngineTest); | 127 DISALLOW_COPY_AND_ASSIGN(SyncEngineTest); |
138 }; | 128 }; |
139 | 129 |
140 TEST_F(SyncEngineTest, OriginTest) { | 130 TEST_F(SyncEngineTest, OriginTest) { |
141 GURL origin("chrome-extension://app_0"); | 131 GURL origin("chrome-extension://app_0"); |
142 | 132 |
143 SyncStatusCode sync_status; | 133 SyncStatusCode sync_status; |
144 std::string status; | 134 std::string status; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
230 TEST_F(SyncEngineTest, ProcessRemoteChange) { | 220 TEST_F(SyncEngineTest, ProcessRemoteChange) { |
231 SyncStatusCode sync_status; | 221 SyncStatusCode sync_status; |
232 storage::FileSystemURL url; | 222 storage::FileSystemURL url; |
233 sync_engine()->ProcessRemoteChange(CreateResultReceiver(&sync_status, &url)); | 223 sync_engine()->ProcessRemoteChange(CreateResultReceiver(&sync_status, &url)); |
234 WaitForWorkerTaskRunner(); | 224 WaitForWorkerTaskRunner(); |
235 EXPECT_EQ(SYNC_STATUS_OK, sync_status); | 225 EXPECT_EQ(SYNC_STATUS_OK, sync_status); |
236 } | 226 } |
237 | 227 |
238 } // namespace drive_backend | 228 } // namespace drive_backend |
239 } // namespace sync_file_system | 229 } // namespace sync_file_system |
OLD | NEW |