| Explores the edge cases of what IDBObjectStore objects look like after a version change transaction that changed them aborts. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; |
| |
| indexedDB.deleteDatabase(dbname) |
| indexedDB.open(dbname) |
| connection1 = event.target.result; |
| objectStore1_1 = connection1.createObjectStore('objectStore1'); |
| objectStore1_2 = connection1.createObjectStore('objectStore2'); |
| objectStore1_2.createIndex('index', 'foo'); |
| objectStore1_4 = connection1.createObjectStore('objectStore4'); |
| objectStore1_4.createIndex('index', 'foo'); |
| |
| PASS connection1.version is 1 |
| PASS connection1.objectStoreNames.length is 3 |
| PASS objectStore1_1.indexNames.length is 0 |
| PASS objectStore1_2.indexNames.length is 1 |
| PASS objectStore1_4.indexNames.length is 1 |
| |
| connection1.close(); |
| secondRequest = indexedDB.open(dbname, 2); |
| secondRequest.onupgradeneeded = secondUpgradeNeeded; |
| connection2 = event.target.result; |
| objectStore2_1 = secondRequest.transaction.objectStore('objectStore1'); |
| objectStore2_2 = secondRequest.transaction.objectStore('objectStore2'); |
| objectStore2_3 = connection2.createObjectStore('objectStore3'); |
| objectStore2_4 = secondRequest.transaction.objectStore('objectStore4'); |
| |
| PASS connection2.version is 2 |
| PASS connection2.objectStoreNames.length is 4 |
| PASS objectStore2_1.indexNames.length is 0 |
| PASS objectStore2_2.indexNames.length is 1 |
| PASS objectStore2_3.indexNames.length is 0 |
| PASS objectStore2_4.indexNames.length is 1 |
| |
| objectStore2_1.createIndex('index', 'foo'); |
| objectStore2_2.deleteIndex('index'); |
| objectStore2_3.createIndex('index', 'foo'); |
| objectStore2_4.deleteIndex('index'); |
| connection2.deleteObjectStore('objectStore4'); |
| new_objectStore2_4 = connection2.createObjectStore('objectStore4'); |
| new_objectStore2_4.createIndex('index1', 'foo'); |
| new_objectStore2_4.createIndex('index2', 'bar'); |
| |
| PASS connection2.version is 2 |
| PASS connection2.objectStoreNames.length is 4 |
| PASS objectStore2_1.indexNames.length is 1 |
| PASS objectStore2_2.indexNames.length is 0 |
| PASS objectStore2_3.indexNames.length is 1 |
| PASS new_objectStore2_4.indexNames.length is 2 |
| |
| secondRequest.transaction.abort(); |
| connection2.close() |
| |
| checkState(): |
| PASS connection1.version is 1 |
| PASS connection1.objectStoreNames.length is 3 |
| PASS objectStore1_1.indexNames.length is 0 |
| PASS objectStore1_2.indexNames.length is 1 |
| PASS objectStore1_4.indexNames.length is 1 |
| |
| PASS connection2.version is 1 |
| PASS connection2.objectStoreNames.length is 3 |
| PASS objectStore2_1.indexNames.length is 0 |
| PASS objectStore2_2.indexNames.length is 1 |
| PASS objectStore2_3.indexNames.length is 0 |
| PASS objectStore2_4.indexNames.length is 1 |
| PASS new_objectStore2_4.indexNames.length is 0 |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |