michael@0: /** michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ michael@0: */ michael@0: michael@0: var testGenerator = testSteps(); michael@0: michael@0: function testSteps() michael@0: { michael@0: let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1); michael@0: request.onerror = errorHandler; michael@0: request.onupgradeneeded = grabEventAndContinueHandler; michael@0: request.onsuccess = grabEventAndContinueHandler; michael@0: michael@0: let event = yield undefined; michael@0: michael@0: let db = event.target.result; michael@0: michael@0: for each (let autoIncrement in [false, true]) { michael@0: let objectStore = michael@0: db.createObjectStore(autoIncrement, { keyPath: "id", michael@0: autoIncrement: autoIncrement }); michael@0: objectStore.createIndex("", "index", { unique: true }); michael@0: michael@0: for (let i = 0; i < 10; i++) { michael@0: objectStore.add({ id: i, index: i }); michael@0: } michael@0: } michael@0: michael@0: event = yield undefined; michael@0: is(event.type, "success", "expect a success event"); michael@0: michael@0: for each (let autoIncrement in [false, true]) { michael@0: objectStore = db.transaction(autoIncrement, "readwrite") michael@0: .objectStore(autoIncrement); michael@0: michael@0: request = objectStore.put({ id: 5, index: 6 }); michael@0: request.onsuccess = unexpectedSuccessHandler; michael@0: request.addEventListener("error", new ExpectError("ConstraintError", true)); michael@0: event = yield undefined; michael@0: michael@0: event.preventDefault(); michael@0: michael@0: let keyRange = IDBKeyRange.only(5); michael@0: michael@0: objectStore.index("").openCursor(keyRange).onsuccess = function(event) { michael@0: let cursor = event.target.result; michael@0: ok(cursor, "Must have a cursor here"); michael@0: michael@0: is(cursor.value.index, 5, "Still have the right index value"); michael@0: michael@0: cursor.value.index = 6; michael@0: michael@0: request = cursor.update(cursor.value); michael@0: request.onsuccess = unexpectedSuccessHandler; michael@0: request.addEventListener("error", new ExpectError("ConstraintError", true)); michael@0: }; michael@0: michael@0: yield undefined; michael@0: } michael@0: michael@0: finishTest(); michael@0: yield undefined; michael@0: }