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); |