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

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

Issue 380093002: Update installed ServiceWorkers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 #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 "base/bind.h" 7 #include "base/bind.h"
8 #include "content/browser/service_worker/embedded_worker_instance.h" 8 #include "content/browser/service_worker/embedded_worker_instance.h"
9 #include "content/browser/service_worker/embedded_worker_registry.h" 9 #include "content/browser/service_worker/embedded_worker_registry.h"
10 #include "content/browser/service_worker/service_worker_context_core.h" 10 #include "content/browser/service_worker/service_worker_context_core.h"
11 #include "content/browser/service_worker/service_worker_context_wrapper.h" 11 #include "content/browser/service_worker/service_worker_context_wrapper.h"
12 #include "content/common/service_worker/embedded_worker_messages.h" 12 #include "content/common/service_worker/embedded_worker_messages.h"
13 #include "content/common/service_worker/service_worker_messages.h" 13 #include "content/common/service_worker/service_worker_messages.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace content { 16 namespace content {
17 17
18 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id) 18 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(int mock_render_process_id)
19 : wrapper_(new ServiceWorkerContextWrapper(NULL)), 19 : wrapper_(new ServiceWorkerContextWrapper(NULL)),
20 next_thread_id_(0), 20 next_thread_id_(0),
21 mock_render_process_id_(mock_render_process_id),
21 weak_factory_(this) { 22 weak_factory_(this) {
22 wrapper_->InitInternal(base::FilePath(), 23 wrapper_->InitInternal(base::FilePath(),
23 base::MessageLoopProxy::current(), 24 base::MessageLoopProxy::current(),
24 base::MessageLoopProxy::current(), 25 base::MessageLoopProxy::current(),
25 NULL); 26 NULL);
26 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id); 27 wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id);
27 registry()->AddChildProcessSender(mock_render_process_id, this); 28 registry()->AddChildProcessSender(mock_render_process_id, this);
28 } 29 }
29 30
30 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { 31 EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() {
(...skipping 15 matching lines...) Expand all
46 delete message; 47 delete message;
47 return true; 48 return true;
48 } 49 }
49 50
50 bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { 51 bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) {
51 bool handled = true; 52 bool handled = true;
52 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) 53 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
53 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorkerStub) 54 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorkerStub)
54 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub) 55 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub)
55 IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker, 56 IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker,
56 OnMessageToWorkerStub) 57 OnMessageToWorkerStub);
58 IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
59 OnResumeAfterDownloadStub);
falken 2014/07/18 05:13:24 We should put the semicolon on all or none... grep
57 IPC_MESSAGE_UNHANDLED(handled = false) 60 IPC_MESSAGE_UNHANDLED(handled = false)
58 IPC_END_MESSAGE_MAP() 61 IPC_END_MESSAGE_MAP()
59 62
60 // IPC::TestSink only records messages that are not handled by filters, 63 // IPC::TestSink only records messages that are not handled by filters,
61 // so we just forward all messages to the separate sink. 64 // so we just forward all messages to the separate sink.
62 sink_.OnMessageReceived(message); 65 sink_.OnMessageReceived(message);
63 66
64 return handled; 67 return handled;
65 } 68 }
66 69
67 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { 70 ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() {
68 return wrapper_->context(); 71 return wrapper_->context();
69 } 72 }
70 73
71 void EmbeddedWorkerTestHelper::ShutdownContext() { 74 void EmbeddedWorkerTestHelper::ShutdownContext() {
72 wrapper_->Shutdown(); 75 wrapper_->Shutdown();
73 wrapper_ = NULL; 76 wrapper_ = NULL;
74 } 77 }
75 78
76 void EmbeddedWorkerTestHelper::OnStartWorker( 79 void EmbeddedWorkerTestHelper::OnStartWorker(
77 int embedded_worker_id, 80 int embedded_worker_id,
78 int64 service_worker_version_id, 81 int64 service_worker_version_id,
79 const GURL& scope, 82 const GURL& scope,
80 const GURL& script_url) { 83 const GURL& script_url,
81 // By default just notify the sender that the worker is started. 84 bool pause_after_download) {
85 if (pause_after_download) {
86 SimulatePausedAfterDownload(embedded_worker_id);
87 return;
88 }
89 SimulateWorkerScriptLoaded(embedded_worker_id);
82 SimulateWorkerStarted(next_thread_id_++, embedded_worker_id); 90 SimulateWorkerStarted(next_thread_id_++, embedded_worker_id);
83 } 91 }
84 92
93 void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
94 SimulateWorkerScriptLoaded(embedded_worker_id);
95 SimulateWorkerStarted(next_thread_id_++, embedded_worker_id);
96 }
97
85 void EmbeddedWorkerTestHelper::OnStopWorker(int embedded_worker_id) { 98 void EmbeddedWorkerTestHelper::OnStopWorker(int embedded_worker_id) {
86 // By default just notify the sender that the worker is stopped. 99 // By default just notify the sender that the worker is stopped.
87 SimulateWorkerStopped(embedded_worker_id); 100 SimulateWorkerStopped(embedded_worker_id);
88 } 101 }
89 102
90 bool EmbeddedWorkerTestHelper::OnMessageToWorker( 103 bool EmbeddedWorkerTestHelper::OnMessageToWorker(
91 int thread_id, 104 int thread_id,
92 int embedded_worker_id, 105 int embedded_worker_id,
93 const IPC::Message& message) { 106 const IPC::Message& message) {
94 bool handled = true; 107 bool handled = true;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 SimulateSend( 141 SimulateSend(
129 new ServiceWorkerHostMsg_FetchEventFinished( 142 new ServiceWorkerHostMsg_FetchEventFinished(
130 embedded_worker_id, 143 embedded_worker_id,
131 request_id, 144 request_id,
132 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, 145 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE,
133 ServiceWorkerResponse(200, "OK", 146 ServiceWorkerResponse(200, "OK",
134 std::map<std::string, std::string>(), 147 std::map<std::string, std::string>(),
135 std::string()))); 148 std::string())));
136 } 149 }
137 150
151 void EmbeddedWorkerTestHelper::SimulatePausedAfterDownload(
152 int embedded_worker_id) {
153 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
154 ASSERT_TRUE(worker != NULL);
155 registry()->OnPausedAfterDownload(worker->process_id(), embedded_worker_id);
156 }
157
158 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
159 int embedded_worker_id) {
160 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
161 ASSERT_TRUE(worker != NULL);
162 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id);
163 }
164
138 void EmbeddedWorkerTestHelper::SimulateWorkerStarted( 165 void EmbeddedWorkerTestHelper::SimulateWorkerStarted(
139 int thread_id, int embedded_worker_id) { 166 int thread_id, int embedded_worker_id) {
140 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 167 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
141 ASSERT_TRUE(worker != NULL); 168 ASSERT_TRUE(worker != NULL);
142 registry()->OnWorkerStarted( 169 registry()->OnWorkerStarted(
143 worker->process_id(), 170 worker->process_id(),
144 thread_id, 171 thread_id,
145 embedded_worker_id); 172 embedded_worker_id);
146 } 173 }
147 174
(...skipping 12 matching lines...) Expand all
160 187
161 void EmbeddedWorkerTestHelper::OnStartWorkerStub( 188 void EmbeddedWorkerTestHelper::OnStartWorkerStub(
162 const EmbeddedWorkerMsg_StartWorker_Params& params) { 189 const EmbeddedWorkerMsg_StartWorker_Params& params) {
163 EmbeddedWorkerInstance* worker = 190 EmbeddedWorkerInstance* worker =
164 registry()->GetWorker(params.embedded_worker_id); 191 registry()->GetWorker(params.embedded_worker_id);
165 ASSERT_TRUE(worker != NULL); 192 ASSERT_TRUE(worker != NULL);
166 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, worker->status()); 193 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, worker->status());
167 base::MessageLoopProxy::current()->PostTask( 194 base::MessageLoopProxy::current()->PostTask(
168 FROM_HERE, 195 FROM_HERE,
169 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, 196 base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker,
197 weak_factory_.GetWeakPtr(),
198 params.embedded_worker_id,
199 params.service_worker_version_id,
200 params.scope,
201 params.script_url,
202 params.pause_after_download));
203 }
204
205 void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
206 int embedded_worker_id) {
207 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
208 ASSERT_TRUE(worker != NULL);
209 base::MessageLoopProxy::current()->PostTask(
210 FROM_HERE,
211 base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload,
170 weak_factory_.GetWeakPtr(), 212 weak_factory_.GetWeakPtr(),
171 params.embedded_worker_id, 213 embedded_worker_id));
172 params.service_worker_version_id,
173 params.scope,
174 params.script_url));
175 } 214 }
176 215
177 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { 216 void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) {
178 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 217 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
179 ASSERT_TRUE(worker != NULL); 218 ASSERT_TRUE(worker != NULL);
180 base::MessageLoopProxy::current()->PostTask( 219 base::MessageLoopProxy::current()->PostTask(
181 FROM_HERE, 220 FROM_HERE,
182 base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, 221 base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker,
183 weak_factory_.GetWeakPtr(), 222 weak_factory_.GetWeakPtr(),
184 embedded_worker_id)); 223 embedded_worker_id));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 request_id, 271 request_id,
233 request)); 272 request));
234 } 273 }
235 274
236 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { 275 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() {
237 DCHECK(context()); 276 DCHECK(context());
238 return context()->embedded_worker_registry(); 277 return context()->embedded_worker_registry();
239 } 278 }
240 279
241 } // namespace content 280 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698