util.js (1459B)
1 'use strict'; 2 3 // Makes sure initial bucket state is as expected and to clean up after the test 4 // is over (whether it passes or fails). 5 async function prepareForBucketTest(test) { 6 // Verify initial state. 7 assert_equals((await navigator.storageBuckets.keys()).join(), ''); 8 // Clean up after test. 9 test.add_cleanup(async function() { 10 const keys = await navigator.storageBuckets.keys(); 11 for (const key of keys) { 12 await navigator.storageBuckets.delete(key); 13 } 14 }); 15 } 16 17 function indexedDbOpenRequest(t, idb, dbname, upgrade_func) { 18 return new Promise((resolve, reject) => { 19 const openRequest = idb.open(dbname); 20 t.add_cleanup(() => { 21 indexedDbDeleteRequest(idb, dbname); 22 }); 23 24 openRequest.onerror = () => { 25 reject(openRequest.error); 26 }; 27 openRequest.onsuccess = () => { 28 resolve(openRequest.result); 29 }; 30 openRequest.onupgradeneeded = event => { 31 upgrade_func(openRequest.result); 32 }; 33 }); 34 } 35 36 function indexedDbDeleteRequest(idb, name) { 37 return new Promise((resolve, reject) => { 38 const deleteRequest = idb.deleteDatabase(name); 39 deleteRequest.onerror = () => { 40 reject(deleteRequest.error); 41 }; 42 deleteRequest.onsuccess = () => { 43 resolve(); 44 }; 45 }); 46 } 47 48 function transactionPromise(txn) { 49 return new Promise((resolve, reject) => { 50 txn.onabort = () => { 51 reject(txn.error); 52 }; 53 txn.oncomplete = () => { 54 resolve(); 55 }; 56 }); 57 }