| 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 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 100 |
| 101 embedded_worker_id_ = params.embedded_worker_id; | 101 embedded_worker_id_ = params.embedded_worker_id; |
| 102 | 102 |
| 103 EmbeddedWorkerInstance* worker = | 103 EmbeddedWorkerInstance* worker = |
| 104 helper_->registry()->GetWorker(params.embedded_worker_id); | 104 helper_->registry()->GetWorker(params.embedded_worker_id); |
| 105 ASSERT_TRUE(worker != NULL); | 105 ASSERT_TRUE(worker != NULL); |
| 106 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); | 106 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); |
| 107 | 107 |
| 108 base::ThreadTaskRunnerHandle::Get()->PostTask( | 108 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 109 FROM_HERE, | 109 FROM_HERE, |
| 110 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, | 110 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, helper_->AsWeakPtr(), |
| 111 helper_->weak_factory_.GetWeakPtr(), params.embedded_worker_id, | 111 params.embedded_worker_id, params.service_worker_version_id, |
| 112 params.service_worker_version_id, params.scope, | 112 params.scope, params.script_url, params.pause_after_download)); |
| 113 params.script_url, params.pause_after_download)); | 113 } |
| 114 |
| 115 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker( |
| 116 const StopWorkerCallback& callback) { |
| 117 if (!helper_) |
| 118 return; |
| 119 |
| 120 ASSERT_TRUE(embedded_worker_id_); |
| 121 EmbeddedWorkerInstance* worker = |
| 122 helper_->registry()->GetWorker(embedded_worker_id_.value()); |
| 123 ASSERT_TRUE(worker != NULL); |
| 124 EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status()); |
| 125 |
| 126 callback.Run(); |
| 114 } | 127 } |
| 115 | 128 |
| 116 // static | 129 // static |
| 117 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind( | 130 void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::Bind( |
| 118 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 131 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 119 mojom::EmbeddedWorkerInstanceClientRequest request) { | 132 mojom::EmbeddedWorkerInstanceClientRequest request) { |
| 120 ASSERT_GE(helper->mock_instance_clients()->size(), | 133 ASSERT_GE(helper->mock_instance_clients()->size(), |
| 121 helper->mock_instance_clients_next_); | 134 helper->mock_instance_clients_next_); |
| 122 if (helper->mock_instance_clients()->size() == | 135 if (helper->mock_instance_clients()->size() == |
| 123 helper->mock_instance_clients_next_) { | 136 helper->mock_instance_clients_next_) { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 IPC_MESSAGE_UNHANDLED(handled = false) | 204 IPC_MESSAGE_UNHANDLED(handled = false) |
| 192 IPC_END_MESSAGE_MAP() | 205 IPC_END_MESSAGE_MAP() |
| 193 | 206 |
| 194 // IPC::TestSink only records messages that are not handled by filters, | 207 // IPC::TestSink only records messages that are not handled by filters, |
| 195 // so we just forward all messages to the separate sink. | 208 // so we just forward all messages to the separate sink. |
| 196 sink_.OnMessageReceived(message); | 209 sink_.OnMessageReceived(message); |
| 197 | 210 |
| 198 return handled; | 211 return handled; |
| 199 } | 212 } |
| 200 | 213 |
| 214 void EmbeddedWorkerTestHelper::RegisterMockInstanceClient( |
| 215 std::unique_ptr<MockEmbeddedWorkerInstanceClient> client) { |
| 216 mock_instance_clients_.push_back(std::move(client)); |
| 217 } |
| 218 |
| 201 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { | 219 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { |
| 202 return wrapper_->context(); | 220 return wrapper_->context(); |
| 203 } | 221 } |
| 204 | 222 |
| 205 void EmbeddedWorkerTestHelper::ShutdownContext() { | 223 void EmbeddedWorkerTestHelper::ShutdownContext() { |
| 206 wrapper_->Shutdown(); | 224 wrapper_->Shutdown(); |
| 207 wrapper_ = NULL; | 225 wrapper_ = NULL; |
| 208 } | 226 } |
| 209 | 227 |
| 210 void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id, | 228 void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id, |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 } | 392 } |
| 375 | 393 |
| 376 void EmbeddedWorkerTestHelper::OnStartWorkerStub( | 394 void EmbeddedWorkerTestHelper::OnStartWorkerStub( |
| 377 const EmbeddedWorkerStartParams& params) { | 395 const EmbeddedWorkerStartParams& params) { |
| 378 EmbeddedWorkerInstance* worker = | 396 EmbeddedWorkerInstance* worker = |
| 379 registry()->GetWorker(params.embedded_worker_id); | 397 registry()->GetWorker(params.embedded_worker_id); |
| 380 ASSERT_TRUE(worker != NULL); | 398 ASSERT_TRUE(worker != NULL); |
| 381 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); | 399 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); |
| 382 base::ThreadTaskRunnerHandle::Get()->PostTask( | 400 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 383 FROM_HERE, | 401 FROM_HERE, |
| 384 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, | 402 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(), |
| 385 weak_factory_.GetWeakPtr(), params.embedded_worker_id, | 403 params.embedded_worker_id, params.service_worker_version_id, |
| 386 params.service_worker_version_id, params.scope, | 404 params.scope, params.script_url, params.pause_after_download)); |
| 387 params.script_url, params.pause_after_download)); | |
| 388 } | 405 } |
| 389 | 406 |
| 390 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( | 407 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( |
| 391 int embedded_worker_id) { | 408 int embedded_worker_id) { |
| 392 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 409 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| 393 ASSERT_TRUE(worker); | 410 ASSERT_TRUE(worker); |
| 394 base::ThreadTaskRunnerHandle::Get()->PostTask( | 411 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 395 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, | 412 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, |
| 396 weak_factory_.GetWeakPtr(), embedded_worker_id)); | 413 AsWeakPtr(), embedded_worker_id)); |
| 397 } | 414 } |
| 398 | 415 |
| 399 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { | 416 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { |
| 400 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 417 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| 401 ASSERT_TRUE(worker != NULL); | 418 ASSERT_TRUE(worker != NULL); |
| 402 base::ThreadTaskRunnerHandle::Get()->PostTask( | 419 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 403 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, | 420 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, |
| 404 weak_factory_.GetWeakPtr(), embedded_worker_id)); | 421 AsWeakPtr(), embedded_worker_id)); |
| 405 } | 422 } |
| 406 | 423 |
| 407 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( | 424 void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( |
| 408 int thread_id, | 425 int thread_id, |
| 409 int embedded_worker_id, | 426 int embedded_worker_id, |
| 410 const IPC::Message& message) { | 427 const IPC::Message& message) { |
| 411 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 428 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| 412 ASSERT_TRUE(worker != NULL); | 429 ASSERT_TRUE(worker != NULL); |
| 413 EXPECT_EQ(worker->thread_id(), thread_id); | 430 EXPECT_EQ(worker->thread_id(), thread_id); |
| 414 base::ThreadTaskRunnerHandle::Get()->PostTask( | 431 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 415 FROM_HERE, | 432 FROM_HERE, |
| 416 base::Bind( | 433 base::Bind( |
| 417 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), | 434 base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), |
| 418 weak_factory_.GetWeakPtr(), thread_id, embedded_worker_id, message)); | 435 AsWeakPtr(), thread_id, embedded_worker_id, message)); |
| 419 } | 436 } |
| 420 | 437 |
| 421 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { | 438 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { |
| 422 base::ThreadTaskRunnerHandle::Get()->PostTask( | 439 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 423 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, | 440 FROM_HERE, |
| 424 weak_factory_.GetWeakPtr(), | 441 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), |
| 425 current_embedded_worker_id_, request_id)); | 442 current_embedded_worker_id_, request_id)); |
| 426 } | 443 } |
| 427 | 444 |
| 428 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( | 445 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
| 429 int request_id, | 446 int request_id, |
| 430 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { | 447 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { |
| 431 base::ThreadTaskRunnerHandle::Get()->PostTask( | 448 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 432 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, | 449 FROM_HERE, |
| 433 weak_factory_.GetWeakPtr(), | 450 base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
| 434 current_embedded_worker_id_, request_id)); | 451 AsWeakPtr(), current_embedded_worker_id_, request_id)); |
| 435 } | 452 } |
| 436 | 453 |
| 437 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 454 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
| 438 base::ThreadTaskRunnerHandle::Get()->PostTask( | 455 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 439 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, | 456 FROM_HERE, |
| 440 weak_factory_.GetWeakPtr(), | 457 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), |
| 441 current_embedded_worker_id_, request_id)); | 458 current_embedded_worker_id_, request_id)); |
| 442 } | 459 } |
| 443 | 460 |
| 444 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 461 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
| 445 int response_id, | 462 int response_id, |
| 446 int event_finish_id, | 463 int event_finish_id, |
| 447 const ServiceWorkerFetchRequest& request) { | 464 const ServiceWorkerFetchRequest& request) { |
| 448 base::ThreadTaskRunnerHandle::Get()->PostTask( | 465 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 449 FROM_HERE, | 466 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, |
| 450 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, | 467 AsWeakPtr(), current_embedded_worker_id_, |
| 451 weak_factory_.GetWeakPtr(), current_embedded_worker_id_, | 468 response_id, event_finish_id, request)); |
| 452 response_id, event_finish_id, request)); | |
| 453 } | 469 } |
| 454 | 470 |
| 455 void EmbeddedWorkerTestHelper::OnPushEventStub( | 471 void EmbeddedWorkerTestHelper::OnPushEventStub( |
| 456 int request_id, | 472 int request_id, |
| 457 const PushEventPayload& payload) { | 473 const PushEventPayload& payload) { |
| 458 base::ThreadTaskRunnerHandle::Get()->PostTask( | 474 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 459 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, | 475 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, AsWeakPtr(), |
| 460 weak_factory_.GetWeakPtr(), | |
| 461 current_embedded_worker_id_, request_id, payload)); | 476 current_embedded_worker_id_, request_id, payload)); |
| 462 } | 477 } |
| 463 | 478 |
| 464 void EmbeddedWorkerTestHelper::OnSetupMojoStub( | 479 void EmbeddedWorkerTestHelper::OnSetupMojoStub( |
| 465 int thread_id, | 480 int thread_id, |
| 466 shell::mojom::InterfaceProviderRequest request, | 481 shell::mojom::InterfaceProviderRequest request, |
| 467 shell::mojom::InterfaceProviderPtr remote_interfaces) { | 482 shell::mojom::InterfaceProviderPtr remote_interfaces) { |
| 468 std::unique_ptr<shell::InterfaceRegistry> local( | 483 std::unique_ptr<shell::InterfaceRegistry> local( |
| 469 new shell::InterfaceRegistry); | 484 new shell::InterfaceRegistry); |
| 470 local->Bind(std::move(request)); | 485 local->Bind(std::move(request)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 489 new MockMessagePortMessageFilter); | 504 new MockMessagePortMessageFilter); |
| 490 message_port_message_filters_.push_back(filter); | 505 message_port_message_filters_.push_back(filter); |
| 491 return filter.get(); | 506 return filter.get(); |
| 492 } | 507 } |
| 493 | 508 |
| 494 std::unique_ptr<shell::InterfaceRegistry> | 509 std::unique_ptr<shell::InterfaceRegistry> |
| 495 EmbeddedWorkerTestHelper::CreateInterfaceRegistry(MockRenderProcessHost* rph) { | 510 EmbeddedWorkerTestHelper::CreateInterfaceRegistry(MockRenderProcessHost* rph) { |
| 496 std::unique_ptr<shell::InterfaceRegistry> registry( | 511 std::unique_ptr<shell::InterfaceRegistry> registry( |
| 497 new shell::InterfaceRegistry); | 512 new shell::InterfaceRegistry); |
| 498 registry->AddInterface( | 513 registry->AddInterface( |
| 499 base::Bind(&MockEmbeddedWorkerSetup::Create, weak_factory_.GetWeakPtr())); | 514 base::Bind(&MockEmbeddedWorkerSetup::Create, AsWeakPtr())); |
| 500 registry->AddInterface(base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, | 515 registry->AddInterface( |
| 501 weak_factory_.GetWeakPtr())); | 516 base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, AsWeakPtr())); |
| 502 | 517 |
| 503 shell::mojom::InterfaceProviderPtr interfaces; | 518 shell::mojom::InterfaceProviderPtr interfaces; |
| 504 registry->Bind(mojo::GetProxy(&interfaces)); | 519 registry->Bind(mojo::GetProxy(&interfaces)); |
| 505 | 520 |
| 506 std::unique_ptr<shell::InterfaceProvider> remote_interfaces( | 521 std::unique_ptr<shell::InterfaceProvider> remote_interfaces( |
| 507 new shell::InterfaceProvider); | 522 new shell::InterfaceProvider); |
| 508 remote_interfaces->Bind(std::move(interfaces)); | 523 remote_interfaces->Bind(std::move(interfaces)); |
| 509 rph->SetRemoteInterfaces(std::move(remote_interfaces)); | 524 rph->SetRemoteInterfaces(std::move(remote_interfaces)); |
| 510 return registry; | 525 return registry; |
| 511 } | 526 } |
| 512 | 527 |
| 513 } // namespace content | 528 } // namespace content |
| OLD | NEW |