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.cpp55
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: