diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-23 15:08:59 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-23 15:09:20 +0100 |
commit | 061d58bc0fa016cfeed744fd3e4663460635d69b (patch) | |
tree | ad9b8b032c803e1c9054c23fa1b7a0f1976bf98f /Source/WebKit/chromium/tests/IDBRequestTest.cpp | |
parent | 470286ecfe79d59df14944e5b5d34630fc739391 (diff) | |
download | qtwebkit-061d58bc0fa016cfeed744fd3e4663460635d69b.tar.gz |
Imported WebKit commit 8eb048315f36fa33731f28694630fe4a3c2cbc99 (http://svn.webkit.org/repository/webkit/trunk@135602)
New snapshot that fixes various bugs
Change-Id: Icb6ce541a26a9f500d087821ce4b83a8d8a5474a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebKit/chromium/tests/IDBRequestTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/IDBRequestTest.cpp | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/Source/WebKit/chromium/tests/IDBRequestTest.cpp b/Source/WebKit/chromium/tests/IDBRequestTest.cpp index 27f6c1e6b..a0734e14c 100644 --- a/Source/WebKit/chromium/tests/IDBRequestTest.cpp +++ b/Source/WebKit/chromium/tests/IDBRequestTest.cpp @@ -28,23 +28,64 @@ #include "IDBRequest.h" #include "DOMStringList.h" +#include "Document.h" +#include "Frame.h" +#include "FrameTestHelpers.h" #include "IDBCursorBackendInterface.h" #include "IDBDatabaseBackendImpl.h" #include "IDBTransactionCoordinator.h" +#include "WebFrame.h" +#include "WebFrameImpl.h" +#include "WebView.h" #include <gtest/gtest.h> #if ENABLE(INDEXED_DATABASE) using namespace WebCore; +using namespace WebKit; namespace { -TEST(IDBRequestTest, EventsAfterStopping) +class IDBRequestTest : public testing::Test { +public: + IDBRequestTest() + : m_webView(0) + { + } + + void SetUp() OVERRIDE + { + m_webView = FrameTestHelpers::createWebViewAndLoad("about:blank"); + m_webView->setFocus(true); + } + + void TearDown() OVERRIDE + { + m_webView->close(); + } + + v8::Handle<v8::Context> context() + { + return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->script()->mainWorldContext(); + } + + ScriptExecutionContext* scriptExecutionContext() + { + return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->document(); + } + +private: + WebView* m_webView; +}; + +TEST_F(IDBRequestTest, EventsAfterStopping) { - ScriptExecutionContext* context = 0; + v8::HandleScope handleScope; + v8::Context::Scope scope(context()); + IDBTransaction* transaction = 0; - RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::createInvalid(), transaction); + RefPtr<IDBRequest> request = IDBRequest::create(scriptExecutionContext(), IDBAny::createInvalid(), transaction); EXPECT_EQ(request->readyState(), "pending"); request->stop(); @@ -59,11 +100,13 @@ TEST(IDBRequestTest, EventsAfterStopping) request->onSuccess(IDBKey::createInvalid(), IDBKey::createInvalid(), SerializedScriptValue::nullValue()); } -TEST(IDBRequestTest, AbortErrorAfterAbort) +TEST_F(IDBRequestTest, AbortErrorAfterAbort) { - ScriptExecutionContext* context = 0; + v8::HandleScope handleScope; + v8::Context::Scope scope(context()); + IDBTransaction* transaction = 0; - RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::createInvalid(), transaction); + RefPtr<IDBRequest> request = IDBRequest::create(scriptExecutionContext(), IDBAny::createInvalid(), transaction); EXPECT_EQ(request->readyState(), "pending"); // Simulate the IDBTransaction having received onAbort from back end and aborting the request: |