test_invalid_cursor.js (1642B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 /* exported testGenerator, disableWorkerTest */ 7 var disableWorkerTest = "Need to implement a gc() function for worker tests"; 8 9 var testGenerator = testSteps(); 10 11 function* testSteps() { 12 const dbName = "window" in this ? window.location.pathname : "test"; 13 const dbVersion = 1; 14 const objectStoreName = "foo"; 15 const data = 0; 16 17 let req = indexedDB.open(dbName, dbVersion); 18 req.onerror = errorHandler; 19 req.onupgradeneeded = grabEventAndContinueHandler; 20 req.onsuccess = grabEventAndContinueHandler; 21 22 let event = yield undefined; 23 24 is(event.type, "upgradeneeded", "Got upgradeneeded event"); 25 26 let db = event.target.result; 27 28 let objectStore = db.createObjectStore(objectStoreName, { 29 autoIncrement: true, 30 }); 31 objectStore.add(data); 32 33 event = yield undefined; 34 35 is(event.type, "success", "Got success event for open"); 36 37 objectStore = db.transaction(objectStoreName).objectStore(objectStoreName); 38 39 objectStore.openCursor().onsuccess = grabEventAndContinueHandler; 40 event = yield undefined; 41 42 is(event.type, "success", "Got success event for openCursor"); 43 44 let cursor = event.target.result; 45 is(cursor.value, data, "Got correct cursor value"); 46 47 objectStore.get(cursor.key).onsuccess = grabEventAndContinueHandler; 48 event = yield undefined; 49 50 is(event.target.result, data, "Got correct get value"); 51 52 info("Collecting garbage"); 53 54 gc(); 55 56 info("Done collecting garbage"); 57 58 cursor.continue(); 59 event = yield undefined; 60 61 is(event.target.result, null, "No more entries"); 62 63 finishTest(); 64 }