44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
// META: title=Delete range
|
|
// META: script=resources/support.js
|
|
|
|
"use strict";
|
|
|
|
let entries = [
|
|
{ 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]}
|
|
];
|
|
|
|
for (const entry of entries) {
|
|
indexeddb_test(
|
|
function upgrade_func(t, db) {
|
|
db.createObjectStore("store");
|
|
},
|
|
function open_func(t, db) {
|
|
const store = db.transaction("store", "readwrite").objectStore("store");
|
|
|
|
for (let i = 1; i <= 10; ++i) {
|
|
store.put(i, i);
|
|
}
|
|
store.delete(IDBKeyRange.bound(entry.lower,
|
|
entry.upper,
|
|
entry.lowerOpen,
|
|
entry.upperOpen));
|
|
|
|
let keys = [];
|
|
const cursor_request = store.openCursor();
|
|
cursor_request.onsuccess = t.step_func(function () {
|
|
const cursor = cursor_request.result;
|
|
if (cursor) {
|
|
keys.push(cursor.key);
|
|
cursor.continue();
|
|
} else {
|
|
assert_array_equals(entry.expected, keys, `Expected: ${entry.expected}, got: ${keys}.`);
|
|
t.done();
|
|
}
|
|
});
|
|
cursor_request.onerror = t.unreached_func("Failed to open cursor for read request.");
|
|
}
|
|
)
|
|
}
|