summaryrefslogtreecommitdiff
path: root/Source/web/tests/FrameTestHelpers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/web/tests/FrameTestHelpers.cpp')
-rw-r--r--Source/web/tests/FrameTestHelpers.cpp99
1 files changed, 64 insertions, 35 deletions
diff --git a/Source/web/tests/FrameTestHelpers.cpp b/Source/web/tests/FrameTestHelpers.cpp
index 97fa4a87c..90872adfb 100644
--- a/Source/web/tests/FrameTestHelpers.cpp
+++ b/Source/web/tests/FrameTestHelpers.cpp
@@ -33,11 +33,11 @@
#include "URLTestHelpers.h"
#include "wtf/StdLibExtras.h"
-#include "WebFrame.h"
#include "WebFrameClient.h"
+#include "WebFrameImpl.h"
#include "WebSettings.h"
-#include "WebView.h"
#include "WebViewClient.h"
+#include "WebViewImpl.h"
#include "public/platform/Platform.h"
#include "public/platform/WebString.h"
#include "public/platform/WebThread.h"
@@ -48,6 +48,30 @@
namespace WebKit {
namespace FrameTestHelpers {
+namespace {
+
+class QuitTask : public WebThread::Task {
+public:
+ virtual void run()
+ {
+ Platform::current()->currentThread()->exitRunLoop();
+ }
+};
+
+WebFrameClient* defaultWebFrameClient()
+{
+ DEFINE_STATIC_LOCAL(WebFrameClient, client, ());
+ return &client;
+}
+
+WebViewClient* defaultWebViewClient()
+{
+ DEFINE_STATIC_LOCAL(WebViewClient, client, ());
+ return &client;
+}
+
+} // namespace
+
void loadFrame(WebFrame* frame, const std::string& url)
{
WebURLRequest urlRequest;
@@ -56,61 +80,66 @@ void loadFrame(WebFrame* frame, const std::string& url)
frame->loadRequest(urlRequest);
}
-class TestWebFrameClient : public WebFrameClient {
-};
-
-static WebFrameClient* defaultWebFrameClient()
+void runPendingTasks()
{
- DEFINE_STATIC_LOCAL(TestWebFrameClient, client, ());
- return &client;
+ Platform::current()->currentThread()->postTask(new QuitTask);
+ Platform::current()->currentThread()->enterRunLoop();
}
-class TestWebViewClient : public WebViewClient {
-};
+WebViewHelper::WebViewHelper()
+ : m_mainFrame(0)
+ , m_webView(0)
+{
+}
-static WebViewClient* defaultWebViewClient()
+WebViewHelper::~WebViewHelper()
{
- DEFINE_STATIC_LOCAL(TestWebViewClient, client, ());
- return &client;
+ reset();
}
-WebView* createWebView(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient)
+WebViewImpl* WebViewHelper::initialize(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*))
{
+ reset();
+
if (!webFrameClient)
webFrameClient = defaultWebFrameClient();
if (!webViewClient)
webViewClient = defaultWebViewClient();
- WebView* webView = WebView::create(webViewClient);
- webView->settings()->setJavaScriptEnabled(enableJavascript);
- webView->settings()->setDeviceSupportsMouse(false);
- webView->settings()->setForceCompositingMode(true);
- webView->initializeMainFrame(webFrameClient);
+ m_webView = WebViewImpl::create(webViewClient);
+ m_webView->settings()->setJavaScriptEnabled(enableJavascript);
+ if (updateSettingsFunc) {
+ updateSettingsFunc(m_webView->settings());
+ } else {
+ m_webView->settings()->setDeviceSupportsMouse(false);
+ m_webView->settings()->setForceCompositingMode(true);
+ }
+
+ m_mainFrame = WebFrameImpl::create(webFrameClient);
+ m_webView->setMainFrame(m_mainFrame);
- return webView;
+ return m_webView;
}
-WebView* createWebViewAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient)
+WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*))
{
- WebView* webView = createWebView(enableJavascript, webFrameClient, webViewClient);
+ initialize(enableJavascript, webFrameClient, webViewClient, updateSettingsFunc);
- loadFrame(webView->mainFrame(), url);
+ loadFrame(webView()->mainFrame(), url);
Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
- return webView;
+ return webViewImpl();
}
-class QuitTask : public WebThread::Task {
-public:
- virtual void run()
- {
- Platform::current()->currentThread()->exitRunLoop();
- }
-};
-
-void runPendingTasks()
+void WebViewHelper::reset()
{
- Platform::current()->currentThread()->postTask(new QuitTask);
- Platform::current()->currentThread()->enterRunLoop();
+ if (m_webView) {
+ m_webView->close();
+ m_webView = 0;
+ }
+ if (m_mainFrame) {
+ m_mainFrame->close();
+ m_mainFrame = 0;
+ }
}
} // namespace FrameTestHelpers