| 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..4bd9d291b2cf89488ba0fb00f13f4aa1660cfe25 100644
|
| --- a/chrome/browser/history/history_backend_unittest.cc
|
| +++ b/chrome/browser/history/history_backend_unittest.cc
|
| @@ -1385,4 +1385,52 @@ TEST_F(HistoryBackendTest, QueryFilteredURLs) {
|
| get_most_visited_list()[0].url.spec());
|
| }
|
|
|
| +TEST_F(HistoryBackendTest, UpdateVisitDuration) {
|
| + // 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;
|
| + URLID url_id1 = backend_->db()->GetRowForURL(url1, &row);
|
| + ASSERT_TRUE(backend_->db()->GetVisitsForURL(url_id1, &visits1));
|
| + ASSERT_EQ(1U, visits1.size());
|
| + EXPECT_EQ(0, visits1[0].visit_duration.ToInternalValue());
|
| +
|
| + URLID url_id2 = backend_->db()->GetRowForURL(url2, &row);
|
| + ASSERT_TRUE(backend_->db()->GetVisitsForURL(url_id2, &visits2));
|
| + ASSERT_EQ(1U, visits2.size());
|
| + EXPECT_EQ(0, visits2[0].visit_duration.ToInternalValue());
|
| +
|
| + // Update the visit to cnn.com.
|
| + backend_->UpdateVisitDuration(visits1[0].visit_id, end_ts);
|
| +
|
| + // Check the duration for visiting cnn.com was correctly updated.
|
| + ASSERT_TRUE(backend_->db()->GetVisitsForURL(url_id1, &visits1));
|
| + ASSERT_EQ(1U, visits1.size());
|
| + base::TimeDelta expected_duration = end_ts - start_ts;
|
| + EXPECT_EQ(expected_duration.ToInternalValue(),
|
| + visits1[0].visit_duration.ToInternalValue());
|
| +
|
| + // Remove the visit to cnn.com.
|
| + ASSERT_TRUE(backend_->RemoveVisits(visits1));
|
| +}
|
| +
|
| } // namespace history
|
|
|