Index: Source/web/tests/FrameTestHelpers.cpp |
diff --git a/Source/web/tests/FrameTestHelpers.cpp b/Source/web/tests/FrameTestHelpers.cpp |
index 97fa4a87cdc1b5d7691fa659048d8edb43169ea3..4923c2090b3d3a44e9d2a63660d4c3e152a60be5 100644 |
--- a/Source/web/tests/FrameTestHelpers.cpp |
+++ b/Source/web/tests/FrameTestHelpers.cpp |
@@ -48,69 +48,98 @@ |
namespace WebKit { |
namespace FrameTestHelpers { |
-void loadFrame(WebFrame* frame, const std::string& url) |
-{ |
- WebURLRequest urlRequest; |
- urlRequest.initialize(); |
- urlRequest.setURL(URLTestHelpers::toKURL(url)); |
- frame->loadRequest(urlRequest); |
-} |
+namespace { |
+ |
+class QuitTask : public WebThread::Task { |
+public: |
+ virtual void run() |
+ { |
+ Platform::current()->currentThread()->exitRunLoop(); |
+ } |
+}; |
class TestWebFrameClient : public WebFrameClient { |
}; |
-static WebFrameClient* defaultWebFrameClient() |
+WebFrameClient* defaultWebFrameClient() |
{ |
DEFINE_STATIC_LOCAL(TestWebFrameClient, client, ()); |
return &client; |
} |
-class TestWebViewClient : public WebViewClient { |
+class WebViewHelperClient : public WebViewClient { |
}; |
-static WebViewClient* defaultWebViewClient() |
+WebViewClient* defaultWebViewClient() |
{ |
- DEFINE_STATIC_LOCAL(TestWebViewClient, client, ()); |
+ DEFINE_STATIC_LOCAL(WebViewHelperClient, client, ()); |
return &client; |
} |
-WebView* createWebView(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient) |
+} // namespace |
+ |
+void loadFrame(WebFrame* frame, const std::string& url) |
{ |
+ WebURLRequest urlRequest; |
+ urlRequest.initialize(); |
+ urlRequest.setURL(URLTestHelpers::toKURL(url)); |
+ frame->loadRequest(urlRequest); |
+} |
+ |
+void runPendingTasks() |
+{ |
+ Platform::current()->currentThread()->postTask(new QuitTask); |
+ Platform::current()->currentThread()->enterRunLoop(); |
+} |
+ |
+WebViewHelper::WebViewHelper() |
+ : m_mainFrame(0) |
+ , m_webView(0) |
+{ |
+} |
+ |
+WebViewHelper::~WebViewHelper() |
+{ |
+ reset(); |
+} |
+ |
+WebView* WebViewHelper::initialize(bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient) |
+{ |
+ ASSERT(!m_webView); |
+ ASSERT(!m_mainFrame); |
+ |
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); |
- |
- return webView; |
+ m_mainFrame = WebFrame::create(webFrameClient); |
darin (slow to review)
2013/09/13 04:02:47
nit: allocate m_mainFrame closer to where it is fi
awong
2013/09/18 22:04:47
Done.
|
+ m_webView = WebView::create(webViewClient); |
+ m_webView->settings()->setJavaScriptEnabled(enableJavascript); |
+ m_webView->settings()->setDeviceSupportsMouse(false); |
+ m_webView->settings()->setForceCompositingMode(true); |
+ m_webView->initializeMainFrame(m_mainFrame); |
+ |
+ return m_webView; |
} |
-WebView* createWebViewAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient) |
+WebView* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient) |
{ |
- WebView* webView = createWebView(enableJavascript, webFrameClient, webViewClient); |
+ ASSERT(!m_webView); |
+ ASSERT(!m_mainFrame); |
+ |
+ initialize(enableJavascript, webFrameClient, webViewClient); |
- loadFrame(webView->mainFrame(), url); |
+ loadFrame(webView()->mainFrame(), url); |
Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
- return webView; |
+ return webView(); |
} |
-class QuitTask : public WebThread::Task { |
-public: |
- virtual void run() |
- { |
- Platform::current()->currentThread()->exitRunLoop(); |
- } |
-}; |
- |
-void runPendingTasks() |
-{ |
- Platform::current()->currentThread()->postTask(new QuitTask); |
- Platform::current()->currentThread()->enterRunLoop(); |
+void WebViewHelper::reset() { |
+ if (m_webView) |
+ m_webView->close(); |
+ if (m_mainFrame) |
+ m_mainFrame->close(); |
} |
} // namespace FrameTestHelpers |