| OLD | NEW |
| 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 "content/browser/service_worker/embedded_worker_instance.h" | 5 #include "content/browser/service_worker/embedded_worker_instance.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 helper_->SimulateAddProcessToPattern(pattern, | 195 helper_->SimulateAddProcessToPattern(pattern, |
| 196 helper_->mock_render_process_id()); | 196 helper_->mock_render_process_id()); |
| 197 | 197 |
| 198 // Check if StartWorker/StopWorker will be called via mojo IPC. | 198 // Check if StartWorker/StopWorker will be called via mojo IPC. |
| 199 helper_->PrepareMockInstanceClients(1); | 199 helper_->PrepareMockInstanceClients(1); |
| 200 ASSERT_EQ(mock_instance_clients()->size(), 1UL); | 200 ASSERT_EQ(mock_instance_clients()->size(), 1UL); |
| 201 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient* instance_client = | 201 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient* instance_client = |
| 202 mock_instance_clients()->at(0).get(); | 202 mock_instance_clients()->at(0).get(); |
| 203 EXPECT_CALL( | 203 EXPECT_CALL( |
| 204 *instance_client, | 204 *instance_client, |
| 205 MockStartWorker(AllOf( | 205 MockStartWorker( |
| 206 Pointee( | 206 AllOf(Pointee(Field( |
| 207 Field(&EmbeddedWorkerStartWorkerParams::service_worker_version_id, | 207 &EmbeddedWorkerStartWorkerParams::service_worker_version_id, |
| 208 Eq(service_worker_version_id))), | 208 Eq(service_worker_version_id))), |
| 209 Pointee(Field(&EmbeddedWorkerStartWorkerParams::scope, Eq(pattern))), | 209 Pointee(Field(&EmbeddedWorkerStartWorkerParams::scope, |
| 210 Pointee( | 210 Eq(pattern))), |
| 211 Field(&EmbeddedWorkerStartWorkerParams::script_url, Eq(url)))))) | 211 Pointee(Field(&EmbeddedWorkerStartWorkerParams::script_url, |
| 212 Eq(url)))), |
| 213 _)) |
| 212 .Times(1); | 214 .Times(1); |
| 213 EXPECT_CALL(*instance_client, MockStopWorker(_)).Times(1); | 215 EXPECT_CALL(*instance_client, MockStopWorker(_)).Times(1); |
| 214 | 216 |
| 215 // Start should succeed. | 217 // Start should succeed. |
| 216 ServiceWorkerStatusCode status; | 218 ServiceWorkerStatusCode status; |
| 217 base::RunLoop run_loop; | 219 base::RunLoop run_loop; |
| 218 std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params = | 220 std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params = |
| 219 CreateStartParams(service_worker_version_id, pattern, url); | 221 CreateStartParams(service_worker_version_id, pattern, url); |
| 220 worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, | 222 worker->Start(std::move(params), base::Bind(&SaveStatusAndCall, &status, |
| 221 run_loop.QuitClosure())); | 223 run_loop.QuitClosure())); |
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 | 674 |
| 673 const int64_t version_id = 55L; | 675 const int64_t version_id = 55L; |
| 674 const GURL pattern("http://example.com/"); | 676 const GURL pattern("http://example.com/"); |
| 675 const GURL url("http://example.com/worker.js"); | 677 const GURL url("http://example.com/worker.js"); |
| 676 | 678 |
| 677 // Let StartWorker fail; binding is discarded in the middle of IPC | 679 // Let StartWorker fail; binding is discarded in the middle of IPC |
| 678 helper_->PrepareMockInstanceClients(1); | 680 helper_->PrepareMockInstanceClients(1); |
| 679 ASSERT_EQ(mock_instance_clients()->size(), 1UL); | 681 ASSERT_EQ(mock_instance_clients()->size(), 1UL); |
| 680 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient* instance_client = | 682 EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient* instance_client = |
| 681 mock_instance_clients()->at(0).get(); | 683 mock_instance_clients()->at(0).get(); |
| 682 EXPECT_CALL(*instance_client, MockStartWorker(_)) | 684 EXPECT_CALL(*instance_client, MockStartWorker(_, _)) |
| 683 .WillOnce(WithoutArgs( | 685 .WillOnce(WithoutArgs( |
| 684 Invoke([this]() { helper_->mock_instance_clients()->clear(); }))); | 686 Invoke([this]() { helper_->mock_instance_clients()->clear(); }))); |
| 685 | 687 |
| 686 std::unique_ptr<EmbeddedWorkerInstance> worker = | 688 std::unique_ptr<EmbeddedWorkerInstance> worker = |
| 687 embedded_worker_registry()->CreateWorker(); | 689 embedded_worker_registry()->CreateWorker(); |
| 688 helper_->SimulateAddProcessToPattern(pattern, | 690 helper_->SimulateAddProcessToPattern(pattern, |
| 689 helper_->mock_render_process_id()); | 691 helper_->mock_render_process_id()); |
| 690 worker->AddListener(this); | 692 worker->AddListener(this); |
| 691 | 693 |
| 692 // Attempt to start the worker. | 694 // Attempt to start the worker. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 | 732 |
| 731 // Worker should handle the failure of binding as detach. | 733 // Worker should handle the failure of binding as detach. |
| 732 ASSERT_EQ(3u, events_.size()); | 734 ASSERT_EQ(3u, events_.size()); |
| 733 EXPECT_EQ(PROCESS_ALLOCATED, events_[0].type); | 735 EXPECT_EQ(PROCESS_ALLOCATED, events_[0].type); |
| 734 EXPECT_EQ(START_WORKER_MESSAGE_SENT, events_[1].type); | 736 EXPECT_EQ(START_WORKER_MESSAGE_SENT, events_[1].type); |
| 735 EXPECT_EQ(DETACHED, events_[2].type); | 737 EXPECT_EQ(DETACHED, events_[2].type); |
| 736 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, events_[2].status); | 738 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, events_[2].status); |
| 737 } | 739 } |
| 738 | 740 |
| 739 } // namespace content | 741 } // namespace content |
| OLD | NEW |