| // 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."); |
| } |
| ) |
| } |