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

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

Issue 1854643002: Implement PrerenderManager::AddPrerenderForOffline() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Makes offline originated prerenders unfindable Created 4 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 420
421 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { 421 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) {
422 GURL url("http://www.google.com/"); 422 GURL url("http://www.google.com/");
423 RestorePrerenderMode restore_prerender_mode; 423 RestorePrerenderMode restore_prerender_mode;
424 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); 424 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
425 425
426 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); 426 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
427 EXPECT_FALSE(AddSimplePrerender(url)); 427 EXPECT_FALSE(AddSimplePrerender(url));
428 } 428 }
429 429
430 TEST_F(PrerenderTest, OfflinePrerenderIgnoresThirdPartyCookiesPref) {
431 GURL url("http://www.google.com/");
432 RestorePrerenderMode restore_prerender_mode;
433 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
434
435 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
436 DummyPrerenderContents* prerender_contents =
437 prerender_manager()->CreateNextPrerenderContents(
438 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN);
439 scoped_ptr<PrerenderHandle> prerender_handle(
440 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize));
441 EXPECT_TRUE(prerender_handle);
442 EXPECT_TRUE(prerender_handle->IsPrerendering());
443 EXPECT_TRUE(prerender_contents->prerendering_has_started());
444 EXPECT_EQ(prerender_contents, prerender_handle->contents());
445 EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin());
446 }
447
430 TEST_F(PrerenderTest, FoundTest) { 448 TEST_F(PrerenderTest, FoundTest) {
431 GURL url("http://www.google.com/"); 449 GURL url("http://www.google.com/");
432 DummyPrerenderContents* prerender_contents = 450 DummyPrerenderContents* prerender_contents =
433 prerender_manager()->CreateNextPrerenderContents( 451 prerender_manager()->CreateNextPrerenderContents(
434 url, 452 url,
435 FINAL_STATUS_USED); 453 FINAL_STATUS_USED);
436 EXPECT_TRUE(AddSimplePrerender(url)); 454 EXPECT_TRUE(AddSimplePrerender(url));
437 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 455 EXPECT_TRUE(prerender_contents->prerendering_has_started());
438 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); 456 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
439 } 457 }
440 458
459 TEST_F(PrerenderTest, UnfindableOfflinePrerenderTest) {
460 GURL url("http://www.google.com/");
461 DummyPrerenderContents* prerender_contents =
462 prerender_manager()->CreateNextPrerenderContents(
463 url, ORIGIN_OFFLINE, FINAL_STATUS_MANAGER_SHUTDOWN);
464 scoped_ptr<PrerenderHandle> prerender_handle(
465 prerender_manager()->AddPrerenderForOffline(url, nullptr, kSize));
466 EXPECT_TRUE(prerender_handle);
467 EXPECT_TRUE(prerender_handle->IsPrerendering());
468 EXPECT_TRUE(prerender_contents->prerendering_has_started());
469 ASSERT_EQ(nullptr, prerender_manager()->FindAndUseEntry(url));
470 }
471
441 // Make sure that if queue a request, and a second prerender request for the 472 // Make sure that if queue a request, and a second prerender request for the
442 // same URL comes in, that the second request attaches to the first prerender, 473 // same URL comes in, that the second request attaches to the first prerender,
443 // and we don't use the second prerender contents. 474 // and we don't use the second prerender contents.
444 TEST_F(PrerenderTest, DuplicateTest) { 475 TEST_F(PrerenderTest, DuplicateTest) {
445 SetConcurrency(2); 476 SetConcurrency(2);
446 GURL url("http://www.google.com/"); 477 GURL url("http://www.google.com/");
447 DummyPrerenderContents* prerender_contents = 478 DummyPrerenderContents* prerender_contents =
448 prerender_manager()->CreateNextPrerenderContents( 479 prerender_manager()->CreateNextPrerenderContents(
449 url, 480 url,
450 FINAL_STATUS_USED); 481 FINAL_STATUS_USED);
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
1104 url, 1135 url,
1105 ORIGIN_EXTERNAL_REQUEST, 1136 ORIGIN_EXTERNAL_REQUEST,
1106 FINAL_STATUS_MANAGER_SHUTDOWN); 1137 FINAL_STATUS_MANAGER_SHUTDOWN);
1107 std::unique_ptr<PrerenderHandle> prerender_handle( 1138 std::unique_ptr<PrerenderHandle> prerender_handle(
1108 prerender_manager()->AddPrerenderFromExternalRequest( 1139 prerender_manager()->AddPrerenderFromExternalRequest(
1109 url, content::Referrer(), nullptr, kSize)); 1140 url, content::Referrer(), nullptr, kSize));
1110 EXPECT_FALSE(prerender_handle); 1141 EXPECT_FALSE(prerender_handle);
1111 EXPECT_FALSE(prerender_contents->prerendering_has_started()); 1142 EXPECT_FALSE(prerender_contents->prerendering_has_started());
1112 } 1143 }
1113 1144
1114 TEST_F(PrerenderTest,PrerenderAllowedOnCellularWithForcedOrigin) { 1145 TEST_F(PrerenderTest, PrerenderAllowedForOfflineAndForcedCellular) {
1146 const Origin origins[] = {
1147 ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR,
1148 ORIGIN_OFFLINE,
1149 };
1150
1115 EnablePrerender(); 1151 EnablePrerender();
1116 std::unique_ptr<net::NetworkChangeNotifier> mock( 1152 std::unique_ptr<net::NetworkChangeNotifier> mock(
1117 new MockNetworkChangeNotifier4G); 1153 new MockNetworkChangeNotifier4G);
1118 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular( 1154 EXPECT_TRUE(net::NetworkChangeNotifier::IsConnectionCellular(
1119 net::NetworkChangeNotifier::GetConnectionType())); 1155 net::NetworkChangeNotifier::GetConnectionType()));
1120 GURL url("http://www.google.com/"); 1156 GURL url("http://www.google.com/");
1121 DummyPrerenderContents* prerender_contents = 1157 for (Origin origin: origins) {
1122 prerender_manager()->CreateNextPrerenderContents( 1158 DummyPrerenderContents* prerender_contents =
1123 url, 1159 prerender_manager()->CreateNextPrerenderContents(
1124 ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, 1160 url, origin, FINAL_STATUS_USED);
1125 FINAL_STATUS_USED); 1161 scoped_ptr<PrerenderHandle> prerender_handle;
1126 std::unique_ptr<PrerenderHandle> prerender_handle( 1162 if (origin == ORIGIN_OFFLINE) {(
1127 prerender_manager()->AddPrerenderOnCellularFromExternalRequest( 1163 prerender_handle.reset(prerender_manager()->AddPrerenderForOffline(
1128 url, content::Referrer(), nullptr, kSize)); 1164 url, nullptr, kSize)));
1129 EXPECT_TRUE(prerender_handle); 1165 } else {(
1130 EXPECT_TRUE(prerender_handle->IsPrerendering()); 1166 prerender_handle.reset(
1131 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 1167 prerender_manager()->AddPrerenderOnCellularFromExternalRequest(
1132 EXPECT_EQ(prerender_contents, prerender_handle->contents()); 1168 url, content::Referrer(), nullptr, kSize)));
1133 EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, 1169 }
1134 prerender_handle->contents()->origin()); 1170 EXPECT_TRUE(prerender_handle);
1135 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); 1171 EXPECT_TRUE(prerender_handle->IsPrerendering());
1172 EXPECT_TRUE(prerender_contents->prerendering_has_started());
1173 EXPECT_EQ(prerender_contents, prerender_handle->contents());
1174 EXPECT_EQ(origin, prerender_handle->contents()->origin());
1175 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
1176 }
1136 } 1177 }
1137 1178
1138 TEST_F(PrerenderTest, LinkManagerCancel) { 1179 TEST_F(PrerenderTest, LinkManagerCancel) {
1139 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1180 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
1140 GURL url("http://www.myexample.com"); 1181 GURL url("http://www.myexample.com");
1141 DummyPrerenderContents* prerender_contents = 1182 DummyPrerenderContents* prerender_contents =
1142 prerender_manager()->CreateNextPrerenderContents( 1183 prerender_manager()->CreateNextPrerenderContents(
1143 url, FINAL_STATUS_CANCELLED); 1184 url, FINAL_STATUS_CANCELLED);
1144 1185
1145 EXPECT_TRUE(AddSimplePrerender(url)); 1186 EXPECT_TRUE(AddSimplePrerender(url));
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
1656 CHECK(prerender_handle.get()); 1697 CHECK(prerender_handle.get());
1657 EXPECT_TRUE(prerender_handle->IsPrerendering()); 1698 EXPECT_TRUE(prerender_handle->IsPrerendering());
1658 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 1699 EXPECT_TRUE(prerender_contents->prerendering_has_started());
1659 EXPECT_EQ(prerender_contents, prerender_handle->contents()); 1700 EXPECT_EQ(prerender_contents, prerender_handle->contents());
1660 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); 1701 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin());
1661 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); 1702 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
1662 EXPECT_FALSE(prerender_handle->IsPrerendering()); 1703 EXPECT_FALSE(prerender_handle->IsPrerendering());
1663 } 1704 }
1664 1705
1665 } // namespace prerender 1706 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698