diff options
Diffstat (limited to 'deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js')
-rw-r--r-- | deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js | 385 |
1 files changed, 0 insertions, 385 deletions
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js deleted file mode 100644 index 763910b82c..0000000000 --- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js +++ /dev/null @@ -1,385 +0,0 @@ -'use strict'; - -const assert = require('assert'); -const CachePolicy = require('..'); - -const req = {method:'GET', headers:{}}; - -describe('Response headers', function() { - it('simple miss', function() { - const cache = new CachePolicy(req, {headers:{}}); - assert(cache.stale()); - }); - - it('simple hit', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': 'public, max-age=999999'}}); - assert(!cache.stale()); - assert.equal(cache.maxAge(), 999999); - }); - - it('weird syntax', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': ',,,,max-age = 456 ,'}}); - assert(!cache.stale()); - assert.equal(cache.maxAge(), 456); - - const cache2 = CachePolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject()))); - assert(cache2 instanceof CachePolicy); - assert(!cache2.stale()); - assert.equal(cache2.maxAge(), 456); - }); - - it('quoted syntax', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': ' max-age = "678" '}}); - assert(!cache.stale()); - assert.equal(cache.maxAge(), 678); - }); - - it('IIS', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': 'private, public, max-age=259200'}}, {shared:false}); - assert(!cache.stale()); - assert.equal(cache.maxAge(), 259200); - }); - - it('pre-check tolerated', function() { - const cc = 'pre-check=0, post-check=0, no-store, no-cache, max-age=100'; - const cache = new CachePolicy(req, {headers:{'cache-control': cc}}); - assert(cache.stale()); - assert(!cache.storable()); - assert.equal(cache.maxAge(), 0); - assert.equal(cache.responseHeaders()['cache-control'], cc); - }); - - it('pre-check poison', function() { - const origCC = 'pre-check=0, post-check=0, no-cache, no-store, max-age=100, custom, foo=bar'; - const res = {headers:{'cache-control': origCC, pragma: 'no-cache'}}; - const cache = new CachePolicy(req, res, {ignoreCargoCult:true}); - assert(!cache.stale()); - assert(cache.storable()); - assert.equal(cache.maxAge(), 100); - - const cc = cache.responseHeaders()['cache-control']; - assert(!/pre-check/.test(cc), cc); - assert(!/post-check/.test(cc), cc); - assert(!/no-store/.test(cc), cc); - - assert(/max-age=100/.test(cc)); - assert(/custom(,|$)/.test(cc)); - assert(/foo=bar/.test(cc)); - - assert.equal(res.headers['cache-control'], origCC); - assert(res.headers['pragma']); - assert(!cache.responseHeaders()['pragma']); - }); - - it('pre-check poison undefined header', function() { - const origCC = 'pre-check=0, post-check=0, no-cache, no-store'; - const res = {headers:{'cache-control': origCC, expires: 'yesterday!'}}; - const cache = new CachePolicy(req, res, {ignoreCargoCult:true}); - assert(cache.stale()); - assert(cache.storable()); - assert.equal(cache.maxAge(), 0); - - const cc = cache.responseHeaders()['cache-control']; - assert(!cc); - - assert(res.headers['expires']); - assert(!cache.responseHeaders()['expires']); - }); - - it('cache with expires', function() { - const cache = new CachePolicy(req, {headers:{ - 'date': new Date().toGMTString(), - 'expires': new Date(Date.now() + 2000).toGMTString(), - }}); - assert(!cache.stale()); - assert.equal(2, cache.maxAge()); - }); - - it('cache expires no date', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control': 'public', - 'expires': new Date(Date.now()+3600*1000).toGMTString(), - }}); - assert(!cache.stale()); - assert(cache.maxAge() > 3595); - assert(cache.maxAge() < 3605); - }); - - it('Ages', function() { - let now = 1000; - class TimeTravellingPolicy extends CachePolicy { - now() { - return now; - } - } - const cache = new TimeTravellingPolicy(req, {headers:{ - 'cache-control':'max-age=100', - 'age': '50', - }}); - assert(cache.storable()); - - assert.equal(50*1000, cache.timeToLive()); - assert(!cache.stale()); - now += 48*1000; - assert.equal(2*1000, cache.timeToLive()); - assert(!cache.stale()); - now += 5*1000; - assert(cache.stale()); - assert.equal(0, cache.timeToLive()); - }); - - it('Age can make stale', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control':'max-age=100', - 'age': '101', - }}); - assert(cache.stale()); - assert(cache.storable()); - }); - - it('Age not always stale', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control':'max-age=20', - 'age': '15', - }}); - assert(!cache.stale()); - assert(cache.storable()); - }); - - it('Bogus age ignored', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control':'max-age=20', - 'age': 'golden', - }}); - assert(!cache.stale()); - assert(cache.storable()); - }); - - it('cache old files', function() { - const cache = new CachePolicy(req, {headers:{ - 'date': new Date().toGMTString(), - 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT', - }}); - assert(!cache.stale()); - assert(cache.maxAge() > 100); - }); - - it('immutable simple hit', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=999999'}}); - assert(!cache.stale()); - assert.equal(cache.maxAge(), 999999); - }); - - it('immutable can expire', function() { - const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=0'}}); - assert(cache.stale()); - assert.equal(cache.maxAge(), 0); - }); - - it('cache immutable files', function() { - const cache = new CachePolicy(req, {headers:{ - 'date': new Date().toGMTString(), - 'cache-control':'immutable', - 'last-modified': new Date().toGMTString(), - }}); - assert(!cache.stale()); - assert(cache.maxAge() > 100); - }); - - it('immutable can be off', function() { - const cache = new CachePolicy(req, {headers:{ - 'date': new Date().toGMTString(), - 'cache-control':'immutable', - 'last-modified': new Date().toGMTString(), - }}, {immutableMinTimeToLive: 0}); - assert(cache.stale()); - assert.equal(cache.maxAge(), 0); - }); - - it('pragma: no-cache', function() { - const cache = new CachePolicy(req, {headers:{ - 'pragma': 'no-cache', - 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT', - }}); - assert(cache.stale()); - }); - - it('no-store', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control': 'no-store, public, max-age=1', - }}); - assert(cache.stale()); - assert.equal(0, cache.maxAge()); - }); - - it('observe private cache', function() { - const privateHeader = { - 'cache-control': 'private, max-age=1234', - }; - const proxyCache = new CachePolicy(req, {headers:privateHeader}); - assert(proxyCache.stale()); - assert.equal(0, proxyCache.maxAge()); - - const uaCache = new CachePolicy(req, {headers:privateHeader}, {shared:false}); - assert(!uaCache.stale()); - assert.equal(1234, uaCache.maxAge()); - }); - - it('don\'t share cookies', function() { - const cookieHeader = { - 'set-cookie': 'foo=bar', - 'cache-control': 'max-age=99', - }; - const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true}); - assert(proxyCache.stale()); - assert.equal(0, proxyCache.maxAge()); - - const uaCache = new CachePolicy(req, {headers:cookieHeader}, {shared:false}); - assert(!uaCache.stale()); - assert.equal(99, uaCache.maxAge()); - }); - - it('do share cookies if immutable', function() { - const cookieHeader = { - 'set-cookie': 'foo=bar', - 'cache-control': 'immutable, max-age=99', - }; - const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true}); - assert(!proxyCache.stale()); - assert.equal(99, proxyCache.maxAge()); - }); - - it('cache explicitly public cookie', function() { - const cookieHeader = { - 'set-cookie': 'foo=bar', - 'cache-control': 'max-age=5, public', - }; - const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true}); - assert(!proxyCache.stale()); - assert.equal(5, proxyCache.maxAge()); - }); - - it('miss max-age=0', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control': 'public, max-age=0', - }}); - assert(cache.stale()); - assert.equal(0, cache.maxAge()); - }); - - it('uncacheable 503', function() { - const cache = new CachePolicy(req, { - status: 503, - headers:{ - 'cache-control': 'public, max-age=1000', - }}); - assert(cache.stale()); - assert.equal(0, cache.maxAge()); - }); - - it('cacheable 301', function() { - const cache = new CachePolicy(req, { - status: 301, - headers:{ - 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT', - }}); - assert(!cache.stale()); - }); - - it('uncacheable 303', function() { - const cache = new CachePolicy(req, { - status: 303, - headers:{ - 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT', - }}); - assert(cache.stale()); - assert.equal(0, cache.maxAge()); - }); - - it('cacheable 303', function() { - const cache = new CachePolicy(req, { - status: 303, - headers:{ - 'cache-control': 'max-age=1000', - }}); - assert(!cache.stale()); - }); - - it('uncacheable 412', function() { - const cache = new CachePolicy(req, { - status: 412, - headers:{ - 'cache-control': 'public, max-age=1000', - }}); - assert(cache.stale()); - assert.equal(0, cache.maxAge()); - }); - - it('expired expires cached with max-age', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control': 'public, max-age=9999', - 'expires': 'Sat, 07 May 2016 15:35:18 GMT', - }}); - assert(!cache.stale()); - assert.equal(9999, cache.maxAge()); - }); - - it('expired expires cached with s-maxage', function() { - const sMaxAgeHeaders = { - 'cache-control': 'public, s-maxage=9999', - 'expires': 'Sat, 07 May 2016 15:35:18 GMT', - }; - const proxyCache = new CachePolicy(req, {headers:sMaxAgeHeaders}); - assert(!proxyCache.stale()); - assert.equal(9999, proxyCache.maxAge()); - - const uaCache = new CachePolicy(req, {headers:sMaxAgeHeaders}, {shared:false}); - assert(uaCache.stale()); - assert.equal(0, uaCache.maxAge()); - }); - - it('max-age wins over future expires', function() { - const cache = new CachePolicy(req, {headers:{ - 'cache-control': 'public, max-age=333', - 'expires': new Date(Date.now()+3600*1000).toGMTString(), - }}); - assert(!cache.stale()); - assert.equal(333, cache.maxAge()); - }); - - it('remove hop headers', function() { - let now = 10000; - class TimeTravellingPolicy extends CachePolicy { - now() { - return now; - } - } - - const res = {headers:{ - 'te': 'deflate', - 'date': 'now', - 'custom': 'header', - 'oompa': 'lumpa', - 'connection': 'close, oompa, header', - 'age': '10', - 'cache-control': 'public, max-age=333', - }}; - const cache = new TimeTravellingPolicy(req, res); - - now += 1005; - const h = cache.responseHeaders(); - assert(!h.connection); - assert(!h.te); - assert(!h.oompa); - assert.equal(h['cache-control'], 'public, max-age=333'); - assert.equal(h.date, 'now', "date must stay the same for expires, age, etc"); - assert.equal(h.custom, 'header'); - assert.equal(h.age, '11'); - assert.equal(res.headers.age, '10'); - - const cache2 = TimeTravellingPolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject()))); - assert(cache2 instanceof TimeTravellingPolicy); - const h2 = cache2.responseHeaders(); - assert.deepEqual(h, h2); - }); -}); |