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

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

Issue 212593010: Implement the ServiceWorker "activate" event during activation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready, set... Created 6 years, 8 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 | Annotate | Revision Log
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 #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 <vector> 8 #include <vector>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 14 matching lines...) Expand all
25 25
26 // In-Process EmbeddedWorker test helper. 26 // In-Process EmbeddedWorker test helper.
27 // 27 //
28 // Usage: create an instance of this class for a ServiceWorkerContextCore 28 // Usage: create an instance of this class for a ServiceWorkerContextCore
29 // to test browser-side embedded worker code without creating a child process. 29 // to test browser-side embedded worker code without creating a child process.
30 // 30 //
31 // By default this class just notifies back WorkerStarted and WorkerStopped 31 // By default this class just notifies back WorkerStarted and WorkerStopped
32 // for StartWorker and StopWorker requests. The default implementation 32 // for StartWorker and StopWorker requests. The default implementation
33 // also returns success for event messages (e.g. InstallEvent, FetchEvent). 33 // also returns success for event messages (e.g. InstallEvent, FetchEvent).
34 // 34 //
35 // Alternatively consumers can subclass this helper and override 35 // Alternatively consumers can subclass this helper and override On*()
36 // OnStartWorker(), OnStopWorker(), OnSendMessageToWorker(), 36 // methods to add their own logic/verification code.
37 // OnInstallEvent(), OnFetchEvent() etc to add their own
38 // logic/verification code.
39 // 37 //
40 // See embedded_worker_instance_unittest.cc for example usages. 38 // See embedded_worker_instance_unittest.cc for example usages.
41 // 39 //
42 class EmbeddedWorkerTestHelper : public IPC::Sender, 40 class EmbeddedWorkerTestHelper : public IPC::Sender,
43 public IPC::Listener { 41 public IPC::Listener {
44 public: 42 public:
45 // Initialize this helper for |context|, and enable this as an IPC 43 // Initialize this helper for |context|, and enable this as an IPC
46 // sender for |mock_render_process_id|. 44 // sender for |mock_render_process_id|.
47 EmbeddedWorkerTestHelper(ServiceWorkerContextCore* context, 45 EmbeddedWorkerTestHelper(ServiceWorkerContextCore* context,
48 int mock_render_process_id); 46 int mock_render_process_id);
(...skipping 11 matching lines...) Expand all
60 58
61 // IPC sink for EmbeddedWorker messages. 59 // IPC sink for EmbeddedWorker messages.
62 IPC::TestSink* ipc_sink() { return &sink_; } 60 IPC::TestSink* ipc_sink() { return &sink_; }
63 // Inner IPC sink for script context messages sent via EmbeddedWorker. 61 // Inner IPC sink for script context messages sent via EmbeddedWorker.
64 IPC::TestSink* inner_ipc_sink() { return &inner_sink_; } 62 IPC::TestSink* inner_ipc_sink() { return &inner_sink_; }
65 63
66 protected: 64 protected:
67 // Called when StartWorker, StopWorker and SendMessageToWorker message 65 // Called when StartWorker, StopWorker and SendMessageToWorker message
68 // is sent to the embedded worker. Override if necessary. By default 66 // is sent to the embedded worker. Override if necessary. By default
69 // they verify given parameters and: 67 // they verify given parameters and:
70 // - call SimulateWorkerStarted for OnStartWorker 68 // - OnStartWorker calls SimulateWorkerStarted
71 // - call SimulateWorkerStoped for OnStopWorker 69 // - OnStopWorker calls SimulateWorkerStoped
72 // - call OnFooEvent handlers for known events for OnSendMessageToWorker 70 // - OnSendMessageToWorker calls the message's respective On*Event handler
73 virtual void OnStartWorker(int embedded_worker_id, 71 virtual void OnStartWorker(int embedded_worker_id,
74 int64 service_worker_version_id, 72 int64 service_worker_version_id,
75 const GURL& script_url); 73 const GURL& script_url);
76 virtual void OnStopWorker(int embedded_worker_id); 74 virtual void OnStopWorker(int embedded_worker_id);
77 virtual bool OnSendMessageToWorker(int thread_id, 75 virtual bool OnSendMessageToWorker(int thread_id,
78 int embedded_worker_id, 76 int embedded_worker_id,
79 int request_id, 77 int request_id,
80 const IPC::Message& message); 78 const IPC::Message& message);
81 79
82 // Called when InstallEvent, FetchEvent message is sent to the embedded 80 // On*Event handlers. Called by the default implementation of
83 // worker. These are called via OnSendMessageToWorker()'s default 81 // OnSendMessageToWorker when events are sent to the embedded
84 // implementation. By default they just return success via 82 // worker. By default they just return success via
85 // SimulateSendMessageToBrowser. 83 // SimulateSendMessageToBrowser.
84 virtual void OnActivateEvent(int embedded_worker_id, int request_id);
86 virtual void OnInstallEvent(int embedded_worker_id, 85 virtual void OnInstallEvent(int embedded_worker_id,
87 int request_id, 86 int request_id,
88 int active_version_id); 87 int active_version_id);
89 virtual void OnFetchEvent(int embedded_worker_id, 88 virtual void OnFetchEvent(int embedded_worker_id,
90 int request_id, 89 int request_id,
91 const ServiceWorkerFetchRequest& request); 90 const ServiceWorkerFetchRequest& request);
92 91
93 // Call this to simulate sending WorkerStarted, WorkerStopped and 92 // Call this to simulate sending WorkerStarted, WorkerStopped and
94 // SendMessageToBrowser to the browser. 93 // SendMessageToBrowser to the browser.
95 void SimulateWorkerStarted(int thread_id, int embedded_worker_id); 94 void SimulateWorkerStarted(int thread_id, int embedded_worker_id);
96 void SimulateWorkerStopped(int embedded_worker_id); 95 void SimulateWorkerStopped(int embedded_worker_id);
97 void SimulateSendMessageToBrowser(int embedded_worker_id, 96 void SimulateSendMessageToBrowser(int embedded_worker_id,
98 int request_id, 97 int request_id,
99 const IPC::Message& message); 98 const IPC::Message& message);
100 99
101 private: 100 private:
102 void OnStartWorkerStub(int embedded_worker_id, 101 void OnStartWorkerStub(int embedded_worker_id,
103 int64 service_worker_version_id, 102 int64 service_worker_version_id,
104 const GURL& script_url); 103 const GURL& script_url);
105 void OnStopWorkerStub(int embedded_worker_id); 104 void OnStopWorkerStub(int embedded_worker_id);
106 void OnSendMessageToWorkerStub(int thread_id, 105 void OnSendMessageToWorkerStub(int thread_id,
107 int embedded_worker_id, 106 int embedded_worker_id,
108 int request_id, 107 int request_id,
109 const IPC::Message& message); 108 const IPC::Message& message);
109 void OnActivateEventStub();
110 void OnInstallEventStub(int active_version_id); 110 void OnInstallEventStub(int active_version_id);
111 void OnFetchEventStub(const ServiceWorkerFetchRequest& request); 111 void OnFetchEventStub(const ServiceWorkerFetchRequest& request);
112 112
113 EmbeddedWorkerRegistry* registry(); 113 EmbeddedWorkerRegistry* registry();
114 114
115 base::WeakPtr<ServiceWorkerContextCore> context_; 115 base::WeakPtr<ServiceWorkerContextCore> context_;
116 116
117 IPC::TestSink sink_; 117 IPC::TestSink sink_;
118 IPC::TestSink inner_sink_; 118 IPC::TestSink inner_sink_;
119 119
120 int next_thread_id_; 120 int next_thread_id_;
121 121
122 // Updated each time SendMessageToWorker message is received. 122 // Updated each time SendMessageToWorker message is received.
123 int current_embedded_worker_id_; 123 int current_embedded_worker_id_;
124 int current_request_id_; 124 int current_request_id_;
125 125
126 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; 126 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_;
127 127
128 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); 128 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper);
129 }; 129 };
130 130
131 } // namespace content 131 } // namespace content
132 132
133 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ 133 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698