summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/IndexedDB/keygenerator.htm
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/IndexedDB/keygenerator.htm
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/keygenerator.htm')
-rw-r--r--testing/web-platform/tests/IndexedDB/keygenerator.htm65
1 files changed, 65 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/keygenerator.htm b/testing/web-platform/tests/IndexedDB/keygenerator.htm
new file mode 100644
index 000000000..7e5961382
--- /dev/null
+++ b/testing/web-platform/tests/IndexedDB/keygenerator.htm
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Keygenerator</title>
+<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
+<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#key-generator-concept">
+<link rel=assert title="The current number of a key generator is always set to 1 when the object store for that key generator is first created.">
+<link rel=assert title="When a key generator is used to generate a new key for a object store, the key generator's current number is used as the new key value and then the key generator's current number is increased by 1.">
+<link rel=assert title="When a record is stored in a object store which uses a key generator, and an explicit key is defined, if the key's value is a float greater than or equal to the key generator's current number, then the key generator's current number is set to the smallest integer number larger than the explicit key. Only explicit keys which are float values affect the current number of the key generator.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support.js"></script>
+
+<script>
+ function keygenerator(objects, expected_keys, desc, func) {
+ var db,
+ t = async_test(document.title + " - " + desc);
+
+ var open_rq = createdb(t);
+ open_rq.onupgradeneeded = function(e) {
+ db = e.target.result;
+ var objStore = db.createObjectStore("store", { keyPath: "id", autoIncrement: true });
+
+ for (var i = 0; i < objects.length; i++)
+ {
+ if (objects[i] === null)
+ objStore.add({});
+ else
+ objStore.add({ id: objects[i] });
+ }
+ };
+
+ open_rq.onsuccess = function(e) {
+ var actual_keys = [],
+ rq = db.transaction("store")
+ .objectStore("store")
+ .openCursor();
+
+ rq.onsuccess = t.step_func(function(e) {
+ var cursor = e.target.result;
+
+ if (cursor) {
+ actual_keys.push(cursor.key.valueOf());
+ cursor.continue();
+ }
+ else {
+ assert_key_equals(actual_keys, expected_keys, "keygenerator array");
+ t.done();
+ }
+ });
+ };
+ }
+
+
+ keygenerator([null, null, null, null], [1, 2, 3, 4],
+ "starts at one, and increments by one");
+
+ keygenerator([2, null, 5, null, 6.66, 7], [2, 3, 5, 6, 6.66, 7],
+ "increments by one from last set key");
+
+ keygenerator([-10, null, "6", 6.3, [10], -2, 4, null], [-10, -2, 1, 4, 6.3, 7, "6", [10]],
+ "don't increment when new key is not bigger than current");
+
+</script>
+
+<div id="log"></div>