From 068c4a2c127ebb1aa411cd67e57ef2e280fca2ab Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Wed, 13 Mar 2019 15:49:13 +0000 Subject: [PATCH 1/3] cursor.request --- IndexedDB/idbcursor-request.htm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 IndexedDB/idbcursor-request.htm diff --git a/IndexedDB/idbcursor-request.htm b/IndexedDB/idbcursor-request.htm new file mode 100644 index 00000000000000..fa7d53637bdf62 --- /dev/null +++ b/IndexedDB/idbcursor-request.htm @@ -0,0 +1,27 @@ + +IDBCursor.request + + + + + + From e1f50bbe890f0b741d5d613b7ddf5fb3d9d2952f Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Thu, 14 Mar 2019 08:09:55 +0000 Subject: [PATCH 2/3] More detailed test, testing the various different kinds of cursor. --- IndexedDB/idbcursor-request.any.js | 42 ++++++++++++++++++++++++++++++ IndexedDB/idbcursor-request.htm | 27 ------------------- 2 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 IndexedDB/idbcursor-request.any.js delete mode 100644 IndexedDB/idbcursor-request.htm diff --git a/IndexedDB/idbcursor-request.any.js b/IndexedDB/idbcursor-request.any.js new file mode 100644 index 00000000000000..c2ba567fcb1402 --- /dev/null +++ b/IndexedDB/idbcursor-request.any.js @@ -0,0 +1,42 @@ +// 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.step_func((event) => { + assert_unreached("Transaction got error. " + (event.target.error ? event.target.error.name : "unknown")); + }); + }, + `cursor.request from ${useIndex ? 'IDBIndex' : 'IDBObjectStore'}.${useKeyCursor ? 'openKeyCursor' : 'openCursor'}` + ); +} + +for (const useIndex of [false, true]) { + for (const useKeyCursor of [false, true]) { + cursorRequestTest({ useIndex, useKeyCursor }); + } +} diff --git a/IndexedDB/idbcursor-request.htm b/IndexedDB/idbcursor-request.htm deleted file mode 100644 index fa7d53637bdf62..00000000000000 --- a/IndexedDB/idbcursor-request.htm +++ /dev/null @@ -1,27 +0,0 @@ - -IDBCursor.request - - - - - - From d34851aceafdaedb1c5ec10e7e51c8b86fb59c25 Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Thu, 14 Mar 2019 17:09:42 +0000 Subject: [PATCH 3/3] Using unreached_func --- IndexedDB/idbcursor-request.any.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/IndexedDB/idbcursor-request.any.js b/IndexedDB/idbcursor-request.any.js index c2ba567fcb1402..a62efc0b8eb7a3 100644 --- a/IndexedDB/idbcursor-request.any.js +++ b/IndexedDB/idbcursor-request.any.js @@ -27,9 +27,7 @@ function cursorRequestTest({ useIndex, useKeyCursor }) { }), 0); }); - req.transaction.onerror = t.step_func((event) => { - assert_unreached("Transaction got error. " + (event.target.error ? event.target.error.name : "unknown")); - }); + req.transaction.onerror = t.unreached_func('Transaction error'); }, `cursor.request from ${useIndex ? 'IDBIndex' : 'IDBObjectStore'}.${useKeyCursor ? 'openKeyCursor' : 'openCursor'}` );