| 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 |