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..ae11ac7c38f07b3160b8f9777d47c3fe933e64f8 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) { |
|
cbentzel
2011/04/22 19:49:34
Note: I use set_dest_url in other tests for this.
dominich
2011/04/22 20:48:11
That's subtly different. Here I'm navigating to a
cbentzel
2011/04/22 21:01:16
OK, I see your point.
To capture this, I'd recomm
|
| + 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,22 @@ 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. |
|
cbentzel
2011/04/22 19:49:34
Can you add a test for prerendering with one fragm
dominich
2011/04/22 20:48:11
Done.
|
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFragmentNavigatePage) { |
| + PrerenderTestURL("files/prerender/prerender_page.html#fragment", |
| + FINAL_STATUS_USED, |
| + 1); |
| + NavigateToURL("files/prerender/prerender_page.html"); |
| +} |
| + |
| } // namespace prerender |