summaryrefslogtreecommitdiffstats
path: root/webkit/support/webkit_support.cc
diff options
context:
space:
mode:
authorjcivelli@google.com <jcivelli@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-21 22:16:24 +0000
committerjcivelli@google.com <jcivelli@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-21 22:16:24 +0000
commitbb07d7a8169743e3992e9f5f0baa82a2aa4aa2dc (patch)
tree3d311e95a01257c5c45974c589ebe3be06a39b1c /webkit/support/webkit_support.cc
parent4caa7300f49f5f0d30c8880bacf14a064fed51d5 (diff)
downloadchromium_src-bb07d7a8169743e3992e9f5f0baa82a2aa4aa2dc.zip
chromium_src-bb07d7a8169743e3992e9f5f0baa82a2aa4aa2dc.tar.gz
chromium_src-bb07d7a8169743e3992e9f5f0baa82a2aa4aa2dc.tar.bz2
Making webkit_support usable in WebKit unit-tests.
Adding a way to generate custom WebURLLoader (so unit-tests can mock resource loading). BUG=None TEST=DumpRenderTree should work. Review URL: http://codereview.chromium.org/2094017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/support/webkit_support.cc')
-rw-r--r--webkit/support/webkit_support.cc42
1 files changed, 32 insertions, 10 deletions
diff --git a/webkit/support/webkit_support.cc b/webkit/support/webkit_support.cc
index cab4ffa..de338ac 100644
--- a/webkit/support/webkit_support.cc
+++ b/webkit/support/webkit_support.cc
@@ -44,19 +44,24 @@ namespace {
class TestEnvironment {
public:
- explicit TestEnvironment() {}
+ explicit TestEnvironment(bool unit_test_mode) {
+ if (!unit_test_mode)
+ at_exit_manager_.reset(new base::AtExitManager);
+ main_message_loop_.reset(new MessageLoopForUI);
+ // TestWebKitClient must be instantiated after the MessageLoopForUI.
+ webkit_client_.reset(new TestWebKitClient);
+ }
~TestEnvironment() {
SimpleResourceLoaderBridge::Shutdown();
}
- WebKit::WebKitClient* webkit_client() { return &webkit_client_; }
+ WebKit::WebKitClient* webkit_client() { return webkit_client_.get(); }
private:
- base::AtExitManager at_exit_manager_;
- MessageLoopForUI main_message_loop_;
- // TestWebKitClient must be instantiated after the MessageLoopForUI.
- TestWebKitClient webkit_client_;
+ scoped_ptr<base::AtExitManager> at_exit_manager_;
+ scoped_ptr<MessageLoopForUI> main_message_loop_;
+ scoped_ptr<TestWebKitClient> webkit_client_;
};
class WebPluginImplWithPageDelegate
@@ -80,6 +85,10 @@ namespace webkit_support {
static TestEnvironment* test_environment;
void SetUpTestEnvironment() {
+ SetUpTestEnvironment(false);
+}
+
+void SetUpTestEnvironment(bool unit_test_mode) {
base::EnableTerminationOnHeapCorruption();
// Initialize the singleton CommandLine with fixed values. Some code refer to
@@ -94,11 +103,13 @@ void SetUpTestEnvironment() {
CommandLine::Init(arraysize(kFixedArguments), kFixedArguments);
BeforeInitialize();
- test_environment = new TestEnvironment;
+ test_environment = new TestEnvironment(unit_test_mode);
AfterInitialize();
- // Load ICU data tables. This has to run after TestEnvironment is created
- // because on Linux, we need base::AtExitManager.
- icu_util::Initialize();
+ if (!unit_test_mode) {
+ // Load ICU data tables. This has to run after TestEnvironment is created
+ // because on Linux, we need base::AtExitManager.
+ icu_util::Initialize();
+ }
}
void TearDownTestEnvironment() {
@@ -161,6 +172,17 @@ WebKit::WebApplicationCacheHost* CreateApplicationCacheHost(
return SimpleAppCacheSystem::CreateApplicationCacheHost(client);
}
+WebKit::WebString GetWebKitRootDir() {
+ FilePath sourcePath;
+ PathService::Get(base::DIR_SOURCE_ROOT, &sourcePath);
+ FilePath path = sourcePath.Append(FILE_PATH_LITERAL("third_party/WebKit"));
+ if (!file_util::PathExists(path)) {
+ path = sourcePath.Append(FILE_PATH_LITERAL("../.."));
+ DCHECK(file_util::PathExists(path));
+ }
+ return WebKit::WebString::fromUTF8(WideToUTF8(path.ToWStringHack()).c_str());
+}
+
// Wrapper for debug_util
bool BeingDebugged() {
return DebugUtil::BeingDebugged();