FrameTestHelpers.cpp [plain text]
#include "config.h"
#include "FrameTestHelpers.h"
#include <wtf/StdLibExtras.h>
#include "WebFrame.h"
#include "WebFrameClient.h"
#include "WebSettings.h"
#include "platform/WebString.h"
#include "platform/WebURLRequest.h"
#include "platform/WebURLResponse.h"
#include "WebView.h"
#include "WebViewClient.h"
#include <googleurl/src/gurl.h>
#include <webkit/support/webkit_support.h>
namespace WebKit {
namespace FrameTestHelpers {
void registerMockedURLLoad(const std::string& base, const std::string& fileName)
{
registerMockedURLLoad(GURL(base + fileName), fileName);
}
void registerMockedURLLoad(GURL url, const std::string& fileName)
{
WebURLResponse response;
response.initialize();
response.setMIMEType("text/html");
std::string filePath = webkit_support::GetWebKitRootDir().utf8();
filePath += "/Source/WebKit/chromium/tests/data/";
filePath += fileName;
webkit_support::RegisterMockedURL(url, response, WebString::fromUTF8(filePath));
}
void loadFrame(WebFrame* frame, const std::string& url)
{
WebURLRequest urlRequest;
urlRequest.initialize();
urlRequest.setURL(GURL(url));
frame->loadRequest(urlRequest);
}
class TestWebFrameClient : public WebFrameClient {
};
static WebFrameClient* defaultWebFrameClient()
{
DEFINE_STATIC_LOCAL(TestWebFrameClient, client, ());
return &client;
}
class TestWebViewClient : public WebViewClient {
};
static WebViewClient* defaultWebViewClient()
{
DEFINE_STATIC_LOCAL(TestWebViewClient, client, ());
return &client;
}
WebView* createWebViewAndLoad(const std::string& url, bool enableJavascript, WebFrameClient* webFrameClient, WebViewClient* webViewClient)
{
if (!webFrameClient)
webFrameClient = defaultWebFrameClient();
if (!webViewClient)
webViewClient = defaultWebViewClient();
WebView* webView = WebView::create(webViewClient);
webView->settings()->setJavaScriptEnabled(enableJavascript);
webView->initializeMainFrame(webFrameClient);
loadFrame(webView->mainFrame(), url);
webkit_support::ServeAsynchronousMockedRequests();
return webView;
}
} }