<!DOCTYPE html>
<title>IDBDatabase.createObjectStore() - object store 'name' and 'keyPath' properties are correctly set </title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="support.js"></script>

<script>

var t = async_test(),
    open_rq = createdb(t)

open_rq.onupgradeneeded = function(e) {
    var db = e.target.result,
        objStore = db.createObjectStore("prop", { keyPath: "mykeypath" })

    assert_equals(objStore.name, "prop", "object store name")
    assert_equals(objStore.keyPath, "mykeypath", "key path")
    assert_equals(objStore.autoIncrement, false, "auto increment")
}

open_rq.onsuccess = function(e) {
    var db = e.target.result
    var objStore = db.transaction('prop').objectStore('prop')

    assert_equals(objStore.name, "prop", "object store name")
    assert_equals(objStore.keyPath, "mykeypath", "key path")
    assert_equals(objStore.autoIncrement, false, "auto increment")
    t.done()
}
</script>

<div id="log"></div>
