test_index_empty_keyPath.js (2211B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 var testGenerator = testSteps(); 7 8 function* testSteps() { 9 const name = this.window ? window.location.pathname : "Splendid Test"; 10 11 const objectStoreData = [ 12 { key: "1", value: "foo" }, 13 { key: "2", value: "bar" }, 14 { key: "3", value: "baz" }, 15 ]; 16 17 let request = indexedDB.open(name, 1); 18 request.onerror = errorHandler; 19 request.onupgradeneeded = grabEventAndContinueHandler; 20 request.onsuccess = grabEventAndContinueHandler; 21 let event = yield undefined; // upgradeneeded 22 23 let db = event.target.result; 24 25 let objectStore = db.createObjectStore("data", { keyPath: null }); 26 27 // First, add all our data to the object store. 28 let addedData = 0; 29 for (let i in objectStoreData) { 30 request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key); 31 request.onerror = errorHandler; 32 request.onsuccess = function (event) { 33 if (++addedData == objectStoreData.length) { 34 testGenerator.next(event); 35 } 36 }; 37 } 38 event = yield undefined; // testGenerator.send 39 40 // Now create the index. 41 objectStore.createIndex("set", "", { unique: true }); 42 yield undefined; // success 43 44 let trans = db.transaction("data", "readwrite"); 45 objectStore = trans.objectStore("data"); 46 let index = objectStore.index("set"); 47 48 request = index.get("bar"); 49 request.onerror = errorHandler; 50 request.onsuccess = grabEventAndContinueHandler; 51 52 event = yield undefined; 53 54 is(event.target.result, "bar", "Got correct result"); 55 56 request = objectStore.add("foopy", 4); 57 request.onerror = errorHandler; 58 request.onsuccess = grabEventAndContinueHandler; 59 60 yield undefined; 61 62 request = index.get("foopy"); 63 request.onerror = errorHandler; 64 request.onsuccess = grabEventAndContinueHandler; 65 66 event = yield undefined; 67 68 is(event.target.result, "foopy", "Got correct result"); 69 70 request = objectStore.add("foopy", 5); 71 request.addEventListener("error", new ExpectError("ConstraintError", true)); 72 request.onsuccess = unexpectedSuccessHandler; 73 74 trans.oncomplete = grabEventAndContinueHandler; 75 76 yield undefined; 77 yield undefined; 78 79 finishTest(); 80 }