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

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

Issue 2103063002: ServiceWorker: Reland of bypassing SW when no fetch handler existed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@return_response_to_forward_to_network
Patch Set: Created 4 years, 6 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_controllee_request_handler_unittest.cc
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
index 1e2ac4515070979882e80feec88043ef9e4518aa..c89cb2803f302226495f328eaff067ad4d1a0f99 100644
--- a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
+++ b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
@@ -171,6 +171,7 @@ TEST_F(ServiceWorkerControlleeRequestHandlerTest, DisallowServiceWorker) {
// Store an activated worker.
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
+ version_->set_has_fetch_handler(true);
registration_->SetActiveVersion(version_);
context()->storage()->StoreRegistration(
registration_.get(),
@@ -199,6 +200,7 @@ TEST_F(ServiceWorkerControlleeRequestHandlerTest, DisallowServiceWorker) {
TEST_F(ServiceWorkerControlleeRequestHandlerTest, ActivateWaitingVersion) {
// Store a registration that is installed but not activated yet.
version_->SetStatus(ServiceWorkerVersion::INSTALLED);
+ version_->set_has_fetch_handler(true);
registration_->SetWaitingVersion(version_);
context()->storage()->StoreRegistration(
registration_.get(),
@@ -232,6 +234,7 @@ TEST_F(ServiceWorkerControlleeRequestHandlerTest, ActivateWaitingVersion) {
TEST_F(ServiceWorkerControlleeRequestHandlerTest, InstallingRegistration) {
// Create an installing registration.
version_->SetStatus(ServiceWorkerVersion::INSTALLING);
+ version_->set_has_fetch_handler(true);
registration_->SetInstallingVersion(version_);
context()->storage()->NotifyInstallingRegistration(registration_.get());
@@ -257,6 +260,7 @@ TEST_F(ServiceWorkerControlleeRequestHandlerTest, DeletedProviderHost) {
// Store a registration so the call to FindRegistrationForDocument will read
// from the database.
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
+ version_->set_has_fetch_handler(true);
registration_->SetActiveVersion(version_);
context()->storage()->StoreRegistration(
registration_.get(),
@@ -284,4 +288,37 @@ TEST_F(ServiceWorkerControlleeRequestHandlerTest, DeletedProviderHost) {
EXPECT_FALSE(sw_job->ShouldForwardToServiceWorker());
}
+TEST_F(ServiceWorkerControlleeRequestHandlerTest, FallbackWithNoFetchHandler) {
+ version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
+ version_->set_has_fetch_handler(false);
+ registration_->SetActiveVersion(version_);
+ context()->storage()->StoreRegistration(
+ registration_.get(), version_.get(),
+ base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
+ base::RunLoop().RunUntilIdle();
+
+ ServiceWorkerRequestTestResources main_test_resources(
+ this, GURL("https://host/scope/doc"), RESOURCE_TYPE_MAIN_FRAME);
+ ServiceWorkerURLRequestJob* main_job = main_test_resources.MaybeCreateJob();
+
+ EXPECT_FALSE(main_job->ShouldFallbackToNetwork());
+ EXPECT_FALSE(main_job->ShouldForwardToServiceWorker());
+ EXPECT_FALSE(version_->HasControllee());
+
+ base::RunLoop().RunUntilIdle();
+
+ EXPECT_TRUE(main_job->ShouldFallbackToNetwork());
+ EXPECT_FALSE(main_job->ShouldForwardToServiceWorker());
+ EXPECT_TRUE(version_->HasControllee());
+ EXPECT_EQ(version_, provider_host_->controlling_version());
+
+ ServiceWorkerRequestTestResources sub_test_resources(
+ this, GURL("https://host/scope/doc/subresource"), RESOURCE_TYPE_IMAGE);
+ ServiceWorkerURLRequestJob* sub_job = sub_test_resources.MaybeCreateJob();
+
+ // This job shouldn't be created because this worker doesn't have fetch
+ // handler.
+ EXPECT_EQ(nullptr, sub_job);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698