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

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

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

            this.done();
        };
    }

    invalid_optionalParameters("autoInc and empty keyPath", {autoIncrement: true, keyPath: ""});
    invalid_optionalParameters("autoInc and keyPath array", {autoIncrement: true, keyPath: []}, "SyntaxError");
    invalid_optionalParameters("autoInc and keyPath array 2", {autoIncrement: true, keyPath: ["hey"]});
    invalid_optionalParameters("autoInc and keyPath object", {autoIncrement: true, keyPath: {a:"hey", b:2}}, "SyntaxError");

</script>

<div id=log></div>
