test_database_close_without_onclose.js (1511B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 /* eslint-disable mozilla/no-arbitrary-setTimeout */ 6 7 /* exported testGenerator */ 8 var testGenerator = testSteps(); 9 10 function* testSteps() { 11 const name = this.window 12 ? window.location.pathname 13 : "test_database_close_without_onclose.js"; 14 15 const checkpointSleepTimeSec = 10; 16 17 let openRequest = indexedDB.open(name, 1); 18 openRequest.onerror = errorHandler; 19 openRequest.onsuccess = unexpectedSuccessHandler; 20 openRequest.onupgradeneeded = grabEventAndContinueHandler; 21 22 ok(openRequest instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest"); 23 24 let event = yield undefined; 25 26 is(event.type, "upgradeneeded", "Expect an upgradeneeded event"); 27 ok(event instanceof IDBVersionChangeEvent, "Expect a versionchange event"); 28 29 let db = event.target.result; 30 db.createObjectStore("store"); 31 32 openRequest.onsuccess = grabEventAndContinueHandler; 33 34 event = yield undefined; 35 36 is(event.type, "success", "Expect a success event"); 37 is(event.target, openRequest, "Event has right target"); 38 ok(event.target.result instanceof IDBDatabase, "Result should be a database"); 39 is(db.objectStoreNames.length, 1, "Expect an objectStore here"); 40 41 db.onclose = errorHandler; 42 43 db.close(); 44 setTimeout(continueToNextStepSync, checkpointSleepTimeSec * 1000); 45 yield undefined; 46 47 ok(true, "The close event should not be fired after closed normally!"); 48 49 finishTest(); 50 yield undefined; 51 }