| 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 65afe8d82067baf9e1eaecf96e9aa97d66403edd..1da13bb5e52b090d35096755d91f305257e54dc6 100644
|
| --- a/content/browser/service_worker/service_worker_browsertest.cc
|
| +++ b/content/browser/service_worker/service_worker_browsertest.cc
|
| @@ -259,6 +259,23 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest {
|
| ASSERT_EQ(SERVICE_WORKER_OK, status);
|
| }
|
|
|
| + void ActivateTestHelper(
|
| + const std::string& worker_url,
|
| + ServiceWorkerStatusCode expected_status) {
|
| + 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) {
|
| @@ -306,6 +323,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(
|
| @@ -400,6 +425,17 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
|
| + Activate_NoEventListener) {
|
| + ActivateTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
|
| + 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);
|
|
|