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

Unified Diff: chrome/browser/prerender/prerender_manager_unittest.cc

Issue 6171007: For prerendering, keep track of all the intermediate redirects, and hook into... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prerender/prerender_manager_unittest.cc
===================================================================
--- chrome/browser/prerender/prerender_manager_unittest.cc (revision 71703)
+++ chrome/browser/prerender/prerender_manager_unittest.cc (working copy)
@@ -13,10 +13,17 @@
class DummyPrerenderContents : public PrerenderContents {
public:
DummyPrerenderContents(PrerenderManager* prerender_manager, const GURL& url)
- : PrerenderContents(prerender_manager, NULL, url),
+ : PrerenderContents(prerender_manager, NULL, url,
+ std::vector<GURL>()),
has_started_(false) {
}
+ DummyPrerenderContents(PrerenderManager* prerender_manager, const GURL& url,
+ const std::vector<GURL> alias_urls)
+ : PrerenderContents(prerender_manager, NULL, url, alias_urls),
+ has_started_(false) {
+ }
+
virtual void StartPrerendering() {
has_started_ = true;
}
@@ -43,6 +50,11 @@
next_pc_.reset(pc);
}
+ // Shorthand to add a simple preload with no aliases.
+ void AddSimplePreload(const GURL& url) {
+ AddPreload(url, std::vector<GURL>());
+ }
+
PrerenderContents* next_pc() { return next_pc_.get(); }
protected:
@@ -54,7 +66,9 @@
return time_;
}
- virtual PrerenderContents* CreatePrerenderContents(const GURL& url) {
+ virtual PrerenderContents* CreatePrerenderContents(
+ const GURL& url,
+ const std::vector<GURL>& alias_urls) {
return next_pc_.release();
}
@@ -83,7 +97,7 @@
DummyPrerenderContents* pc =
new DummyPrerenderContents(prerender_manager_.get(), url);
prerender_manager_->SetNextPrerenderContents(pc);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_TRUE(pc->has_started());
EXPECT_EQ(pc, prerender_manager_->GetEntry(url));
delete pc;
@@ -97,13 +111,13 @@
new DummyPrerenderContents(prerender_manager_.get(), url);
DummyPrerenderContents* null = NULL;
prerender_manager_->SetNextPrerenderContents(pc);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc->has_started());
DummyPrerenderContents* pc1 =
new DummyPrerenderContents(prerender_manager_.get(), url);
prerender_manager_->SetNextPrerenderContents(pc1);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_EQ(pc1, prerender_manager_->next_pc());
EXPECT_FALSE(pc1->has_started());
EXPECT_EQ(pc, prerender_manager_->GetEntry(url));
@@ -117,7 +131,7 @@
new DummyPrerenderContents(prerender_manager_.get(), url);
DummyPrerenderContents* null = NULL;
prerender_manager_->SetNextPrerenderContents(pc);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc->has_started());
prerender_manager_->AdvanceTime(prerender_manager_->max_prerender_age()
@@ -133,14 +147,14 @@
new DummyPrerenderContents(prerender_manager_.get(), url);
DummyPrerenderContents* null = NULL;
prerender_manager_->SetNextPrerenderContents(pc);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc->has_started());
GURL url1("http://news.google.com/");
DummyPrerenderContents* pc1 =
new DummyPrerenderContents(prerender_manager_.get(), url1);
prerender_manager_->SetNextPrerenderContents(pc1);
- prerender_manager_->AddPreload(url1);
+ prerender_manager_->AddSimplePreload(url1);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc1->has_started());
EXPECT_EQ(null, prerender_manager_->GetEntry(url));
@@ -157,21 +171,21 @@
new DummyPrerenderContents(prerender_manager_.get(), url);
DummyPrerenderContents* null = NULL;
prerender_manager_->SetNextPrerenderContents(pc);
- prerender_manager_->AddPreload(url);
+ prerender_manager_->AddSimplePreload(url);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc->has_started());
GURL url1("http://news.google.com/");
DummyPrerenderContents* pc1 =
new DummyPrerenderContents(prerender_manager_.get(), url1);
prerender_manager_->SetNextPrerenderContents(pc1);
- prerender_manager_->AddPreload(url1);
+ prerender_manager_->AddSimplePreload(url1);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc1->has_started());
GURL url2("http://images.google.com/");
DummyPrerenderContents* pc2 =
new DummyPrerenderContents(prerender_manager_.get(), url2);
prerender_manager_->SetNextPrerenderContents(pc2);
- prerender_manager_->AddPreload(url2);
+ prerender_manager_->AddSimplePreload(url2);
EXPECT_EQ(null, prerender_manager_->next_pc());
EXPECT_TRUE(pc2->has_started());
EXPECT_EQ(null, prerender_manager_->GetEntry(url));
@@ -180,3 +194,26 @@
delete pc1;
delete pc2;
}
+
+TEST_F(PrerenderManagerTest, AliasURLTest) {
+ GURL url("http://www.google.com/");
+ GURL alias_url1("http://www.google.com/index.html");
+ GURL alias_url2("http://google.com/");
+ GURL not_an_alias_url("http://google.com/index.html");
+ std::vector<GURL> alias_urls;
+ alias_urls.push_back(alias_url1);
+ alias_urls.push_back(alias_url2);
+ DummyPrerenderContents* pc =
+ new DummyPrerenderContents(prerender_manager_.get(), url, alias_urls);
+ prerender_manager_->SetNextPrerenderContents(pc);
+ prerender_manager_->AddSimplePreload(url);
+ EXPECT_EQ(NULL, prerender_manager_->GetEntry(not_an_alias_url));
+ EXPECT_EQ(pc, prerender_manager_->GetEntry(alias_url1));
+ prerender_manager_->SetNextPrerenderContents(pc);
+ prerender_manager_->AddSimplePreload(url);
+ EXPECT_EQ(pc, prerender_manager_->GetEntry(alias_url2));
+ prerender_manager_->SetNextPrerenderContents(pc);
+ prerender_manager_->AddSimplePreload(url);
+ EXPECT_EQ(pc, prerender_manager_->GetEntry(url));
+ delete pc;
+}
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | chrome/browser/prerender/prerender_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698