diff options
author | jcivelli@google.com <jcivelli@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-21 22:16:24 +0000 |
---|---|---|
committer | jcivelli@google.com <jcivelli@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-21 22:16:24 +0000 |
commit | bb07d7a8169743e3992e9f5f0baa82a2aa4aa2dc (patch) | |
tree | 3d311e95a01257c5c45974c589ebe3be06a39b1c /webkit/support/webkit_support.cc | |
parent | 4caa7300f49f5f0d30c8880bacf14a064fed51d5 (diff) | |
download | chromium_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.cc | 42 |
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(); |