Modern IDB: storage/indexeddb/transaction-basics.html fails.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 24 Dec 2015 07:39:01 +0000 (07:39 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 24 Dec 2015 07:39:01 +0000 (07:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=152481

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Failing test now passes).

* Modules/indexeddb/client/IDBDatabaseImpl.cpp:
(WebCore::IDBClient::IDBDatabase::transaction): Include the invalid string argument
  in the error message.

LayoutTests:

* platform/mac-wk1/TestExpectations:
* storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
* storage/indexeddb/transaction-basics-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194413 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/mac-wk1/TestExpectations
LayoutTests/storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt
LayoutTests/storage/indexeddb/transaction-basics-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/client/IDBDatabaseImpl.cpp

index b959eae..ec5e3c3 100644 (file)
@@ -1,3 +1,14 @@
+2015-12-23  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: storage/indexeddb/transaction-basics.html fails.
+        https://bugs.webkit.org/show_bug.cgi?id=152481
+
+        Reviewed by Alex Christensen.
+
+        * platform/mac-wk1/TestExpectations:
+        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
+        * storage/indexeddb/transaction-basics-expected.txt:
+
 2015-12-23  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
 
         Unreviewed EFL gardening.
index e141529..ed2b224 100644 (file)
@@ -107,7 +107,6 @@ storage/indexeddb/odd-strings.html [ Failure ]
 storage/indexeddb/open-db-private-browsing.html [ Failure ]
 storage/indexeddb/properties-disabled-at-runtime.html [ Failure ]
 storage/indexeddb/setversion-blocked-by-versionchange-close.html [ Failure ]
-storage/indexeddb/transaction-basics.html [ Failure ]
 storage/indexeddb/transaction-scope-sequencing.html [ Failure ]
 
 # Relies on internals.observeGC
index d892a3d..51b11f8 100644 (file)
@@ -3,8 +3,8 @@ ALERT: Failed to start a transaction while a versionChange transaction was in pr
 ALERT: versionchange transaction completed
 ALERT: Failed to start a transaction with an empty set of object stores - Error: Failed to execute 'transaction' on 'IDBDatabase': The storeNames parameter was empty.
 ALERT: Failed to start a transaction to a nonexistent object store - Error: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
-ALERT: Failed to start a transaction with an invalid mode - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('invalid-mode') is not one of 'readonly' or 'readwrite'.
-ALERT: Failed to explicitly start a versionchange transaction - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('invalid-mode') is not one of 'readonly' or 'readwrite'.
+ALERT: Failed to start a transaction with an invalid mode - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('blahblah') is not one of 'readonly' or 'readwrite'.
+ALERT: Failed to explicitly start a versionchange transaction - TypeError: Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('versionchange') is not one of 'readonly' or 'readwrite'.
 ALERT: Failed to explicitly start a transaction with the close pending flag set - Error: Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing.
 ALERT: Done
 This tests some obvious failures that can happen while calling IDBDatabase.transaction()
index 26138dd..ea53cf9 100644 (file)
@@ -23,7 +23,7 @@ Expecting exception from store.deleteIndex('indexFail')
 PASS Exception was thrown.
 PASS code is DOMException.INVALID_STATE_ERR
 PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
+Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
 
 testSetVersionAbort2():
 PASS self.db.objectStoreNames is []
@@ -41,7 +41,7 @@ Expecting exception from store.deleteIndex('indexFail')
 PASS Exception was thrown.
 PASS code is DOMException.INVALID_STATE_ERR
 PASS ename is 'InvalidStateError'
-Exception message: Failed to execute 'deleteIndex' on 'IDBObjectStore': The object store has been deleted.
+Exception message: An operation was called on an object on which it is not allowed or at a time when it is not allowed.
 store = db.createObjectStore('storeFail', null)
 index = store.createIndex('indexFail', 'x')
 
@@ -64,57 +64,57 @@ Expecting exception from index.openCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.openKeyCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.get(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'get' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'get' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.getKey(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.count()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'count' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'count' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from store.put(0, 0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'put' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
 Expecting exception from store.add(0, 0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'add' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
 Expecting exception from store.delete(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.clear()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'clear' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'clear' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.get(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.openCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
 
 testSetVersionAbort4():
 PASS self.db.objectStoreNames is []
@@ -133,57 +133,57 @@ Expecting exception from index.openCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'openCursor' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.openKeyCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'openKeyCursor' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.get(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'get' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'get' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.getKey(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'getKey' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from index.count()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'count' on 'IDBIndex': The transaction has finished.
+Exception message: Failed to execute 'count' on 'IDBIndex': The transaction is inactive or finished.
 Expecting exception from store.put(0, 0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'put' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
 Expecting exception from store.add(0, 0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'add' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to store record in an IDBObjectStore: The transaction is inactive or finished.
 Expecting exception from store.delete(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'delete' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.clear()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'clear' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'clear' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.get(0)
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'get' on 'IDBObjectStore': The transaction is inactive or finished.
 Expecting exception from store.openCursor()
 PASS Exception was thrown.
 PASS code is 0
 PASS ename is 'TransactionInactiveError'
-Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction has finished.
+Exception message: Failed to execute 'openCursor' on 'IDBObjectStore': The transaction is inactive or finished.
 
 testSetVersionAbort5():
 PASS db.objectStoreNames is ['storeFail']
index c849c4c..65677cd 100644 (file)
@@ -1,3 +1,16 @@
+2015-12-23  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: storage/indexeddb/transaction-basics.html fails.
+        https://bugs.webkit.org/show_bug.cgi?id=152481
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Failing test now passes).
+
+        * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
+        (WebCore::IDBClient::IDBDatabase::transaction): Include the invalid string argument
+          in the error message.
+
 2015-12-23  Simon Fraser  <simon.fraser@apple.com>
 
         Use "constrainedBetween" in more places
index c15425e..08b50db 100644 (file)
@@ -156,7 +156,7 @@ RefPtr<WebCore::IDBTransaction> IDBDatabase::transaction(ScriptExecutionContext*
 
     IndexedDB::TransactionMode mode = IDBTransaction::stringToMode(modeString, ec.code);
     if (ec.code) {
-        ec.message = ASCIILiteral("Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('invalid-mode') is not one of 'readonly' or 'readwrite'.");
+        ec.message = makeString(ASCIILiteral("Failed to execute 'transaction' on 'IDBDatabase': The mode provided ('"), modeString, ASCIILiteral("') is not one of 'readonly' or 'readwrite'."));
         return nullptr;
     }