<!DOCTYPE html>
<meta charset="utf-8">
<title>IDBObjectStoreParameters</title>
<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support.js"></script>

<script>
    function optionalParameters(desc, params) {
        var t = async_test(document.title + " - " + desc);

        createdb(t).onupgradeneeded = function(e) {
            e.target.result.createObjectStore("store", params);

            this.done();
        };
    }


    optionalParameters("autoInc true",                    {autoIncrement: true});
    optionalParameters("autoInc true, keyPath null",      {autoIncrement: true,  keyPath: null});
    optionalParameters("autoInc true, keyPath undefined", {autoIncrement: true,  keyPath: undefined});
    optionalParameters("autoInc true, keyPath string",    {autoIncrement: true,  keyPath: "a"});

    optionalParameters("autoInc false, keyPath empty",  {autoIncrement: false, keyPath: ""});
    optionalParameters("autoInc false, keyPath array",  {autoIncrement: false, keyPath: ["h", "j"]});
    optionalParameters("autoInc false, keyPath string", {autoIncrement: false, keyPath: "abc"});

    optionalParameters("keyPath empty",     {keyPath: ""});
    optionalParameters("keyPath array",     {keyPath: ["a","b"]});
    optionalParameters("keyPath string",    {keyPath: "abc"});
    optionalParameters("keyPath null",      {keyPath: null});
    optionalParameters("keyPath undefined", {keyPath: undefined});

</script>

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