summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html')
-rw-r--r--testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html40
1 files changed, 40 insertions, 0 deletions
diff --git a/testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html b/testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html
new file mode 100644
index 0000000000..59adc31a99
--- /dev/null
+++ b/testing/web-platform/tests/IndexedDB/close-in-upgradeneeded.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<!-- Submitted from TestTWF Paris -->
+<title>When db.close is called in upgradeneeded, the db is cleaned up on refresh</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=resources/support.js></script>
+
+<script>
+
+var db
+var open_rq = createdb(async_test())
+var sawTransactionComplete = false
+
+open_rq.onupgradeneeded = function(e) {
+ db = e.target.result
+ assert_equals(db.version, 1)
+
+ db.createObjectStore('os')
+ db.close()
+
+ e.target.transaction.oncomplete = function() { sawTransactionComplete = true }
+}
+
+open_rq.onerror = function(e) {
+ assert_true(sawTransactionComplete, "saw transaction.complete")
+
+ assert_equals(e.target.error.name, 'AbortError')
+ assert_equals(e.result, undefined)
+
+ assert_true(!!db)
+ assert_equals(db.version, 1)
+ assert_equals(db.objectStoreNames.length, 1)
+ assert_throws_dom("InvalidStateError", function() { db.transaction('os', 'readonly', {durability: 'relaxed'}) })
+
+ this.done()
+}
+
+</script>
+
+<div id=log></div>