<!DOCTYPE html>
<meta charset="utf-8">
<title>IDBIndex.get() - throw InvalidStateError when the index is deleted</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-get-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" });
        store.deleteIndex("index");

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

