Chromium Code Reviews| 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 #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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 if (registration_) { | 210 if (registration_) { |
| 211 registration_->Shutdown(); | 211 registration_->Shutdown(); |
| 212 registration_ = NULL; | 212 registration_ = NULL; |
| 213 } | 213 } |
| 214 if (version_) { | 214 if (version_) { |
| 215 version_->Shutdown(); | 215 version_->Shutdown(); |
| 216 version_ = NULL; | 216 version_ = NULL; |
| 217 } | 217 } |
| 218 } | 218 } |
| 219 | 219 |
| 220 void InstallTestHelper(const std::string& worker_url) { | 220 void InstallTestHelper(const std::string& worker_url, |
| 221 ServiceWorkerStatusCode expected) { | |
|
dominicc (has gone to gerrit)
2014/03/26 01:28:01
Would it be better to name this expected_status? I
falken
2014/03/26 07:53:56
Done.
| |
| 221 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this, | 222 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this, |
| 222 worker_url)); | 223 worker_url)); |
| 223 | 224 |
| 224 // Dispatch install on a worker. | 225 // Dispatch install on a worker. |
| 225 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; | 226 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; |
| 226 base::RunLoop install_run_loop; | 227 base::RunLoop install_run_loop; |
| 227 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 228 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 228 base::Bind(&self::InstallOnIOThread, this, | 229 base::Bind(&self::InstallOnIOThread, this, |
| 229 install_run_loop.QuitClosure(), | 230 install_run_loop.QuitClosure(), |
| 230 &status)); | 231 &status)); |
| 231 install_run_loop.Run(); | 232 install_run_loop.Run(); |
| 232 ASSERT_EQ(SERVICE_WORKER_OK, status); | 233 ASSERT_EQ(expected, status); |
| 233 | 234 |
| 234 // Stop the worker. | 235 // Stop the worker. |
| 235 status = SERVICE_WORKER_ERROR_FAILED; | 236 status = SERVICE_WORKER_ERROR_FAILED; |
| 236 base::RunLoop stop_run_loop; | 237 base::RunLoop stop_run_loop; |
| 237 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 238 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 238 base::Bind(&self::StopOnIOThread, this, | 239 base::Bind(&self::StopOnIOThread, this, |
| 239 stop_run_loop.QuitClosure(), | 240 stop_run_loop.QuitClosure(), |
| 240 &status)); | 241 &status)); |
| 241 stop_run_loop.Run(); | 242 stop_run_loop.Run(); |
| 242 ASSERT_EQ(SERVICE_WORKER_OK, status); | 243 ASSERT_EQ(SERVICE_WORKER_OK, status); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 366 base::RunLoop start_run_loop; | 367 base::RunLoop start_run_loop; |
| 367 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 368 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 368 base::Bind(&self::StartOnIOThread, this, | 369 base::Bind(&self::StartOnIOThread, this, |
| 369 start_run_loop.QuitClosure(), | 370 start_run_loop.QuitClosure(), |
| 370 &status)); | 371 &status)); |
| 371 start_run_loop.Run(); | 372 start_run_loop.Run(); |
| 372 ASSERT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); | 373 ASSERT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); |
| 373 } | 374 } |
| 374 | 375 |
| 375 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Install) { | 376 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Install) { |
| 376 InstallTestHelper("/service_worker/worker.js"); | 377 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); |
| 377 } | 378 } |
| 378 | 379 |
| 379 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, | 380 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| 380 InstallWithWaitUntil_Fulfilled) { | 381 InstallWithWaitUntil_Fulfilled) { |
| 381 InstallTestHelper("/service_worker/worker_install_fulfilled.js"); | 382 InstallTestHelper("/service_worker/worker_install_fulfilled.js", |
| 383 SERVICE_WORKER_OK); | |
| 382 } | 384 } |
| 383 | 385 |
| 386 // Temporarily disabled until a Blink change lands that hooks up the install | |
| 387 // failure code. | |
| 384 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, | 388 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| 385 InstallWithWaitUntil_Rejected) { | 389 DISABLED_InstallWithWaitUntil_Rejected) { |
| 386 // TODO(kinuko): This should also report back an error, but we | 390 InstallTestHelper("/service_worker/worker_install_rejected.js", |
| 387 // don't have plumbing for it yet. | 391 SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED); |
| 388 InstallTestHelper("/service_worker/worker_install_rejected.js"); | |
| 389 } | 392 } |
| 390 | 393 |
| 391 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { | 394 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { |
| 392 ServiceWorkerFetchEventResult result; | 395 ServiceWorkerFetchEventResult result; |
| 393 ServiceWorkerResponse response; | 396 ServiceWorkerResponse response; |
| 394 FetchTestHelper("/service_worker/fetch_event.js", &result, &response); | 397 FetchTestHelper("/service_worker/fetch_event.js", &result, &response); |
| 395 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); | 398 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); |
| 396 EXPECT_EQ(200, response.status_code); | 399 EXPECT_EQ(200, response.status_code); |
| 397 EXPECT_EQ("OK", response.status_text); | 400 EXPECT_EQ("OK", response.status_text); |
| 398 EXPECT_EQ("GET", response.method); | 401 EXPECT_EQ("GET", response.method); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 410 } | 413 } |
| 411 | 414 |
| 412 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Rejected) { | 415 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Rejected) { |
| 413 ServiceWorkerFetchEventResult result; | 416 ServiceWorkerFetchEventResult result; |
| 414 ServiceWorkerResponse response; | 417 ServiceWorkerResponse response; |
| 415 FetchTestHelper("/service_worker/fetch_event_error.js", &result, &response); | 418 FetchTestHelper("/service_worker/fetch_event_error.js", &result, &response); |
| 416 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, result); | 419 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, result); |
| 417 } | 420 } |
| 418 | 421 |
| 419 } // namespace content | 422 } // namespace content |
| OLD | NEW |