Chromium Code Reviews| Index: chrome/browser/prerender/prerender_browsertest.cc |
| diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc |
| index a0e80d0baacc4d2babf8e1c18ee90944e5e7c235..7251cacafd8580e3fc090ebc12f066e5d166c23f 100644 |
| --- a/chrome/browser/prerender/prerender_browsertest.cc |
| +++ b/chrome/browser/prerender/prerender_browsertest.cc |
| @@ -168,18 +168,13 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| } |
| void NavigateToDestURL() const { |
| - ui_test_utils::NavigateToURL(browser(), dest_url_); |
| - |
| - // Make sure the PrerenderContents found earlier was used or removed |
| - EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); |
| + NavigateToURLImpl(dest_url_); |
| + } |
| - // Check if page behaved as expected when actually displayed. |
| - bool display_test_result = false; |
| - ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| - browser()->GetSelectedTabContents()->render_view_host(), L"", |
| - L"window.domAutomationController.send(DidDisplayPass())", |
| - &display_test_result)); |
| - EXPECT_TRUE(display_test_result); |
| + // Should be const but test_server()->GetURL(...) is not const. |
| + void NavigateToURL(const std::string& dest_html_file) { |
| + const GURL dest_url = test_server()->GetURL(dest_html_file); |
| + NavigateToURLImpl(dest_url); |
| } |
| bool UrlIsInPrerenderManager(const std::string& html_file) { |
| @@ -279,6 +274,21 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
| } |
| } |
| + void NavigateToURLImpl(const GURL& dest_url) const { |
| + ui_test_utils::NavigateToURL(browser(), dest_url); |
| + |
| + // Make sure the PrerenderContents found earlier was used or removed |
| + EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); |
| + |
| + // Check if page behaved as expected when actually displayed. |
| + bool display_test_result = false; |
| + ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| + browser()->GetSelectedTabContents()->render_view_host(), L"", |
| + L"window.domAutomationController.send(DidDisplayPass())", |
| + &display_test_result)); |
| + EXPECT_TRUE(display_test_result); |
| + } |
| + |
| PrerenderManager* prerender_manager() const { |
| Profile* profile = browser()->GetSelectedTabContents()->profile(); |
| PrerenderManager* prerender_manager = profile->GetPrerenderManager(); |
| @@ -670,4 +680,31 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { |
| NavigateToDestURL(); |
| } |
| +// Checks that we correctly use a prerendered page when navigating to a |
| +// fragment. |
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageNavigateFragment) { |
| + PrerenderTestURL("files/prerender/prerender_fragment.html", |
| + FINAL_STATUS_USED, |
| + 1); |
| + NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
| +} |
| + |
| +// Checks that we correctly use a prerendered page when we prerender a fragment |
| +// but navigate to the main page. |
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFragmentNavigatePage) { |
| + PrerenderTestURL("files/prerender/prerender_page.html#fragment", |
| + FINAL_STATUS_USED, |
| + 1); |
| + NavigateToURL("files/prerender/prerender_page.html"); |
| +} |
| + |
| +// Checks that we correctly use a prerendered page when we prerender a fragment |
| +// but navigate to the main page. |
|
cbentzel
2011/04/22 21:01:16
Comment is incorrect.
dominich
2011/04/22 21:58:44
Done.
|
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| + PrerenderFragmentNavigateFragment) { |
| + PrerenderTestURL("files/prerender/prerender_fragment.html#other_fragment", |
| + FINAL_STATUS_USED, |
| + 1); |
| + NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
| +} |
| } // namespace prerender |