summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-23 16:54:21 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-23 16:54:21 +0000
commit84845656bf7cfd06e2687173ede088823f4f531f (patch)
tree4c05c49044b4757841fab46ce7abbba8a8f2a4e0
parentfd12b1a8cb25b6137c8da6e9230abead547f427a (diff)
downloadchromium_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.cc15
-rw-r--r--chrome/test/render_view_test.h18
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_;