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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 // also returns success for event messages (e.g. InstallEvent, FetchEvent). | 59 // also returns success for event messages (e.g. InstallEvent, FetchEvent). |
60 // | 60 // |
61 // Alternatively consumers can subclass this helper and override On*() | 61 // Alternatively consumers can subclass this helper and override On*() |
62 // methods to add their own logic/verification code. | 62 // methods to add their own logic/verification code. |
63 // | 63 // |
64 // See embedded_worker_instance_unittest.cc for example usages. | 64 // See embedded_worker_instance_unittest.cc for example usages. |
65 // | 65 // |
66 class EmbeddedWorkerTestHelper : public IPC::Sender, | 66 class EmbeddedWorkerTestHelper : public IPC::Sender, |
67 public IPC::Listener { | 67 public IPC::Listener { |
68 public: | 68 public: |
69 enum class Event { Activate }; | 69 enum class Event { Install, Activate }; |
70 using FetchCallback = | 70 using FetchCallback = |
71 base::Callback<void(ServiceWorkerStatusCode, | 71 base::Callback<void(ServiceWorkerStatusCode, |
72 base::Time /* dispatch_event_time */)>; | 72 base::Time /* dispatch_event_time */)>; |
73 | 73 |
74 class MockEmbeddedWorkerInstanceClient | 74 class MockEmbeddedWorkerInstanceClient |
75 : public mojom::EmbeddedWorkerInstanceClient { | 75 : public mojom::EmbeddedWorkerInstanceClient { |
76 public: | 76 public: |
77 explicit MockEmbeddedWorkerInstanceClient( | 77 explicit MockEmbeddedWorkerInstanceClient( |
78 base::WeakPtr<EmbeddedWorkerTestHelper> helper); | 78 base::WeakPtr<EmbeddedWorkerTestHelper> helper); |
79 ~MockEmbeddedWorkerInstanceClient() override; | 79 ~MockEmbeddedWorkerInstanceClient() override; |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 DispatchBackgroundFetchFailEventCallback& callback); | 206 DispatchBackgroundFetchFailEventCallback& callback); |
207 virtual void OnBackgroundFetchedEvent( | 207 virtual void OnBackgroundFetchedEvent( |
208 const std::string& tag, | 208 const std::string& tag, |
209 const std::vector<BackgroundFetchSettledFetch>& fetches, | 209 const std::vector<BackgroundFetchSettledFetch>& fetches, |
210 const mojom::ServiceWorkerEventDispatcher:: | 210 const mojom::ServiceWorkerEventDispatcher:: |
211 DispatchBackgroundFetchedEventCallback& callback); | 211 DispatchBackgroundFetchedEventCallback& callback); |
212 virtual void OnExtendableMessageEvent( | 212 virtual void OnExtendableMessageEvent( |
213 mojom::ExtendableMessageEventPtr event, | 213 mojom::ExtendableMessageEventPtr event, |
214 const mojom::ServiceWorkerEventDispatcher:: | 214 const mojom::ServiceWorkerEventDispatcher:: |
215 DispatchExtendableMessageEventCallback& callback); | 215 DispatchExtendableMessageEventCallback& callback); |
216 virtual void OnInstallEvent(int embedded_worker_id, int request_id); | 216 virtual void OnInstallEvent( |
| 217 const mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback& |
| 218 callback); |
217 virtual void OnFetchEvent(int embedded_worker_id, | 219 virtual void OnFetchEvent(int embedded_worker_id, |
218 int fetch_event_id, | 220 int fetch_event_id, |
219 const ServiceWorkerFetchRequest& request, | 221 const ServiceWorkerFetchRequest& request, |
220 mojom::FetchEventPreloadHandlePtr preload_handle, | 222 mojom::FetchEventPreloadHandlePtr preload_handle, |
221 const FetchCallback& callback); | 223 const FetchCallback& callback); |
222 virtual void OnNotificationClickEvent( | 224 virtual void OnNotificationClickEvent( |
223 const std::string& notification_id, | 225 const std::string& notification_id, |
224 const PlatformNotificationData& notification_data, | 226 const PlatformNotificationData& notification_data, |
225 int action_index, | 227 int action_index, |
226 const base::Optional<base::string16>& reply, | 228 const base::Optional<base::string16>& reply, |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 DispatchBackgroundFetchFailEventCallback& callback); | 286 DispatchBackgroundFetchFailEventCallback& callback); |
285 void OnBackgroundFetchedEventStub( | 287 void OnBackgroundFetchedEventStub( |
286 const std::string& tag, | 288 const std::string& tag, |
287 const std::vector<BackgroundFetchSettledFetch>& fetches, | 289 const std::vector<BackgroundFetchSettledFetch>& fetches, |
288 const mojom::ServiceWorkerEventDispatcher:: | 290 const mojom::ServiceWorkerEventDispatcher:: |
289 DispatchBackgroundFetchedEventCallback& callback); | 291 DispatchBackgroundFetchedEventCallback& callback); |
290 void OnExtendableMessageEventStub( | 292 void OnExtendableMessageEventStub( |
291 mojom::ExtendableMessageEventPtr event, | 293 mojom::ExtendableMessageEventPtr event, |
292 const mojom::ServiceWorkerEventDispatcher:: | 294 const mojom::ServiceWorkerEventDispatcher:: |
293 DispatchExtendableMessageEventCallback& callback); | 295 DispatchExtendableMessageEventCallback& callback); |
294 void OnInstallEventStub(int request_id); | 296 void OnInstallEventStub( |
| 297 const mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback& |
| 298 callback); |
295 void OnFetchEventStub(int thread_id, | 299 void OnFetchEventStub(int thread_id, |
296 int fetch_event_id, | 300 int fetch_event_id, |
297 const ServiceWorkerFetchRequest& request, | 301 const ServiceWorkerFetchRequest& request, |
298 mojom::FetchEventPreloadHandlePtr preload_handle, | 302 mojom::FetchEventPreloadHandlePtr preload_handle, |
299 const FetchCallback& callback); | 303 const FetchCallback& callback); |
300 void OnNotificationClickEventStub( | 304 void OnNotificationClickEventStub( |
301 const std::string& notification_id, | 305 const std::string& notification_id, |
302 const PlatformNotificationData& notification_data, | 306 const PlatformNotificationData& notification_data, |
303 int action_index, | 307 int action_index, |
304 const base::Optional<base::string16>& reply, | 308 const base::Optional<base::string16>& reply, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 | 348 |
345 std::unique_ptr<service_manager::InterfaceRegistry> | 349 std::unique_ptr<service_manager::InterfaceRegistry> |
346 render_process_interface_registry_; | 350 render_process_interface_registry_; |
347 std::unique_ptr<service_manager::InterfaceRegistry> | 351 std::unique_ptr<service_manager::InterfaceRegistry> |
348 new_render_process_interface_registry_; | 352 new_render_process_interface_registry_; |
349 | 353 |
350 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; | 354 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; |
351 std::map<int /* thread_id */, int /* embedded_worker_id */> | 355 std::map<int /* thread_id */, int /* embedded_worker_id */> |
352 thread_id_embedded_worker_id_map_; | 356 thread_id_embedded_worker_id_map_; |
353 | 357 |
354 // Updated each time MessageToWorker message is received. | |
355 int current_embedded_worker_id_; | |
356 | |
357 std::vector<Event> events_; | 358 std::vector<Event> events_; |
358 | 359 |
359 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; | 360 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; |
360 | 361 |
361 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); | 362 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); |
362 }; | 363 }; |
363 | 364 |
364 template <typename MockType, typename... Args> | 365 template <typename MockType, typename... Args> |
365 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( | 366 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( |
366 Args&&... args) { | 367 Args&&... args) { |
367 std::unique_ptr<MockType> mock = | 368 std::unique_ptr<MockType> mock = |
368 base::MakeUnique<MockType>(std::forward<Args>(args)...); | 369 base::MakeUnique<MockType>(std::forward<Args>(args)...); |
369 MockType* mock_rawptr = mock.get(); | 370 MockType* mock_rawptr = mock.get(); |
370 RegisterMockInstanceClient(std::move(mock)); | 371 RegisterMockInstanceClient(std::move(mock)); |
371 return mock_rawptr; | 372 return mock_rawptr; |
372 } | 373 } |
373 | 374 |
374 } // namespace content | 375 } // namespace content |
375 | 376 |
376 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 377 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
OLD | NEW |