1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /**
- * 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 objectStores = [
- { name: "a", autoIncrement: false },
- { name: "b", autoIncrement: true }
- ];
- const indexes = [
- { name: "a", options: { } },
- { name: "b", options: { unique: true } }
- ];
- var j = 0;
- for (let i in objectStores) {
- let request = indexedDB.open(name, ++j);
- request.onerror = errorHandler;
- request.onupgradeneeded = grabEventAndContinueHandler;
- let event = yield undefined;
- let db = event.target.result;
- db.onversionchange = function(event) {
- event.target.close();
- };
- let objectStore =
- db.createObjectStore(objectStores[i].name,
- { keyPath: "id",
- autoIncrement: objectStores[i].autoIncrement });
- for (let j in indexes) {
- objectStore.createIndex(indexes[j].name, "name", indexes[j].options);
- }
- let data = { name: "Ben" };
- if (!objectStores[i].autoIncrement) {
- data.id = 1;
- }
- request = objectStore.add(data);
- request.onerror = errorHandler;
- request.onsuccess = grabEventAndContinueHandler;
- event = yield undefined;
- ok(event.target.result == 1 || event.target.result == 2, "Good id");
- }
- executeSoon(function() { testGenerator.next(); });
- yield undefined;
- let request = indexedDB.open(name, j);
- request.onerror = errorHandler;
- request.onsuccess = grabEventAndContinueHandler;
- let event = yield undefined;
- let db = event.target.result;
- for (let i in objectStores) {
- for (let j in indexes) {
- let objectStore = db.transaction(objectStores[i].name)
- .objectStore(objectStores[i].name);
- let index = objectStore.index(indexes[j].name);
- request = index.openCursor();
- request.onerror = errorHandler;
- request.onsuccess = function (event) {
- is(event.target.result.value.name, "Ben", "Good object");
- executeSoon(function() { testGenerator.next(); });
- }
- yield undefined;
- }
- }
- finishTest();
- yield undefined;
- }
|