Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/storage/storagemanager-estimate.https.html

Issue 2791963004: Upstream StorageManager estimate() test to WPT (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/storage/quota/storagemanager-estimate.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/external/wpt/storage/storagemanager-estimate.https.html
diff --git a/third_party/WebKit/LayoutTests/external/wpt/storage/storagemanager-estimate.https.html b/third_party/WebKit/LayoutTests/external/wpt/storage/storagemanager-estimate.https.html
new file mode 100644
index 0000000000000000000000000000000000000000..88cbc9461a378cccb3fa93138ed90f2f9587492e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/storage/storagemanager-estimate.https.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>StorageManager: estimate()</title>
+<meta name="help" href="https://storage.spec.whatwg.org/#dom-storagemanager-estimate">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+
+test(function(t) {
+ assert_true(navigator.storage.estimate() instanceof Promise);
+}, 'estimate() method returns a Promise');
+
+promise_test(function(t) {
+ return navigator.storage.estimate().then(function(result) {
+ assert_true(typeof result === 'object');
+ assert_true('usage' in result);
+ assert_equals(typeof result.usage, 'number');
+ assert_true('quota' in result);
+ assert_equals(typeof result.quota, 'number');
+ });
+}, 'estimate() resolves to dictionary with members');
+
+promise_test(function(t) {
+ const large_value = new Uint8Array(1e6);
+ const dbname = `db-${location}-${t.name}`;
+ let db, before, after;
+
+ indexedDB.deleteDatabase(dbname);
+ return new Promise((resolve, reject) => {
+ const open = indexedDB.open(dbname);
pwnall 2017/04/04 21:08:34 I think you can remove some boilerplate by using c
jsbell 2017/04/05 15:57:27 Don't want a test in storage/ to depend on Indexed
+ open.onerror = () => { reject(open.error); };
+ open.onupgradeneeded = () => {
+ const connection = open.result;
+ connection.createObjectStore('store');
+ };
+ open.onsuccess = () => {
+ const connection = open.result;
+ t.add_cleanup(() => {
+ connection.close();
+ indexedDB.deleteDatabase(dbname);
+ });
+ resolve(connection);
+ };
+ })
+ .then(connection => {
+ db = connection;
+ return navigator.storage.estimate();
+ })
+ .then(estimate => {
+ before = estimate.usage;
+ return new Promise((resolve, reject) => {
+ const tx = db.transaction('store', 'readwrite');
+ tx.objectStore('store').put(large_value, 'key');
+ tx.onabort = () => { reject(tx.error); };
+ tx.oncomplete = () => { resolve(); };
+ });
+ })
+ .then(() => {
+ return navigator.storage.estimate();
+ })
+ .then(estimate => {
+ after = estimate.usage;
+ assert_greater_than(after, before,
+ 'estimated usage should increase');
+ });
+}, 'estimate() shows usage increase after large IndexedDB record is stored');
pwnall 2017/04/04 21:08:34 large -> 1MB?
jsbell 2017/04/05 16:58:12 Done.
+
+</script>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/storage/quota/storagemanager-estimate.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698