summaryrefslogtreecommitdiffstats
path: root/LayoutTests/storage/indexeddb/keyrange.html
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/storage/indexeddb/keyrange.html')
-rw-r--r--LayoutTests/storage/indexeddb/keyrange.html113
1 files changed, 112 insertions, 1 deletions
diff --git a/LayoutTests/storage/indexeddb/keyrange.html b/LayoutTests/storage/indexeddb/keyrange.html
index d4ef58e..d60cb15 100644
--- a/LayoutTests/storage/indexeddb/keyrange.html
+++ b/LayoutTests/storage/indexeddb/keyrange.html
@@ -8,6 +8,117 @@
<body>
<p id="description"></p>
<div id="console"></div>
-<script src="script-tests/keyrange.js"></script>
+<script>
+
+description("Test IndexedDB's KeyRange.");
+if (window.layoutTestController)
+ layoutTestController.waitUntilDone();
+
+function checkSingleKeyRange(value)
+{
+ keyRange = evalAndLog("IDBKeyRange.only(" + value + ")");
+ shouldBe("keyRange.left", "" + value);
+ shouldBe("keyRange.right", "" + value);
+ shouldBe("keyRange.flags", "keyRange.SINGLE");
+}
+
+function checkLeftBoundKeyRange(value, open)
+{
+ keyRange = evalAndLog("IDBKeyRange.leftBound(" + value + "," + open + ")");
+ shouldBe("keyRange.left", "" + value);
+ shouldBeNull("keyRange.right");
+ shouldBe("keyRange.flags", open ? "keyRange.LEFT_OPEN | keyRange.LEFT_BOUND" : "keyRange.LEFT_BOUND");
+}
+
+function checkRightBoundKeyRange(value, open)
+{
+ keyRange = evalAndLog("IDBKeyRange.rightBound(" + value + "," + open + ")");
+ shouldBe("keyRange.right", "" + value);
+ shouldBeNull("keyRange.left");
+ shouldBe("keyRange.flags", open ? "keyRange.RIGHT_OPEN | keyRange.RIGHT_BOUND" : "keyRange.RIGHT_BOUND");
+}
+
+function checkBoundKeyRange(left, right, openLeft, openRight)
+{
+ keyRange = evalAndLog("IDBKeyRange.bound(" + left + "," + right + "," + openLeft + "," + openRight + ")");
+ shouldBe("keyRange.left", "" + left);
+ shouldBe("keyRange.right", "" + right);
+ leftFlags = keyRange.flags & (keyRange.LEFT_OPEN | keyRange.LEFT_BOUND);
+ shouldBe("leftFlags", openLeft ? "keyRange.LEFT_OPEN | keyRange.LEFT_BOUND" : "keyRange.LEFT_BOUND");
+ rightFlags = keyRange.flags & (keyRange.RIGHT_OPEN | keyRange.RIGHT_BOUND);
+ shouldBe("rightFlags", openRight ? "keyRange.RIGHT_OPEN | keyRange.RIGHT_BOUND" : "keyRange.RIGHT_BOUND");
+}
+
+function test()
+{
+ shouldBeTrue("'SINGLE' in IDBKeyRange");
+ shouldBeTrue("'LEFT_OPEN' in IDBKeyRange");
+ shouldBeTrue("'RIGHT_OPEN' in IDBKeyRange");
+ shouldBeTrue("'LEFT_BOUND' in IDBKeyRange");
+ shouldBeTrue("'RIGHT_BOUND' in IDBKeyRange");
+ shouldBeFalse("'left' in IDBKeyRange");
+ shouldBeFalse("'right' in IDBKeyRange");
+ shouldBeFalse("'flags' in IDBKeyRange");
+ shouldBeTrue("'only' in IDBKeyRange");
+ shouldBeTrue("'leftBound' in IDBKeyRange");
+ shouldBeTrue("'rightBound' in IDBKeyRange");
+ shouldBeTrue("'bound' in IDBKeyRange");
+
+ debug("");
+
+ var instance = evalAndLog("instance = IDBKeyRange.only(1)");
+ shouldBeTrue("'SINGLE' in instance");
+ shouldBeTrue("'LEFT_OPEN' in instance");
+ shouldBeTrue("'RIGHT_OPEN' in instance");
+ shouldBeTrue("'LEFT_BOUND' in instance");
+ shouldBeTrue("'RIGHT_BOUND' in instance");
+ shouldBeTrue("'left' in instance");
+ shouldBeTrue("'right' in instance");
+ shouldBeTrue("'flags' in instance");
+ shouldBeFalse("'only' in instance");
+ shouldBeFalse("'leftBound' in instance");
+ shouldBeFalse("'rightBound' in instance");
+ shouldBeFalse("'bound' in instance");
+
+ debug("");
+
+ checkSingleKeyRange(1);
+ checkSingleKeyRange("'a'");
+
+ checkLeftBoundKeyRange(10, true);
+ checkLeftBoundKeyRange(11, false);
+ checkLeftBoundKeyRange(12);
+ checkLeftBoundKeyRange("'aa'", true);
+ checkLeftBoundKeyRange("'ab'", false);
+ checkLeftBoundKeyRange("'ac'");
+
+ checkRightBoundKeyRange(20, true);
+ checkRightBoundKeyRange(21, false);
+ checkRightBoundKeyRange(22);
+ checkRightBoundKeyRange("'ba'", true);
+ checkRightBoundKeyRange("'bb'", false);
+ checkRightBoundKeyRange("'bc'");
+
+ checkBoundKeyRange(30, 40);
+ checkBoundKeyRange(31, 41, false, false);
+ checkBoundKeyRange(32, 42, false, true);
+ checkBoundKeyRange(33, 43, true, false);
+ checkBoundKeyRange(34, 44, true, true);
+
+ checkBoundKeyRange("'aaa'", "'aba'", false, false);
+ checkBoundKeyRange("'aab'", "'abb'");
+ checkBoundKeyRange("'aac'", "'abc'", false, false);
+ checkBoundKeyRange("'aad'", "'abd'", false, true);
+ checkBoundKeyRange("'aae'", "'abe'", true, false);
+ checkBoundKeyRange("'aaf'", "'abf'", true, true);
+
+}
+
+test();
+
+var successfullyParsed = true;
+done();
+
+</script>
</body>
</html>