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

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

Issue 147903008: Revert of Wire InstallFinished and add some InstallEvent.waitUntil tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
« no previous file with comments | « no previous file | content/renderer/service_worker/embedded_worker_context_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.h" 6 #include "base/callback.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "content/browser/service_worker/embedded_worker_instance.h" 9 #include "content/browser/service_worker/embedded_worker_instance.h"
10 #include "content/browser/service_worker/embedded_worker_registry.h" 10 #include "content/browser/service_worker/embedded_worker_registry.h"
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 if (registration_) { 187 if (registration_) {
188 registration_->Shutdown(); 188 registration_->Shutdown();
189 registration_ = NULL; 189 registration_ = NULL;
190 } 190 }
191 if (version_) { 191 if (version_) {
192 version_->Shutdown(); 192 version_->Shutdown();
193 version_ = NULL; 193 version_ = NULL;
194 } 194 }
195 } 195 }
196 196
197 void InstallTestHelper(const std::string& worker_url) {
198 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this,
199 worker_url));
200
201 // Dispatch install on a worker.
202 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
203 base::RunLoop install_run_loop;
204 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
205 base::Bind(&self::InstallOnIOThread, this,
206 install_run_loop.QuitClosure(),
207 &status));
208 install_run_loop.Run();
209 ASSERT_EQ(SERVICE_WORKER_OK, status);
210
211 // Stop the worker.
212 status = SERVICE_WORKER_ERROR_FAILED;
213 base::RunLoop stop_run_loop;
214 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
215 base::Bind(&self::StopOnIOThread, this,
216 stop_run_loop.QuitClosure(),
217 &status));
218 stop_run_loop.Run();
219 ASSERT_EQ(SERVICE_WORKER_OK, status);
220 }
221
222 void SetUpRegistrationOnIOThread(const std::string& worker_url) { 197 void SetUpRegistrationOnIOThread(const std::string& worker_url) {
223 const int64 version_id = 1L; 198 const int64 version_id = 1L;
224 registration_ = new ServiceWorkerRegistration( 199 registration_ = new ServiceWorkerRegistration(
225 embedded_test_server()->GetURL("/*"), 200 embedded_test_server()->GetURL("/*"),
226 embedded_test_server()->GetURL(worker_url), 201 embedded_test_server()->GetURL(worker_url),
227 next_registration_id_++); 202 next_registration_id_++);
228 version_ = new ServiceWorkerVersion( 203 version_ = new ServiceWorkerVersion(
229 registration_, 204 registration_,
230 wrapper()->context()->embedded_worker_registry(), 205 wrapper()->context()->embedded_worker_registry(),
231 version_id); 206 version_id);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 base::RunLoop start_run_loop; 286 base::RunLoop start_run_loop;
312 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, 287 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
313 base::Bind(&self::StartOnIOThread, this, 288 base::Bind(&self::StartOnIOThread, this,
314 start_run_loop.QuitClosure(), 289 start_run_loop.QuitClosure(),
315 &status)); 290 &status));
316 start_run_loop.Run(); 291 start_run_loop.Run();
317 ASSERT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); 292 ASSERT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status);
318 } 293 }
319 294
320 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Install) { 295 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Install) {
321 InstallTestHelper("/service_worker/worker.js"); 296 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this,
322 } 297 "/service_worker/worker.js"));
323 298
324 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 299 // Dispatch install on a worker.
325 InstallWithWaitUntil_Fulfilled) { 300 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
326 InstallTestHelper("/service_worker/worker_install_fulfilled.js"); 301 base::RunLoop install_run_loop;
327 } 302 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
303 base::Bind(&self::InstallOnIOThread, this,
304 install_run_loop.QuitClosure(),
305 &status));
306 install_run_loop.Run();
307 ASSERT_EQ(SERVICE_WORKER_OK, status);
328 308
329 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 309 // Stop the worker.
330 InstallWithWaitUntil_Rejected) { 310 status = SERVICE_WORKER_ERROR_FAILED;
331 // TODO(kinuko): This should also report back an error, but we 311 base::RunLoop stop_run_loop;
332 // don't have plumbing for it yet. 312 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
333 InstallTestHelper("/service_worker/worker_install_rejected.js"); 313 base::Bind(&self::StopOnIOThread, this,
314 stop_run_loop.QuitClosure(),
315 &status));
316 stop_run_loop.Run();
317 ASSERT_EQ(SERVICE_WORKER_OK, status);
334 } 318 }
335 319
336 } // namespace content 320 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/renderer/service_worker/embedded_worker_context_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698