blob: 723128054d146f4ae171fff685cdba6940525298 [file] [log] [blame]
<html>
<head>
<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
<script src="../../fast/js/resources/js-test-pre.js"></script>
<script src="../../fast/js/resources/js-test-post-function.js"></script>
<script src="resources/shared.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("Test IndexedDB's openCursor.");
if (window.layoutTestController)
layoutTestController.waitUntilDone();
function emptyCursorSuccess()
{
debug("Empty cursor opened successfully.")
// FIXME: check that we can iterate the cursor.
done();
}
function openEmptyCursor()
{
debug("Opening an empty cursor.");
keyRange = webkitIDBKeyRange.lowerBound("InexistentKey");
request = evalAndLog("objectStore.openCursor(keyRange)");
request.onsuccess = emptyCursorSuccess;
request.onerror = unexpectedErrorCallback;
}
function cursorSuccess()
{
debug("Cursor opened successfully.")
// FIXME: check that we can iterate the cursor.
shouldBe("event.target.result.direction", "0");
shouldBe("event.target.result.key", "'myKey'");
shouldBe("event.target.result.value", "'myValue'");
debug("");
try {
debug("Passing an invalid key into .continue().");
event.target.result.continue([]);
testFailed("No exception thrown");
} catch (e) {
testPassed("Caught exception: " + e.toString());
}
debug("");
openEmptyCursor();
}
function openCursor()
{
debug("Opening cursor");
keyRange = webkitIDBKeyRange.lowerBound("myKey");
request = evalAndLog("event.target.source.openCursor(keyRange)");
request.onsuccess = cursorSuccess;
request.onerror = unexpectedErrorCallback;
}
function setVersionSuccess()
{
debug("setVersionSuccess():");
window.trans = evalAndLog("trans = event.target.result");
shouldBeTrue("trans !== null");
trans.onabort = unexpectedAbortCallback;
deleteAllObjectStores(db);
var objectStore = evalAndLog("objectStore = db.createObjectStore('test')");
request = evalAndLog("objectStore.add('myValue', 'myKey')");
request.onsuccess = openCursor;
request.onerror = unexpectedErrorCallback;
}
function openSuccess()
{
var db = evalAndLog("db = event.target.result");
request = evalAndLog("db.setVersion('new version')");
request.onsuccess = setVersionSuccess;
request.onerror = unexpectedErrorCallback;
}
function test()
{
request = evalAndLog("webkitIndexedDB.open('open-cursor')");
request.onsuccess = openSuccess;
request.onerror = unexpectedErrorCallback;
}
test();
var successfullyParsed = true;
</script>
</body>
</html>