IndexedDB: Implement spec updates to IDBTransaction.error
[WebKit-https.git] / LayoutTests / storage / indexeddb / transaction-error-expected.txt
1 CONSOLE MESSAGE: line 92: Uncaught Error: This should *NOT* be caught!
2 Test IDBTransaction.error cases.
3
4 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
5
6
7 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;
8
9 dbname = self.location.pathname
10 indexedDB.deleteDatabase(dbname)
11 indexedDB.open(dbname)
12 db = request.result
13 db.setVersion('1')
14 trans = event.target.result
15 store = db.createObjectStore('storeName')
16 store.add('value', 'key')
17
18 trans = db.transaction('storeName')
19
20 IDBTransaction.error should be null if transaction is not finished:
21 PASS trans.error is null
22
23 If IDBTransaction.abort() is explicitly called, IDBTransaction.error should be null:
24 trans.abort()
25 PASS trans.error is null
26
27 If the transaction is aborted due to a request error that is not prevented, IDBTransaction.error should match:
28 trans = db.transaction('storeName', 'readwrite')
29 request = trans.objectStore('storeName').add('value2', 'key')
30 PASS request.errorCode is IDBDatabaseException.CONSTRAINT_ERR
31 PASS request.error.name is 'ConstraintError'
32 request_error = request.error
33 Transaction received abort event.
34 PASS trans.error is non-null.
35 PASS trans.error is request_error
36
37 If the transaction is aborted due to an exception thrown from event callback, IDBTransaction.error should be AbortError:
38 trans = db.transaction('storeName', 'readwrite')
39 request = trans.objectStore('storeName').add('value2', 'key')
40 PASS request.errorCode is IDBDatabaseException.CONSTRAINT_ERR
41 PASS request.error.name is 'ConstraintError'
42 Throwing exception...
43 Transaction received abort event.
44 PASS trans.error is non-null.
45 PASS trans.error.name is 'AbortError'
46
47 If the transaction is aborted due to an error during commit, IDBTransaction.error should reflect that error:
48 trans = db.transaction('storeName', 'readwrite')
49 request = trans.objectStore('storeName').add({id: 1}, 'record1')
50 request = trans.objectStore('storeName').add({id: 1}, 'record2')
51 request = db.setVersion('2')
52 trans = request.result
53 This should fail due to the unique constraint:
54 trans.objectStore('storeName').createIndex('indexName', 'id', {unique: true})
55 Transaction received abort event.
56 PASS trans.error is non-null.
57 PASS trans.error.name is not 'AbortError'
58
59 PASS successfullyParsed is true
60
61 TEST COMPLETE
62