Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <deque> | 5 #include <deque> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "chrome/browser/prerender/prerender_contents.h" | 10 #include "chrome/browser/prerender/prerender_contents.h" |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 161 void PrerenderTestURL( | 161 void PrerenderTestURL( |
| 162 const std::string& html_file, | 162 const std::string& html_file, |
| 163 const std::deque<FinalStatus>& expected_final_status_queue, | 163 const std::deque<FinalStatus>& expected_final_status_queue, |
| 164 int total_navigations) { | 164 int total_navigations) { |
| 165 PrerenderTestURLImpl(html_file, | 165 PrerenderTestURLImpl(html_file, |
| 166 expected_final_status_queue, | 166 expected_final_status_queue, |
| 167 total_navigations); | 167 total_navigations); |
| 168 } | 168 } |
| 169 | 169 |
| 170 void NavigateToDestURL() const { | 170 void NavigateToDestURL() const { |
| 171 ui_test_utils::NavigateToURL(browser(), dest_url_); | 171 NavigateToURLImpl(dest_url_); |
| 172 } | |
| 172 | 173 |
| 173 // Make sure the PrerenderContents found earlier was used or removed | 174 // Should be const but test_server()->GetURL(...) is not const. |
| 174 EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); | 175 void NavigateToURL(const std::string& dest_html_file) { |
| 175 | 176 const GURL dest_url = test_server()->GetURL(dest_html_file); |
| 176 // Check if page behaved as expected when actually displayed. | 177 NavigateToURLImpl(dest_url); |
| 177 bool display_test_result = false; | |
| 178 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
| 179 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
| 180 L"window.domAutomationController.send(DidDisplayPass())", | |
| 181 &display_test_result)); | |
| 182 EXPECT_TRUE(display_test_result); | |
| 183 } | 178 } |
| 184 | 179 |
| 185 bool UrlIsInPrerenderManager(const std::string& html_file) { | 180 bool UrlIsInPrerenderManager(const std::string& html_file) { |
| 186 GURL dest_url = test_server()->GetURL(html_file); | 181 GURL dest_url = test_server()->GetURL(html_file); |
| 187 return (prerender_manager()->FindEntry(dest_url) != NULL); | 182 return (prerender_manager()->FindEntry(dest_url) != NULL); |
| 188 } | 183 } |
| 189 | 184 |
| 190 bool UrlIsInPrerenderManager(const GURL& url) { | 185 bool UrlIsInPrerenderManager(const GURL& url) { |
| 191 return (prerender_manager()->FindEntry(url) != NULL); | 186 return (prerender_manager()->FindEntry(url) != NULL); |
| 192 } | 187 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 272 break; | 267 break; |
| 273 } | 268 } |
| 274 default: | 269 default: |
| 275 // In the failure case, we should have removed dest_url_ from the | 270 // In the failure case, we should have removed dest_url_ from the |
| 276 // prerender_manager. | 271 // prerender_manager. |
| 277 EXPECT_TRUE(prerender_contents == NULL); | 272 EXPECT_TRUE(prerender_contents == NULL); |
| 278 break; | 273 break; |
| 279 } | 274 } |
| 280 } | 275 } |
| 281 | 276 |
| 277 void NavigateToURLImpl(const GURL& dest_url) const { | |
| 278 ui_test_utils::NavigateToURL(browser(), dest_url); | |
| 279 | |
| 280 // Make sure the PrerenderContents found earlier was used or removed | |
| 281 EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); | |
| 282 | |
| 283 // Check if page behaved as expected when actually displayed. | |
| 284 bool display_test_result = false; | |
| 285 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
| 286 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
| 287 L"window.domAutomationController.send(DidDisplayPass())", | |
| 288 &display_test_result)); | |
| 289 EXPECT_TRUE(display_test_result); | |
| 290 } | |
| 291 | |
| 282 PrerenderManager* prerender_manager() const { | 292 PrerenderManager* prerender_manager() const { |
| 283 Profile* profile = browser()->GetSelectedTabContents()->profile(); | 293 Profile* profile = browser()->GetSelectedTabContents()->profile(); |
| 284 PrerenderManager* prerender_manager = profile->GetPrerenderManager(); | 294 PrerenderManager* prerender_manager = profile->GetPrerenderManager(); |
| 285 return prerender_manager; | 295 return prerender_manager; |
| 286 } | 296 } |
| 287 | 297 |
| 288 WaitForLoadPrerenderContentsFactory* prc_factory_; | 298 WaitForLoadPrerenderContentsFactory* prc_factory_; |
| 289 GURL dest_url_; | 299 GURL dest_url_; |
| 290 bool use_https_src_server_; | 300 bool use_https_src_server_; |
| 291 }; | 301 }; |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 663 } | 673 } |
| 664 | 674 |
| 665 // Checks that scripts can retrieve the correct window size while prerendering. | 675 // Checks that scripts can retrieve the correct window size while prerendering. |
| 666 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { | 676 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { |
| 667 PrerenderTestURL("files/prerender/prerender_size.html", | 677 PrerenderTestURL("files/prerender/prerender_size.html", |
| 668 FINAL_STATUS_USED, | 678 FINAL_STATUS_USED, |
| 669 1); | 679 1); |
| 670 NavigateToDestURL(); | 680 NavigateToDestURL(); |
| 671 } | 681 } |
| 672 | 682 |
| 683 // Checks that we correctly use a prerendered page when navigating to a | |
| 684 // fragment. | |
| 685 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageNavigateFragment) { | |
| 686 PrerenderTestURL("files/prerender/prerender_fragment.html", | |
| 687 FINAL_STATUS_USED, | |
| 688 1); | |
| 689 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); | |
| 690 } | |
| 691 | |
| 692 // Checks that we correctly use a prerendered page when we prerender a fragment | |
| 693 // but navigate to the main page. | |
| 694 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFragmentNavigatePage) { | |
| 695 PrerenderTestURL("files/prerender/prerender_page.html#fragment", | |
| 696 FINAL_STATUS_USED, | |
| 697 1); | |
| 698 NavigateToURL("files/prerender/prerender_page.html"); | |
| 699 } | |
| 700 | |
| 701 // Checks that we correctly use a prerendered page when we prerender a fragment | |
| 702 // but navigate to the main page. | |
|
cbentzel
2011/04/22 21:01:16
Comment is incorrect.
dominich
2011/04/22 21:58:44
Done.
| |
| 703 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
| 704 PrerenderFragmentNavigateFragment) { | |
| 705 PrerenderTestURL("files/prerender/prerender_fragment.html#other_fragment", | |
| 706 FINAL_STATUS_USED, | |
| 707 1); | |
| 708 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); | |
| 709 } | |
| 673 } // namespace prerender | 710 } // namespace prerender |
| OLD | NEW |