blob: 0166f4c63ffe189cb372fedb0f4f27f8c29df576 [file] [log] [blame]
<!DOCTYPE html>
<!--
original test: http://mxr.mozilla.org/mozilla2.0/source/dom/indexedDB/test/test_autoIncrement_indexes.html?force=1
license of original test:
" Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ "
-->
<html>
<head>
<script src="../../../fast/js/resources/js-test-pre.js"></script>
<script src="../resources/shared.js"></script>
</head>
<body>
<script>
description("Test IndexedDB indexes against autoincrementing keys");
function test()
{
removeVendorPrefixes();
name = self.location.pathname;
description = "My Test Database";
request = evalAndLog("indexedDB.open(name, description)");
request.onsuccess = openSuccess;
request.onerror = unexpectedErrorCallback;
}
function openSuccess()
{
db = evalAndLog("db = event.target.result");
request = evalAndLog("request = db.setVersion('1')");
request.onsuccess = setupObjectStore;
request.onerror = unexpectedErrorCallback;
}
function setupObjectStore()
{
deleteAllObjectStores(db);
objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'id', autoIncrement: true });");
evalAndLog("objectStore.createIndex('first', 'first');");
evalAndLog("objectStore.createIndex('second', 'second');");
evalAndLog("objectStore.createIndex('third', 'third');");
data = evalAndLog("data = { first: 'foo', second: 'foo', third: 'foo' };");
request = evalAndLog("request = objectStore.add(data);");
request.onsuccess = setupIndexes;
request.onerror = unexpectedErrorCallback;
}
function setupIndexes()
{
key = evalAndLog("key = event.target.result;");
shouldBeFalse("key == null");
objectStore = evalAndLog("objectStore = db.transaction('foo').objectStore('foo');");
first = evalAndLog("first = objectStore.index('first');");
request = evalAndLog("request = first.get('foo');");
request.onsuccess = checkFirstIndexAndPrepareSecond;
request.onerror = unexpectedErrorCallback;
}
function checkFirstIndexAndPrepareSecond()
{
shouldBe("event.target.result.id", "key");
second = evalAndLog("second = objectStore.index('second');");
request = evalAndLog("request = second.get('foo');");
request.onsuccess = checkSecondIndexAndPrepareThird;
request.onerror = unexpectedErrorCallback;
}
function checkSecondIndexAndPrepareThird()
{
shouldBe("event.target.result.id", "key");
third = evalAndLog("third = objectStore.index('third');");
request = evalAndLog("request = third.get('foo');");
request.onsuccess = checkThirdIndex;
request.onerror = unexpectedErrorCallback;
}
function checkThirdIndex()
{
shouldBe("event.target.result.id", "key");
finishJSTest();
}
test();
</script>
<script src="../../../fast/js/resources/js-test-post.js"></script>
</body>
</html>