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

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

Issue 1417353006: Tests: Simplify SequencedWorkerPoolOwner, call Shutdown on destructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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
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.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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698