mirror of
https://github.com/servo/servo
synced 2026-05-11 17:37:21 +02:00
58 lines
1.8 KiB
HTML
58 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Request signals & the cache API</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
promise_test(async () => {
|
|
await caches.delete('test');
|
|
const controller = new AbortController();
|
|
const signal = controller.signal;
|
|
const request = new Request('../resources/data.json', { signal });
|
|
|
|
const cache = await caches.open('test');
|
|
await cache.put(request, new Response(''));
|
|
|
|
const requests = await cache.keys();
|
|
|
|
assert_equals(requests.length, 1, 'Ensuring cleanup worked');
|
|
|
|
const [cachedRequest] = requests;
|
|
|
|
controller.abort();
|
|
|
|
assert_false(cachedRequest.signal.aborted, "Request from cache shouldn't be aborted");
|
|
|
|
const data = await fetch(cachedRequest).then(r => r.json());
|
|
assert_equals(data.key, 'value', 'Fetch fully completes');
|
|
}, "Signals are not stored in the cache API");
|
|
|
|
promise_test(async () => {
|
|
await caches.delete('test');
|
|
const controller = new AbortController();
|
|
const signal = controller.signal;
|
|
const request = new Request('../resources/data.json', { signal });
|
|
controller.abort();
|
|
|
|
const cache = await caches.open('test');
|
|
await cache.put(request, new Response(''));
|
|
|
|
const requests = await cache.keys();
|
|
|
|
assert_equals(requests.length, 1, 'Ensuring cleanup worked');
|
|
|
|
const [cachedRequest] = requests;
|
|
|
|
assert_false(cachedRequest.signal.aborted, "Request from cache shouldn't be aborted");
|
|
|
|
const data = await fetch(cachedRequest).then(r => r.json());
|
|
assert_equals(data.key, 'value', 'Fetch fully completes');
|
|
}, "Signals are not stored in the cache API, even if they're already aborted");
|
|
</script>
|
|
</body>
|
|
</html>
|