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

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

Issue 39053005: Adding last_forced column to thumbnails database. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Answered Brett's comments. Created 7 years, 2 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') | chrome/test/data/History/TopSites.v3.sql » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/top_sites_database_unittest.cc
diff --git a/chrome/browser/history/top_sites_database_unittest.cc b/chrome/browser/history/top_sites_database_unittest.cc
index bcd119aee1220a76b43e7ad0d96ecd5db6e168c7..40040655ba1e99f1f7be813b2a46d5cc15bcb1de 100644
--- a/chrome/browser/history/top_sites_database_unittest.cc
+++ b/chrome/browser/history/top_sites_database_unittest.cc
@@ -5,6 +5,7 @@
#include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h"
#include "base/path_service.h"
+#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/history/top_sites_database.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/tools/profiles/thumbnail-inl.h"
@@ -46,8 +47,8 @@ void VerifyTablesAndColumns(sql::Connection* db) {
// [url], [url_rank], [title], [thumbnail], [redirects],
// [boring_score], [good_clipping], [at_top], [last_updated], and
- // [load_completed].
- EXPECT_EQ(10u, sql::test::CountTableColumns(db, "thumbnails"));
+ // [load_completed], [last_forced]
+ EXPECT_EQ(11u, sql::test::CountTableColumns(db, "thumbnails"));
}
} // namespace
@@ -120,4 +121,155 @@ TEST_F(TopSitesDatabaseTest, Version2) {
ASSERT_EQ(2u, thumbnails.size());
}
+TEST_F(TopSitesDatabaseTest, Version3) {
+ ASSERT_TRUE(CreateDatabaseFromSQL(file_name_, "TopSites.v3.sql"));
+
+ TopSitesDatabase db;
+ ASSERT_TRUE(db.Init(file_name_));
+
+ VerifyTablesAndColumns(db.db_.get());
+
+ // Basic operational check.
+ MostVisitedURLList urls;
+ std::map<GURL, Images> thumbnails;
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(3u, urls.size());
+ ASSERT_EQ(3u, thumbnails.size());
+ EXPECT_EQ(kUrl, urls[0].url); // [0] because of url_rank.
+ // kGoogleThumbnail includes nul terminator.
+ ASSERT_EQ(sizeof(kGoogleThumbnail) - 1,
+ thumbnails[urls[0].url].thumbnail->size());
+ EXPECT_TRUE(!memcmp(thumbnails[urls[0].url].thumbnail->front(),
+ kGoogleThumbnail, sizeof(kGoogleThumbnail) - 1));
+
+ ASSERT_TRUE(db.RemoveURL(urls[1]));
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(2u, urls.size());
+ ASSERT_EQ(2u, thumbnails.size());
+}
+
+TEST_F(TopSitesDatabaseTest, AddRemoveEditThumbnails) {
+ ASSERT_TRUE(CreateDatabaseFromSQL(file_name_, "TopSites.v3.sql"));
+
+ TopSitesDatabase db;
+ ASSERT_TRUE(db.Init(file_name_));
+
+ // Add a new URL, not forced, rank = 1.
+ GURL mapsUrl = GURL("http://maps.google.com/");
+ MostVisitedURL url1(mapsUrl, ASCIIToUTF16("Google Maps"));
+ db.SetPageThumbnail(url1, 1, Images());
+
+ MostVisitedURLList urls;
+ std::map<GURL, Images> thumbnails;
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(4u, urls.size());
+ ASSERT_EQ(4u, thumbnails.size());
+ EXPECT_EQ(kUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url);
+
+ // Add a new URL, forced.
+ GURL driveUrl = GURL("http://drive.google.com/");
+ MostVisitedURL url2(driveUrl, ASCIIToUTF16("Google Drive"));
+ url2.last_forced_time = base::Time::FromJsTime(789714000000); // 10/1/1995
+ db.SetPageThumbnail(url2, TopSitesDatabase::kRankOfForcedURL, Images());
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(5u, urls.size());
+ ASSERT_EQ(5u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url); // Forced URLs always appear first.
+ EXPECT_EQ(kUrl, urls[1].url);
+ EXPECT_EQ(mapsUrl, urls[2].url);
+
+ // Add a new URL, forced (earlier).
+ GURL plusUrl = GURL("http://plus.google.com/");
+ MostVisitedURL url3(plusUrl, ASCIIToUTF16("Google Plus"));
+ url3.last_forced_time = base::Time::FromJsTime(787035600000); // 10/12/1994
+ db.SetPageThumbnail(url3, TopSitesDatabase::kRankOfForcedURL, Images());
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(plusUrl, urls[0].url); // New forced URL should appear first.
+ EXPECT_EQ(driveUrl, urls[1].url);
+ EXPECT_EQ(kUrl, urls[2].url);
+ EXPECT_EQ(mapsUrl, urls[3].url);
+
+ // Change the last_forced_time of a forced URL.
+ url3.last_forced_time = base::Time::FromJsTime(792392400000); // 10/2/1995
+ db.SetPageThumbnail(url3, TopSitesDatabase::kRankOfForcedURL, Images());
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(plusUrl, urls[1].url); // Forced URL should have moved second.
+ EXPECT_EQ(kUrl, urls[2].url);
+ EXPECT_EQ(mapsUrl, urls[3].url);
+
+ // Change a non-forced URL to forced using UpdatePageRank.
+ url1.last_forced_time = base::Time::FromJsTime(792219600000); // 8/2/1995
+ db.UpdatePageRank(url1, TopSitesDatabase::kRankOfForcedURL);
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url); // Maps moves to second forced URL.
+ EXPECT_EQ(plusUrl, urls[2].url);
+ EXPECT_EQ(kUrl, urls[3].url);
+
+ // Change a forced URL to non-forced using SetPageThumbnail.
+ db.SetPageThumbnail(url3, 1, Images());
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url);
+ EXPECT_EQ(kUrl, urls[2].url);
+ EXPECT_EQ(plusUrl, urls[3].url); // Plus moves to second non-forced URL.
+
+ // Change a non-forced URL to earlier non-forced using UpdatePageRank.
+ url3.last_forced_time = base::Time();
+ db.UpdatePageRank(url3, 0);
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url);
+ EXPECT_EQ(plusUrl, urls[2].url); // Plus moves to first non-forced URL.
+ EXPECT_EQ(kUrl, urls[3].url);
+
+ // Change a non-forced URL to later non-forced using SetPageThumbnail.
+ db.SetPageThumbnail(url3, 2, Images());
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(6u, urls.size());
+ ASSERT_EQ(6u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url);
+ EXPECT_EQ(kUrl, urls[2].url);
+ EXPECT_EQ(plusUrl, urls[4].url); // Plus moves to third non-forced URL.
+
+ // Remove a non-forced URL.
+ db.RemoveURL(url3);
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(5u, urls.size());
+ ASSERT_EQ(5u, thumbnails.size());
+ EXPECT_EQ(driveUrl, urls[0].url);
+ EXPECT_EQ(mapsUrl, urls[1].url);
+ EXPECT_EQ(kUrl, urls[2].url);
+
+ // Remove a forced URL.
+ db.RemoveURL(url2);
+
+ db.GetPageThumbnails(&urls, &thumbnails);
+ ASSERT_EQ(4u, urls.size());
+ ASSERT_EQ(4u, thumbnails.size());
+ EXPECT_EQ(mapsUrl, urls[0].url);
+ EXPECT_EQ(kUrl, urls[1].url);
+}
+
} // namespace history
« no previous file with comments | « chrome/browser/history/top_sites_database.cc ('k') | chrome/test/data/History/TopSites.v3.sql » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698