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

Side by Side Diff: content/browser/service_worker/embedded_worker_test_helper.cc

Issue 2307543002: ServiceWorker: Mojofication of EWInstance::StopWorker (Closed)
Patch Set: Rebase Created 4 years, 3 months 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 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698