<!DOCTYPE html>
<meta charset="utf-8">
<title>IDBIndex.getKey() - throw TransactionInactiveError on aborted transaction</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBIndex-getKey-IDBRequest-any-key">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=support.js></script>
<div id="log"></div>
<script>
    var db,
        t = async_test();

    var open_rq = createdb(t);
    open_rq.onupgradeneeded = function(e) {
        db = e.target.result;
        var store = db.createObjectStore("store", { keyPath: "key" });
        var index = store.createIndex("index", "indexedProperty");
        store.add({ key: 1, indexedProperty: "data" });
    }
    open_rq.onsuccess = function(e) {
        db = e.target.result;
        var tx = db.transaction('store');
        var index = tx.objectStore('store').index('index');
        tx.abort();

        assert_throws("TransactionInactiveError", function(){
            index.getKey("data");
        });
        t.done();
    }
</script>
