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

Unified Diff: chrome/browser/history/top_sites_unittest.cc

Issue 2948008: Fix missing thumbnails for new profile with TopSites. (Closed)
Patch Set: After second review. Created 10 years, 5 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
« no previous file with comments | « chrome/browser/history/top_sites_database.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/top_sites_unittest.cc
diff --git a/chrome/browser/history/top_sites_unittest.cc b/chrome/browser/history/top_sites_unittest.cc
index e81219e9fb31a022eab64c50ab25da32055d90df..bb5aebab9f258728290475f75e4f3e57d6dc778f 100644
--- a/chrome/browser/history/top_sites_unittest.cc
+++ b/chrome/browser/history/top_sites_unittest.cc
@@ -352,7 +352,7 @@ TEST_F(TopSitesTest, SetPageThumbnail) {
GURL url1a("http://google.com/");
GURL url1b("http://www.google.com/");
GURL url2("http://images.google.com/");
- GURL nonexistant_url("http://news.google.com/");
+ GURL invalid_url("chrome://favicon/http://google.com/");
std::vector<MostVisitedURL> list;
AppendMostVisitedURL(&list, url2);
@@ -377,8 +377,8 @@ TEST_F(TopSitesTest, SetPageThumbnail) {
ThumbnailScore medium_score(0.5, true, true, now);
ThumbnailScore high_score(0.0, true, true, now);
- // Setting the thumbnail for nonexistant pages should fail.
- EXPECT_FALSE(top_sites().SetPageThumbnail(nonexistant_url,
+ // Setting the thumbnail for invalid pages should fail.
+ EXPECT_FALSE(top_sites().SetPageThumbnail(invalid_url,
thumbnail, medium_score));
// Setting the thumbnail for url2 should succeed, lower scores shouldn't
@@ -902,4 +902,47 @@ TEST_F(TopSitesTest, CancelingRequestsForTopSites) {
EXPECT_EQ("http://2.com/", urls()[1].url.spec());
}
+TEST_F(TopSitesTest, AddTemporaryThumbnail) {
+ ChromeThread db_loop(ChromeThread::DB, MessageLoop::current());
+ GURL unknown_url("http://news.google.com/");
+ GURL invalid_url("chrome://thumb/http://google.com/");
+ GURL url1a("http://google.com/");
+ GURL url1b("http://www.google.com/");
+
+ // Create a dummy thumbnail.
+ SkBitmap thumbnail;
+ thumbnail.setConfig(SkBitmap::kARGB_8888_Config, 4, 4);
+ thumbnail.allocPixels();
+ thumbnail.eraseRGB(0x00, 0x00, 0x00);
+
+ ThumbnailScore medium_score(0.5, true, true, base::Time::Now());
+
+ // Don't store thumbnails for Javascript URLs.
+ EXPECT_FALSE(top_sites().SetPageThumbnail(invalid_url,
+ thumbnail, medium_score));
+ // Store thumbnails for unknown (but valid) URLs temporarily - calls
+ // AddTemporaryThumbnail.
+ EXPECT_TRUE(top_sites().SetPageThumbnail(unknown_url,
+ thumbnail, medium_score));
+
+ std::vector<MostVisitedURL> list;
+
+ MostVisitedURL mv;
+ mv.url = unknown_url;
+ mv.redirects.push_back(mv.url);
+ mv.redirects.push_back(url1a);
+ mv.redirects.push_back(url1b);
+ list.push_back(mv);
+
+ // Update URLs - use temporary thumbnails.
+ top_sites().UpdateMostVisited(list);
+
+ RefCountedBytes* out = NULL;
+ ASSERT_TRUE(top_sites().GetPageThumbnail(unknown_url, &out));
+ scoped_ptr<SkBitmap> out_bitmap(gfx::JPEGCodec::Decode(out->front(),
+ out->size()));
+ EXPECT_EQ(0, memcmp(thumbnail.getPixels(), out_bitmap->getPixels(),
+ thumbnail.getSize()));
+}
+
} // namespace history
« no previous file with comments | « chrome/browser/history/top_sites_database.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698