test_autoIncrement_indexes.js (1630B)
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 let request = indexedDB.open( 11 this.window ? window.location.pathname : "Splendid Test", 12 1 13 ); 14 request.onerror = errorHandler; 15 request.onupgradeneeded = grabEventAndContinueHandler; 16 let event = yield undefined; 17 18 let db = request.result; 19 db.onerror = errorHandler; 20 21 let objectStore = db.createObjectStore("foo", { 22 keyPath: "id", 23 autoIncrement: true, 24 }); 25 objectStore.createIndex("first", "first"); 26 objectStore.createIndex("second", "second"); 27 objectStore.createIndex("third", "third"); 28 29 let data = { first: "foo", second: "foo", third: "foo" }; 30 31 objectStore.add(data).onsuccess = grabEventAndContinueHandler; 32 event = yield undefined; 33 34 is(event.target.result, 1, "Added entry"); 35 request.onsuccess = grabEventAndContinueHandler; 36 37 event = yield undefined; 38 39 objectStore = db.transaction("foo").objectStore("foo"); 40 let first = objectStore.index("first"); 41 let second = objectStore.index("second"); 42 let third = objectStore.index("third"); 43 44 first.get("foo").onsuccess = grabEventAndContinueHandler; 45 event = yield undefined; 46 47 is(event.target.result.id, 1, "Entry in first"); 48 49 second.get("foo").onsuccess = grabEventAndContinueHandler; 50 event = yield undefined; 51 52 is(event.target.result.id, 1, "Entry in second"); 53 54 third.get("foo").onsuccess = grabEventAndContinueHandler; 55 event = yield undefined; 56 57 is(event.target.result.id, 1, "Entry in third"); 58 59 finishTest(); 60 }