summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm')
-rw-r--r--testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm61
1 files changed, 61 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm b/testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm
new file mode 100644
index 0000000000..d6832c5ede
--- /dev/null
+++ b/testing/web-platform/tests/IndexedDB/idbcursor-primarykey.htm
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<title>IDBCursor.primaryKey</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/support.js"></script>
+
+<script>
+
+ function cursor_primarykey(key)
+ {
+ var db,
+ t = async_test(document.title + " - " + key);
+
+ var open_rq = createdb(t);
+ open_rq.onupgradeneeded = function(e) {
+ db = e.target.result;
+ var objStore = db.createObjectStore("test");
+ objStore.createIndex("index", "");
+
+ objStore.add("data", key);
+ };
+
+ open_rq.onsuccess = t.step_func(function(e) {
+ var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
+ .objectStore("test")
+ .index("index")
+ .openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function(e) {
+ var cursor = e.target.result;
+
+ assert_equals(cursor.value, "data", "prequisite cursor.value");
+ assert_equals(cursor.key, "data", "prequisite cursor.key");
+
+ assert_key_equals(cursor.primaryKey, key, 'primaryKey');
+ assert_readonly(cursor, 'primaryKey');
+
+ if (key instanceof Array) {
+ cursor.primaryKey.push("new");
+ key.push("new");
+
+ assert_key_equals(cursor.primaryKey, key, 'primaryKey after array push');
+
+ // But we can not change key (like readonly, just a bit different)
+ cursor.key = 10;
+ assert_key_equals(cursor.primaryKey, key, 'key after assignment');
+ }
+
+ t.done();
+ });
+ });
+ }
+
+ cursor_primarykey(1);
+ cursor_primarykey("key");
+ cursor_primarykey(["my", "key"]);
+
+</script>
+
+<div id="log"></div>