OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <meta charset=utf-8> |
| 3 <title>Attempt to create new transactions inside a versionchange transaction</ti
tle> |
| 4 <link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> |
| 5 <script src=../../../resources/testharness.js></script> |
| 6 <script src=../../../resources/testharnessreport.js></script> |
| 7 <script src=support.js></script> |
| 8 |
| 9 <script> |
| 10 var db, events = [], |
| 11 open_rq = createdb(async_test()) |
| 12 |
| 13 open_rq.onupgradeneeded = function(e) { |
| 14 db = e.target.result |
| 15 |
| 16 db.createObjectStore("store") |
| 17 .add("versionchange1", 1) |
| 18 .addEventListener("success", log("versionchange_add.success")) |
| 19 |
| 20 assert_throws('InvalidStateError', function() { db.transaction("store")
}) |
| 21 |
| 22 e.target.transaction |
| 23 .objectStore("store") |
| 24 .count(2) |
| 25 .addEventListener("success", log("versionchange_count.success")) |
| 26 |
| 27 assert_throws('InvalidStateError', function() { db.transaction("store",
"readwrite") }) |
| 28 |
| 29 open_rq.transaction |
| 30 .objectStore("store") |
| 31 .add("versionchange2", 2) |
| 32 .addEventListener("success", log("versionchange_add2.success")) |
| 33 |
| 34 open_rq.transaction.oncomplete = function(e) { |
| 35 log("versionchange_txn.complete")(e) |
| 36 |
| 37 db.transaction("store") |
| 38 .objectStore("store") |
| 39 .count() |
| 40 .addEventListener("success", log("complete_count.success")) |
| 41 } |
| 42 } |
| 43 |
| 44 open_rq.onsuccess = function(e) { |
| 45 log("open_rq.success")(e) |
| 46 |
| 47 var txn = db.transaction("store", "readwrite") |
| 48 txn.objectStore("store") |
| 49 .put("woo", 1) |
| 50 .addEventListener("success", log("complete2_get.success")) |
| 51 |
| 52 txn.oncomplete = this.step_func(function(e) { |
| 53 assert_object_equals(events, [ |
| 54 "versionchange_add.success: 1", |
| 55 "versionchange_count.success: 0", |
| 56 "versionchange_add2.success: 2", |
| 57 "versionchange_txn.complete", |
| 58 |
| 59 "open_rq.success: [object IDBDatabase]", |
| 60 |
| 61 "complete_count.success: 2", |
| 62 "complete2_get.success: 1", |
| 63 ], |
| 64 "events") |
| 65 this.done() |
| 66 }) |
| 67 } |
| 68 |
| 69 |
| 70 function log(msg) { |
| 71 return function(e) { |
| 72 if(e && e.target && e.target.error) |
| 73 events.push(msg + ": " + e.target.error.name) |
| 74 else if(e && e.target && e.target.result !== undefined) |
| 75 events.push(msg + ": " + e.target.result) |
| 76 else |
| 77 events.push(msg) |
| 78 }; |
| 79 } |
| 80 </script> |
| 81 |
| 82 <div id=log></div> |
OLD | NEW |