blob: 91525778306508dfefaf953b93e2edff21944851 [file] [log] [blame]
if (this.importScripts) {
importScripts('../../../resources/js-test.js');
importScripts('shared.js');
}
description("Test IndexedDB's IDBObjectStore.delete(IDBKeyRange) method.");
indexedDBTest(prepareDatabase, runTests);
function prepareDatabase()
{
db = event.target.result;
evalAndLog("db.createObjectStore('store')");
}
function checkKeys(expected, callback)
{
debug("getting keys from store...");
debug("expect: " + JSON.stringify(expected));
var keys = [];
request = store.openCursor();
request.onerror = unexpectedErrorCallback;
request.onsuccess = function () {
cursor = request.result;
if (cursor) {
keys.push(cursor.key);
cursor.continue();
} else {
debug("actual: " + JSON.stringify(keys));
if (JSON.stringify(expected) === JSON.stringify(keys)) {
testPassed("Match!");
} else {
testFailed("Don't match!");
}
}
};
}
var tests = [
{ lower: 3, upper: 8, lowerOpen: false, upperOpen: false, expected: [1, 2, 9, 10]},
{ lower: 3, upper: 8, lowerOpen: true, upperOpen: false, expected: [1, 2, 3, 9, 10]},
{ lower: 3, upper: 8, lowerOpen: false, upperOpen: true, expected: [1, 2, 8, 9, 10]},
{ lower: 3, upper: 8, lowerOpen: true, upperOpen: true, expected: [1, 2, 3, 8, 9, 10]}
];
function runTests()
{
function nextTest() {
var test = tests.shift();
if (test) {
debug("");
evalAndLog("trans = db.transaction('store', 'readwrite')");
evalAndLog("store = trans.objectStore('store')");
for (i = 1; i <= 10; ++i) {
evalAndLog("store.put(" + i + "," + i + ")");
}
evalAndLog("store.delete(IDBKeyRange.bound(" +
test.lower + ", " +
test.upper + ", " +
test.lowerOpen + ", " +
test.upperOpen + "))");
checkKeys(test.expected, nextTest);
trans.onabort = unexpectedAbortCallback;
trans.oncomplete = nextTest;
} else {
finishJSTest();
return;
}
}
nextTest();
}