Index: components/history/core/browser/history_backend_db_unittest.cc |
diff --git a/components/history/core/browser/history_backend_db_unittest.cc b/components/history/core/browser/history_backend_db_unittest.cc |
index 972491fd2221b566c3cc94a2c8d0b1b7732aeb55..9090fd7ca29b9bd2f90427657a859f4f2114a6a7 100644 |
--- a/components/history/core/browser/history_backend_db_unittest.cc |
+++ b/components/history/core/browser/history_backend_db_unittest.cc |
@@ -1004,8 +1004,8 @@ TEST_F(HistoryBackendDBTest, MigratePresentations) { |
// Re-open the db, triggering migration. |
CreateBackendAndDatabase(); |
- std::vector<std::unique_ptr<PageUsageData>> results = |
- db_->QuerySegmentUsage(segment_time, 10); |
+ std::vector<std::unique_ptr<PageUsageData>> results = db_->QuerySegmentUsage( |
+ segment_time, 10, base::Callback<bool(const GURL&)>()); |
ASSERT_EQ(1u, results.size()); |
EXPECT_EQ(url, results[0]->GetURL()); |
EXPECT_EQ(segment_id, results[0]->GetID()); |
@@ -1049,5 +1049,49 @@ TEST_F(HistoryBackendDBTest, CheckLastCompatibleVersion) { |
} |
} |
+bool FilterURL(const GURL& url) { |
+ return url.SchemeIsHTTPOrHTTPS(); |
+} |
+ |
+TEST_F(HistoryBackendDBTest, QuerySegmentUsage) { |
+ CreateBackendAndDatabase(); |
+ |
+ const GURL url1("file://bar"); |
+ const GURL url2("http://www.foo.com"); |
+ const int visit_count1 = 10; |
+ const int visit_count2 = 5; |
+ const base::Time time(base::Time::Now()); |
+ |
+ URLID url_id1 = db_->AddURL(URLRow(url1)); |
+ ASSERT_NE(0, url_id1); |
+ URLID url_id2 = db_->AddURL(URLRow(url2)); |
+ ASSERT_NE(0, url_id2); |
+ |
+ SegmentID segment_id1 = db_->CreateSegment( |
+ url_id1, VisitSegmentDatabase::ComputeSegmentName(url1)); |
+ ASSERT_NE(0, segment_id1); |
+ SegmentID segment_id2 = db_->CreateSegment( |
+ url_id2, VisitSegmentDatabase::ComputeSegmentName(url2)); |
+ ASSERT_NE(0, segment_id2); |
+ |
+ ASSERT_TRUE(db_->IncreaseSegmentVisitCount(segment_id1, time, visit_count1)); |
+ ASSERT_TRUE(db_->IncreaseSegmentVisitCount(segment_id2, time, visit_count2)); |
+ |
+ // Without a filter, the "file://" URL should win. |
+ std::vector<std::unique_ptr<PageUsageData>> results = |
+ db_->QuerySegmentUsage(time, 1, base::Callback<bool(const GURL&)>()); |
+ ASSERT_EQ(1u, results.size()); |
+ EXPECT_EQ(url1, results[0]->GetURL()); |
+ EXPECT_EQ(segment_id1, results[0]->GetID()); |
+ |
+ // With the filter, the "file://" URL should be filtered out, so the "http://" |
+ // URL should win instead. |
+ std::vector<std::unique_ptr<PageUsageData>> results2 = |
+ db_->QuerySegmentUsage(time, 1, base::Bind(&FilterURL)); |
+ ASSERT_EQ(1u, results2.size()); |
+ EXPECT_EQ(url2, results2[0]->GetURL()); |
+ EXPECT_EQ(segment_id2, results2[0]->GetID()); |
+} |
+ |
} // namespace |
} // namespace history |