diff options
author | Florian Dold <florian@dold.me> | 2021-02-16 16:45:15 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-02-16 16:45:15 +0100 |
commit | f9df95ded5ba1d6a6edadd24615c5e175ea5bac8 (patch) | |
tree | a7bab6bcb09f865181e86002a526992f17588035 /packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts | |
parent | b814697fc9e4d55fbdb9b60ff82bef0c0c310494 (diff) | |
download | wallet-core-f9df95ded5ba1d6a6edadd24615c5e175ea5bac8.tar.xz |
more WPTs
Diffstat (limited to 'packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts')
-rw-r--r-- | packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts new file mode 100644 index 000000000..44a647dc8 --- /dev/null +++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts @@ -0,0 +1,76 @@ +import test from "ava"; +import { createdb } from "./wptsupport"; + +test("WPT idbcursor-reused.htm", async (t) => { + await new Promise<void>((resolve, reject) => { + var db: any; + var open_rq = createdb(t); + + open_rq.onupgradeneeded = function (e: any) { + db = e.target.result; + var os = db.createObjectStore("test"); + + os.add("data", "k"); + os.add("data2", "k2"); + }; + + open_rq.onsuccess = function (e) { + var cursor: any; + var count = 0; + var rq = db.transaction("test").objectStore("test").openCursor(); + + rq.onsuccess = function (e: any) { + switch (count) { + case 0: + cursor = e.target.result; + + t.deepEqual(cursor.value, "data", "prequisite cursor.value"); + cursor.custom_cursor_value = 1; + e.target.custom_request_value = 2; + + cursor.continue(); + break; + + case 1: + t.deepEqual(cursor.value, "data2", "prequisite cursor.value"); + t.deepEqual(cursor.custom_cursor_value, 1, "custom cursor value"); + t.deepEqual( + e.target.custom_request_value, + 2, + "custom request value", + ); + + cursor.advance(1); + break; + + case 2: + t.false(!!e.target.result, "got cursor"); + t.deepEqual(cursor.custom_cursor_value, 1, "custom cursor value"); + t.deepEqual( + e.target.custom_request_value, + 2, + "custom request value", + ); + break; + } + count++; + }; + + rq.transaction.oncomplete = function () { + t.deepEqual(count, 3, "cursor callback runs"); + t.deepEqual( + rq.custom_request_value, + 2, + "variable placed on old IDBRequest", + ); + t.deepEqual( + cursor.custom_cursor_value, + 1, + "custom cursor value (transaction.complete)", + ); + resolve(); + }; + }; + }); + t.pass(); +}); |