blob: 8ffe5554cad2b9d957705044f7e6ef656ae3f15c [file] [log] [blame]
<!DOCTYPE html>
<title>IDBFactory.open() - errors in version argument</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=support.js></script>
<script>
function should_throw(val, name) {
if (!name) {
name = ((typeof val == "object" && val) ? "object" : format_value(val))
}
test(function() {
assert_throws(new TypeError(), function() {
window.indexedDB.open('test', val);
});
}, "Calling open() with version argument " + name + " should throw TypeError.")
}
should_throw(-1)
should_throw(-0.5)
should_throw(0)
should_throw(0.5)
should_throw(0.8)
should_throw(0x20000000000000) // Number.MAX_SAFE_INTEGER + 1
should_throw(NaN)
should_throw(Infinity)
should_throw(-Infinity)
should_throw("foo")
should_throw(undefined)
should_throw(null)
should_throw(false)
should_throw({
toString: function() { assert_unreached("toString should not be called for ToPrimitive [Number]"); },
valueOf: function() { return 0; }
})
should_throw({
toString: function() { return 0; },
valueOf: function() { return {}; }
}, 'object (second)')
should_throw({
toString: function() { return {}; },
valueOf: function() { return {}; },
}, 'object (third)')
/* Valid */
function should_work(val) {
var name = format_value(val);
var t = async_test("Calling open() with version argument " + name + " should not throw.")
var rq = createdb(t, val)
rq.onupgradeneeded = function() {
t.done()
}
}
should_work(1.5)
should_work(Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1
</script>
<div id=log></div>