diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 01:46:20 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 01:46:20 +0000 |
commit | 09ac4c430545ffd7b8d35bc857b9c27cfaf75cee (patch) | |
tree | 05ce41d678c5f096c4e1eaae564bbe71306bb6c3 /chrome/test | |
parent | adc4ed4a6e4dbc0a599a2b2981caeeebe3565b08 (diff) | |
download | chromium_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.cc | 3 | ||||
-rw-r--r-- | chrome/test/render_view_test.h | 11 | ||||
-rw-r--r-- | chrome/test/unit/chrome_test_suite.h | 36 | ||||
-rw-r--r-- | chrome/test/unit/run_all_unittests.cc | 4 |
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(); } |