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 importScripts('override_assert_object_equals.js'); | 3 importScripts('override_assert_object_equals.js'); |
4 | 4 |
5 // A set of Request/Response pairs to be used with prepopulated_cache_test(). | 5 // A set of Request/Response pairs to be used with prepopulated_cache_test(). |
6 var simple_entries = [ | 6 var simple_entries = [ |
7 { | 7 { |
8 name: 'a', | 8 name: 'a', |
9 request: new Request('http://example.com/a'), | 9 request: new Request('http://example.com/a'), |
10 response: new Response('') | 10 response: new Response('') |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 return cache.match('http') | 305 return cache.match('http') |
306 .then(function(result) { | 306 .then(function(result) { |
307 assert_equals( | 307 assert_equals( |
308 result, undefined, | 308 result, undefined, |
309 'Cache.match should treat query as a URL and not ' + | 309 'Cache.match should treat query as a URL and not ' + |
310 'just a string fragment.'); | 310 'just a string fragment.'); |
311 }); | 311 }); |
312 }, 'Cache.match with string fragment "http" as query'); | 312 }, 'Cache.match with string fragment "http" as query'); |
313 | 313 |
314 prepopulated_cache_test(simple_entries, function(cache, entries) { | 314 prepopulated_cache_test(simple_entries, function(cache, entries) { |
315 return cache.matchAll('http://example.com/cat', | |
316 {prefixMatch: true}) | |
317 .then(function(result) { | |
318 assert_array_equivalent( | |
319 result, | |
320 [ | |
321 entries.cat.response, | |
322 entries.catmandu.response, | |
323 entries.cat_num_lives.response, | |
324 entries.cat_in_the_hat.response | |
325 ], | |
326 'Cache.matchAll should honor prefixMatch.'); | |
327 }); | |
328 }, 'Cache.matchAll with prefixMatch option'); | |
329 | |
330 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
331 return cache.match('http://example.com/cat', | |
332 {prefixMatch: true}) | |
333 .then(function(result) { | |
334 assert_object_in_array( | |
335 result, | |
336 [ | |
337 entries.cat.response, | |
338 entries.catmandu.response, | |
339 entries.cat_num_lives.response, | |
340 entries.cat_in_the_hat.response | |
341 ], | |
342 'Cache.match should honor prefixMatch.'); | |
343 }); | |
344 }, 'Cache.match with prefixMatch option'); | |
345 | |
346 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
347 return cache.matchAll('http://example.com/cat/', | |
348 {prefixMatch: true}) | |
349 .then(function(result) { | |
350 assert_array_equivalent( | |
351 result, [entries.cat_in_the_hat.response], | |
352 'Cache.matchAll should honor prefixMatch.'); | |
353 }); | |
354 }, 'Cache.matchAll with prefixMatch option (URL ending with path delimiter)'); | |
355 | |
356 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
357 return cache.match('http://example.com/cat/', | |
358 {prefixMatch: true}) | |
359 .then(function(result) { | |
360 assert_object_equals( | |
361 result, entries.cat_in_the_hat.response, | |
362 'Cache.match should honor prefixMatch.'); | |
363 }); | |
364 }, 'Cache.match with prefixMatch option (URL ending with path delimiter)'); | |
365 | |
366 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
367 return cache.matchAll('http://tom:jerry@example.com', {prefixMatch: true}) | |
368 .then(function(result) { | |
369 assert_array_equivalent( | |
370 result, | |
371 [ | |
372 entries.secret_cat.response, | |
373 ], | |
374 'Cache.matchAll should honor prefixMatch.'); | |
375 }); | |
376 }, 'Cache.matchAll with prefixMatch option (URL with embedded credentials)'); | |
377 | |
378 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
379 return cache.match('http://tom:jerry@example.com', {prefixMatch: true}) | |
380 .then(function(result) { | |
381 assert_object_equals( | |
382 result, entries.secret_cat.response, | |
383 'Cache.match should honor prefixMatch.'); | |
384 }); | |
385 }, 'Cache.match with prefixMatch option (URL with embedded credentials)'); | |
386 | |
387 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
388 // The string 'http://tom' should be converted to a URL and then serialized | |
389 // yielding 'http://tom/'. The trailing slash prevents the URL from matching | |
390 // the embedded credentials in the entries already in the cache. | |
391 return cache.matchAll('http://tom', {prefixMatch: true}) | |
392 .then(function(result) { | |
393 assert_array_equivalent( | |
394 result, [], | |
395 'Cache.matchAll should honor prefixMatch.'); | |
396 }); | |
397 }, | |
398 'Cache.matchAll with prefixMatch option (URL matching embedded credentials)'); | |
399 | |
400 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
401 // The string 'http://tom' should be converted to a URL and then serialized | |
402 // yielding 'http://tom/'. The trailing slash prevents the URL from matching | |
403 // the embedded credentials in the entries already in the cache. | |
404 return cache.match('http://tom', {prefixMatch: true}) | |
405 .then(function(result) { | |
406 assert_equals(result, undefined, | |
407 'Cache.match should honor prefixMatch.'); | |
408 }); | |
409 }, | |
410 'Cache.match with prefixMatch option (URL matching embedded credentials)'); | |
411 | |
412 prepopulated_cache_test(simple_entries, function(cache, entries) { | |
413 return cache.matchAll(entries.secret_cat.request.url) | 315 return cache.matchAll(entries.secret_cat.request.url) |
414 .then(function(result) { | 316 .then(function(result) { |
415 assert_array_equivalent( | 317 assert_array_equivalent( |
416 result, [entries.secret_cat.response], | 318 result, [entries.secret_cat.response], |
417 'Cache.matchAll should not ignore embedded credentials'); | 319 'Cache.matchAll should not ignore embedded credentials'); |
418 }); | 320 }); |
419 }, 'Cache.matchAll with URL containing credentials'); | 321 }, 'Cache.matchAll with URL containing credentials'); |
420 | 322 |
421 prepopulated_cache_test(simple_entries, function(cache, entries) { | 323 prepopulated_cache_test(simple_entries, function(cache, entries) { |
422 return cache.match(entries.secret_cat.request.url) | 324 return cache.match(entries.secret_cat.request.url) |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 }); | 488 }); |
587 p = p.then(function() { | 489 p = p.then(function() { |
588 assert_equals(Object.keys(hash).length, entries.length); | 490 assert_equals(Object.keys(hash).length, entries.length); |
589 }); | 491 }); |
590 | 492 |
591 return p.then(function() { | 493 return p.then(function() { |
592 return test_function(cache, hash); | 494 return test_function(cache, hash); |
593 }); | 495 }); |
594 }, description); | 496 }, description); |
595 } | 497 } |
OLD | NEW |