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; |
+} |