summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 01:46:20 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-25 01:46:20 +0000
commit09ac4c430545ffd7b8d35bc857b9c27cfaf75cee (patch)
tree05ce41d678c5f096c4e1eaae564bbe71306bb6c3 /chrome/test
parentadc4ed4a6e4dbc0a599a2b2981caeeebe3565b08 (diff)
downloadchromium_src-09ac4c430545ffd7b8d35bc857b9c27cfaf75cee.zip
chromium_src-09ac4c430545ffd7b8d35bc857b9c27cfaf75cee.tar.gz
chromium_src-09ac4c430545ffd7b8d35bc857b9c27cfaf75cee.tar.bz2
Initialize WebKit for unit_tests process. Before it was getting initialized by one of the tests, but it is needed by more than one of them.
Review URL: http://codereview.chromium.org/2853007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50807 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r--chrome/test/render_view_test.cc3
-rw-r--r--chrome/test/render_view_test.h11
-rw-r--r--chrome/test/unit/chrome_test_suite.h36
-rw-r--r--chrome/test/unit/run_all_unittests.cc4
4 files changed, 37 insertions, 17 deletions
diff --git a/chrome/test/render_view_test.cc b/chrome/test/render_view_test.cc
index 7503230..92d675c 100644
--- a/chrome/test/render_view_test.cc
+++ b/chrome/test/render_view_test.cc
@@ -81,7 +81,6 @@ void RenderViewTest::SetUp() {
// Setting flags and really doing anything with WebKit is fairly fragile and
// hacky, but this is the world we live in...
webkit_glue::SetJavaScriptFlags(L" --expose-gc");
- WebKit::initialize(&webkitclient_);
WebScriptController::registerExtension(BaseJsV8Extension::Get());
WebScriptController::registerExtension(JsonSchemaJsV8Extension::Get());
WebScriptController::registerExtension(EventBindings::Get());
@@ -140,8 +139,6 @@ void RenderViewTest::TearDown() {
// (http://crbug.com/21508).
msg_loop_.RunAllPending();
- WebKit::shutdown();
-
mock_keyboard_.reset();
platform_->PlatformUninitialize();
diff --git a/chrome/test/render_view_test.h b/chrome/test/render_view_test.h
index af6059e..3cb3354 100644
--- a/chrome/test/render_view_test.h
+++ b/chrome/test/render_view_test.h
@@ -16,7 +16,6 @@
#include "chrome/renderer/mock_render_thread.h"
#include "chrome/renderer/render_view.h"
#include "chrome/renderer/renderer_main_platform_delegate.h"
-#include "chrome/renderer/renderer_webkitclient_impl.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
@@ -62,20 +61,10 @@ class RenderViewTest : public testing::Test {
virtual void TearDown();
- // A special WebKitClientImpl class for getting rid off the dependency to the
- // sandbox, which is not available in RenderViewTest.
- class RendererWebKitClientImplNoSandbox : public RendererWebKitClientImpl {
- public:
- virtual WebKit::WebSandboxSupport* sandboxSupport() {
- return NULL;
- }
- };
-
MessageLoop msg_loop_;
MockRenderThread render_thread_;
scoped_ptr<MockRenderProcess> mock_process_;
scoped_refptr<RenderView> view_;
- RendererWebKitClientImplNoSandbox webkitclient_;
scoped_ptr<MockKeyboard> mock_keyboard_;
// Used to setup the process so renderers can run.
diff --git a/chrome/test/unit/chrome_test_suite.h b/chrome/test/unit/chrome_test_suite.h
index 9defe5b..375e0a7 100644
--- a/chrome/test/unit/chrome_test_suite.h
+++ b/chrome/test/unit/chrome_test_suite.h
@@ -11,11 +11,12 @@
#include "app/app_paths.h"
#include "app/resource_bundle.h"
-#include "base/stats_table.h"
+#include "base/scoped_ptr.h"
#include "base/file_util.h"
#include "base/path_service.h"
#include "base/ref_counted.h"
#include "base/scoped_nsautorelease_pool.h"
+#include "base/stats_table.h"
#include "base/test/test_suite.h"
#include "base/utf_string_conversions.h"
#include "chrome/app/scoped_ole_initializer.h"
@@ -24,9 +25,11 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/url_constants.h"
+#include "chrome/renderer/renderer_webkitclient_impl.h"
#include "chrome/test/testing_browser_process.h"
#include "net/base/mock_host_resolver.h"
#include "net/base/net_util.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebKit.h"
#if defined(OS_MACOSX)
#include "base/mac_util.h"
@@ -88,8 +91,15 @@ class ChromeTestSuite : public TestSuite {
created_user_data_dir_(false) {
}
- protected:
+ // WebKit must be enabled before calling Run().
+ void SetWebKitEnabled(bool val) {
+ webkit_client_.reset(val ? new NoSandboxWebKitClient() : NULL);
+ }
+ bool IsWebKitEnabled() const {
+ return webkit_client_.get();
+ }
+ protected:
virtual void Initialize() {
base::ScopedNSAutoreleasePool autorelease_pool;
@@ -144,9 +154,15 @@ class ChromeTestSuite : public TestSuite {
RemoveSharedMemoryFile(stats_filename_);
stats_table_ = new StatsTable(stats_filename_, 20, 200);
StatsTable::set_current(stats_table_);
+
+ if (webkit_client_.get())
+ WebKit::initialize(webkit_client_.get());
}
virtual void Shutdown() {
+ if (webkit_client_.get())
+ WebKit::shutdown();
+
ResourceBundle::CleanupSharedInstance();
#if defined(OS_MACOSX)
@@ -192,6 +208,22 @@ class ChromeTestSuite : public TestSuite {
// Flag indicating whether user_data_dir was automatically created or not.
bool created_user_data_dir_;
+
+ private:
+ // A special WebKitClientImpl class for getting rid of the dependency to the
+ // sandbox, which is not available in the unit test environment.
+ class NoSandboxWebKitClient : public RendererWebKitClientImpl {
+ public:
+ virtual WebKit::WebSandboxSupport* sandboxSupport() {
+ return NULL;
+ }
+ };
+
+ scoped_ptr<NoSandboxWebKitClient> webkit_client_;
+
+ // True if this test suite uses webkit. Used to initialize webkit before
+ // running tests.
+ bool uses_webkit_;
};
#endif // CHROME_TEST_UNIT_CHROME_TEST_SUITE_H_
diff --git a/chrome/test/unit/run_all_unittests.cc b/chrome/test/unit/run_all_unittests.cc
index 5534dbe..7dd82b7 100644
--- a/chrome/test/unit/run_all_unittests.cc
+++ b/chrome/test/unit/run_all_unittests.cc
@@ -5,5 +5,7 @@
#include "chrome/test/unit/chrome_test_suite.h"
int main(int argc, char **argv) {
- return ChromeTestSuite(argc, argv).Run();
+ ChromeTestSuite suite(argc, argv);
+ suite.SetWebKitEnabled(true);
+ return suite.Run();
}