/**
* 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 values = ["a" , "1" , 1 , "foo" , 300 , true , false , 4 .5 , null ];
let request = indexedDB.open(name, 1 );
request.onerror = errorHandler;
request.onupgradeneeded = grabEventAndContinueHandler;
let event = yield undefined;
let db = event.target.result;
let objectStore = db.createObjectStore("foo" , { autoIncrement: true });
request.onsuccess = grabEventAndContinueHandler;
request = objectStore.mozGetAll();
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 0 , "No elements" );
let addedCount = 0 ;
for (let i in values) {
request = objectStore.add(values[i]);
request.onerror = errorHandler;
request.onsuccess = function () {
if (++addedCount == values.length) {
executeSoon(function () {
testGenerator.next();
});
}
};
}
yield undefined;
yield undefined;
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll();
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, values.length, "Same length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(null , 5 );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 5 , "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
let keyRange = IDBKeyRange.bound(1 , 9 );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange);
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, values.length, "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange, 0 );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, values.length, "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange, null );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, values.length, "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
request = db
.transaction("foo" )
.objectStore("foo" )
.mozGetAll(keyRange, undefined);
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, values.length, "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[i], "Same value" );
}
keyRange = IDBKeyRange.bound(4 , 7 );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange);
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 4 , "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[parseInt(i) + 3 ], "Same value" );
}
// Get should take a key range also but it doesn't return an array.
request = db.transaction("foo" ).objectStore("foo" ).get(keyRange);
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, false , "Not an array object" );
is(event.target.result, values[3 ], "Correct value" );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange, 2 );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 2 , "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[parseInt(i) + 3 ], "Same value" );
}
keyRange = IDBKeyRange.bound(4 , 7 );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange, 50 );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 4 , "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[parseInt(i) + 3 ], "Same value" );
}
keyRange = IDBKeyRange.bound(4 , 7 );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange, 0 );
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 4 , "Correct length" );
keyRange = IDBKeyRange.bound(4 , 7 , true , true );
request = db.transaction("foo" ).objectStore("foo" ).mozGetAll(keyRange);
request.onerror = errorHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
is(event.target.result instanceof Array, true , "Got an array object" );
is(event.target.result.length, 2 , "Correct length" );
for (let i in event.target.result) {
is(event.target.result[i], values[parseInt(i) + 4 ], "Same value" );
}
finishTest();
}
Messung V0.5 in Prozent C=85 H=95 G=90
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland