Chromium Code Reviews| Index: content/browser/service_worker/service_worker_browsertest.cc |
| diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc |
| index 196f96a4da8fe791a1545c644946536c511179f8..67b200e6fddd5b334c81dddafc6495d4189220c2 100644 |
| --- a/content/browser/service_worker/service_worker_browsertest.cc |
| +++ b/content/browser/service_worker/service_worker_browsertest.cc |
| @@ -243,6 +243,23 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| ASSERT_EQ(SERVICE_WORKER_OK, status); |
| } |
| + void ActivateTestHelper( |
| + const std::string& worker_url, |
| + ServiceWorkerStatusCode expected_status=SERVICE_WORKER_OK) { |
|
kinuko
2014/03/31 04:31:03
nit: we don't use default args in chromium (unlink
|
| + RunOnIOThread( |
| + base::Bind(&self::SetUpRegistrationOnIOThread, this, worker_url)); |
| + version_->SetStatus(ServiceWorkerVersion::INSTALLED); |
| + ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; |
| + base::RunLoop run_loop; |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, |
| + FROM_HERE, |
| + base::Bind( |
| + &self::ActivateOnIOThread, this, run_loop.QuitClosure(), &status)); |
| + run_loop.Run(); |
| + ASSERT_EQ(expected_status, status); |
| + } |
| + |
| void FetchTestHelper(const std::string& worker_url, |
| ServiceWorkerFetchEventResult* result, |
| ServiceWorkerResponse* response) { |
| @@ -290,6 +307,14 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest { |
| -1, CreateReceiver(BrowserThread::UI, done, result)); |
| } |
| + void ActivateOnIOThread(const base::Closure& done, |
| + ServiceWorkerStatusCode* result) { |
| + ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + version_->SetStatus(ServiceWorkerVersion::INSTALLED); |
| + version_->DispatchActivateEvent( |
| + CreateReceiver(BrowserThread::UI, done, result)); |
| + } |
| + |
| void FetchOnIOThread(const base::Closure& done, FetchResult* result) { |
| ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| ServiceWorkerFetchRequest request( |
| @@ -384,6 +409,17 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| } |
| IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| + Activate_NoEventListener) { |
| + ActivateTestHelper("/service_worker/worker.js"); |
| + ASSERT_EQ(ServiceWorkerVersion::ACTIVE, version_->status()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Activate_Rejected) { |
| + ActivateTestHelper("/service_worker/worker_activate_rejected.js", |
| + SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| InstallWithWaitUntil_Rejected) { |
| InstallTestHelper("/service_worker/worker_install_rejected.js", |
| SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED); |