Bug 1514436 [wpt PR 14531] - Reland "Add quota usage details tests for all other storage backends.", a=testonly

Automatic update from web-platform-tests
Reland "Add quota usage details tests for all other storage backends."

This is a reland of 548e7b5e622ad79155ff95ef26738d7a40fe9397

Original change's description:
> Add quota usage details tests for all other storage backends.
>
> IndexedDB test was included in parent CL.
>
> Bug: 904000
> Test:
> Change-Id: Icc3462f13d0dce0197a8ec54f22d5ad794a51292
> Reviewed-on: https://chromium-review.googlesource.com/c/1334659
> Reviewed-by: Victor Costan <pwnall@chromium.org>
> Reviewed-by: Joshua Bell <jsbell@chromium.org>
> Commit-Queue: Jarryd Goodman <jarrydg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#616398}

Bug: 904000
Change-Id: I507ec17eabc8e323a7c6418075d4be4787d4c5df
Reviewed-on: https://chromium-review.googlesource.com/c/1378805
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Commit-Queue: Jarryd Goodman <jarrydg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617285}

--

wpt-commits: 7e5cdeab733b40357f553704fddddf6c5f199c8b
wpt-pr: 14531
This commit is contained in:
Jarryd 2019-01-31 19:00:02 +00:00 коммит произвёл James Graham
Родитель 99d462bf24
Коммит d8362db9df
5 изменённых файлов: 81 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,29 @@
<!doctype html>
<html>
<title>Quota Estimate: usage details reflect application cache changes.</title>
<meta charset='utf-8'>
<link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='../cookie-store/resources/helpers.js'></script>
<script>
'use strict';
promise_test(async t => {
let estimate = await navigator.storage.estimate();
const usageBeforeCreate = estimate.usageDetails.applicationCache || 0;
const iframe = await
createIframe('./resources/iframe_with_appcache_manifest.html', t);
await waitForMessage();
estimate = await navigator.storage.estimate();
assert_true('applicationCache' in estimate.usageDetails);
const usageAfterCreate = estimate.usageDetails.applicationCache;
assert_greater_than(
usageAfterCreate, usageBeforeCreate);
}, 'estimate() shows usage increase after app is cached');
</script>
</html>

Просмотреть файл

@ -0,0 +1,20 @@
// META: title=StorageManager: estimate() for caches
promise_test(async t => {
let estimate = await navigator.storage.estimate();
const cachesUsageBeforeCreate = estimate.usageDetails.caches || 0;
const cacheName = 'testCache';
const cache = await caches.open(cacheName);
t.add_cleanup(() => caches.delete(cacheName));
await cache.put('/test.json', new Response('x'.repeat(1024*1024)));
estimate = await navigator.storage.estimate();
assert_true('caches' in estimate.usageDetails);
const cachesUsageAfterPut = estimate.usageDetails.caches;
assert_greater_than(
cachesUsageAfterPut, cachesUsageBeforeCreate,
'estimated usage should increase after value is stored');
}, 'estimate() shows usage increase after large value is stored');

Просмотреть файл

@ -0,0 +1,12 @@
// META: title=StorageManager: estimate() should have usage details
promise_test(async t => {
const estimate = await navigator.storage.estimate();
assert_equals(typeof estimate, 'object');
assert_true('usage' in estimate);
assert_equals(typeof estimate.usage, 'number');
assert_true('quota' in estimate);
assert_equals(typeof estimate.quota, 'number');
assert_true('usageDetails' in estimate);
assert_equals(typeof estimate.usageDetails, 'object');
}, 'estimate() resolves to dictionary with members, including usageDetails');

Просмотреть файл

@ -0,0 +1,3 @@
CACHE MANIFEST
# iframe_with_appcache_manifest.html references this manifest to get cached in
# AppCache.

Просмотреть файл

@ -0,0 +1,17 @@
<!doctype html>
<html manifest="appcache.manifest">
<title>Iframe that will be cached using application cache.</title>
<meta charset='utf-8'>
<link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'>
<script>
(async () => {
const initPromise = new Promise(resolve => {
applicationCache.addEventListener('cached', resolve);
applicationCache.addEventListener('noupdate', resolve);
});
await initPromise;
window.parent.postMessage('document cached');
})();
</script>
</html>