From 1a609a945d9ebace029c1701dbade3cdc09de4ad Mon Sep 17 00:00:00 2001 From: Tom Lea Date: Thu, 29 Mar 2012 18:01:02 +0100 Subject: [PATCH] Set the window to the default size on #reset! This should prevent state leakage between test cases. --- spec/driver_resize_window_spec.rb | 7 +++++++ src/Reset.cpp | 1 + src/WebPage.cpp | 4 ++++ src/WebPage.h | 1 + 4 files changed, 13 insertions(+) diff --git a/spec/driver_resize_window_spec.rb b/spec/driver_resize_window_spec.rb index acdc135..b29b9e6 100644 --- a/spec/driver_resize_window_spec.rb +++ b/spec/driver_resize_window_spec.rb @@ -48,5 +48,12 @@ describe Capybara::Driver::Webkit, "#resize_window(width, height)" do @driver.body.should include("[800x600]") end + it "resets the window to the default size when the driver is reset" do + @driver.resize_window(800, 600) + @driver.reset! + @driver.visit("/") + @driver.body.should include(DEFAULT_DIMENTIONS) + end + after(:all) { @driver.reset! } end diff --git a/src/Reset.cpp b/src/Reset.cpp index c0d998d..ea15255 100644 --- a/src/Reset.cpp +++ b/src/Reset.cpp @@ -16,6 +16,7 @@ void Reset::start() { page()->setUserAgent(NULL); page()->resetResponseHeaders(); page()->resetConsoleMessages(); + page()->resetWindowSize(); resetHistory(); emit finished(new Response(true)); } diff --git a/src/WebPage.cpp b/src/WebPage.cpp index 67275b1..47fa420 100644 --- a/src/WebPage.cpp +++ b/src/WebPage.cpp @@ -20,6 +20,10 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) { this, SLOT(frameCreated(QWebFrame *))); connect(this, SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(handleUnsupportedContent(QNetworkReply*))); + resetWindowSize(); +} + +void WebPage::resetWindowSize() { this->setViewportSize(QSize(1680, 1050)); } diff --git a/src/WebPage.h b/src/WebPage.h index f006a34..8993c57 100644 --- a/src/WebPage.h +++ b/src/WebPage.h @@ -19,6 +19,7 @@ class WebPage : public QWebPage { bool ignoreSslErrors(); QString consoleMessages(); void resetConsoleMessages(); + void resetWindowSize(); public slots: bool shouldInterruptJavaScript();