chromium/third_party/blink/web_tests/storage/indexeddb/lazy-index-population-expected.txt

Verify edge cases that lazy index population in an IndexedDB implementation might reveal.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

dbname = "lazy-index-population.html"
indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
Deleted all object stores.
store = connection.createObjectStore('store')
store.createIndex('index1', 'name', {unique: true})
Verify that uniqueness constraints are enforced with a pre-existing index:
trans = connection.transaction('store', 'readwrite', {durability: 'relaxed'})
store = trans.objectStore('store')
request1 = store.put({name: 'bob'}, 1)
request2 = store.put({name: 'bob'}, 2)
state = 0
request1 received success event
PASS ++state is 1
request2 received error event
PASS ++state is 2
transaction aborted
PASS ++state is 3
PASS trans.error.name is 'ConstraintError'


Verify that uniqueness constraints are enforced when index is created before puts:
connection.close()
indexedDB.open(dbname, 2)
deleteAllObjectStores(connection)
Deleted all object stores.
store = connection.createObjectStore('store')
store.createIndex('index2', 'name', {unique: true})
request1 = store.put({name: 'carol'}, 1)
request2 = store.put({name: 'carol'}, 2)
state = 0
request1 (index2) received success event
PASS ++state is 1
request2 (index2) received error event
PASS ++state is 2
transaction aborted
PASS ++state is 3
PASS trans.error.name is 'ConstraintError'


Verify that uniqueness constraints are enforced when index is created after puts:
indexedDB.open(dbname, 3)
deleteAllObjectStores(connection)
Deleted all object stores.
store = connection.createObjectStore('store')
request1 = store.put({name: 'ted'}, 1)
request2 = store.put({name: 'ted'}, 2)
store.createIndex('index3', 'name', {unique: true})
state = 0
request1 received success event
PASS ++state is 1
request2 received success event
PASS ++state is 2
transaction aborted
PASS ++state is 3
PASS trans.error.name is 'ConstraintError'


Verify that uniqueness constraints are enforced when index is created between puts:
indexedDB.open(dbname, 4)
deleteAllObjectStores(connection)
Deleted all object stores.
store = connection.createObjectStore('store')
request1 = store.put({name: 'alice'}, 1)
store.createIndex('index4', 'name', {unique: true})
request2 = store.put({name: 'alice'}, 2)
state = 0
request1 received success event
PASS ++state is 1
request2 received error event
PASS ++state is 2
transaction aborted
PASS ++state is 3
PASS trans.error.name is 'ConstraintError'
PASS successfullyParsed is true

TEST COMPLETE