diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-23 16:54:21 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-23 16:54:21 +0000 |
commit | 84845656bf7cfd06e2687173ede088823f4f531f (patch) | |
tree | 4c05c49044b4757841fab46ce7abbba8a8f2a4e0 | |
parent | fd12b1a8cb25b6137c8da6e9230abead547f427a (diff) | |
download | chromium_src-84845656bf7cfd06e2687173ede088823f4f531f.zip chromium_src-84845656bf7cfd06e2687173ede088823f4f531f.tar.gz chromium_src-84845656bf7cfd06e2687173ede088823f4f531f.tar.bz2 |
Fixes crash in TabRestoreServiceTest.DontPersistPostData. The problem
is this tests ends up going into webkit (by way of
webkit_glue::RemoveFormDataFromHistoryState), and wasn't initializing
webkit. The exact crash was because WebCore::generateSequenceNumber
asks for the current time, which needs a WebKitClient set.
BUG=45977
TEST=none
Review URL: http://codereview.chromium.org/3010025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53482 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/sessions/tab_restore_service_unittest.cc | 15 | ||||
-rw-r--r-- | chrome/test/render_view_test.h | 18 |
2 files changed, 16 insertions, 17 deletions
diff --git a/chrome/browser/sessions/tab_restore_service_unittest.cc b/chrome/browser/sessions/tab_restore_service_unittest.cc index 742a1c6..7abe43c 100644 --- a/chrome/browser/sessions/tab_restore_service_unittest.cc +++ b/chrome/browser/sessions/tab_restore_service_unittest.cc @@ -8,8 +8,10 @@ #include "chrome/browser/sessions/session_service.h" #include "chrome/browser/sessions/tab_restore_service.h" #include "chrome/browser/tab_contents/navigation_entry.h" +#include "chrome/test/render_view_test.h" #include "chrome/test/testing_profile.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/WebKit/WebKit/chromium/public/WebKit.h" // Create subclass that overrides TimeNow so that we can control the time used // for closed tabs and windows. @@ -44,11 +46,14 @@ class TabRestoreServiceTest : public RenderViewHostTestHarness { RenderViewHostTestHarness::SetUp(); time_factory_ = new TabRestoreTimeFactory(); service_ = new TabRestoreService(profile(), time_factory_); + WebKit::initialize(&webkitclient_); } + virtual void TearDown() { service_ = NULL; delete time_factory_; RenderViewHostTestHarness::TearDown(); + WebKit::shutdown(); } void AddThreeNavigations() { @@ -111,6 +116,7 @@ class TabRestoreServiceTest : public RenderViewHostTestHarness { GURL url3_; scoped_refptr<TabRestoreService> service_; TabRestoreTimeFactory* time_factory_; + RenderViewTest::RendererWebKitClientImplNoSandbox webkitclient_; }; TEST_F(TabRestoreServiceTest, Basic) { @@ -230,15 +236,8 @@ TEST_F(TabRestoreServiceTest, RestorePinnedAndApp) { EXPECT_TRUE(extension_app_id == tab->extension_app_id); } -// Crashes, http://crbug.com/45977. -#if defined(OS_WIN) -#define MAYBE_DontPersistPostData DISABLED_DontPersistPostData -#else -#define MAYBE_DontPersistPostData DontPersistPostData -#endif // defined(OS_WIN) - // Make sure we persist entries to disk that have post data. -TEST_F(TabRestoreServiceTest, MAYBE_DontPersistPostData) { +TEST_F(TabRestoreServiceTest, DontPersistPostData) { AddThreeNavigations(); controller().GetEntryAtIndex(0)->set_has_post_data(true); controller().GetEntryAtIndex(1)->set_has_post_data(true); diff --git a/chrome/test/render_view_test.h b/chrome/test/render_view_test.h index af6059e..817a478 100644 --- a/chrome/test/render_view_test.h +++ b/chrome/test/render_view_test.h @@ -24,6 +24,15 @@ class MockRenderProcess; class RenderViewTest : public testing::Test { public: + // 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; + } + }; + RenderViewTest(); ~RenderViewTest(); @@ -62,15 +71,6 @@ 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_; |