Skip to content

Commit

Permalink
IndexedDB cursor.request (#15820)
Browse files Browse the repository at this point in the history
* cursor.request

* More detailed test, testing the various different kinds of cursor.

* Using unreached_func
  • Loading branch information
jakearchibald authored and Hexcles committed Mar 19, 2019
1 parent 2bff515 commit e4a3e27
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions IndexedDB/idbcursor-request.any.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// META: script=support.js

function cursorRequestTest({ useIndex, useKeyCursor }) {
indexeddb_test(
(t, db) => {
const objStore = db.createObjectStore("my_objectstore");
objStore.add("data", 1);
objStore.createIndex("my_index", "");
},
(t, db) => {
const tx = db.transaction("my_objectstore");
let source = tx.objectStore("my_objectstore");
if (useIndex) source = source.index('my_index');
const req = useKeyCursor ? source.openKeyCursor() : source.openCursor();
let cursor;

req.onsuccess = t.step_func(() => {
cursor = req.result;
assert_equals(cursor.request, req, 'cursor.request');
assert_readonly(cursor, 'request');
});

req.transaction.oncomplete = t.step_func(() => {
setTimeout(t.step_func(() => {
assert_equals(cursor.request, req, 'cursor.request after transaction complete');
t.done();
}), 0);
});

req.transaction.onerror = t.unreached_func('Transaction error');
},
`cursor.request from ${useIndex ? 'IDBIndex' : 'IDBObjectStore'}.${useKeyCursor ? 'openKeyCursor' : 'openCursor'}`
);
}

for (const useIndex of [false, true]) {
for (const useKeyCursor of [false, true]) {
cursorRequestTest({ useIndex, useKeyCursor });
}
}

0 comments on commit e4a3e27

Please sign in to comment.