/**
* 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 objectStoreName = "Objects" ;
let request = indexedDB.open(name, 1 );
request.onerror = errorHandler;
request.onupgradeneeded = grabEventAndContinueHandler;
request.onsuccess = unexpectedSuccessHandler;
let event = yield undefined;
request.onupgradeneeded = unexpectedSuccessHandler;
request.onsuccess = grabEventAndContinueHandler;
let db = event.target.result;
is(db.objectStoreNames.length, 0 , "Correct objectStoreNames list" );
let objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
let addedCount = 0 ;
for (let i = 0 ; i < 100 ; i++) {
request = objectStore.add({ foo: i });
request.onerror = errorHandler;
request.onsuccess = function () {
if (++addedCount == 100 ) {
executeSoon(function () {
testGenerator.next();
});
}
};
}
yield undefined;
is(db.objectStoreNames.length, 1 , "Correct objectStoreNames list" );
is(db.objectStoreNames.item(0 ), objectStoreName, "Correct name" );
event.target.transaction.oncomplete = grabEventAndContinueHandler;
event = yield undefined;
// Wait for success.
event = yield undefined;
db.close();
request = indexedDB.open(name, 2 );
request.onerror = errorHandler;
request.onupgradeneeded = grabEventAndContinueHandler;
request.onsuccess = unexpectedSuccessHandler;
event = yield undefined;
request.onupgradeneeded = unexpectedSuccessHandler;
request.onsuccess = grabEventAndContinueHandler;
db = event.target.result;
let trans = event.target.transaction;
let oldObjectStore = trans.objectStore(objectStoreName);
isnot(oldObjectStore, null , "Correct object store prior to deleting" );
db.deleteObjectStore(objectStoreName);
is(db.objectStoreNames.length, 0 , "Correct objectStores list" );
try {
trans.objectStore(objectStoreName);
ok(false , "should have thrown" );
} catch (ex) {
ok(ex instanceof DOMException, "Got a DOMException" );
is(ex.name, "NotFoundError" , "expect a NotFoundError" );
is(ex.code, DOMException.NOT_FOUND_ERR, "expect a NOT_FOUND_ERR" );
}
objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
is(db.objectStoreNames.length, 1 , "Correct objectStoreNames list" );
is(db.objectStoreNames.item(0 ), objectStoreName, "Correct name" );
is(
trans.objectStore(objectStoreName),
objectStore,
"Correct new objectStore"
);
isnot(oldObjectStore, objectStore, "Old objectStore is not new objectStore" );
request = objectStore.openCursor();
request.onerror = errorHandler;
request.onsuccess = function (event) {
is(event.target.result, null , "ObjectStore shouldn't have any items" );
testGenerator.next(event);
};
event = yield undefined;
db.deleteObjectStore(objectStore.name);
is(db.objectStoreNames.length, 0 , "Correct objectStores list" );
continueToNextStep();
yield undefined;
trans.oncomplete = grabEventAndContinueHandler;
event = yield undefined;
// Wait for success.
event = yield undefined;
db.close();
request = indexedDB.open(name, 3 );
request.onerror = errorHandler;
request.onupgradeneeded = grabEventAndContinueHandler;
event = yield undefined;
db = event.target.result;
trans = event.target.transaction;
objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
request = objectStore.add({ foo: "bar" });
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
db.deleteObjectStore(objectStoreName);
event = yield undefined;
trans.oncomplete = grabEventAndContinueHandler;
event = yield undefined;
finishTest();
}
Messung V0.5 in Prozent C=89 H=93 G=90
¤ Dauer der Verarbeitung: 0.23 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland