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

Unified Diff: content/browser/service_worker/service_worker_job_unittest.cc

Issue 2027583002: service worker: Avoid starting up for activation during shutdown (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: maybe fix win Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_job_unittest.cc
diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc
index 62a5d21b9c11e504bcced0532f07921cbb2bec73..fd441ddbabeaa254f8c14014162993ec31b066f3 100644
--- a/content/browser/service_worker/service_worker_job_unittest.cc
+++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/run_loop.h"
+#include "base/test/test_simple_task_runner.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/service_worker/embedded_worker_registry.h"
#include "content/browser/service_worker/embedded_worker_test_helper.h"
@@ -1225,6 +1226,9 @@ TEST_F(ServiceWorkerJobTest, RegisterWhileUninstalling) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(pattern, script1);
+ scoped_refptr<base::TestSimpleTaskRunner> runner(
+ new base::TestSimpleTaskRunner());
+ registration->SetTimerTaskRunnerForTest(runner);
// Add a controllee and queue an unregister to force the uninstalling state.
std::unique_ptr<ServiceWorkerProviderHost> host = CreateControllee();
@@ -1258,6 +1262,10 @@ TEST_F(ServiceWorkerJobTest, RegisterWhileUninstalling) {
EXPECT_EQ(NULL, registration->installing_version());
EXPECT_EQ(NULL, registration->waiting_version());
EXPECT_EQ(new_version, registration->active_version());
+ EXPECT_EQ(ServiceWorkerVersion::ACTIVATING, new_version->status());
+
+ runner->RunUntilIdle();
+ base::RunLoop().RunUntilIdle();
EXPECT_EQ(ServiceWorkerVersion::RUNNING, new_version->running_status());
EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, new_version->status());
}
@@ -1317,6 +1325,9 @@ TEST_F(ServiceWorkerJobTest, RegisterSameScriptMultipleTimesWhileUninstalling) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(pattern, script1);
+ scoped_refptr<base::TestSimpleTaskRunner> runner(
+ new base::TestSimpleTaskRunner());
+ registration->SetTimerTaskRunnerForTest(runner);
// Add a controllee and queue an unregister to force the uninstalling state.
std::unique_ptr<ServiceWorkerProviderHost> host = CreateControllee();
@@ -1350,6 +1361,10 @@ TEST_F(ServiceWorkerJobTest, RegisterSameScriptMultipleTimesWhileUninstalling) {
EXPECT_EQ(NULL, registration->installing_version());
EXPECT_EQ(NULL, registration->waiting_version());
EXPECT_EQ(new_version, registration->active_version());
+ EXPECT_EQ(ServiceWorkerVersion::ACTIVATING, new_version->status());
+
+ runner->RunPendingTasks();
nhiroki 2016/06/01 05:51:47 Just to confirm: We call Run*Pending*Tasks() here,
falken 2016/06/01 09:20:05 Good catch. Unintentional. RunUntilIdle seems the
+ base::RunLoop().RunUntilIdle();
EXPECT_EQ(ServiceWorkerVersion::RUNNING, new_version->running_status());
EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, new_version->status());
}
@@ -1362,6 +1377,9 @@ TEST_F(ServiceWorkerJobTest, RegisterMultipleTimesWhileUninstalling) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(pattern, script1);
+ scoped_refptr<base::TestSimpleTaskRunner> runner(
+ new base::TestSimpleTaskRunner());
+ registration->SetTimerTaskRunnerForTest(runner);
// Add a controllee and queue an unregister to force the uninstalling state.
std::unique_ptr<ServiceWorkerProviderHost> host = CreateControllee();
@@ -1399,6 +1417,10 @@ TEST_F(ServiceWorkerJobTest, RegisterMultipleTimesWhileUninstalling) {
EXPECT_EQ(NULL, registration->installing_version());
EXPECT_EQ(NULL, registration->waiting_version());
EXPECT_EQ(third_version, registration->active_version());
+ EXPECT_EQ(ServiceWorkerVersion::ACTIVATING, third_version->status());
+
+ runner->RunUntilIdle();
+ base::RunLoop().RunUntilIdle();
EXPECT_EQ(ServiceWorkerVersion::RUNNING, third_version->running_status());
EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, third_version->status());
}

Powered by Google App Engine
This is Rietveld 408576698