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

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

Issue 8801012: Add support for content::Referrer to prerender (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years 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
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 "base/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "base/time.h" 7 #include "base/time.h"
8 #include "chrome/browser/prerender/prerender_contents.h" 8 #include "chrome/browser/prerender/prerender_contents.h"
9 #include "chrome/browser/prerender/prerender_manager.h" 9 #include "chrome/browser/prerender/prerender_manager.h"
10 #include "chrome/browser/prerender/prerender_origin.h" 10 #include "chrome/browser/prerender/prerender_origin.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 EXPECT_TRUE(prerender_contents->AddAliasURL(*it)); 121 EXPECT_TRUE(prerender_contents->AddAliasURL(*it));
122 } 122 }
123 SetNextPrerenderContents(prerender_contents); 123 SetNextPrerenderContents(prerender_contents);
124 return prerender_contents; 124 return prerender_contents;
125 } 125 }
126 126
127 // Shorthand to add a simple preload with a reasonable source. 127 // Shorthand to add a simple preload with a reasonable source.
128 bool AddSimplePrerender(const GURL& url) { 128 bool AddSimplePrerender(const GURL& url) {
129 return AddPrerenderFromLinkRelPrerender(-1, -1, 129 return AddPrerenderFromLinkRelPrerender(-1, -1,
130 url, 130 url,
131 GURL()); 131 content::Referrer());
132 } 132 }
133 133
134 void set_rate_limit_enabled(bool enabled) { 134 void set_rate_limit_enabled(bool enabled) {
135 mutable_config().rate_limit_enabled = enabled; 135 mutable_config().rate_limit_enabled = enabled;
136 } 136 }
137 137
138 PrerenderContents* next_prerender_contents() { 138 PrerenderContents* next_prerender_contents() {
139 return next_prerender_contents_.get(); 139 return next_prerender_contents_.get();
140 } 140 }
141 141
142 private: 142 private:
143 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) { 143 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) {
144 DCHECK(!next_prerender_contents_.get()); 144 DCHECK(!next_prerender_contents_.get());
145 next_prerender_contents_.reset(prerender_contents); 145 next_prerender_contents_.reset(prerender_contents);
146 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED) 146 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED)
147 used_prerender_contents_.push_back(prerender_contents); 147 used_prerender_contents_.push_back(prerender_contents);
148 } 148 }
149 149
150 virtual base::Time GetCurrentTime() const OVERRIDE { 150 virtual base::Time GetCurrentTime() const OVERRIDE {
151 return time_; 151 return time_;
152 } 152 }
153 153
154 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE { 154 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
155 return time_ticks_; 155 return time_ticks_;
156 } 156 }
157 157
158 virtual PrerenderContents* CreatePrerenderContents( 158 virtual PrerenderContents* CreatePrerenderContents(
159 const GURL& url, 159 const GURL& url,
160 const GURL& referrer, 160 const content::Referrer& referrer,
161 Origin origin, 161 Origin origin,
162 uint8 experiment_id) OVERRIDE { 162 uint8 experiment_id) OVERRIDE {
163 DCHECK(next_prerender_contents_.get()); 163 DCHECK(next_prerender_contents_.get());
164 return next_prerender_contents_.release(); 164 return next_prerender_contents_.release();
165 } 165 }
166 166
167 base::Time time_; 167 base::Time time_;
168 base::TimeTicks time_ticks_; 168 base::TimeTicks time_ticks_;
169 scoped_ptr<PrerenderContents> next_prerender_contents_; 169 scoped_ptr<PrerenderContents> next_prerender_contents_;
170 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED, 170 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED,
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 430
431 int child_id; 431 int child_id;
432 int route_id; 432 int route_id;
433 ASSERT_TRUE(prerender_contents->GetChildId(&child_id)); 433 ASSERT_TRUE(prerender_contents->GetChildId(&child_id));
434 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id)); 434 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id));
435 435
436 GURL pending_url("http://news.google.com/"); 436 GURL pending_url("http://news.google.com/");
437 437
438 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 438 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender(
439 child_id, route_id, 439 child_id, route_id,
440 pending_url, url)); 440 pending_url, content::Referrer(url, WebKit::WebReferrerPolicyDefault)));
441 441
442 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); 442 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url));
443 EXPECT_TRUE(prerender_contents->has_started()); 443 EXPECT_TRUE(prerender_contents->has_started());
444 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 444 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
445 } 445 }
446 446
447 // Tests that a PrerenderManager created for a browser session in the control 447 // Tests that a PrerenderManager created for a browser session in the control
448 // group will not be able to override FINAL_STATUS_CONTROL_GROUP. 448 // group will not be able to override FINAL_STATUS_CONTROL_GROUP.
449 TEST_F(PrerenderManagerTest, ControlGroup) { 449 TEST_F(PrerenderManagerTest, ControlGroup) {
450 RestorePrerenderMode restore_prerender_mode; 450 RestorePrerenderMode restore_prerender_mode;
(...skipping 10 matching lines...) Expand all
461 461
462 // Tests that prerendering is cancelled when the source render view does not 462 // Tests that prerendering is cancelled when the source render view does not
463 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be 463 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be
464 // triggered. 464 // triggered.
465 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) { 465 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) {
466 GURL url("http://www.google.com/"); 466 GURL url("http://www.google.com/");
467 prerender_manager()->CreateNextPrerenderContents( 467 prerender_manager()->CreateNextPrerenderContents(
468 url, 468 url,
469 FINAL_STATUS_MANAGER_SHUTDOWN); 469 FINAL_STATUS_MANAGER_SHUTDOWN);
470 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 470 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender(
471 100, 100, url, GURL())); 471 100, 100, url, content::Referrer()));
472 } 472 }
473 473
474 // Tests that the prerender manager ignores fragment references when matching 474 // Tests that the prerender manager ignores fragment references when matching
475 // prerender URLs in the case the fragment is not in the prerender URL. 475 // prerender URLs in the case the fragment is not in the prerender URL.
476 TEST_F(PrerenderManagerTest, PageMatchesFragmentTest) { 476 TEST_F(PrerenderManagerTest, PageMatchesFragmentTest) {
477 GURL url("http://www.google.com/"); 477 GURL url("http://www.google.com/");
478 GURL fragment_url("http://www.google.com/#test"); 478 GURL fragment_url("http://www.google.com/#test");
479 479
480 DummyPrerenderContents* prerender_contents = 480 DummyPrerenderContents* prerender_contents =
481 prerender_manager()->CreateNextPrerenderContents(url, 481 prerender_manager()->CreateNextPrerenderContents(url,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 url, 522 url,
523 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); 523 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED);
524 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); 524 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url));
525 EXPECT_TRUE(prerender_contents->has_started()); 525 EXPECT_TRUE(prerender_contents->has_started());
526 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); 526 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS);
527 DummyPrerenderContents* null = NULL; 527 DummyPrerenderContents* null = NULL;
528 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); 528 EXPECT_EQ(null, prerender_manager()->GetEntry(url));
529 } 529 }
530 530
531 } // namespace prerender 531 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698