| OLD | NEW |
| 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 937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 948 UnitTestPrerenderManager::kNavigationRecordWindowMs + 500)); | 948 UnitTestPrerenderManager::kNavigationRecordWindowMs + 500)); |
| 949 | 949 |
| 950 DummyPrerenderContents* prerender_contents = | 950 DummyPrerenderContents* prerender_contents = |
| 951 prerender_manager()->CreateNextPrerenderContents( | 951 prerender_manager()->CreateNextPrerenderContents( |
| 952 url, FINAL_STATUS_USED); | 952 url, FINAL_STATUS_USED); |
| 953 EXPECT_TRUE(AddSimplePrerender(url)); | 953 EXPECT_TRUE(AddSimplePrerender(url)); |
| 954 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 954 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 955 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 955 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 956 } | 956 } |
| 957 | 957 |
| 958 // Tests that our PPLT dummy prerender gets created properly. | |
| 959 TEST_F(PrerenderTest, PPLTDummy) { | |
| 960 RestorePrerenderMode restore_prerender_mode; | |
| 961 PrerenderManager::SetMode( | |
| 962 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP); | |
| 963 | |
| 964 GURL url("http://www.google.com/"); | |
| 965 DummyPrerenderContents* prerender_contents = | |
| 966 prerender_manager()->CreateNextPrerenderContents( | |
| 967 url, FINAL_STATUS_UNSUPPORTED_SCHEME); | |
| 968 EXPECT_TRUE(AddSimplePrerender(url)); | |
| 969 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | |
| 970 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); | |
| 971 | |
| 972 DummyPrerenderContents* pplt_dummy_contents = | |
| 973 prerender_manager()->CreateNextPrerenderContents(url, | |
| 974 FINAL_STATUS_USED); | |
| 975 GURL ftp_url("ftp://ftp.google.com/"); | |
| 976 // Adding this ftp URL will force the expected unsupported scheme error. | |
| 977 prerender_contents->AddAliasURL(ftp_url); | |
| 978 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); | |
| 979 | |
| 980 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->FindAndUseEntry(url)); | |
| 981 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); | |
| 982 } | |
| 983 | |
| 984 // Tests that our PPLT dummy prerender gets created properly, even | |
| 985 // when navigating to a page that has been recently navigated to. | |
| 986 TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) { | |
| 987 RestorePrerenderMode restore_prerender_mode; | |
| 988 PrerenderManager::SetMode( | |
| 989 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP); | |
| 990 | |
| 991 GURL url("http://www.google.com/"); | |
| 992 DummyPrerenderContents* prerender_contents = | |
| 993 prerender_manager()->CreateNextPrerenderContents( | |
| 994 url, FINAL_STATUS_UNSUPPORTED_SCHEME); | |
| 995 EXPECT_TRUE(AddSimplePrerender(url)); | |
| 996 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | |
| 997 | |
| 998 DummyPrerenderContents* pplt_dummy_contents = | |
| 999 prerender_manager()->CreateNextPrerenderContents(url, | |
| 1000 FINAL_STATUS_USED); | |
| 1001 prerender_manager()->RecordNavigation(url); | |
| 1002 GURL ftp_url("ftp://ftp.google.com/"); | |
| 1003 prerender_contents->AddAliasURL(ftp_url); | |
| 1004 | |
| 1005 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->FindAndUseEntry(url)); | |
| 1006 } | |
| 1007 | |
| 1008 TEST_F(PrerenderTest, PPLTLateCancel) { | |
| 1009 RestorePrerenderMode restore_prerender_mode; | |
| 1010 PrerenderManager::SetMode( | |
| 1011 PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP); | |
| 1012 | |
| 1013 GURL url("http://www.google.com"); | |
| 1014 DummyPrerenderContents* prerender_contents = | |
| 1015 prerender_manager()->CreateNextPrerenderContents( | |
| 1016 url, FINAL_STATUS_JAVASCRIPT_ALERT); | |
| 1017 EXPECT_TRUE(AddSimplePrerender(url)); | |
| 1018 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | |
| 1019 // Force the creation of a match complete dummy. | |
| 1020 DummyPrerenderContents* duplicate_prerender_contents = | |
| 1021 prerender_manager()->CreateNextPrerenderContents(url, | |
| 1022 FINAL_STATUS_CANCELLED); | |
| 1023 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); | |
| 1024 prerender_contents->Destroy(FINAL_STATUS_JAVASCRIPT_ALERT); | |
| 1025 ASSERT_EQ(duplicate_prerender_contents, prerender_manager()->FindEntry(url)); | |
| 1026 | |
| 1027 // Make sure that events on prerender handles propogate to the match | |
| 1028 // complete replacement. | |
| 1029 DummyPrerenderContents* null = NULL; | |
| 1030 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, | |
| 1031 last_prerender_id()); | |
| 1032 ASSERT_EQ(null, prerender_manager()->FindEntry(url)); | |
| 1033 } | |
| 1034 | |
| 1035 // Tests that the prerender manager matches include the fragment. | 958 // Tests that the prerender manager matches include the fragment. |
| 1036 TEST_F(PrerenderTest, FragmentMatchesTest) { | 959 TEST_F(PrerenderTest, FragmentMatchesTest) { |
| 1037 GURL fragment_url("http://www.google.com/#test"); | 960 GURL fragment_url("http://www.google.com/#test"); |
| 1038 | 961 |
| 1039 DummyPrerenderContents* prerender_contents = | 962 DummyPrerenderContents* prerender_contents = |
| 1040 prerender_manager()->CreateNextPrerenderContents(fragment_url, | 963 prerender_manager()->CreateNextPrerenderContents(fragment_url, |
| 1041 FINAL_STATUS_USED); | 964 FINAL_STATUS_USED); |
| 1042 EXPECT_TRUE(AddSimplePrerender(fragment_url)); | 965 EXPECT_TRUE(AddSimplePrerender(fragment_url)); |
| 1043 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 966 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1044 ASSERT_EQ(prerender_contents, | 967 ASSERT_EQ(prerender_contents, |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1700 CHECK(prerender_handle.get()); | 1623 CHECK(prerender_handle.get()); |
| 1701 EXPECT_TRUE(prerender_handle->IsPrerendering()); | 1624 EXPECT_TRUE(prerender_handle->IsPrerendering()); |
| 1702 EXPECT_TRUE(prerender_contents->prerendering_has_started()); | 1625 EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| 1703 EXPECT_EQ(prerender_contents, prerender_handle->contents()); | 1626 EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
| 1704 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); | 1627 EXPECT_EQ(ORIGIN_INSTANT, prerender_handle->contents()->origin()); |
| 1705 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); | 1628 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| 1706 EXPECT_FALSE(prerender_handle->IsPrerendering()); | 1629 EXPECT_FALSE(prerender_handle->IsPrerendering()); |
| 1707 } | 1630 } |
| 1708 | 1631 |
| 1709 } // namespace prerender | 1632 } // namespace prerender |
| OLD | NEW |