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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/format_macros.h" | 8 #include "base/format_macros.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/scoped_temp_dir.h" | 10 #include "base/scoped_temp_dir.h" |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 | 851 |
852 { | 852 { |
853 TopSitesQuerier querier; | 853 TopSitesQuerier querier; |
854 querier.QueryTopSites(top_sites(), false); | 854 querier.QueryTopSites(top_sites(), false); |
855 | 855 |
856 ASSERT_EQ(GetPrepopulatePages().size(), querier.urls().size()); | 856 ASSERT_EQ(GetPrepopulatePages().size(), querier.urls().size()); |
857 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); | 857 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); |
858 } | 858 } |
859 } | 859 } |
860 | 860 |
861 TEST_F(TopSitesTest, PinnedURLsDeleted) { | |
862 GURL google1_url("http://google.com"); | |
863 GURL google2_url("http://google.com/redirect"); | |
864 GURL google3_url("http://www.google.com"); | |
865 string16 google_title(ASCIIToUTF16("Google")); | |
866 GURL news_url("http://news.google.com"); | |
867 string16 news_title(ASCIIToUTF16("Google News")); | |
868 | |
869 AddPageToHistory(google1_url, google_title); | |
870 AddPageToHistory(news_url, news_title); | |
871 | |
872 RefreshTopSitesAndRecreate(); | |
873 | |
874 { | |
875 TopSitesQuerier querier; | |
876 querier.QueryTopSites(top_sites(), false); | |
877 | |
878 // Take into account prepopulated URLs. | |
879 ASSERT_EQ(GetPrepopulatePages().size() + 2, querier.urls().size()); | |
880 } | |
881 | |
882 top_sites()->AddPinnedURL(news_url, 3); | |
883 EXPECT_TRUE(top_sites()->IsURLPinned(news_url)); | |
884 | |
885 DeleteURL(news_url); | |
886 WaitForHistory(); | |
887 | |
888 { | |
889 TopSitesQuerier querier; | |
890 querier.QueryTopSites(top_sites(), false); | |
891 | |
892 // Take into account prepopulated URLs. | |
893 ASSERT_EQ(GetPrepopulatePages().size() + 1, querier.urls().size()); | |
894 EXPECT_FALSE(top_sites()->IsURLPinned(news_url)); | |
895 } | |
896 | |
897 history_service()->ExpireHistoryBetween( | |
898 std::set<GURL>(), base::Time(), base::Time(), | |
899 consumer(), base::Bind(&TopSitesTest::EmptyCallback, | |
900 base::Unretained(this))), | |
901 WaitForHistory(); | |
902 | |
903 { | |
904 TopSitesQuerier querier; | |
905 querier.QueryTopSites(top_sites(), false); | |
906 | |
907 // Take into account prepopulated URLs. | |
908 ASSERT_EQ(GetPrepopulatePages().size(), querier.urls().size()); | |
909 EXPECT_FALSE(top_sites()->IsURLPinned(google1_url)); | |
910 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); | |
911 } | |
912 } | |
913 | |
914 // Makes sure GetUpdateDelay is updated appropriately. | 861 // Makes sure GetUpdateDelay is updated appropriately. |
915 TEST_F(TopSitesTest, GetUpdateDelay) { | 862 TEST_F(TopSitesTest, GetUpdateDelay) { |
916 SetLastNumUrlsChanged(0); | 863 SetLastNumUrlsChanged(0); |
917 EXPECT_EQ(30, GetUpdateDelay().InSeconds()); | 864 EXPECT_EQ(30, GetUpdateDelay().InSeconds()); |
918 | 865 |
919 MostVisitedURLList url_list; | 866 MostVisitedURLList url_list; |
920 url_list.resize(20); | 867 url_list.resize(20); |
921 GURL tmp_url(GURL("http://x")); | 868 GURL tmp_url(GURL("http://x")); |
922 for (size_t i = 0; i < url_list.size(); ++i) { | 869 for (size_t i = 0; i < url_list.size(); ++i) { |
923 url_list[i].url = tmp_url; | 870 url_list[i].url = tmp_url; |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1200 { | 1147 { |
1201 TopSitesQuerier q; | 1148 TopSitesQuerier q; |
1202 q.QueryTopSites(top_sites(), true); | 1149 q.QueryTopSites(top_sites(), true); |
1203 ASSERT_EQ(2u + GetPrepopulatePages().size(), q.urls().size()); | 1150 ASSERT_EQ(2u + GetPrepopulatePages().size(), q.urls().size()); |
1204 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1151 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
1205 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | 1152 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); |
1206 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); | 1153 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); |
1207 } | 1154 } |
1208 } | 1155 } |
1209 | 1156 |
1210 // Tests variations of pinning/unpinning urls. | |
1211 TEST_F(TopSitesTest, PinnedURLs) { | |
1212 MostVisitedURLList pages; | |
1213 MostVisitedURL url, url1; | |
1214 url.url = GURL("http://bbc.com/"); | |
1215 url.redirects.push_back(url.url); | |
1216 pages.push_back(url); | |
1217 url1.url = GURL("http://google.com/"); | |
1218 url1.redirects.push_back(url1.url); | |
1219 pages.push_back(url1); | |
1220 | |
1221 SetTopSites(pages); | |
1222 | |
1223 EXPECT_FALSE(top_sites()->IsURLPinned(GURL("http://bbc.com/"))); | |
1224 | |
1225 { | |
1226 TopSitesQuerier q; | |
1227 q.QueryTopSites(top_sites(), true); | |
1228 ASSERT_EQ(2u + GetPrepopulatePages().size(), q.urls().size()); | |
1229 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | |
1230 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | |
1231 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); | |
1232 } | |
1233 | |
1234 top_sites()->AddPinnedURL(GURL("http://google.com/"), 3); | |
1235 EXPECT_FALSE(top_sites()->IsURLPinned(GURL("http://bbc.com/"))); | |
1236 EXPECT_FALSE(top_sites()->IsURLPinned(GetPrepopulatePages()[0].url)); | |
1237 | |
1238 { | |
1239 TopSitesQuerier q; | |
1240 q.QueryTopSites(top_sites(), true); | |
1241 ASSERT_EQ(4u, q.urls().size()); | |
1242 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | |
1243 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 1)); | |
1244 EXPECT_EQ("http://google.com/", q.urls()[3].url.spec()); | |
1245 } | |
1246 | |
1247 top_sites()->RemovePinnedURL(GURL("http://google.com/")); | |
1248 EXPECT_FALSE(top_sites()->IsURLPinned(GURL("http://google.com/"))); | |
1249 { | |
1250 TopSitesQuerier q; | |
1251 q.QueryTopSites(top_sites(), true); | |
1252 | |
1253 ASSERT_EQ(2u + GetPrepopulatePages().size(), q.urls().size()); | |
1254 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | |
1255 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | |
1256 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); | |
1257 } | |
1258 | |
1259 GURL prepopulate_url = GetPrepopulatePages()[0].url; | |
1260 top_sites()->AddPinnedURL(GURL("http://bbc.com"), 1); | |
1261 top_sites()->AddPinnedURL(prepopulate_url, 0); | |
1262 { | |
1263 TopSitesQuerier q; | |
1264 q.QueryTopSites(top_sites(), true); | |
1265 | |
1266 ASSERT_EQ(3u + GetPrepopulatePages().size() - 1, q.urls().size()); | |
1267 EXPECT_EQ(prepopulate_url, q.urls()[0].url); | |
1268 EXPECT_EQ("http://bbc.com/", q.urls()[1].url.spec()); | |
1269 EXPECT_EQ("http://google.com/", q.urls()[2].url.spec()); | |
1270 if (GetPrepopulatePages().size() > 1) | |
1271 EXPECT_EQ(GetPrepopulatePages()[1].url, q.urls()[3].url); | |
1272 } | |
1273 | |
1274 // Recreate and make sure state remains the same. | |
1275 RecreateTopSitesAndBlock(); | |
1276 { | |
1277 TopSitesQuerier q; | |
1278 q.QueryTopSites(top_sites(), true); | |
1279 | |
1280 ASSERT_EQ(3u + GetPrepopulatePages().size() - 1, q.urls().size()); | |
1281 EXPECT_EQ(prepopulate_url, q.urls()[0].url); | |
1282 EXPECT_EQ("http://bbc.com/", q.urls()[1].url.spec()); | |
1283 EXPECT_EQ("http://google.com/", q.urls()[2].url.spec()); | |
1284 if (GetPrepopulatePages().size() > 1) | |
1285 EXPECT_EQ(GetPrepopulatePages()[1].url, q.urls()[3].url); | |
1286 } | |
1287 } | |
1288 | |
1289 // Tests blacklisting and pinning. | |
1290 TEST_F(TopSitesTest, BlacklistingAndPinnedURLs) { | |
1291 MostVisitedURLList prepopulate_urls = GetPrepopulatePages(); | |
1292 if (prepopulate_urls.size() < 2) | |
1293 return; | |
1294 | |
1295 top_sites()->AddPinnedURL(prepopulate_urls[0].url, 1); | |
1296 top_sites()->AddBlacklistedURL(prepopulate_urls[1].url); | |
1297 | |
1298 { | |
1299 TopSitesQuerier q; | |
1300 q.QueryTopSites(top_sites(), true); | |
1301 | |
1302 ASSERT_LE(2u, q.urls().size()); | |
1303 EXPECT_EQ(GURL(), q.urls()[0].url); | |
1304 EXPECT_EQ(prepopulate_urls[0].url, q.urls()[1].url); | |
1305 } | |
1306 } | |
1307 | |
1308 // Makes sure prepopulated pages exist. | 1157 // Makes sure prepopulated pages exist. |
1309 TEST_F(TopSitesTest, AddPrepopulatedPages) { | 1158 TEST_F(TopSitesTest, AddPrepopulatedPages) { |
1310 TopSitesQuerier q; | 1159 TopSitesQuerier q; |
1311 q.QueryTopSites(top_sites(), true); | 1160 q.QueryTopSites(top_sites(), true); |
1312 EXPECT_EQ(GetPrepopulatePages().size(), q.urls().size()); | 1161 EXPECT_EQ(GetPrepopulatePages().size(), q.urls().size()); |
1313 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); | 1162 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); |
1314 | 1163 |
1315 MostVisitedURLList pages = q.urls(); | 1164 MostVisitedURLList pages = q.urls(); |
1316 EXPECT_FALSE(AddPrepopulatedPages(&pages)); | 1165 EXPECT_FALSE(AddPrepopulatedPages(&pages)); |
1317 | 1166 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1385 ui_test_utils::WindowedNotificationObserver observer( | 1234 ui_test_utils::WindowedNotificationObserver observer( |
1386 chrome::NOTIFICATION_TOP_SITES_LOADED, | 1235 chrome::NOTIFICATION_TOP_SITES_LOADED, |
1387 content::Source<Profile>(profile())); | 1236 content::Source<Profile>(profile())); |
1388 profile()->CreateTopSites(); | 1237 profile()->CreateTopSites(); |
1389 profile()->GetHistoryService(Profile::EXPLICIT_ACCESS)->UnloadBackend(); | 1238 profile()->GetHistoryService(Profile::EXPLICIT_ACCESS)->UnloadBackend(); |
1390 profile()->BlockUntilHistoryProcessesPendingRequests(); | 1239 profile()->BlockUntilHistoryProcessesPendingRequests(); |
1391 observer.Wait(); | 1240 observer.Wait(); |
1392 } | 1241 } |
1393 | 1242 |
1394 } // namespace history | 1243 } // namespace history |
OLD | NEW |