delete-range.any.js (1598B)
1 // META: title=Delete range 2 // META: script=resources/support.js 3 4 "use strict"; 5 6 let entries = [ 7 { lower: 3, upper: 8, lowerOpen: false, upperOpen: false, expected: [1, 2, 9, 10]}, 8 { lower: 3, upper: 8, lowerOpen: true, upperOpen: false, expected: [1, 2, 3, 9, 10]}, 9 { lower: 3, upper: 8, lowerOpen: false, upperOpen: true, expected: [1, 2, 8, 9, 10]}, 10 { lower: 3, upper: 8, lowerOpen: true, upperOpen: true, expected: [1, 2, 3, 8, 9, 10]} 11 ]; 12 13 for (const entry of entries) { 14 indexeddb_test( 15 function upgrade_func(t, db) { 16 db.createObjectStore("store"); 17 }, 18 function open_func(t, db) { 19 const store = db.transaction("store", "readwrite").objectStore("store"); 20 21 for (let i = 1; i <= 10; ++i) { 22 store.put(i, i); 23 } 24 store.delete(IDBKeyRange.bound(entry.lower, 25 entry.upper, 26 entry.lowerOpen, 27 entry.upperOpen)); 28 29 let keys = []; 30 const cursor_request = store.openCursor(); 31 cursor_request.onsuccess = t.step_func(function () { 32 const cursor = cursor_request.result; 33 if (cursor) { 34 keys.push(cursor.key); 35 cursor.continue(); 36 } else { 37 assert_array_equals(entry.expected, keys, `Expected: ${entry.expected}, got: ${keys}.`); 38 t.done(); 39 } 40 }); 41 cursor_request.onerror = t.unreached_func("Failed to open cursor for read request."); 42 } 43 ) 44 }