76 lines
2.8 KiB
Plaintext
76 lines
2.8 KiB
Plaintext
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
|
|
|