<!DOCTYPE html>
<meta charset="utf-8">
<title>IDBFactory.cmp() - invalid key</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-IDBFactory-cmp-short-any-first-any-second">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src=support.js></script>
<div id=log></div>
<script>
    test( function() {
        assert_throws_js(TypeError, function() {
            indexedDB.cmp();
        });
    }, "IDBFactory.cmp() - no argument");

    test( function() {
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(null, null);
        });
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(1, null);
        });
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(null, 1);
        });
    }, "IDBFactory.cmp() - null");

    test( function() {
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(NaN, NaN);
        });
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(1, NaN);
        });
        assert_throws_dom("DataError", function() {
            indexedDB.cmp(NaN, 1);
        });
    }, "IDBFactory.cmp() - NaN");
</script>

