diff options
Diffstat (limited to 'LayoutTests/storage/indexeddb/keyrange.html')
-rw-r--r-- | LayoutTests/storage/indexeddb/keyrange.html | 113 |
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> |