Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 importScripts('worker-test-harness.js'); | |
| 2 | |
| 3 promise_test(function(t) { | |
| 4 return caches.create('foo') | |
|
jsbell
2014/08/15 21:36:13
IIUC, Caches are scoped to an origin, not to a SW
asanka
2014/08/20 03:10:29
I see. This was a bit of a head scratcher for me s
| |
| 5 .then(t.step_func(function(cache) { | |
|
jsbell
2014/08/15 21:36:13
Should not need t.step_func in a promise_test (her
asanka
2014/08/20 03:10:29
Ah. Good point! Changed.
| |
| 6 assert_true(cache instanceof Cache, | |
| 7 'CacheStorage.create should return a Cache.'); | |
| 8 })); | |
| 9 }, 'CacheStorage.create'); | |
| 10 | |
| 11 promise_test(function(t) { | |
| 12 return caches.create() | |
| 13 .then(t.step_func(function(cache) { | |
| 14 assert_true(cache instanceof Cache, | |
| 15 'CacheStorage.create should accept an empty name.'); | |
| 16 })); | |
| 17 }, 'CacheStorage.create with an empty name'); | |
| 18 | |
| 19 promise_test(function(t) { | |
| 20 var cache_name = 'there can be only one'; | |
| 21 | |
| 22 return caches.create(cache_name) | |
| 23 .then(function() { | |
| 24 return expect_promise_throws( | |
| 25 t, | |
| 26 caches.create(cache_name), | |
| 27 'InvalidAccessError', | |
| 28 'CacheStorage.create should throw InvalidAccessError if called ' + | |
| 29 'with existing cache name.'); | |
| 30 }); | |
| 31 }, 'CacheStorage.create'); | |
| 32 | |
| 33 promise_test(function(t) { | |
| 34 return caches.create('bar') | |
| 35 .then(t.step_func(function() { return caches.has('bar'); })) | |
| 36 .then(t.step_func(function(result) { | |
| 37 assert_true(result, | |
| 38 'CacheStorage.has should return true for ' + | |
| 39 'existing cache.'); | |
| 40 })) | |
| 41 | |
| 42 .then(function() { return caches.has('Bar'); }) | |
| 43 .then(t.step_func(function(result) { | |
| 44 assert_false(result, | |
| 45 'CacheStorage.has should not match a cache name that ' + | |
| 46 'differs in case.'); | |
| 47 })) | |
| 48 | |
| 49 .then(function() { return caches.has(' bar'); }) | |
| 50 .then(t.step_func(function(result) { | |
| 51 assert_false(result, | |
| 52 'CacheStorage.has should not ignore leading ' + | |
| 53 'whitespace in name.'); | |
| 54 })) | |
| 55 | |
| 56 .then(function() { return caches.has('bar '); }) | |
| 57 .then(t.step_func(function(result) { | |
| 58 assert_false(result, | |
| 59 'CacheStorage.has should not ignore trailing ' + | |
|
jsbell
2014/08/15 21:36:13
Any particular reason to worry about leading/trail
asanka
2014/08/20 03:10:29
I added a test case for an embedded NUL. I didn't
| |
| 60 'whitespace in name.'); | |
| 61 })); | |
| 62 }, 'CacheStorage.has with existing cache'); | |
| 63 | |
| 64 promise_test(function(t) { | |
| 65 return caches.has('cheezburger') | |
| 66 .then(t.step_func(function(result) { | |
| 67 assert_false(result, | |
| 68 'CacheStorage.has should return false for ' + | |
| 69 'nonexistent cache.'); | |
| 70 })); | |
| 71 }, 'CacheStorage.has with nonexistent cache'); | |
| 72 | |
| 73 promise_test(function(t) { | |
| 74 var cache_name = 'get-test'; | |
| 75 var cache; | |
| 76 return caches.create(cache_name) | |
| 77 .then(t.step_func(function(result) { | |
| 78 cache = result; | |
| 79 return caches.get(cache_name); | |
| 80 })) | |
| 81 .then(t.step_func(function(result) { | |
| 82 assert_equals(result, cache, | |
| 83 'CacheStorage.get should return the named Cache object ' + | |
|
jsbell
2014/08/15 21:36:13
nit: line length (80 cols)
asanka
2014/08/20 03:10:29
Done.
| |
| 84 'if it exists.'); | |
| 85 return caches.get(cache_name); | |
| 86 })) | |
| 87 .then(t.step_func(function(result) { | |
| 88 assert_equals(result, cache, | |
| 89 'CacheStorage.get should return the same ' + | |
| 90 'instance of an existing Cache object.'); | |
| 91 })); | |
| 92 }, 'CacheStorage.get with existing cache'); | |
| 93 | |
| 94 promise_test(function(t) { | |
| 95 return caches.get('cheezburger') | |
| 96 .then(t.step_func(function(result) { | |
| 97 assert_equals(result, undefined, | |
| 98 'CacheStorage.get should return undefined for a ' + | |
| 99 'nonexistent cache.'); | |
| 100 })); | |
| 101 }, 'CacheStorage.get with nonexistent cache'); | |
| 102 | |
| 103 promise_test(function(t) { | |
| 104 var cache_name = 'to-be-deleted'; | |
| 105 | |
| 106 return caches.create(cache_name) | |
| 107 .then(function() { return caches.delete(cache_name); }) | |
| 108 .then(t.step_func(function(result) { | |
| 109 assert_true(result, | |
| 110 'CacheStorage.delete should return true after ' + | |
| 111 'deleting an existing cache.'); | |
| 112 })) | |
| 113 | |
| 114 .then(function() { return caches.has(cache_name); }) | |
| 115 .then(t.step_func(function(cache_exists) { | |
| 116 assert_false(cache_exists, | |
| 117 'CacheStorage.has should not return true after ' + | |
| 118 'fulfilment of CacheStorage.delete promise.'); | |
| 119 })); | |
| 120 }, 'CacheStorage.delete with existing cache'); | |
| 121 | |
| 122 promise_test(function(t) { | |
| 123 return caches.delete('cheezburger') | |
| 124 .then(t.step_func(function(result) { | |
| 125 assert_false(result, | |
| 126 'CacheStorage.delete should return false for a ' + | |
| 127 'nonexistent cache.'); | |
| 128 })); | |
| 129 }, 'CacheStorage.delete with nonexistent cache'); | |
| 130 | |
| OLD | NEW |