OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "content/browser/service_worker/embedded_worker_test_helper.h" | 5 #include "content/browser/service_worker/embedded_worker_test_helper.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/thread_task_runner_handle.h" |
11 #include "content/browser/service_worker/embedded_worker_instance.h" | 12 #include "content/browser/service_worker/embedded_worker_instance.h" |
12 #include "content/browser/service_worker/embedded_worker_registry.h" | 13 #include "content/browser/service_worker/embedded_worker_registry.h" |
13 #include "content/browser/service_worker/service_worker_context_core.h" | 14 #include "content/browser/service_worker/service_worker_context_core.h" |
14 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 15 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
15 #include "content/common/service_worker/embedded_worker_messages.h" | 16 #include "content/common/service_worker/embedded_worker_messages.h" |
16 #include "content/common/service_worker/service_worker_messages.h" | 17 #include "content/common/service_worker/service_worker_messages.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
18 | 19 |
19 namespace content { | 20 namespace content { |
20 | 21 |
21 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( | 22 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( |
22 const base::FilePath& user_data_directory, | 23 const base::FilePath& user_data_directory, |
23 int mock_render_process_id) | 24 int mock_render_process_id) |
24 : wrapper_(new ServiceWorkerContextWrapper(NULL)), | 25 : wrapper_(new ServiceWorkerContextWrapper(NULL)), |
25 next_thread_id_(0), | 26 next_thread_id_(0), |
26 mock_render_process_id_(mock_render_process_id), | 27 mock_render_process_id_(mock_render_process_id), |
27 weak_factory_(this) { | 28 weak_factory_(this) { |
28 scoped_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( | 29 scoped_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( |
29 new MockServiceWorkerDatabaseTaskManager( | 30 new MockServiceWorkerDatabaseTaskManager( |
30 base::MessageLoopProxy::current())); | 31 base::ThreadTaskRunnerHandle::Get())); |
31 wrapper_->InitInternal(user_data_directory, database_task_manager.Pass(), | 32 wrapper_->InitInternal(user_data_directory, |
32 base::MessageLoopProxy::current(), NULL, NULL); | 33 database_task_manager.Pass(), |
| 34 base::ThreadTaskRunnerHandle::Get(), |
| 35 NULL, |
| 36 NULL); |
33 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id); | 37 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id); |
34 registry()->AddChildProcessSender(mock_render_process_id, this, nullptr); | 38 registry()->AddChildProcessSender(mock_render_process_id, this, nullptr); |
35 } | 39 } |
36 | 40 |
37 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { | 41 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { |
38 if (wrapper_.get()) | 42 if (wrapper_.get()) |
39 wrapper_->Shutdown(); | 43 wrapper_->Shutdown(); |
40 } | 44 } |
41 | 45 |
42 void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern( | 46 void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern( |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 registry()->OnMessageReceived(*message, mock_render_process_id_); | 219 registry()->OnMessageReceived(*message, mock_render_process_id_); |
216 delete message; | 220 delete message; |
217 } | 221 } |
218 | 222 |
219 void EmbeddedWorkerTestHelper::OnStartWorkerStub( | 223 void EmbeddedWorkerTestHelper::OnStartWorkerStub( |
220 const EmbeddedWorkerMsg_StartWorker_Params& params) { | 224 const EmbeddedWorkerMsg_StartWorker_Params& params) { |
221 EmbeddedWorkerInstance* worker = | 225 EmbeddedWorkerInstance* worker = |
222 registry()->GetWorker(params.embedded_worker_id); | 226 registry()->GetWorker(params.embedded_worker_id); |
223 ASSERT_TRUE(worker != NULL); | 227 ASSERT_TRUE(worker != NULL); |
224 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, worker->status()); | 228 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, worker->status()); |
225 base::MessageLoopProxy::current()->PostTask( | 229 base::ThreadTaskRunnerHandle::Get()->PostTask( |
226 FROM_HERE, | 230 FROM_HERE, |
227 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, | 231 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, |
228 weak_factory_.GetWeakPtr(), | 232 weak_factory_.GetWeakPtr(), |
229 params.embedded_worker_id, | 233 params.embedded_worker_id, |
230 params.service_worker_version_id, | 234 params.service_worker_version_id, |
231 params.scope, | 235 params.scope, |
232 params.script_url, | 236 params.script_url, |
233 params.pause_after_download)); | 237 params.pause_after_download)); |
234 } | 238 } |
235 | 239 |
236 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( | 240 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( |
237 int embedded_worker_id) { | 241 int embedded_worker_id) { |
238 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 242 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
239 ASSERT_TRUE(worker != NULL); | 243 ASSERT_TRUE(worker != NULL); |
240 base::MessageLoopProxy::current()->PostTask( | 244 base::ThreadTaskRunnerHandle::Get()->PostTask( |
241 FROM_HERE, | 245 FROM_HERE, |
242 base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, | 246 base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, |
243 weak_factory_.GetWeakPtr(), | 247 weak_factory_.GetWeakPtr(), |
244 embedded_worker_id)); | 248 embedded_worker_id)); |
245 } | 249 } |
246 | 250 |
247 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { | 251 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { |
248 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 252 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
249 ASSERT_TRUE(worker != NULL); | 253 ASSERT_TRUE(worker != NULL); |
250 base::MessageLoopProxy::current()->PostTask( | 254 base::ThreadTaskRunnerHandle::Get()->PostTask( |
251 FROM_HERE, | 255 FROM_HERE, |
252 base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, | 256 base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, |
253 weak_factory_.GetWeakPtr(), | 257 weak_factory_.GetWeakPtr(), |
254 embedded_worker_id)); | 258 embedded_worker_id)); |
255 } | 259 } |
256 | 260 |
257 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( | 261 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( |
258 int thread_id, | 262 int thread_id, |
259 int embedded_worker_id, | 263 int embedded_worker_id, |
260 const IPC::Message& message) { | 264 const IPC::Message& message) { |
261 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 265 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
262 ASSERT_TRUE(worker != NULL); | 266 ASSERT_TRUE(worker != NULL); |
263 EXPECT_EQ(worker->thread_id(), thread_id); | 267 EXPECT_EQ(worker->thread_id(), thread_id); |
264 base::MessageLoopProxy::current()->PostTask( | 268 base::ThreadTaskRunnerHandle::Get()->PostTask( |
265 FROM_HERE, | 269 FROM_HERE, |
266 base::Bind( | 270 base::Bind( |
267 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), | 271 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), |
268 weak_factory_.GetWeakPtr(), | 272 weak_factory_.GetWeakPtr(), |
269 thread_id, | 273 thread_id, |
270 embedded_worker_id, | 274 embedded_worker_id, |
271 message)); | 275 message)); |
272 } | 276 } |
273 | 277 |
274 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { | 278 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { |
275 base::MessageLoopProxy::current()->PostTask( | 279 base::ThreadTaskRunnerHandle::Get()->PostTask( |
276 FROM_HERE, | 280 FROM_HERE, |
277 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, | 281 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, |
278 weak_factory_.GetWeakPtr(), | 282 weak_factory_.GetWeakPtr(), |
279 current_embedded_worker_id_, | 283 current_embedded_worker_id_, |
280 request_id)); | 284 request_id)); |
281 } | 285 } |
282 | 286 |
283 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 287 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
284 base::MessageLoopProxy::current()->PostTask( | 288 base::ThreadTaskRunnerHandle::Get()->PostTask( |
285 FROM_HERE, | 289 FROM_HERE, |
286 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, | 290 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, |
287 weak_factory_.GetWeakPtr(), | 291 weak_factory_.GetWeakPtr(), |
288 current_embedded_worker_id_, | 292 current_embedded_worker_id_, |
289 request_id)); | 293 request_id)); |
290 } | 294 } |
291 | 295 |
292 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 296 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
293 int request_id, | 297 int request_id, |
294 const ServiceWorkerFetchRequest& request) { | 298 const ServiceWorkerFetchRequest& request) { |
295 base::MessageLoopProxy::current()->PostTask( | 299 base::ThreadTaskRunnerHandle::Get()->PostTask( |
296 FROM_HERE, | 300 FROM_HERE, |
297 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, | 301 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, |
298 weak_factory_.GetWeakPtr(), | 302 weak_factory_.GetWeakPtr(), |
299 current_embedded_worker_id_, | 303 current_embedded_worker_id_, |
300 request_id, | 304 request_id, |
301 request)); | 305 request)); |
302 } | 306 } |
303 | 307 |
304 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { | 308 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { |
305 DCHECK(context()); | 309 DCHECK(context()); |
306 return context()->embedded_worker_registry(); | 310 return context()->embedded_worker_registry(); |
307 } | 311 } |
308 | 312 |
309 } // namespace content | 313 } // namespace content |
OLD | NEW |