test_deleteDatabase_interactions.js (1948B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 /* exported testGenerator */ 7 var testGenerator = testSteps(); 8 9 function* testSteps() { 10 const name = this.window ? window.location.pathname : "Splendid Test"; 11 12 let request = indexedDB.open(name, 10); 13 request.onerror = errorHandler; 14 request.onsuccess = unexpectedSuccessHandler; 15 request.onupgradeneeded = grabEventAndContinueHandler; 16 17 ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest"); 18 19 let event = yield undefined; 20 21 is(event.type, "upgradeneeded", "Expect an upgradeneeded event"); 22 ok(event instanceof IDBVersionChangeEvent, "Expect a versionchange event"); 23 24 let db = event.target.result; 25 db.createObjectStore("stuff"); 26 27 request.onsuccess = grabEventAndContinueHandler; 28 29 event = yield undefined; 30 31 is(event.type, "success", "Expect a success event"); 32 is(event.target, request, "Event has right target"); 33 ok(event.target.result instanceof IDBDatabase, "Result should be a database"); 34 is(db.objectStoreNames.length, 1, "Expect an objectStore here"); 35 36 db.close(); 37 38 request = indexedDB.deleteDatabase(name); 39 40 request.onerror = errorHandler; 41 request.onsuccess = grabEventAndContinueHandler; 42 43 ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest"); 44 45 let openRequest = indexedDB.open(name, 1); 46 openRequest.onerror = errorHandler; 47 openRequest.onsuccess = unexpectedSuccessHandler; 48 49 event = yield undefined; 50 is(event.type, "success", "expect a success event"); 51 is(event.target, request, "event has right target"); 52 is(event.target.result, undefined, "event should have no result"); 53 54 openRequest.onsuccess = grabEventAndContinueHandler; 55 56 event = yield undefined; 57 is(event.target.result.version, 1, "DB has proper version"); 58 is( 59 event.target.result.objectStoreNames.length, 60 0, 61 "DB should have no object stores" 62 ); 63 64 finishTest(); 65 }