summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/idbfactory_open9.htm')
-rw-r--r--testing/web-platform/tests/IndexedDB/idbfactory_open9.htm71
1 files changed, 71 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm b/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
new file mode 100644
index 000000000..98b1ddeef
--- /dev/null
+++ b/testing/web-platform/tests/IndexedDB/idbfactory_open9.htm
@@ -0,0 +1,71 @@
+<!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>