diff options
Diffstat (limited to 'dom/indexedDB/test/unit/test_index_empty_keyPath.js')
-rw-r--r-- | dom/indexedDB/test/unit/test_index_empty_keyPath.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/dom/indexedDB/test/unit/test_index_empty_keyPath.js b/dom/indexedDB/test/unit/test_index_empty_keyPath.js new file mode 100644 index 0000000000..1e13f4d824 --- /dev/null +++ b/dom/indexedDB/test/unit/test_index_empty_keyPath.js @@ -0,0 +1,80 @@ +/** + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +var testGenerator = testSteps(); + +function* testSteps() { + const name = this.window ? window.location.pathname : "Splendid Test"; + + const objectStoreData = [ + { key: "1", value: "foo" }, + { key: "2", value: "bar" }, + { key: "3", value: "baz" }, + ]; + + let request = indexedDB.open(name, 1); + request.onerror = errorHandler; + request.onupgradeneeded = grabEventAndContinueHandler; + request.onsuccess = grabEventAndContinueHandler; + let event = yield undefined; // upgradeneeded + + let db = event.target.result; + + let objectStore = db.createObjectStore("data", { keyPath: null }); + + // First, add all our data to the object store. + let addedData = 0; + for (let i in objectStoreData) { + request = objectStore.add(objectStoreData[i].value, objectStoreData[i].key); + request.onerror = errorHandler; + request.onsuccess = function (event) { + if (++addedData == objectStoreData.length) { + testGenerator.next(event); + } + }; + } + event = yield undefined; // testGenerator.send + + // Now create the index. + objectStore.createIndex("set", "", { unique: true }); + yield undefined; // success + + let trans = db.transaction("data", "readwrite"); + objectStore = trans.objectStore("data"); + let index = objectStore.index("set"); + + request = index.get("bar"); + request.onerror = errorHandler; + request.onsuccess = grabEventAndContinueHandler; + + event = yield undefined; + + is(event.target.result, "bar", "Got correct result"); + + request = objectStore.add("foopy", 4); + request.onerror = errorHandler; + request.onsuccess = grabEventAndContinueHandler; + + yield undefined; + + request = index.get("foopy"); + request.onerror = errorHandler; + request.onsuccess = grabEventAndContinueHandler; + + event = yield undefined; + + is(event.target.result, "foopy", "Got correct result"); + + request = objectStore.add("foopy", 5); + request.addEventListener("error", new ExpectError("ConstraintError", true)); + request.onsuccess = unexpectedSuccessHandler; + + trans.oncomplete = grabEventAndContinueHandler; + + yield undefined; + yield undefined; + + finishTest(); +} |