abort-in-initial-upgradeneeded.any.js (1027B)
1 // META: title=IndexedDB 2 // META: global=window,worker 3 // META: script=resources/support.js 4 5 'use strict'; 6 7 async_test(t => { 8 let db; 9 let open_rq = createdb(t, undefined, 2); 10 11 open_rq.onupgradeneeded = function(e) { 12 db = e.target.result; 13 assert_equals(db.version, 2); 14 let transaction = e.target.transaction; 15 transaction.oncomplete = fail(t, 'unexpected transaction.complete'); 16 transaction.onabort = function(e) { 17 assert_equals(e.target.db.version, 0); 18 }; 19 db.onabort = function() {}; 20 21 transaction.abort(); 22 }; 23 24 open_rq.onerror = function(e) { 25 assert_equals(open_rq, e.target); 26 assert_equals(e.target.result, undefined); 27 assert_equals(e.target.error.name, 'AbortError'); 28 assert_equals(db.version, 0); 29 assert_equals(open_rq.transaction, null); 30 31 indexedDB.databases().then(dbs => { 32 // The database should be deleted. 33 assert_equals(dbs.length, 0); 34 t.done(); 35 }); 36 }; 37 }, 'An abort() in the initial onupgradeneeded sets version back to 0');