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

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

Issue 2771823002: Implement updateViaCache flag and no-cache by default for main service worker scripts
Patch Set: change useCache to updateViaCache Created 3 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/link_header_support_unittest.cc
diff --git a/content/browser/service_worker/link_header_support_unittest.cc b/content/browser/service_worker/link_header_support_unittest.cc
index e77c68d9517028742911f3d5173f06adc8a90dbd..47226e8e38bf6c95042d13b5c697be58d1082ce2 100644
--- a/content/browser/service_worker/link_header_support_unittest.cc
+++ b/content/browser/service_worker/link_header_support_unittest.cc
@@ -118,8 +118,9 @@ class LinkHeaderServiceWorkerTest : public ::testing::Test {
context()->AddProviderHost(std::move(host));
scoped_refptr<ServiceWorkerRegistration> registration =
- new ServiceWorkerRegistration(GURL("https://host/scope"), 1L,
- context()->AsWeakPtr());
+ new ServiceWorkerRegistration(
+ ServiceWorkerRegistrationOptions(GURL("https://host/scope")), 1L,
+ context()->AsWeakPtr());
scoped_refptr<ServiceWorkerVersion> version = new ServiceWorkerVersion(
registration.get(), GURL("https://host/script.js"), 1L,
context()->AsWeakPtr());
@@ -194,6 +195,8 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_Basic) {
EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeWithFragment) {
@@ -211,6 +214,8 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeWithFragment) {
registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/foo/bar.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeAbsoluteUrl) {
@@ -230,6 +235,8 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeAbsoluteUrl) {
registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/foo/bar/bar.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeDifferentOrigin) {
@@ -288,6 +295,8 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScriptAbsoluteUrl) {
EXPECT_EQ(GURL("https://example.com/foobar/foo"), registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/bar.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest,
@@ -305,6 +314,80 @@ TEST_F(LinkHeaderServiceWorkerTest,
ASSERT_EQ(0u, registrations.size());
}
+TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_CacheNone) {
+ CreateDocumentProviderHost();
+ ProcessLinkHeaderForRequest(
+ CreateSubresourceRequest(GURL("https://example.com/foo/bar/"),
+ provider_host()->provider_id())
+ .get(),
+ "<../foo.js>; rel=serviceworker; updateviacache=none", context_wrapper());
+ base::RunLoop().RunUntilIdle();
+
+ std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations();
+ ASSERT_EQ(1u, registrations.size());
+ EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
+ EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
+ registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kNone,
+ registrations[0].update_via_cache);
+}
+
+TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_CacheImports) {
+ CreateDocumentProviderHost();
+ ProcessLinkHeaderForRequest(
+ CreateSubresourceRequest(GURL("https://example.com/foo/bar/"),
+ provider_host()->provider_id())
+ .get(),
+ "<../foo.js>; rel=serviceworker; updateviacache=imports",
+ context_wrapper());
+ base::RunLoop().RunUntilIdle();
+
+ std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations();
+ ASSERT_EQ(1u, registrations.size());
+ EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
+ EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
+ registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
+}
+
+TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_CacheAll) {
+ CreateDocumentProviderHost();
+ ProcessLinkHeaderForRequest(
+ CreateSubresourceRequest(GURL("https://example.com/foo/bar/"),
+ provider_host()->provider_id())
+ .get(),
+ "<../foo.js>; rel=serviceworker; updateviacache=all", context_wrapper());
+ base::RunLoop().RunUntilIdle();
+
+ std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations();
+ ASSERT_EQ(1u, registrations.size());
+ EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
+ EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
+ registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kAll,
+ registrations[0].update_via_cache);
+}
+
+TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_CacheInvalidValue) {
+ CreateDocumentProviderHost();
+ ProcessLinkHeaderForRequest(
+ CreateSubresourceRequest(GURL("https://example.com/foo/bar/"),
+ provider_host()->provider_id())
+ .get(),
+ "<../foo.js>; rel=serviceworker; updateviacache=invalidvalue",
+ context_wrapper());
+ base::RunLoop().RunUntilIdle();
+
+ std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations();
+ ASSERT_EQ(1u, registrations.size());
+ EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
+ EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
+ registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
+}
+
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_MultipleWorkers) {
CreateDocumentProviderHost();
ProcessLinkHeaderForRequest(
@@ -312,7 +395,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_MultipleWorkers) {
provider_host()->provider_id())
.get(),
"<bar.js>; rel=serviceworker; scope=foo, <baz.js>; "
- "rel=serviceworker; scope=scope",
+ "rel=serviceworker; scope=scope; updateviacache=all",
context_wrapper());
base::RunLoop().RunUntilIdle();
@@ -321,9 +404,13 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_MultipleWorkers) {
EXPECT_EQ(GURL("https://example.com/foobar/foo"), registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/foobar/bar.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kAll,
+ registrations[0].update_via_cache);
EXPECT_EQ(GURL("https://example.com/foobar/scope"), registrations[1].pattern);
EXPECT_EQ(GURL("https://example.com/foobar/baz.js"),
registrations[1].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kAll,
+ registrations[1].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest,
@@ -379,6 +466,8 @@ TEST_F(LinkHeaderServiceWorkerTest,
EXPECT_EQ(GURL("https://example.com/foo/"), registrations[0].pattern);
EXPECT_EQ(GURL("https://example.com/foo/foo.js"),
registrations[0].active_version.script_url);
+ EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports,
+ registrations[0].update_via_cache);
}
TEST_F(LinkHeaderServiceWorkerTest,

Powered by Google App Engine
This is Rietveld 408576698