diff options
author | davidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-13 20:18:09 +0000 |
---|---|---|
committer | davidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-13 20:18:09 +0000 |
commit | 2cac07a9be07db7f1316e60df7ea646e6018c9ba (patch) | |
tree | cced33935ed95bbfce28a3a9a07d9ce2578c43e3 | |
parent | be5c7b7ec5d1aeb50122887d315a660c9ad578a4 (diff) | |
download | chromium_src-2cac07a9be07db7f1316e60df7ea646e6018c9ba.zip chromium_src-2cac07a9be07db7f1316e60df7ea646e6018c9ba.tar.gz chromium_src-2cac07a9be07db7f1316e60df7ea646e6018c9ba.tar.bz2 |
Merge 256478 "Add a browser test for double-reload of navigation..."
> Add a browser test for double-reload of navigation errors after a crash.
>
> Regression test for FrameLoader fix in
> https://codereview.chromium.org/188063003/
>
> BUG=348918
>
> Review URL: https://codereview.chromium.org/187633006
TBR=davidben@chromium.org
Review URL: https://codereview.chromium.org/198063005
git-svn-id: svn://svn.chromium.org/chrome/branches/1847/src@256910 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/crash_recovery_browsertest.cc | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/chrome/browser/crash_recovery_browsertest.cc b/chrome/browser/crash_recovery_browsertest.cc index e22d840..3a2b975 100644 --- a/chrome/browser/crash_recovery_browsertest.cc +++ b/chrome/browser/crash_recovery_browsertest.cc @@ -14,6 +14,7 @@ #include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents.h" #include "content/public/common/page_transition_types.h" +#include "content/public/test/browser_test_utils.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" @@ -22,6 +23,7 @@ using content::NavigationController; using content::OpenURLParams; using content::Referrer; +using content::WebContents; namespace { @@ -64,6 +66,10 @@ class CacheMaxAgeHandler { } // namespace class CrashRecoveryBrowserTest : public InProcessBrowserTest { + protected: + WebContents* GetActiveWebContents() { + return browser()->tab_strip_model()->GetActiveWebContents(); + } }; // Test that reload works after a crash. @@ -80,13 +86,8 @@ IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, Reload) { ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_before_crash)); SimulateRendererCrash(browser()); - content::WindowedNotificationObserver observer( - content::NOTIFICATION_LOAD_STOP, - content::Source<NavigationController>( - &browser()->tab_strip_model()->GetActiveWebContents()-> - GetController())); chrome::Reload(browser(), CURRENT_TAB); - observer.Wait(); + content::WaitForLoadStop(GetActiveWebContents()); ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_after_crash)); EXPECT_NE(title_before_crash, title_after_crash); @@ -111,13 +112,8 @@ IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, ReloadCacheRevalidate) { ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_before_crash)); SimulateRendererCrash(browser()); - content::WindowedNotificationObserver observer( - content::NOTIFICATION_LOAD_STOP, - content::Source<NavigationController>( - &browser()->tab_strip_model()->GetActiveWebContents()-> - GetController())); chrome::Reload(browser(), CURRENT_TAB); - observer.Wait(); + content::WaitForLoadStop(GetActiveWebContents()); ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_after_crash)); EXPECT_NE(title_before_crash, title_after_crash); @@ -142,14 +138,27 @@ IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, LoadInNewTab) { ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_before_crash)); SimulateRendererCrash(browser()); - content::WindowedNotificationObserver observer( - content::NOTIFICATION_LOAD_STOP, - content::Source<NavigationController>( - &browser()->tab_strip_model()->GetActiveWebContents()-> - GetController())); chrome::Reload(browser(), CURRENT_TAB); - observer.Wait(); + content::WaitForLoadStop(GetActiveWebContents()); ASSERT_TRUE(ui_test_utils::GetCurrentTabTitle(browser(), &title_after_crash)); EXPECT_EQ(title_before_crash, title_after_crash); } + +// Tests that reloads of navigation errors behave correctly after a crash. +// Regression test for http://crbug.com/348918 +IN_PROC_BROWSER_TEST_F(CrashRecoveryBrowserTest, DoubleReloadWithError) { + GURL url("chrome://bogus"); + ui_test_utils::NavigateToURL(browser(), url); + ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); + + SimulateRendererCrash(browser()); + + chrome::Reload(browser(), CURRENT_TAB); + content::WaitForLoadStop(GetActiveWebContents()); + ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); + + chrome::Reload(browser(), CURRENT_TAB); + content::WaitForLoadStop(GetActiveWebContents()); + ASSERT_EQ(url, GetActiveWebContents()->GetVisibleURL()); +} |