Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 6880139: Changing URL match method to support fragments. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_contents.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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) {
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
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
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
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.
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.
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
673 } // namespace prerender 701 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_contents.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698