| Index: chrome/browser/prerender/prerender_browsertest.cc
|
| diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
|
| index 80450a578bf3b695bece283f7da9ba2e12b78a5a..3ec23710cb8d370843acb3441c9cdeb2579809b5 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();
|
| @@ -662,4 +672,22 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) {
|
| 1);
|
| }
|
|
|
| +// 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");
|
| +}
|
| +
|
| } // namespace prerender
|
|
|