Skip to content

Commit

Permalink
Reland "Add quota usage details tests for all other storage backends."
Browse files Browse the repository at this point in the history
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 <[email protected]>
> Reviewed-by: Joshua Bell <[email protected]>
> Commit-Queue: Jarryd Goodman <[email protected]>
> 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 <[email protected]>
Commit-Queue: Jarryd Goodman <[email protected]>
Cr-Commit-Position: refs/heads/master@{#617285}
  • Loading branch information
Jarryd authored and foolip committed Dec 19, 2018
1 parent 18b9480 commit cc2ddff
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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='[email protected]' 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>
20 changes: 20 additions & 0 deletions storage/estimate-usage-details-caches.https.tentative.any.js
Original file line number Diff line number Diff line change
@@ -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');
12 changes: 12 additions & 0 deletions storage/estimate-usage-details.https.tentative.any.js
Original file line number Diff line number Diff line change
@@ -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');
3 changes: 3 additions & 0 deletions storage/resources/appcache.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CACHE MANIFEST
# iframe_with_appcache_manifest.html references this manifest to get cached in
# AppCache.
17 changes: 17 additions & 0 deletions storage/resources/iframe_with_appcache_manifest.html
Original file line number Diff line number Diff line change
@@ -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='[email protected]' 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>

0 comments on commit cc2ddff

Please sign in to comment.