зеркало из https://github.com/mozilla/gecko-dev.git
72 строки
2.0 KiB
HTML
72 строки
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<title>IDBFactory.open() - errors in version argument</title>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.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(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, expected_version) {
|
|
var name = format_value(val);
|
|
var dbname = 'test-db-does-not-exist';
|
|
async_test(function(t) {
|
|
window.indexedDB.deleteDatabase(dbname);
|
|
var rq = window.indexedDB.open(dbname, val);
|
|
rq.onupgradeneeded = t.step_func(function() {
|
|
var db = rq.result;
|
|
assert_equals(db.version, expected_version, 'version');
|
|
rq.transaction.abort();
|
|
});
|
|
rq.onsuccess = t.unreached_func("open should fail");
|
|
rq.onerror = t.step_func(function() {
|
|
t.done()
|
|
});
|
|
}, "Calling open() with version argument " + name + " should not throw.")
|
|
}
|
|
|
|
should_work(1.5, 1)
|
|
should_work(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1
|
|
should_work(undefined, 1)
|
|
|
|
</script>
|
|
|
|
<div id=log></div>
|