| Test the basics of IndexedDB's IDBDatabase. |
| |
| 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) |
| Test that you can't open a transaction while in a versionchange transaction |
| Expecting exception from db.transaction("doesntExist") |
| PASS Exception was thrown. |
| PASS code is DOMException.INVALID_STATE_ERR |
| PASS ename is 'InvalidStateError' |
| Exception message: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running. |
| PASS db.version is 1 |
| PASS db.name is "database-basics.html" |
| PASS db.objectStoreNames is [] |
| PASS db.objectStoreNames.length is 0 |
| PASS db.objectStoreNames.contains('') is false |
| PASS db.objectStoreNames[0] is undefined. |
| PASS db.objectStoreNames.item(0) is null |
| db.createObjectStore("test123") |
| PASS db.objectStoreNames is ['test123'] |
| PASS db.objectStoreNames.length is 1 |
| PASS db.objectStoreNames.contains('') is false |
| PASS db.objectStoreNames.contains('test456') is false |
| PASS db.objectStoreNames.contains('test123') is true |
| PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments. |
| db.close() |
| request = indexedDB.open(dbname, 2) |
| db = event.target.result |
| PASS db.version is 2 |
| PASS db.name is "database-basics.html" |
| PASS db.objectStoreNames is ['test123'] |
| PASS db.objectStoreNames.length is 1 |
| PASS db.objectStoreNames.contains('') is false |
| PASS db.objectStoreNames.contains('test456') is false |
| PASS db.objectStoreNames.contains('test123') is true |
| PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments. |
| db.createObjectStore("test456") |
| setVersionTrans = event.target.transaction |
| PASS setVersionTrans is non-null. |
| setVersionTrans.abort() |
| PASS db.version is 1 |
| PASS db.objectStoreNames is ['test123'] |
| PASS db.objectStoreNames.length is 1 |
| PASS db.objectStoreNames.contains('') is false |
| PASS db.objectStoreNames.contains('test456') is false |
| PASS db.objectStoreNames.contains('test123') is true |
| PASS db.objectStoreNames.contains() threw exception TypeError: Not enough arguments. |
| db.close() |
| Now that the connection is closed, transaction creation should fail |
| Expecting exception from db.transaction('test123') |
| PASS Exception was thrown. |
| PASS code is DOMException.INVALID_STATE_ERR |
| PASS ename is 'InvalidStateError' |
| Exception message: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing. |
| Call twice, make sure it's harmless |
| db.close() |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |