OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>IDBVersionChangeEvent fired in upgradeneeded, versionchange and deleteDat
abase</title> |
| 3 <link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> |
| 4 <link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#
versionchange--transaction-steps"> |
| 5 <link rel=assert title="Fire a versionchange event at each object in openDatabas
es that is open. The event must not be fired on objects which has the closePendi
ng flag set. The event must use the IDBVersionChangeEvent interface and have the
oldVersion property set to db's version and have the newVersion property set to
version."> |
| 6 <link rel=assert title="Fire a upgradeneeded event targeted at request. The even
t must use the IDBVersionChangeEvent interface and have the oldVersion property
set to old version and have the newVersion property set to version."> |
| 7 <script src="../../../resources/testharness.js"></script> |
| 8 <script src="../../../resources/testharnessreport.js"></script> |
| 9 <script src="support.js"></script> |
| 10 |
| 11 <div id="log"></div> |
| 12 |
| 13 <script> |
| 14 |
| 15 var db, |
| 16 t = async_test(document.title, {timeout: 10000}); |
| 17 |
| 18 t.step(function() { |
| 19 var openrq = indexedDB.open('db', 3); |
| 20 |
| 21 openrq.onupgradeneeded = t.step_func(function(e) { |
| 22 assert_equals(e.oldVersion, 0, "old version (upgradeneeded)"); |
| 23 assert_equals(e.newVersion, 3, "new version (upgradeneeded)"); |
| 24 assert_true(e instanceof IDBVersionChangeEvent, "upgradeneeded insta
nceof IDBVersionChangeEvent"); |
| 25 }); |
| 26 |
| 27 openrq.onsuccess = t.step_func(function(e) { |
| 28 db = e.target.result; |
| 29 |
| 30 db.onversionchange = t.step_func(function(e) { |
| 31 assert_equals(e.oldVersion, 3, "old version (versionchange)"); |
| 32 assert_equals(e.newVersion, null, "new version (versionchange)")
; |
| 33 assert_true(e instanceof IDBVersionChangeEvent, "versionchange i
nstanceof IDBVersionChangeEvent"); |
| 34 db.close(); |
| 35 }); |
| 36 |
| 37 // Errors |
| 38 db.onerror = fail(t, "db.error"); |
| 39 db.abort = fail(t, "db.abort"); |
| 40 |
| 41 setTimeout(t.step_func(deleteDB), 10); |
| 42 }); |
| 43 |
| 44 // Errors |
| 45 openrq.onerror = fail(t, "open.error"); |
| 46 openrq.onblocked = fail(t, "open.blocked"); |
| 47 |
| 48 }); |
| 49 |
| 50 function deleteDB (e) { |
| 51 var deleterq = indexedDB.deleteDatabase('db'); |
| 52 |
| 53 deleterq.onsuccess = t.step_func(function(e) { |
| 54 assert_equals(e.oldVersion, 3, "old version (delete.success)"); |
| 55 assert_equals(e.newVersion, null, "new version (delete.success)"); |
| 56 assert_true(e instanceof IDBVersionChangeEvent, "delete.success inst
anceof IDBVersionChangeEvent"); |
| 57 |
| 58 setTimeout(function() { t.done(); }, 10); |
| 59 }); |
| 60 |
| 61 // Errors |
| 62 deleterq.onerror = fail(t, "delete.error"); |
| 63 deleterq.onblocked = fail(t, "delete.blocked"); |
| 64 } |
| 65 |
| 66 </script> |
OLD | NEW |