| 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 #ifndef CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
| 6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h" | 22 #include "content/common/service_worker/service_worker_event_dispatcher.mojom.h" |
| 23 #include "content/common/service_worker/service_worker_status_code.h" | 23 #include "content/common/service_worker/service_worker_status_code.h" |
| 24 #include "ipc/ipc_listener.h" | 24 #include "ipc/ipc_listener.h" |
| 25 #include "ipc/ipc_test_sink.h" | 25 #include "ipc/ipc_test_sink.h" |
| 26 #include "mojo/public/cpp/bindings/binding.h" | 26 #include "mojo/public/cpp/bindings/binding.h" |
| 27 #include "net/http/http_response_info.h" | 27 #include "net/http/http_response_info.h" |
| 28 #include "url/gurl.h" | 28 #include "url/gurl.h" |
| 29 | 29 |
| 30 class GURL; | 30 class GURL; |
| 31 | 31 |
| 32 namespace service_manager { | |
| 33 class InterfaceRegistry; | |
| 34 } | |
| 35 | |
| 36 namespace content { | 32 namespace content { |
| 37 | 33 |
| 38 struct BackgroundFetchSettledFetch; | 34 struct BackgroundFetchSettledFetch; |
| 39 class EmbeddedWorkerRegistry; | 35 class EmbeddedWorkerRegistry; |
| 40 class EmbeddedWorkerTestHelper; | 36 class EmbeddedWorkerTestHelper; |
| 41 class MockRenderProcessHost; | 37 class MockRenderProcessHost; |
| 42 class ServiceWorkerContextCore; | 38 class ServiceWorkerContextCore; |
| 43 class ServiceWorkerContextWrapper; | 39 class ServiceWorkerContextWrapper; |
| 44 class ServiceWorkerDispatcherHost; | 40 class ServiceWorkerDispatcherHost; |
| 45 class TestBrowserContext; | 41 class TestBrowserContext; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 72 base::Time /* dispatch_event_time */)>; | 68 base::Time /* dispatch_event_time */)>; |
| 73 | 69 |
| 74 class MockEmbeddedWorkerInstanceClient | 70 class MockEmbeddedWorkerInstanceClient |
| 75 : public mojom::EmbeddedWorkerInstanceClient { | 71 : public mojom::EmbeddedWorkerInstanceClient { |
| 76 public: | 72 public: |
| 77 explicit MockEmbeddedWorkerInstanceClient( | 73 explicit MockEmbeddedWorkerInstanceClient( |
| 78 base::WeakPtr<EmbeddedWorkerTestHelper> helper); | 74 base::WeakPtr<EmbeddedWorkerTestHelper> helper); |
| 79 ~MockEmbeddedWorkerInstanceClient() override; | 75 ~MockEmbeddedWorkerInstanceClient() override; |
| 80 | 76 |
| 81 static void Bind(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 77 static void Bind(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 82 mojom::EmbeddedWorkerInstanceClientRequest request); | 78 mojo::ScopedMessagePipeHandle request); |
| 83 | 79 |
| 84 protected: | 80 protected: |
| 85 // Implementation of mojo interfaces. | 81 // Implementation of mojo interfaces. |
| 86 void StartWorker( | 82 void StartWorker( |
| 87 const EmbeddedWorkerStartParams& params, | 83 const EmbeddedWorkerStartParams& params, |
| 88 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) override; | 84 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) override; |
| 89 void StopWorker(const StopWorkerCallback& callback) override; | 85 void StopWorker(const StopWorkerCallback& callback) override; |
| 90 void ResumeAfterDownload() override; | 86 void ResumeAfterDownload() override; |
| 91 void AddMessageToConsole(blink::WebConsoleMessage::Level level, | 87 void AddMessageToConsole(blink::WebConsoleMessage::Level level, |
| 92 const std::string& message) override; | 88 const std::string& message) override; |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 DispatchNotificationCloseEventCallback& callback); | 306 DispatchNotificationCloseEventCallback& callback); |
| 311 void OnPushEventStub( | 307 void OnPushEventStub( |
| 312 const PushEventPayload& payload, | 308 const PushEventPayload& payload, |
| 313 const mojom::ServiceWorkerEventDispatcher::DispatchPushEventCallback& | 309 const mojom::ServiceWorkerEventDispatcher::DispatchPushEventCallback& |
| 314 callback); | 310 callback); |
| 315 void OnPaymentRequestEventStub( | 311 void OnPaymentRequestEventStub( |
| 316 payments::mojom::PaymentAppRequestPtr data, | 312 payments::mojom::PaymentAppRequestPtr data, |
| 317 const mojom::ServiceWorkerEventDispatcher:: | 313 const mojom::ServiceWorkerEventDispatcher:: |
| 318 DispatchPaymentRequestEventCallback& callback); | 314 DispatchPaymentRequestEventCallback& callback); |
| 319 | 315 |
| 320 std::unique_ptr<service_manager::InterfaceRegistry> CreateInterfaceRegistry( | |
| 321 MockRenderProcessHost* rph); | |
| 322 | |
| 323 std::unique_ptr<TestBrowserContext> browser_context_; | 316 std::unique_ptr<TestBrowserContext> browser_context_; |
| 324 std::unique_ptr<MockRenderProcessHost> render_process_host_; | 317 std::unique_ptr<MockRenderProcessHost> render_process_host_; |
| 325 std::unique_ptr<MockRenderProcessHost> new_render_process_host_; | 318 std::unique_ptr<MockRenderProcessHost> new_render_process_host_; |
| 326 | 319 |
| 327 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; | 320 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; |
| 328 | 321 |
| 329 IPC::TestSink sink_; | 322 IPC::TestSink sink_; |
| 330 IPC::TestSink inner_sink_; | 323 IPC::TestSink inner_sink_; |
| 331 | 324 |
| 332 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>> | 325 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>> |
| 333 mock_instance_clients_; | 326 mock_instance_clients_; |
| 334 size_t mock_instance_clients_next_index_; | 327 size_t mock_instance_clients_next_index_; |
| 335 | 328 |
| 336 int next_thread_id_; | 329 int next_thread_id_; |
| 337 int mock_render_process_id_; | 330 int mock_render_process_id_; |
| 338 int new_mock_render_process_id_; | 331 int new_mock_render_process_id_; |
| 339 | 332 |
| 340 std::map<int /* process_id */, scoped_refptr<ServiceWorkerDispatcherHost>> | 333 std::map<int /* process_id */, scoped_refptr<ServiceWorkerDispatcherHost>> |
| 341 dispatcher_hosts_; | 334 dispatcher_hosts_; |
| 342 | 335 |
| 343 std::unique_ptr<service_manager::InterfaceRegistry> | |
| 344 render_process_interface_registry_; | |
| 345 std::unique_ptr<service_manager::InterfaceRegistry> | |
| 346 new_render_process_interface_registry_; | |
| 347 | |
| 348 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; | 336 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; |
| 349 std::map<int /* thread_id */, int /* embedded_worker_id */> | 337 std::map<int /* thread_id */, int /* embedded_worker_id */> |
| 350 thread_id_embedded_worker_id_map_; | 338 thread_id_embedded_worker_id_map_; |
| 351 | 339 |
| 352 // Updated each time MessageToWorker message is received. | 340 // Updated each time MessageToWorker message is received. |
| 353 int current_embedded_worker_id_; | 341 int current_embedded_worker_id_; |
| 354 | 342 |
| 355 std::vector<Event> events_; | 343 std::vector<Event> events_; |
| 356 | 344 |
| 357 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; | 345 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; |
| 358 | 346 |
| 359 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); | 347 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); |
| 360 }; | 348 }; |
| 361 | 349 |
| 362 template <typename MockType, typename... Args> | 350 template <typename MockType, typename... Args> |
| 363 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( | 351 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( |
| 364 Args&&... args) { | 352 Args&&... args) { |
| 365 std::unique_ptr<MockType> mock = | 353 std::unique_ptr<MockType> mock = |
| 366 base::MakeUnique<MockType>(std::forward<Args>(args)...); | 354 base::MakeUnique<MockType>(std::forward<Args>(args)...); |
| 367 MockType* mock_rawptr = mock.get(); | 355 MockType* mock_rawptr = mock.get(); |
| 368 RegisterMockInstanceClient(std::move(mock)); | 356 RegisterMockInstanceClient(std::move(mock)); |
| 369 return mock_rawptr; | 357 return mock_rawptr; |
| 370 } | 358 } |
| 371 | 359 |
| 372 } // namespace content | 360 } // namespace content |
| 373 | 361 |
| 374 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 362 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
| OLD | NEW |