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

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

Issue 9789001: Changes to add duration into history database. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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
Index: chrome/browser/history/history_backend_unittest.cc
diff --git a/chrome/browser/history/history_backend_unittest.cc b/chrome/browser/history/history_backend_unittest.cc
index b4c071674365348e3d4515e1a8954de6ec41d60e..cf7bd73cf0e2404a106036a15dbee297091ba8b9 100644
--- a/chrome/browser/history/history_backend_unittest.cc
+++ b/chrome/browser/history/history_backend_unittest.cc
@@ -1385,4 +1385,59 @@ TEST_F(HistoryBackendTest, QueryFilteredURLs) {
get_most_visited_list()[0].url.spec());
}
+TEST_F(HistoryBackendTest, UpdateVisitDetails) {
+ // This unit test will test adding and deleting visit details information.
+ ASSERT_TRUE(backend_.get());
+
+ GURL url1("http://www.cnn.com");
+ std::vector<VisitInfo> visit_info1, visit_info2;
+ Time start_ts = Time::Now() - base::TimeDelta::FromDays(5);
+ Time end_ts = start_ts + base::TimeDelta::FromDays(2);
+ visit_info1.push_back(VisitInfo(start_ts, content::PAGE_TRANSITION_LINK));
+
+ GURL url2("http://www.example.com");
+ visit_info2.push_back(VisitInfo(Time::Now() - base::TimeDelta::FromDays(10),
+ content::PAGE_TRANSITION_LINK));
+
+ // Clear all history.
+ backend_->DeleteAllHistory();
+
+ // Add the visits.
+ backend_->AddVisits(url1, visit_info1, history::SOURCE_BROWSED);
+ backend_->AddVisits(url2, visit_info2, history::SOURCE_BROWSED);
+
+ // Verify the entries for both visits were added in visit_details.
+ VisitVector visits1, visits2;
+ URLRow row;
+ VisitDetailMap visit_details;
+ URLID url_id1 = backend_->db()->GetRowForURL(url1, &row);
+ ASSERT_TRUE(backend_->db()->GetVisitsForURL(url_id1, &visits1));
+ ASSERT_EQ(1U, visits1.size());
+ backend_->db()->GetVisitDetails(visits1, &visit_details);
+ ASSERT_EQ(1U, visit_details.size());
+ EXPECT_EQ(0, visit_details[visits1[0].visit_id].duration.ToInternalValue());
+
+ URLID url_id2 = backend_->db()->GetRowForURL(url2, &row);
+ ASSERT_TRUE(backend_->db()->GetVisitsForURL(url_id2, &visits2));
+ ASSERT_EQ(1U, visits2.size());
+ backend_->db()->GetVisitDetails(visits2, &visit_details);
+ ASSERT_EQ(1U, visit_details.size());
+ EXPECT_EQ(0, visit_details[visits2[0].visit_id].duration.ToInternalValue());
+
+ // Update the visit to cnn.com.
+ backend_->UpdateVisitDetails(visits1[0].visit_id, end_ts);
+
+ // Check the duration for visiting cnn.com was correctly updated.
+ backend_->db()->GetVisitDetails(visits1, &visit_details);
+ ASSERT_EQ(1U, visit_details.size());
+ base::TimeDelta expected_duration = end_ts - start_ts;
+ EXPECT_EQ(expected_duration.ToInternalValue(),
+ visit_details[visits1[0].visit_id].duration.ToInternalValue());
+
+ // Remove the visit to cnn.com should also remove its details.
+ ASSERT_TRUE(backend_->RemoveVisits(visits1));
+ backend_->db()->GetVisitDetails(visits1, &visit_details);
+ ASSERT_EQ(0U, visit_details.size());
+}
+
} // namespace history

Powered by Google App Engine
This is Rietveld 408576698