From a2471ba062dbdcce40548d6329e39e50651b2ca4 Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Wed, 15 May 2019 13:43:50 +0100 Subject: [PATCH 1/5] Add vary-dynamic test --- tests/vary.mjs | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/vary.mjs b/tests/vary.mjs index 1975829..9033160 100644 --- a/tests/vary.mjs +++ b/tests/vary.mjs @@ -80,6 +80,72 @@ export default { } ] }, + { + name: 'An optimal HTTP cache stores and correctly serves multiple object variants when the `Vary` response header value depends on one or more request header values', + id: 'vary-dynamic', + kind: 'optional', + browser_skip: true, + requests: [ + { + request_headers: [ + ['v1', 'one'], + ['v2', 'two'], + ['ctrl', 'a'] + ], + response_headers: [ + ['Expires', 5000], + ['Last-Modified', -3000], + ['Date', 0], + ['Vary', 'v1, ctrl'] + ], + expected_type: 'not_cached' + }, + { + request_headers: [ + ['v1', 'one'], + ['v2', 'two'], + ['ctrl', 'a'] + ], + expected_type: 'cached' + }, + { + request_headers: [ + ['v1', 'one'], + ['v2', 'two'], + ['ctrl', 'b'] + ], + response_headers: [ + ['Expires', 5000], + ['Last-Modified', -3000], + ['Date', 0], + ['Vary', 'v1, v2, ctrl'] + ], + expected_type: 'not_cached' + }, + { + request_headers: [ + ['v1', 'one'], + ['v2', 'two'], + ['ctrl', 'b'] + ], + expected_type: 'cached' + }, + { + request_headers: [ + ['v1', 'one'], + ['v2', 'two'], + ['ctrl', 'a'] + ], + response_headers: [ + ['Expires', 5000], + ['Last-Modified', -3000], + ['Date', 0], + ['Vary', 'v1, ctrl'] + ], + expected_type: 'cached' + }, + ] + }, { name: 'An optimal HTTP cache should not include headers not listed in `Vary` in the cache key', id: 'vary-cache-key', From 969212b9eb890fd2871e9b77cca132befc80974b Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Thu, 30 May 2019 10:06:05 +0100 Subject: [PATCH 2/5] Add setup:true where necessary --- tests/vary.mjs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/vary.mjs b/tests/vary.mjs index 9033160..67b42bd 100644 --- a/tests/vary.mjs +++ b/tests/vary.mjs @@ -98,7 +98,8 @@ export default { ['Date', 0], ['Vary', 'v1, ctrl'] ], - expected_type: 'not_cached' + expected_type: 'not_cached', + setup: true }, { request_headers: [ @@ -106,7 +107,8 @@ export default { ['v2', 'two'], ['ctrl', 'a'] ], - expected_type: 'cached' + expected_type: 'cached', + setup: true }, { request_headers: [ @@ -120,7 +122,8 @@ export default { ['Date', 0], ['Vary', 'v1, v2, ctrl'] ], - expected_type: 'not_cached' + expected_type: 'not_cached', + setup: true }, { request_headers: [ @@ -128,7 +131,8 @@ export default { ['v2', 'two'], ['ctrl', 'b'] ], - expected_type: 'cached' + expected_type: 'cached', + setup: true }, { request_headers: [ From aed2db2add891deb910df6785626d8974512beec Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Thu, 30 May 2019 10:10:28 +0100 Subject: [PATCH 3/5] Don't skip browsers but depend on vary-invalidate --- tests/vary.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/vary.mjs b/tests/vary.mjs index 67b42bd..48c1b49 100644 --- a/tests/vary.mjs +++ b/tests/vary.mjs @@ -84,7 +84,8 @@ export default { name: 'An optimal HTTP cache stores and correctly serves multiple object variants when the `Vary` response header value depends on one or more request header values', id: 'vary-dynamic', kind: 'optional', - browser_skip: true, + browser_skip: false, + depends_on: ['vary-invalidate'], requests: [ { request_headers: [ From 3ec866fab1340a245d45c2322b6f087cb114dcf4 Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Thu, 30 May 2019 10:14:05 +0100 Subject: [PATCH 4/5] Amend test description for clarity --- tests/vary.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/vary.mjs b/tests/vary.mjs index 48c1b49..bee2a82 100644 --- a/tests/vary.mjs +++ b/tests/vary.mjs @@ -81,7 +81,7 @@ export default { ] }, { - name: 'An optimal HTTP cache stores and correctly serves multiple object variants when the `Vary` response header value depends on one or more request header values', + name: 'An optimal HTTP cache stores and correctly serves multiple object variants when responses have different Vary response header values, depending on the value of request header(s)', id: 'vary-dynamic', kind: 'optional', browser_skip: false, From 29311d66f78dafe455f850728492e5e185756bbf Mon Sep 17 00:00:00 2001 From: Neil Craig Date: Thu, 13 Jun 2019 10:34:17 +0100 Subject: [PATCH 5/5] Removed unnecessary test and incorrect setup: true from vary-dynamic tests --- tests/vary.mjs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/tests/vary.mjs b/tests/vary.mjs index bee2a82..38e05ab 100644 --- a/tests/vary.mjs +++ b/tests/vary.mjs @@ -102,15 +102,6 @@ export default { expected_type: 'not_cached', setup: true }, - { - request_headers: [ - ['v1', 'one'], - ['v2', 'two'], - ['ctrl', 'a'] - ], - expected_type: 'cached', - setup: true - }, { request_headers: [ ['v1', 'one'], @@ -123,8 +114,7 @@ export default { ['Date', 0], ['Vary', 'v1, v2, ctrl'] ], - expected_type: 'not_cached', - setup: true + expected_type: 'not_cached' }, { request_headers: [