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

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

Issue 2429753003: Mojofy unittests: ServiceWorkerJobTest (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « content/browser/service_worker/embedded_worker_test_helper.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 50ed74f0556acac3d53aa4d02cd68d9c9ee55cc7..4427862f50e6477b04fde945a94cd7fa85fde58f 100644
--- a/content/browser/service_worker/service_worker_job_unittest.cc
+++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -142,6 +142,9 @@ class ServiceWorkerJobTest : public testing::Test {
std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
};
+class ServiceWorkerJobTestP
+ : public MojoServiceWorkerTestP<ServiceWorkerJobTest> {};
+
scoped_refptr<ServiceWorkerRegistration> ServiceWorkerJobTest::RunRegisterJob(
const GURL& pattern,
const GURL& script_url,
@@ -195,7 +198,7 @@ ServiceWorkerJobTest::CreateControllee() {
helper_->context()->AsWeakPtr(), NULL));
}
-TEST_F(ServiceWorkerJobTest, SameDocumentSameRegistration) {
+TEST_P(ServiceWorkerJobTestP, SameDocumentSameRegistration) {
scoped_refptr<ServiceWorkerRegistration> original_registration =
RunRegisterJob(GURL("http://www.example.com/"),
GURL("http://www.example.com/service_worker.js"));
@@ -215,7 +218,7 @@ TEST_F(ServiceWorkerJobTest, SameDocumentSameRegistration) {
ASSERT_EQ(registration1, registration2);
}
-TEST_F(ServiceWorkerJobTest, SameMatchSameRegistration) {
+TEST_P(ServiceWorkerJobTestP, SameMatchSameRegistration) {
bool called;
scoped_refptr<ServiceWorkerRegistration> original_registration =
RunRegisterJob(GURL("http://www.example.com/"),
@@ -240,7 +243,7 @@ TEST_F(ServiceWorkerJobTest, SameMatchSameRegistration) {
ASSERT_EQ(registration1, registration2);
}
-TEST_F(ServiceWorkerJobTest, DifferentMatchDifferentRegistration) {
+TEST_P(ServiceWorkerJobTestP, DifferentMatchDifferentRegistration) {
bool called1;
scoped_refptr<ServiceWorkerRegistration> original_registration1;
job_coordinator()->Register(
@@ -279,7 +282,7 @@ TEST_F(ServiceWorkerJobTest, DifferentMatchDifferentRegistration) {
}
// Make sure basic registration is working.
-TEST_F(ServiceWorkerJobTest, Register) {
+TEST_P(ServiceWorkerJobTestP, Register) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/"),
GURL("http://www.example.com/service_worker.js"));
@@ -290,7 +293,7 @@ TEST_F(ServiceWorkerJobTest, Register) {
}
// Make sure registrations are cleaned up when they are unregistered.
-TEST_F(ServiceWorkerJobTest, Unregister) {
+TEST_P(ServiceWorkerJobTestP, Unregister) {
GURL pattern("http://www.example.com/");
scoped_refptr<ServiceWorkerRegistration> registration =
@@ -306,7 +309,7 @@ TEST_F(ServiceWorkerJobTest, Unregister) {
ASSERT_EQ(scoped_refptr<ServiceWorkerRegistration>(NULL), registration);
}
-TEST_F(ServiceWorkerJobTest, Unregister_NothingRegistered) {
+TEST_P(ServiceWorkerJobTestP, Unregister_NothingRegistered) {
GURL pattern("http://www.example.com/");
RunUnregisterJob(pattern, SERVICE_WORKER_ERROR_NOT_FOUND);
@@ -314,7 +317,7 @@ TEST_F(ServiceWorkerJobTest, Unregister_NothingRegistered) {
// Make sure registering a new script creates a new version and shares an
// existing registration.
-TEST_F(ServiceWorkerJobTest, RegisterNewScript) {
+TEST_P(ServiceWorkerJobTestP, RegisterNewScript) {
GURL pattern("http://www.example.com/");
scoped_refptr<ServiceWorkerRegistration> old_registration =
@@ -340,7 +343,7 @@ TEST_F(ServiceWorkerJobTest, RegisterNewScript) {
// Make sure that when registering a duplicate pattern+script_url
// combination, that the same registration is used.
-TEST_F(ServiceWorkerJobTest, RegisterDuplicateScript) {
+TEST_P(ServiceWorkerJobTestP, RegisterDuplicateScript) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker.js");
@@ -379,7 +382,7 @@ class FailToStartWorkerTestHelper : public EmbeddedWorkerTestHelper {
}
};
-TEST_F(ServiceWorkerJobTest, Register_FailToStartWorker) {
+TEST_P(ServiceWorkerJobTestP, Register_FailToStartWorker) {
helper_.reset(new FailToStartWorkerTestHelper);
scoped_refptr<ServiceWorkerRegistration> registration =
@@ -392,7 +395,7 @@ TEST_F(ServiceWorkerJobTest, Register_FailToStartWorker) {
// Register and then unregister the pattern, in parallel. Job coordinator should
// process jobs until the last job.
-TEST_F(ServiceWorkerJobTest, ParallelRegUnreg) {
+TEST_P(ServiceWorkerJobTestP, ParallelRegUnreg) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker.js");
@@ -424,7 +427,7 @@ TEST_F(ServiceWorkerJobTest, ParallelRegUnreg) {
// Register conflicting scripts for the same pattern. The most recent
// registration should win, and the old registration should have been
// shutdown.
-TEST_F(ServiceWorkerJobTest, ParallelRegNewScript) {
+TEST_P(ServiceWorkerJobTestP, ParallelRegNewScript) {
GURL pattern("http://www.example.com/");
GURL script_url1("http://www.example.com/service_worker1.js");
@@ -462,7 +465,7 @@ TEST_F(ServiceWorkerJobTest, ParallelRegNewScript) {
// Register the exact same pattern + script. Requests should be
// coalesced such that both callers get the exact same registration
// object.
-TEST_F(ServiceWorkerJobTest, ParallelRegSameScript) {
+TEST_P(ServiceWorkerJobTestP, ParallelRegSameScript) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker1.js");
@@ -499,7 +502,7 @@ TEST_F(ServiceWorkerJobTest, ParallelRegSameScript) {
}
// Call simulataneous unregister calls.
-TEST_F(ServiceWorkerJobTest, ParallelUnreg) {
+TEST_P(ServiceWorkerJobTestP, ParallelUnreg) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker.js");
@@ -530,7 +533,7 @@ TEST_F(ServiceWorkerJobTest, ParallelUnreg) {
ASSERT_EQ(scoped_refptr<ServiceWorkerRegistration>(), registration);
}
-TEST_F(ServiceWorkerJobTest, AbortAll_Register) {
+TEST_P(ServiceWorkerJobTestP, AbortAll_Register) {
GURL pattern1("http://www1.example.com/");
GURL pattern2("http://www2.example.com/");
GURL script_url1("http://www1.example.com/service_worker.js");
@@ -581,7 +584,7 @@ TEST_F(ServiceWorkerJobTest, AbortAll_Register) {
EXPECT_EQ(scoped_refptr<ServiceWorkerRegistration>(), registration2);
}
-TEST_F(ServiceWorkerJobTest, AbortAll_Unregister) {
+TEST_P(ServiceWorkerJobTestP, AbortAll_Unregister) {
GURL pattern1("http://www1.example.com/");
GURL pattern2("http://www2.example.com/");
@@ -607,7 +610,7 @@ TEST_F(ServiceWorkerJobTest, AbortAll_Unregister) {
ASSERT_TRUE(unregistration_called2);
}
-TEST_F(ServiceWorkerJobTest, AbortAll_RegUnreg) {
+TEST_P(ServiceWorkerJobTestP, AbortAll_RegUnreg) {
GURL pattern("http://www.example.com/");
GURL script_url("http://www.example.com/service_worker.js");
@@ -642,7 +645,7 @@ TEST_F(ServiceWorkerJobTest, AbortAll_RegUnreg) {
// Tests that the waiting worker enters the 'redundant' state upon
// unregistration.
-TEST_F(ServiceWorkerJobTest, UnregisterWaitingSetsRedundant) {
+TEST_P(ServiceWorkerJobTestP, UnregisterWaitingSetsRedundant) {
GURL script_url("http://www.example.com/service_worker.js");
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/"), script_url);
@@ -675,7 +678,7 @@ TEST_F(ServiceWorkerJobTest, UnregisterWaitingSetsRedundant) {
// Tests that the active worker enters the 'redundant' state upon
// unregistration.
-TEST_F(ServiceWorkerJobTest, UnregisterActiveSetsRedundant) {
+TEST_P(ServiceWorkerJobTestP, UnregisterActiveSetsRedundant) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/"),
GURL("http://www.example.com/service_worker.js"));
@@ -695,7 +698,7 @@ TEST_F(ServiceWorkerJobTest, UnregisterActiveSetsRedundant) {
// Tests that the active worker enters the 'redundant' state upon
// unregistration.
-TEST_F(ServiceWorkerJobTest,
+TEST_P(ServiceWorkerJobTestP,
UnregisterActiveSetsRedundant_WaitForNoControllee) {
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/"),
@@ -961,7 +964,7 @@ class EvictIncumbentVersionHelper : public UpdateJobTestHelper {
} // namespace
-TEST_F(ServiceWorkerJobTest, Update_NoChange) {
+TEST_P(ServiceWorkerJobTestP, Update_NoChange) {
UpdateJobTestHelper* update_helper = new UpdateJobTestHelper;
helper_.reset(update_helper);
scoped_refptr<ServiceWorkerRegistration> registration =
@@ -999,7 +1002,7 @@ TEST_F(ServiceWorkerJobTest, Update_NoChange) {
EXPECT_FALSE(update_helper->update_found_);
}
-TEST_F(ServiceWorkerJobTest, Update_BumpLastUpdateCheckTime) {
+TEST_P(ServiceWorkerJobTestP, Update_BumpLastUpdateCheckTime) {
const base::Time kToday = base::Time::Now();
const base::Time kYesterday =
kToday - base::TimeDelta::FromDays(1) - base::TimeDelta::FromHours(1);
@@ -1048,7 +1051,7 @@ TEST_F(ServiceWorkerJobTest, Update_BumpLastUpdateCheckTime) {
EXPECT_LT(kYesterday, registration->last_update_check());
}
-TEST_F(ServiceWorkerJobTest, Update_NewVersion) {
+TEST_P(ServiceWorkerJobTestP, Update_NewVersion) {
UpdateJobTestHelper* update_helper = new UpdateJobTestHelper;
helper_.reset(update_helper);
scoped_refptr<ServiceWorkerRegistration> registration =
@@ -1140,7 +1143,7 @@ TEST_F(ServiceWorkerJobTest, Update_NewVersion) {
// Test that the update job uses the script URL of the newest worker when the
// job starts, rather than when it is scheduled.
-TEST_F(ServiceWorkerJobTest, Update_ScriptUrlChanged) {
+TEST_P(ServiceWorkerJobTestP, Update_ScriptUrlChanged) {
// Create a registration with an active version.
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/one/"),
@@ -1168,7 +1171,7 @@ TEST_F(ServiceWorkerJobTest, Update_ScriptUrlChanged) {
// Test that update succeeds if the incumbent worker was evicted
// during the update job (this can happen on disk cache failure).
-TEST_F(ServiceWorkerJobTest, Update_EvictedIncumbent) {
+TEST_P(ServiceWorkerJobTestP, Update_EvictedIncumbent) {
EvictIncumbentVersionHelper* update_helper = new EvictIncumbentVersionHelper;
helper_.reset(update_helper);
scoped_refptr<ServiceWorkerRegistration> registration =
@@ -1197,7 +1200,7 @@ TEST_F(ServiceWorkerJobTest, Update_EvictedIncumbent) {
EXPECT_FALSE(registration->is_uninstalled());
}
-TEST_F(ServiceWorkerJobTest, Update_UninstallingRegistration) {
+TEST_P(ServiceWorkerJobTestP, Update_UninstallingRegistration) {
bool called;
scoped_refptr<ServiceWorkerRegistration> registration =
RunRegisterJob(GURL("http://www.example.com/one/"),
@@ -1224,7 +1227,7 @@ TEST_F(ServiceWorkerJobTest, Update_UninstallingRegistration) {
EXPECT_EQ(NULL, registration->installing_version());
}
-TEST_F(ServiceWorkerJobTest, RegisterWhileUninstalling) {
+TEST_P(ServiceWorkerJobTestP, RegisterWhileUninstalling) {
GURL pattern("http://www.example.com/one/");
GURL script1("http://www.example.com/service_worker.js");
GURL script2("http://www.example.com/service_worker.js?new");
@@ -1275,7 +1278,7 @@ TEST_F(ServiceWorkerJobTest, RegisterWhileUninstalling) {
EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, new_version->status());
}
-TEST_F(ServiceWorkerJobTest, RegisterAndUnregisterWhileUninstalling) {
+TEST_P(ServiceWorkerJobTestP, RegisterAndUnregisterWhileUninstalling) {
GURL pattern("http://www.example.com/one/");
GURL script1("http://www.example.com/service_worker.js");
GURL script2("http://www.example.com/service_worker.js?new");
@@ -1323,7 +1326,8 @@ TEST_F(ServiceWorkerJobTest, RegisterAndUnregisterWhileUninstalling) {
EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, new_version->status());
}
-TEST_F(ServiceWorkerJobTest, RegisterSameScriptMultipleTimesWhileUninstalling) {
+TEST_P(ServiceWorkerJobTestP,
+ RegisterSameScriptMultipleTimesWhileUninstalling) {
GURL pattern("http://www.example.com/one/");
GURL script1("http://www.example.com/service_worker.js");
GURL script2("http://www.example.com/service_worker.js?new");
@@ -1374,7 +1378,7 @@ TEST_F(ServiceWorkerJobTest, RegisterSameScriptMultipleTimesWhileUninstalling) {
EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, new_version->status());
}
-TEST_F(ServiceWorkerJobTest, RegisterMultipleTimesWhileUninstalling) {
+TEST_P(ServiceWorkerJobTestP, RegisterMultipleTimesWhileUninstalling) {
GURL pattern("http://www.example.com/one/");
GURL script1("http://www.example.com/service_worker.js?first");
GURL script2("http://www.example.com/service_worker.js?second");
@@ -1471,7 +1475,7 @@ class EventCallbackHelper : public EmbeddedWorkerTestHelper {
bool has_fetch_handler_ = true;
};
-TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringInstall) {
+TEST_P(ServiceWorkerJobTestP, RemoveControlleeDuringInstall) {
EventCallbackHelper* helper = new EventCallbackHelper;
helper_.reset(helper);
@@ -1511,7 +1515,7 @@ TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringInstall) {
EXPECT_EQ(registration, FindRegistrationForPattern(pattern));
}
-TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringRejectedInstall) {
+TEST_P(ServiceWorkerJobTestP, RemoveControlleeDuringRejectedInstall) {
EventCallbackHelper* helper = new EventCallbackHelper;
helper_.reset(helper);
@@ -1547,7 +1551,7 @@ TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringRejectedInstall) {
FindRegistrationForPattern(pattern, SERVICE_WORKER_ERROR_NOT_FOUND);
}
-TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringInstall_RejectActivate) {
+TEST_P(ServiceWorkerJobTestP, RemoveControlleeDuringInstall_RejectActivate) {
EventCallbackHelper* helper = new EventCallbackHelper;
helper_.reset(helper);
@@ -1583,7 +1587,7 @@ TEST_F(ServiceWorkerJobTest, RemoveControlleeDuringInstall_RejectActivate) {
FindRegistrationForPattern(pattern, SERVICE_WORKER_OK);
}
-TEST_F(ServiceWorkerJobTest, HasFetchHandler) {
+TEST_P(ServiceWorkerJobTestP, HasFetchHandler) {
EventCallbackHelper* helper = new EventCallbackHelper;
helper_.reset(helper);
@@ -1606,15 +1610,50 @@ TEST_F(ServiceWorkerJobTest, HasFetchHandler) {
RunUnregisterJob(pattern);
}
-TEST_F(ServiceWorkerJobTest, Update_PauseAfterDownload) {
+class CheckPauseAfterDownloadEmbeddedWorkerInstanceClient
+ : public EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient {
+ public:
+ explicit CheckPauseAfterDownloadEmbeddedWorkerInstanceClient(
+ base::WeakPtr<EmbeddedWorkerTestHelper> helper)
+ : EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient(helper) {}
+ int num_of_startworker() { return num_of_startworker_; }
horo 2016/10/18 11:03:53 nit: const
shimazu 2016/10/18 11:58:07 Done.
+ void set_next_pause_after_download(bool expectation) {
+ next_pause_after_download_ = expectation;
+ }
+
+ protected:
+ void StartWorker(const EmbeddedWorkerStartParams& params) override {
+ ASSERT_TRUE(next_pause_after_download_.has_value());
+ EXPECT_EQ(next_pause_after_download_.value(), params.pause_after_download);
+ num_of_startworker_++;
+ EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
+ params);
+ }
+
+ private:
+ base::Optional<bool> next_pause_after_download_;
+ int num_of_startworker_ = 0;
+};
horo 2016/10/18 11:03:53 nit: DISALLOW_COPY_AND_ASSIGN(CheckPauseAfterDownl
shimazu 2016/10/18 11:58:07 Done.
+
+TEST_P(ServiceWorkerJobTestP, Update_PauseAfterDownload) {
UpdateJobTestHelper* update_helper = new UpdateJobTestHelper;
helper_.reset(update_helper);
IPC::TestSink* sink = update_helper->ipc_sink();
+ std::vector<CheckPauseAfterDownloadEmbeddedWorkerInstanceClient*> clients = {
+ helper_->CreateAndRegisterMockInstanceClient<
+ CheckPauseAfterDownloadEmbeddedWorkerInstanceClient>(
+ helper_->AsWeakPtr()),
+ helper_->CreateAndRegisterMockInstanceClient<
+ CheckPauseAfterDownloadEmbeddedWorkerInstanceClient>(
+ helper_->AsWeakPtr())};
// The initial version should not pause after download.
+ clients[0]->set_next_pause_after_download(false);
scoped_refptr<ServiceWorkerRegistration> registration =
update_helper->SetupInitialRegistration(kNewVersionOrigin);
- {
+ if (is_mojo_enabled()) {
+ ASSERT_EQ(1, clients[0]->num_of_startworker());
+ } else {
const IPC::Message* start_msg =
sink->GetUniqueMessageMatching(EmbeddedWorkerMsg_StartWorker::ID);
ASSERT_TRUE(start_msg);
@@ -1626,10 +1665,13 @@ TEST_F(ServiceWorkerJobTest, Update_PauseAfterDownload) {
}
// The updated version should pause after download.
+ clients[1]->set_next_pause_after_download(true);
registration->AddListener(update_helper);
registration->active_version()->StartUpdate();
base::RunLoop().RunUntilIdle();
- {
+ if (is_mojo_enabled()) {
+ ASSERT_EQ(1, clients[1]->num_of_startworker());
+ } else {
const IPC::Message* start_msg =
sink->GetUniqueMessageMatching(EmbeddedWorkerMsg_StartWorker::ID);
ASSERT_TRUE(start_msg);
@@ -1643,7 +1685,7 @@ TEST_F(ServiceWorkerJobTest, Update_PauseAfterDownload) {
// Test that activation doesn't complete if it's triggered by removing a
// controllee and starting the worker failed due to shutdown.
-TEST_F(ServiceWorkerJobTest, ActivateCancelsOnShutdown) {
+TEST_P(ServiceWorkerJobTestP, ActivateCancelsOnShutdown) {
UpdateJobTestHelper* update_helper = new UpdateJobTestHelper;
helper_.reset(update_helper);
GURL pattern("http://www.example.com/");
@@ -1698,4 +1740,8 @@ TEST_F(ServiceWorkerJobTest, ActivateCancelsOnShutdown) {
registration->RemoveListener(update_helper);
}
+INSTANTIATE_TEST_CASE_P(ServiceWorkerJobTest,
+ ServiceWorkerJobTestP,
+ ::testing::Values(false, true));
+
} // namespace content
« no previous file with comments | « content/browser/service_worker/embedded_worker_test_helper.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698