Diff
Modified: trunk/LayoutTests/ChangeLog (194594 => 194595)
--- trunk/LayoutTests/ChangeLog 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/ChangeLog 2016-01-05 19:57:07 UTC (rev 194595)
@@ -1,5 +1,22 @@
2016-01-05 Brady Eidson <beid...@apple.com>
+ Modern IDB: Error message updates for two failing tests.
+ https://bugs.webkit.org/show_bug.cgi?id=152735
+
+ Reviewed by Alex Christensen.
+
+ - Update results to accommodate new error messages.
+ - openKeyCursor on IDBObjectStore has been removed, so remove that from the results.
+ - "undefined" and "null" are invalid keys, so update the keypath-basics test to reflect this.
+
+ * platform/mac-wk1/TestExpectations:
+ * storage/indexeddb/deleted-objects-expected.txt:
+ * storage/indexeddb/keypath-basics-expected.txt:
+ * storage/indexeddb/resources/keypath-basics.js:
+ * storage/indexeddb/transaction-basics-expected.txt:
+
+2016-01-05 Brady Eidson <beid...@apple.com>
+
IndexedDB TestExpectations gardening.
Reviewed by Alex Christensen.
Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (194594 => 194595)
--- trunk/LayoutTests/platform/mac-wk1/TestExpectations 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations 2016-01-05 19:57:07 UTC (rev 194595)
@@ -85,10 +85,6 @@
storage/indexeddb/intversion-long-queue.html [ Skip ]
storage/indexeddb/transaction-starvation.html [ Skip ]
-# IDB tests with text failures related to error message differences
-storage/indexeddb/deleted-objects.html [ Failure ]
-storage/indexeddb/keypath-basics.html [ Failure ]
-
# IDB tests with other text failures
fast/history/page-cache-indexed-closed-db.html [ Failure ]
storage/indexeddb/intversion-gated-on-delete.html [ Failure ]
Modified: trunk/LayoutTests/storage/indexeddb/deleted-objects-expected.txt (194594 => 194595)
--- trunk/LayoutTests/storage/indexeddb/deleted-objects-expected.txt 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/storage/indexeddb/deleted-objects-expected.txt 2016-01-05 19:57:07 UTC (rev 194595)
@@ -17,12 +17,12 @@
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'put' on 'IDBObjectStore': The object store has been deleted.
+Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
Expecting exception from deletedStore.add(0, 0)
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'add' on 'IDBObjectStore': The object store has been deleted.
+Exception message: Failed to store record in an IDBObjectStore: The object store has been deleted.
Expecting exception from deletedStore.delete(0)
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
@@ -73,31 +73,6 @@
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.
-Expecting exception from deletedStore.openKeyCursor()
-PASS Exception was thrown.
-PASS code is DOMException.INVALID_STATE_ERR
-PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The object store has been deleted.
-Expecting exception from deletedStore.openKeyCursor(0)
-PASS Exception was thrown.
-PASS code is DOMException.INVALID_STATE_ERR
-PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The object store has been deleted.
-Expecting exception from deletedStore.openKeyCursor(0, 'next')
-PASS Exception was thrown.
-PASS code is DOMException.INVALID_STATE_ERR
-PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The object store has been deleted.
-Expecting exception from deletedStore.openKeyCursor(IDBKeyRange.only(0))
-PASS Exception was thrown.
-PASS code is DOMException.INVALID_STATE_ERR
-PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The object store has been deleted.
-Expecting exception from deletedStore.openKeyCursor(IDBKeyRange.only(0), 'next')
-PASS Exception was thrown.
-PASS code is DOMException.INVALID_STATE_ERR
-PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBObjectStore': The object store has been deleted.
Expecting exception from deletedStore.createIndex('name', 'path')
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
Modified: trunk/LayoutTests/storage/indexeddb/keypath-basics-expected.txt (194594 => 194595)
--- trunk/LayoutTests/storage/indexeddb/keypath-basics-expected.txt 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/storage/indexeddb/keypath-basics-expected.txt 2016-01-05 19:57:07 UTC (rev 194595)
@@ -11,16 +11,6 @@
store = db.createObjectStore('name')
PASS store.keyPath is null
Deleted all object stores.
-store = db.createObjectStore('name', {keyPath: null})
-PASS store.keyPath is null
-index = store.createIndex('name', null)
-PASS index.keyPath is 'null'
-Deleted all object stores.
-store = db.createObjectStore('name', {keyPath: undefined})
-PASS store.keyPath is null
-index = store.createIndex('name', undefined)
-PASS index.keyPath is 'undefined'
-Deleted all object stores.
store = db.createObjectStore('name', {keyPath: ''})
PASS store.keyPath is ''
index = store.createIndex('name', '')
@@ -154,514 +144,524 @@
Expecting exception from store = db.createObjectStore('storeName', {autoIncrement: true, keyPath: ''})
PASS Exception was thrown.
PASS code is DOMException.INVALID_ACCESS_ERR
-Exception message: InvalidAccessError: DOM IDBDatabase Exception 15
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
Deleted all object stores.
Expecting exception from store = db.createObjectStore('storeName', {autoIncrement: true, keyPath: ['a']})
PASS Exception was thrown.
PASS code is DOMException.INVALID_ACCESS_ERR
-Exception message: InvalidAccessError: DOM IDBDatabase Exception 15
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
Deleted all object stores.
Expecting exception from store = db.createObjectStore('storeName', {autoIncrement: true, keyPath: ['']})
PASS Exception was thrown.
PASS code is DOMException.INVALID_ACCESS_ERR
-Exception message: InvalidAccessError: DOM IDBDatabase Exception 15
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The autoIncrement option was set but the keyPath option was empty or an array.
Deleted all object stores.
Key paths which are never valid:
+Expecting exception from db.createObjectStore('name').createIndex('name', null)
+PASS Exception was thrown.
+PASS code is DOMException.SYNTAX_ERR
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
+Deleted all object stores.
+Expecting exception from db.createObjectStore('name').createIndex('name', undefined)
+PASS Exception was thrown.
+PASS code is DOMException.SYNTAX_ERR
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
+Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: ' '})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', ' ')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo '})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo ')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo bar'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo bar')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo. bar'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo. bar')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo .bar'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo .bar')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo..bar'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo..bar')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '+foo'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '+foo')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: 'foo%'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', 'foo%')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '1'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '1')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '1.0'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '1.0')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: []})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', [])
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0300'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0300')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0903'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0903')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0300'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0300')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u203F'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u203F')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u200C'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u200C')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u200D'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u200D')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u002D'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u002D')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0028'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0028')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0029'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0029')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00AB'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00AB')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00BB'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00BB')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0021'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0021')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u002B'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u002B')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00A2'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00A2')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u005E'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u005E')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00A6'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00A6')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00A0'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00A0')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u2028'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u2028')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u2029'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u2029')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u0000'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u0000')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\u00AD'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\u00AD')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\uD800'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\uD800')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\uE000'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\uE000')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\uFFFE'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\uFFFE')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '\uFFFF'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '\uFFFF')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u002D'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u002D')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u0028'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u0028')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u0029'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u0029')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00AB'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00AB')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00BB'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00BB')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u0021'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u0021')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u002B'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u002B')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00A2'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00A2')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u005E'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u005E')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00A6'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00A6')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00A0'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00A0')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u2028'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u2028')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u2029'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u2029')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u0000'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u0000')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\u00AD'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\u00AD')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\uD800'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\uD800')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\uE000'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\uE000')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\uFFFE'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\uFFFE')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
Expecting exception from db.createObjectStore('name', {keyPath: '_\uFFFF'})
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createObjectStore' on 'IDBDatabase': The keyPath option is not a valid key path.
Expecting exception from db.createObjectStore('name').createIndex('name', '_\uFFFF')
PASS Exception was thrown.
PASS code is DOMException.SYNTAX_ERR
-Exception message: SyntaxError: DOM IDBDatabase Exception 12
+Exception message: Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.
Deleted all object stores.
PASS successfullyParsed is true
Modified: trunk/LayoutTests/storage/indexeddb/resources/keypath-basics.js (194594 => 194595)
--- trunk/LayoutTests/storage/indexeddb/resources/keypath-basics.js 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/storage/indexeddb/resources/keypath-basics.js 2016-01-05 19:57:07 UTC (rev 194595)
@@ -15,8 +15,6 @@
deleteAllObjectStores(db);
testKeyPaths = [
- { keyPath: "null", storeExpected: "null", indexExpected: "'null'" },
- { keyPath: "undefined", storeExpected: "null", indexExpected: "'undefined'" },
{ keyPath: "''" },
{ keyPath: "'foo'" },
{ keyPath: "'foo.bar.baz'" },
@@ -78,6 +76,12 @@
debug("");
debug("Key paths which are never valid:");
+
+ evalAndExpectException("db.createObjectStore('name').createIndex('name', null)", "DOMException.SYNTAX_ERR");
+ deleteAllObjectStores(db);
+ evalAndExpectException("db.createObjectStore('name').createIndex('name', undefined)", "DOMException.SYNTAX_ERR");
+ deleteAllObjectStores(db);
+
testKeyPaths = [
"' '",
"'foo '",
@@ -141,6 +145,7 @@
"'_\\uFFFE'", // Special
"'_\\uFFFF'" // Special
];
+
testKeyPaths.forEach(function (keyPath) {
evalAndExpectException("db.createObjectStore('name', {keyPath: " + keyPath + "})", "DOMException.SYNTAX_ERR");
evalAndExpectException("db.createObjectStore('name').createIndex('name', " + keyPath + ")", "DOMException.SYNTAX_ERR");
Modified: trunk/LayoutTests/storage/indexeddb/transaction-basics-expected.txt (194594 => 194595)
--- trunk/LayoutTests/storage/indexeddb/transaction-basics-expected.txt 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/LayoutTests/storage/indexeddb/transaction-basics-expected.txt 2016-01-05 19:57:07 UTC (rev 194595)
@@ -23,7 +23,7 @@
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
-Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
+Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
testSetVersionAbort2():
PASS self.db.objectStoreNames is []
@@ -41,7 +41,7 @@
PASS Exception was thrown.
PASS code is DOMException.INVALID_STATE_ERR
PASS ename is 'InvalidStateError'
-Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
+Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
store = db.createObjectStore('storeFail', null)
index = store.createIndex('indexFail', 'x')
Modified: trunk/Source/WebCore/ChangeLog (194594 => 194595)
--- trunk/Source/WebCore/ChangeLog 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/Source/WebCore/ChangeLog 2016-01-05 19:57:07 UTC (rev 194595)
@@ -1,3 +1,41 @@
+2016-01-05 Brady Eidson <beid...@apple.com>
+
+ Modern IDB: Error message updates for two failing tests.
+ https://bugs.webkit.org/show_bug.cgi?id=152735
+
+ Reviewed by Alex Christensen.
+
+ No new tests (Covered by existing tests).
+
+ Add error messages for various operations on deleted objects.
+
+ * Modules/indexeddb/client/IDBCursorImpl.cpp:
+ (WebCore::IDBClient::IDBCursor::update):
+ (WebCore::IDBClient::IDBCursor::advance):
+ (WebCore::IDBClient::IDBCursor::continueFunction):
+ (WebCore::IDBClient::IDBCursor::deleteFunction):
+
+ * Modules/indexeddb/client/IDBIndexImpl.cpp:
+ (WebCore::IDBClient::IDBIndex::openCursor):
+ (WebCore::IDBClient::IDBIndex::doCount):
+ (WebCore::IDBClient::IDBIndex::openKeyCursor):
+ (WebCore::IDBClient::IDBIndex::doGet):
+ (WebCore::IDBClient::IDBIndex::doGetKey):
+
+ * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
+ (WebCore::IDBClient::IDBObjectStore::openCursor):
+ (WebCore::IDBClient::IDBObjectStore::get):
+ (WebCore::IDBClient::IDBObjectStore::putOrAdd):
+ (WebCore::IDBClient::IDBObjectStore::deleteFunction):
+ (WebCore::IDBClient::IDBObjectStore::clear):
+ (WebCore::IDBClient::IDBObjectStore::createIndex):
+ (WebCore::IDBClient::IDBObjectStore::index):
+ (WebCore::IDBClient::IDBObjectStore::deleteIndex):
+ (WebCore::IDBClient::IDBObjectStore::doCount):
+
+ * bindings/js/JSIDBObjectStoreCustom.cpp:
+ (WebCore::JSIDBObjectStore::createIndex):
+
2016-01-05 Eric Carlson <eric.carl...@apple.com>
Avoid NULL deference in Page::updateIsPlayingMedia
Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp (194594 => 194595)
--- trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBCursorImpl.cpp 2016-01-05 19:57:07 UTC (rev 194595)
@@ -116,6 +116,7 @@
if (sourcesDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'update' on 'IDBCursor': The cursor's source or effective object store has been deleted.");
return nullptr;
}
@@ -182,6 +183,7 @@
if (sourcesDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'advance' on 'IDBCursor': The cursor's source or effective object store has been deleted.");
return;
}
@@ -238,6 +240,7 @@
if (sourcesDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'continue' on 'IDBCursor': The cursor's source or effective object store has been deleted.");
return;
}
@@ -293,6 +296,7 @@
if (sourcesDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'delete' on 'IDBCursor': The cursor's source or effective object store has been deleted.");
return nullptr;
}
Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp (194594 => 194595)
--- trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBIndexImpl.cpp 2016-01-05 19:57:07 UTC (rev 194595)
@@ -92,6 +92,7 @@
if (m_deleted || m_objectStore->isDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'openCursor' on 'IDBIndex': The index or its object store has been deleted.");
return nullptr;
}
@@ -178,6 +179,7 @@
{
if (m_deleted || m_objectStore->isDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'count' on 'IDBIndex': The index or its object store has been deleted.");
return nullptr;
}
@@ -202,6 +204,7 @@
if (m_deleted || m_objectStore->isDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'openKeyCursor' on 'IDBIndex': The index or its object store has been deleted.");
return nullptr;
}
@@ -269,6 +272,7 @@
{
if (m_deleted || m_objectStore->isDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'get' on 'IDBIndex': The index or its object store has been deleted.");
return nullptr;
}
@@ -323,6 +327,7 @@
{
if (m_deleted || m_objectStore->isDeleted()) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'getKey' on 'IDBIndex': The index or its object store has been deleted.");
return nullptr;
}
Modified: trunk/Source/WebCore/Modules/indexeddb/client/IDBObjectStoreImpl.cpp (194594 => 194595)
--- trunk/Source/WebCore/Modules/indexeddb/client/IDBObjectStoreImpl.cpp 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/Source/WebCore/Modules/indexeddb/client/IDBObjectStoreImpl.cpp 2016-01-05 19:57:07 UTC (rev 194595)
@@ -117,6 +117,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'openCursor' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -163,6 +164,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'get' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -194,6 +196,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'get' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -256,6 +259,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to store record in an IDBObjectStore: The object store has been deleted.");
return nullptr;
}
@@ -347,6 +351,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'delete' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -397,6 +402,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'clear' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -415,6 +421,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'createIndex' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -469,6 +476,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'index' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
@@ -501,6 +509,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.");
return;
}
@@ -588,6 +597,7 @@
if (m_deleted) {
ec.code = IDBDatabaseException::InvalidStateError;
+ ec.message = ASCIILiteral("Failed to execute 'count' on 'IDBObjectStore': The object store has been deleted.");
return nullptr;
}
Modified: trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp (194594 => 194595)
--- trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp 2016-01-05 19:42:16 UTC (rev 194594)
+++ trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp 2016-01-05 19:57:07 UTC (rev 194595)
@@ -32,6 +32,7 @@
#include "JSIDBObjectStore.h"
#include "IDBBindingUtilities.h"
+#include "IDBDatabaseException.h"
#include "IDBKeyPath.h"
#include "IDBObjectStore.h"
#include "JSDOMBinding.h"
@@ -113,7 +114,14 @@
IDBKeyPath keyPath;
JSValue keyPathValue = state.argument(1);
if (!keyPathValue.isUndefinedOrNull())
- keyPath = idbKeyPathFromValue(&state, state.argument(1));
+ keyPath = idbKeyPathFromValue(&state, keyPathValue);
+ else {
+ ExceptionCodeWithMessage ec;
+ ec.code = IDBDatabaseException::SyntaxError;
+ ec.message = ASCIILiteral("Failed to execute 'createIndex' on 'IDBObjectStore': The keyPath argument contains an invalid key path.");
+ setDOMException(&state, ec);
+ return jsUndefined();
+ }
if (state.hadException())
return jsUndefined();