summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/tests/IDBRequestTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/tests/IDBRequestTest.cpp')
-rw-r--r--Source/WebKit/chromium/tests/IDBRequestTest.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/WebKit/chromium/tests/IDBRequestTest.cpp b/Source/WebKit/chromium/tests/IDBRequestTest.cpp
index 9e2459d39..52a038d5b 100644
--- a/Source/WebKit/chromium/tests/IDBRequestTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBRequestTest.cpp
@@ -58,6 +58,21 @@ TEST(IDBRequestTest, EventsAfterStopping)
request->onSuccess(IDBKey::createInvalid(), IDBKey::createInvalid(), SerializedScriptValue::nullValue());
}
+TEST(IDBRequestTest, AbortErrorAfterAbort)
+{
+ ScriptExecutionContext* context = 0;
+ IDBTransaction* transaction = 0;
+ RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::createInvalid(), transaction);
+ EXPECT_EQ(request->readyState(), "pending");
+
+ // Simulate the IDBTransaction having received onAbort from back end and aborting the request:
+ request->abort();
+
+ // Now simulate the back end having fired an abort error at the request to clear up any intermediaries.
+ // Ensure an assertion is not raised.
+ request->onError(IDBDatabaseError::create(IDBDatabaseException::IDB_ABORT_ERR, "Description goes here."));
+}
+
} // namespace
#endif // ENABLE(INDEXED_DATABASE)