blob: 3004fa1d8a3f46c651aff95b2ac89d29cbdc9488 [file] [log] [blame]
Upgrade a database, open a second connection at the same version, ensure specifying a lower version causes an error
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)
PASS String(request) is "[object IDBOpenDBRequest]"
Call open with no version parameter:
indexedDB.open(dbname)
initialUpgradeNeeded():
openSuccess():
connection1 = event.target.result
PASS connection1.version is 1
connection1.onversionchange = connection1VersionChangeCallback
request = indexedDB.open(dbname, 2)
connection1VersionChangeCallback():
connection1.close()
connection2UpgradeNeeded():
connection2 = event.target.result
PASS String(connection2) is "[object IDBDatabase]"
PASS String(request.transaction) is "[object IDBTransaction]"
PASS event.oldVersion is 1
PASS event.newVersion is 2
request.transaction.oncomplete = transactionCompleted
transactionCompleted():
didTransactionComplete = true
connection2Success():
PASS didTransactionComplete is true
PASS event.target.result is connection2
The next connection opens the database at the same version so connection2 shouldn't get a versionchange event.
connection2.onversionchange = unexpectedVersionChangeCallback
PASS String(connection2) is "[object IDBDatabase]"
PASS request.transaction is null
PASS connection2.version is 2
request = indexedDB.open(dbname, 2)
request.onsuccess = connection3Success
request.onblocked = unexpectedBlockedCallback
connection3Success():
event.target.result.close()
connection2.close()
connection3 = event.target.result
PASS connection3.version is 2
request = indexedDB.open(dbname, 1)
request.onerror = errorWhenTryingLowVersion
errorWhenTryingLowVersion():
request.error.message = An attempt was made to open a database using a lower version than the existing version.
request = indexedDB.open(dbname, 4)
request.onupgradeneeded = connection4UpgradeNeeded
request.onsuccess = connection4Success
connection4UpgradeNeeded():
gotConnection4UpgradeNeeded = true
PASS event.oldVersion is 2
PASS event.newVersion is 4
connection4Success():
PASS gotConnection4UpgradeNeeded is true
connection4 = event.target.result
PASS connection4.version is 4
connection4.close()
request = indexedDB.open(dbname)
request.onsuccess = connection5Success
connection5Success():
db = event.target.result
PASS db.version is 4
PASS successfullyParsed is true
TEST COMPLETE