aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-02-18 11:15:25 +0100
committerFlorian Dold <florian@dold.me>2021-02-18 11:15:25 +0100
commitfe1b9efae56b093bf9cb7c27bce7252623a04a20 (patch)
treebafc1f3aaa45e1bcb26d7aadfdf13701b2a7433c /packages
parent4b4640dbcb2ddc9703a21dd6702a4e264a7331a1 (diff)
more WPTs
Diffstat (limited to 'packages')
-rw-r--r--packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts57
-rw-r--r--packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts46
2 files changed, 103 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts
new file mode 100644
index 000000000..a7be31f28
--- /dev/null
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts
@@ -0,0 +1,57 @@
+import test from "ava";
+import { BridgeIDBCursor } from "..";
+import { createdb } from "./wptsupport";
+
+test("WPT test idbcursor_advance_index.htm", async (t) => {
+ await new Promise<void>((resolve, reject) => {
+ let db: any;
+ let count = 0;
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" },
+ { pKey: "primaryKey_2", iKey: "indexKey_2" },
+ { pKey: "primaryKey_3", iKey: "indexKey_3" },
+ ];
+
+ var open_rq = createdb(t);
+ open_rq.onupgradeneeded = function (e: any) {
+ db = e.target.result;
+ var store = db.createObjectStore("test", { keyPath: "pKey" });
+ store.createIndex("idx", "iKey");
+
+ for (var i = 0; i < records.length; i++) {
+ store.add(records[i]);
+ }
+ };
+
+ open_rq.onsuccess = function (e) {
+ var cursor_rq = db
+ .transaction("test")
+ .objectStore("test")
+ .index("idx")
+ .openCursor();
+
+ cursor_rq.onsuccess = function (e: any) {
+ var cursor = e.target.result;
+ t.log(cursor);
+ t.true(cursor instanceof BridgeIDBCursor);
+
+ switch (count) {
+ case 0:
+ count += 3;
+ cursor.advance(3);
+ break;
+ case 3:
+ var record = cursor.value;
+ t.deepEqual(record.pKey, records[count].pKey, "record.pKey");
+ t.deepEqual(record.iKey, records[count].iKey, "record.iKey");
+ resolve();
+ break;
+ default:
+ t.fail("unexpected count");
+ break;
+ }
+ }
+ };
+ });
+});
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts
new file mode 100644
index 000000000..040fb75fd
--- /dev/null
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts
@@ -0,0 +1,46 @@
+import test from "ava";
+import { BridgeIDBCursor } from "..";
+import { createdb } from "./wptsupport";
+
+test("WPT test idbcursor_continue_index.htm", async (t) => {
+ await new Promise<void>((resolve, reject) => {
+ var db: any;
+ let count = 0;
+ const records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" },
+ { pKey: "primaryKey_1-2", iKey: "indexKey_1" } ];
+
+ var open_rq = createdb(t);
+ open_rq.onupgradeneeded = function(e: any) {
+ db = e.target.result;
+ var objStore = db.createObjectStore("test", { keyPath:"pKey" });
+
+ objStore.createIndex("index", "iKey");
+
+ for (var i = 0; i < records.length; i++)
+ objStore.add(records[i]);
+ };
+
+ open_rq.onsuccess = function(e) {
+ var cursor_rq = db.transaction("test")
+ .objectStore("test")
+ .index("index")
+ .openCursor();
+
+ cursor_rq.onsuccess = function(e: any) {
+ var cursor = e.target.result;
+ if (!cursor) {
+ t.deepEqual(count, records.length, "cursor run count");
+ resolve();
+ }
+
+ var record = cursor.value;
+ t.deepEqual(record.pKey, records[count].pKey, "primary key");
+ t.deepEqual(record.iKey, records[count].iKey, "index key");
+
+ cursor.continue();
+ count++;
+ };
+ };
+ });
+});