/**
* Any copyright is dedicated to the Public Domain .
* http : //creativecommons.org/publicdomain/zero/1.0/
*/
/* exported testGenerator */
var testGenerator = testSteps();
function * testSteps() {
const dbName = this .window
? window.location.pathname
: "test_objectStore_getAllKeys" ;
const dbVersion = 1 ;
const objectStoreName = "foo" ;
const keyCount = 200 ;
let request = indexedDB.open(dbName, dbVersion);
request.onerror = errorHandler;
request.onupgradeneeded = grabEventAndContinueHandler;
request.onsuccess = unexpectedSuccessHandler;
let event = yield undefined;
info("Creating database" );
let db = event.target.result;
let objectStore = db.createObjectStore(objectStoreName);
for (let i = 0 ; i < keyCount; i++) {
objectStore.add(true , i);
}
request.onupgradeneeded = unexpectedSuccessHandler;
request.onsuccess = grabEventAndContinueHandler;
event = yield undefined;
db = event.target.result;
objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
info("Getting all keys" );
objectStore.getAllKeys().onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, keyCount, "Got correct array length" );
let match = true ;
for (let i = 0 ; i < keyCount; i++) {
if (event.target.result[i] != i) {
match = false ;
break ;
}
}
ok(match, "Got correct keys" );
info("Getting all keys with key range" );
let keyRange = IDBKeyRange.bound(10 , 20 , false , true );
objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, 10 , "Got correct array length" );
match = true ;
for (let i = 10 ; i < 20 ; i++) {
if (event.target.result[i - 10 ] != i) {
match = false ;
break ;
}
}
ok(match, "Got correct keys" );
info("Getting all keys with unmatched key range" );
keyRange = IDBKeyRange.bound(10000 , 200000 );
objectStore.getAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, 0 , "Got correct array length" );
info("Getting all keys with limit" );
objectStore.getAllKeys(null , 5 ).onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, 5 , "Got correct array length" );
match = true ;
for (let i = 0 ; i < 5 ; i++) {
if (event.target.result[i] != i) {
match = false ;
break ;
}
}
ok(match, "Got correct keys" );
info("Getting all keys with key range and limit" );
keyRange = IDBKeyRange.bound(10 , 20 , false , true );
objectStore.getAllKeys(keyRange, 5 ).onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, 5 , "Got correct array length" );
match = true ;
for (let i = 10 ; i < 15 ; i++) {
if (event.target.result[i - 10 ] != i) {
match = false ;
break ;
}
}
ok(match, "Got correct keys" );
info("Getting all keys with unmatched key range and limit" );
keyRange = IDBKeyRange.bound(10000 , 200000 );
objectStore.getAllKeys(keyRange, 5 ).onsuccess = grabEventAndContinueHandler;
event = yield undefined;
ok(Array.isArray(event.target.result), "Got an array result" );
is(event.target.result.length, 0 , "Got correct array length" );
finishTest();
}
Messung V0.5 in Prozent C=90 H=94 G=91
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland