chromium/third_party/blink/web_tests/storage/indexeddb/mozilla/resources/create-index-with-integer-keys.js

// original test:
// http://mxr.mozilla.org/mozilla2.0/source/dom/indexedDB/test/test_create_index_with_integer_keys.html?force=1
// license of original test:
// " Any copyright is dedicated to the Public Domain.
//   http://creativecommons.org/publicdomain/zero/1.0/ "

if (this.importScripts) {
    importScripts('../../../../resources/js-test.js');
    importScripts('../../resources/shared.js');
}

description("Test IndexedDB's creating index with integer keys");

indexedDBTest(prepareDatabase);
function prepareDatabase()
{
    db = event.target.result;
    event.target.transaction.onabort = unexpectedAbortCallback;
    objectStore = evalAndLog("objectStore = db.createObjectStore('foo', { keyPath: 'id' });");
    data = evalAndLog("data = { id: 16, num: 42 };");
    evalAndLog("objectStore.add(data);");
    index = evalAndLog("index = objectStore.createIndex('foo', 'num');");
    result = evalAndLog("result = index.openKeyCursor();");
    result.onsuccess = verifyKeyCursor;
    result.onerror = unexpectedErrorCallback;
}

function verifyKeyCursor()
{
    cursor = evalAndLog("cursor = event.target.result;");
    shouldBeFalse("cursor == null");
    shouldBe("cursor.key", "data.num");
    shouldBe("cursor.primaryKey", "data.id");
    finishJSTest();
}