Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 importScripts('worker-testharness.js'); | 1 importScripts('worker-testharness.js'); |
| 2 importScripts('/resources/testharness-helpers.js'); | 2 importScripts('/resources/testharness-helpers.js'); |
| 3 | 3 |
| 4 var test_url = 'https://example.com/foo'; | 4 var test_url = 'https://example.com/foo'; |
| 5 | 5 |
| 6 // Construct a generic Request object. The URL is |test_url|. All other fields | 6 // Construct a generic Request object. The URL is |test_url|. All other fields |
|
jsbell
2014/11/06 22:48:37
Nit: adjust comment
But... what's the advantage f
asanka
2014/11/06 23:42:00
None whatsoever. Removed!
| |
| 7 // are defaults. | 7 // are defaults. |
| 8 function new_test_request() { | 8 function new_test_request(url) { |
| 9 return new Request(test_url); | 9 url = url || test_url; |
| 10 return new Request(url); | |
| 10 } | 11 } |
| 11 | 12 |
| 12 // Construct a generic Response object. The URL is empty. If specified |body| | 13 // Construct a generic Response object. The URL is empty. If specified |body| |
| 13 // will be set as the response body string. | 14 // will be set as the response body string. |
| 14 function new_test_response(body) { | 15 function new_test_response(body) { |
| 15 body = body || 'Hello world!'; | 16 body = body || 'Hello world!'; |
| 16 return new Response(body, { | 17 return new Response(body, { |
| 17 status: 200, | 18 status: 200, |
| 18 statusText: 'OK', | 19 statusText: 'OK', |
| 19 headers: [['Content-Type', 'text/plain']] | 20 headers: [['Content-Type', 'text/plain']] |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 112 'Cache.put should store response body.'); | 113 'Cache.put should store response body.'); |
| 113 }); | 114 }); |
| 114 }, 'Cache.put with an empty response body'); | 115 }, 'Cache.put with an empty response body'); |
| 115 | 116 |
| 116 cache_test(function(cache) { | 117 cache_test(function(cache) { |
| 117 var test_url = new URL('fetch-status.php?status=500', location.href).href; | 118 var test_url = new URL('fetch-status.php?status=500', location.href).href; |
| 118 var request = new Request(test_url); | 119 var request = new Request(test_url); |
| 119 var response; | 120 var response; |
| 120 return fetch(test_url) | 121 return fetch(test_url) |
| 121 .then(function(fetch_result) { | 122 .then(function(fetch_result) { |
| 123 assert_equals(fetch_result.status, 500, | |
| 124 'Test framework error: The status code should be 500.'); | |
| 122 response = fetch_result.clone(); | 125 response = fetch_result.clone(); |
| 123 return cache.put(request, fetch_result); | 126 return cache.put(request, fetch_result); |
| 124 }) | 127 }) |
| 125 .then(function() { | 128 .then(function() { |
| 126 return cache.match(test_url); | 129 return cache.match(test_url); |
| 127 }) | 130 }) |
| 128 .then(function(result) { | 131 .then(function(result) { |
| 129 assert_object_equals(result, response, | 132 assert_object_equals(result, response, |
| 130 'Cache.put should update the cache with ' + | 133 'Cache.put should update the cache with ' + |
| 131 'new request and response.'); | 134 'new request and response.'); |
| 132 return result.text(); | 135 return result.text(); |
| 133 }) | 136 }) |
| 134 .then(function(body) { | 137 .then(function(body) { |
| 135 assert_equals(body, '', | 138 assert_equals(body, '', |
| 136 'Cache.put should store response body.'); | 139 'Cache.put should store response body.'); |
| 137 }); | 140 }); |
| 138 }, 'Cache.put with HTTP 500 response'); | 141 }, 'Cache.put with HTTP 500 response'); |
| 139 | 142 |
| 140 cache_test(function(cache) { | 143 cache_test(function(cache) { |
| 141 var alternate_response = new_test_response('Lorem ipsum'); | 144 var alternate_response_body = 'New body'; |
| 142 return cache.put(new_test_request(), new_test_response()) | 145 var alternate_response = new_test_response(alternate_response_body); |
| 146 return cache.put(new_test_request(), | |
| 147 new_test_response('Old body')) | |
| 143 .then(function() { | 148 .then(function() { |
| 144 return cache.put(new_test_request(), alternate_response); | 149 return cache.put(new_test_request(), alternate_response); |
| 145 }) | 150 }) |
| 146 .then(function() { | 151 .then(function() { |
| 147 return cache.match(test_url); | 152 return cache.match(test_url); |
| 148 }) | 153 }) |
| 149 .then(function(result) { | 154 .then(function(result) { |
| 150 assert_object_equals(result, alternate_response, | 155 assert_object_equals(result, alternate_response, |
| 151 'Cache.put should replace existing ' + | 156 'Cache.put should replace existing ' + |
| 152 'response with new response.'); | 157 'response with new response.'); |
| 158 return result.text(); | |
| 159 }) | |
| 160 .then(function(body) { | |
| 161 assert_equals(body, alternate_response_body, | |
| 162 'Cache put should store new response body.'); | |
| 153 }); | 163 }); |
| 154 }, 'Cache.put called twice with same Request and different Responses'); | 164 }, 'Cache.put called twice with matching Requests and different Responses'); |
| 165 | |
| 166 cache_test(function(cache) { | |
| 167 var first_url = test_url; | |
| 168 var second_url = first_url + '#(O_o)'; | |
| 169 var alternate_response_body = 'New body'; | |
| 170 var alternate_response = new_test_response(alternate_response_body); | |
| 171 return cache.put(new_test_request(first_url), | |
| 172 new_test_response('Old body')) | |
| 173 .then(function() { | |
| 174 return cache.put(new_test_request(second_url), alternate_response); | |
| 175 }) | |
| 176 .then(function() { | |
| 177 return cache.match(test_url); | |
| 178 }) | |
| 179 .then(function(result) { | |
| 180 assert_object_equals(result, alternate_response, | |
|
jsbell
2014/11/06 22:48:37
It's a bit weird since this assertion currently pa
asanka
2014/11/06 23:42:00
Yeah. I removed the new_test_response() function a
| |
| 181 'Cache.put should replace existing ' + | |
| 182 'response with new response.'); | |
| 183 return result.text(); | |
| 184 }) | |
| 185 .then(function(body) { | |
| 186 assert_equals(body, alternate_response_body, | |
| 187 'Cache put should store new response body.'); | |
| 188 }); | |
| 189 }, 'Cache.put called twice with request URLs that differ only by a fragment'); | |
| 190 | |
| 191 cache_test(function(cache) { | |
| 192 var entries = { | |
| 193 dark: { | |
| 194 url: 'http://darkhelmet:12345@example.com/spaceballs', | |
| 195 body: 'Moranis' | |
| 196 }, | |
| 197 | |
| 198 skroob: { | |
| 199 url: 'http://skroob:12345@example.com/spaceballs', | |
| 200 body: 'Brooks' | |
| 201 }, | |
| 202 | |
| 203 control: { | |
| 204 url: 'http://example.com/spaceballs', | |
| 205 body: 'v(o.o)v' | |
| 206 } | |
| 207 }; | |
| 208 | |
| 209 return Promise.all(Object.keys(entries).map(function(key) { | |
| 210 return cache.put(new_test_request(entries[key].url), | |
| 211 new_test_response(entries[key].body)); | |
| 212 })) | |
| 213 .then(function() { | |
| 214 return Promise.all(Object.keys(entries).map(function(key) { | |
| 215 return cache.match(entries[key].url) | |
| 216 .then(function(result) { | |
| 217 return result.text(); | |
| 218 }) | |
| 219 .then(function(body) { | |
| 220 assert_equals(body, entries[key].body, | |
| 221 'Cache put should store response body.'); | |
| 222 }); | |
| 223 })); | |
| 224 }); | |
| 225 }, 'Cache.put with request URLs containing embedded credentials'); | |
| 155 | 226 |
| 156 cache_test(function(cache) { | 227 cache_test(function(cache) { |
| 157 var url = 'http://example.com/foo'; | 228 var url = 'http://example.com/foo'; |
| 158 return cache.put(url, new_test_response('some body')) | 229 return cache.put(url, new_test_response('some body')) |
| 159 .then(function() { return cache.match(url); }) | 230 .then(function() { return cache.match(url); }) |
| 160 .then(function(response) { return response.text(); }) | 231 .then(function(response) { return response.text(); }) |
| 161 .then(function(body) { | 232 .then(function(body) { |
| 162 assert_equals(body, 'some body', | 233 assert_equals(body, 'some body', |
| 163 'Cache.put should accept a string as request.'); | 234 'Cache.put should accept a string as request.'); |
| 164 }); | 235 }); |
| 165 }, 'Cache.put with an string request'); | 236 }, 'Cache.put with a string request'); |
| 166 | 237 |
| 167 cache_test(function(cache) { | 238 cache_test(function(cache) { |
| 168 return assert_promise_rejects( | 239 return assert_promise_rejects( |
| 169 cache.put(new_test_request(), 'Hello world!'), | 240 cache.put(new_test_request(), 'Hello world!'), |
| 170 new TypeError(), | 241 new TypeError(), |
| 171 'Cache.put should only accept a Response object as the response.'); | 242 'Cache.put should only accept a Response object as the response.'); |
| 172 }, 'Cache.put with an invalid response'); | 243 }, 'Cache.put with an invalid response'); |
| 173 | 244 |
| 174 cache_test(function(cache) { | 245 cache_test(function(cache) { |
| 175 return assert_promise_rejects( | 246 return assert_promise_rejects( |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 198 new TypeError(), | 269 new TypeError(), |
| 199 'Cache.put should throw a TypeError for non-GET requests.'); | 270 'Cache.put should throw a TypeError for non-GET requests.'); |
| 200 }, 'Cache.put with a non-GET request'); | 271 }, 'Cache.put with a non-GET request'); |
| 201 | 272 |
| 202 cache_test(function(cache) { | 273 cache_test(function(cache) { |
| 203 return assert_promise_rejects( | 274 return assert_promise_rejects( |
| 204 cache.put(new_test_request(), null), | 275 cache.put(new_test_request(), null), |
| 205 new TypeError(), | 276 new TypeError(), |
| 206 'Cache.put should throw a TypeError for an empty response.'); | 277 'Cache.put should throw a TypeError for an empty response.'); |
| 207 }, 'Cache.put with an empty response'); | 278 }, 'Cache.put with an empty response'); |
| OLD | NEW |