OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <set> | 5 #include <set> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 HistoryBackendTest() : bookmark_model_(NULL), loaded_(false) {} | 104 HistoryBackendTest() : bookmark_model_(NULL), loaded_(false) {} |
105 virtual ~HistoryBackendTest() { | 105 virtual ~HistoryBackendTest() { |
106 } | 106 } |
107 | 107 |
108 // Callback for QueryMostVisited. | 108 // Callback for QueryMostVisited. |
109 void OnQueryMostVisited(CancelableRequestProvider::Handle handle, | 109 void OnQueryMostVisited(CancelableRequestProvider::Handle handle, |
110 history::MostVisitedURLList data) { | 110 history::MostVisitedURLList data) { |
111 most_visited_list_.swap(data); | 111 most_visited_list_.swap(data); |
112 } | 112 } |
113 | 113 |
| 114 // Callback for QueryFiltered. |
| 115 void OnQueryFiltered(CancelableRequestProvider::Handle handle, |
| 116 history::FilteredURLList data) { |
| 117 filtered_list_.swap(data); |
| 118 } |
| 119 |
114 const history::MostVisitedURLList& get_most_visited_list() const { | 120 const history::MostVisitedURLList& get_most_visited_list() const { |
115 return most_visited_list_; | 121 return most_visited_list_; |
116 } | 122 } |
117 | 123 |
| 124 const history::FilteredURLList& get_filtered_list() const { |
| 125 return filtered_list_; |
| 126 } |
| 127 |
118 protected: | 128 protected: |
119 scoped_refptr<HistoryBackend> backend_; // Will be NULL on init failure. | 129 scoped_refptr<HistoryBackend> backend_; // Will be NULL on init failure. |
120 scoped_ptr<InMemoryHistoryBackend> mem_backend_; | 130 scoped_ptr<InMemoryHistoryBackend> mem_backend_; |
121 | 131 |
122 void AddRedirectChain(const char* sequence[], int page_id) { | 132 void AddRedirectChain(const char* sequence[], int page_id) { |
123 AddRedirectChainWithTransitionAndTime(sequence, page_id, | 133 AddRedirectChainWithTransitionAndTime(sequence, page_id, |
124 content::PAGE_TRANSITION_LINK, | 134 content::PAGE_TRANSITION_LINK, |
125 Time::Now()); | 135 Time::Now()); |
126 } | 136 } |
127 | 137 |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 content::Details<HistoryDetails> det(details); | 241 content::Details<HistoryDetails> det(details); |
232 mem_backend_->Observe(type, content::Source<HistoryBackendTest>(NULL), det); | 242 mem_backend_->Observe(type, content::Source<HistoryBackendTest>(NULL), det); |
233 | 243 |
234 // The backend passes ownership of the details pointer to us. | 244 // The backend passes ownership of the details pointer to us. |
235 delete details; | 245 delete details; |
236 } | 246 } |
237 | 247 |
238 MessageLoop message_loop_; | 248 MessageLoop message_loop_; |
239 FilePath test_dir_; | 249 FilePath test_dir_; |
240 history::MostVisitedURLList most_visited_list_; | 250 history::MostVisitedURLList most_visited_list_; |
| 251 history::FilteredURLList filtered_list_; |
241 }; | 252 }; |
242 | 253 |
243 void HistoryBackendTestDelegate::SetInMemoryBackend(int backend_id, | 254 void HistoryBackendTestDelegate::SetInMemoryBackend(int backend_id, |
244 InMemoryHistoryBackend* backend) { | 255 InMemoryHistoryBackend* backend) { |
245 test_->SetInMemoryBackend(backend_id, backend); | 256 test_->SetInMemoryBackend(backend_id, backend); |
246 } | 257 } |
247 | 258 |
248 void HistoryBackendTestDelegate::BroadcastNotifications( | 259 void HistoryBackendTestDelegate::BroadcastNotifications( |
249 int type, | 260 int type, |
250 HistoryDetails* details) { | 261 HistoryDetails* details) { |
(...skipping 1035 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1286 false, | 1297 false, |
1287 tested_time - one_day + half_an_hour * 2, | 1298 tested_time - one_day + half_an_hour * 2, |
1288 &transition1, &transition2); | 1299 &transition1, &transition2); |
1289 | 1300 |
1290 redirect_sequence[0] = yahoo_sports_soccer; | 1301 redirect_sequence[0] = yahoo_sports_soccer; |
1291 AddRedirectChainWithTransitionAndTime(redirect_sequence, 0, | 1302 AddRedirectChainWithTransitionAndTime(redirect_sequence, 0, |
1292 kTypedTransition, | 1303 kTypedTransition, |
1293 tested_time - half_an_hour); | 1304 tested_time - half_an_hour); |
1294 backend_->Commit(); | 1305 backend_->Commit(); |
1295 | 1306 |
1296 scoped_refptr<QueryMostVisitedURLsRequest> request1 = | 1307 scoped_refptr<QueryFilteredURLsRequest> request1 = |
1297 new history::QueryMostVisitedURLsRequest( | 1308 new history::QueryFilteredURLsRequest( |
1298 base::Bind(&HistoryBackendTest::OnQueryMostVisited, | 1309 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
1299 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 1310 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
1300 HistoryBackendCancelableRequest cancellable_request; | 1311 HistoryBackendCancelableRequest cancellable_request; |
1301 cancellable_request.MockScheduleOfRequest<QueryMostVisitedURLsRequest>( | 1312 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
1302 request1); | 1313 request1); |
1303 | 1314 |
1304 VisitFilter filter; | 1315 VisitFilter filter; |
1305 // Time limit is |tested_time| +/- 45 min. | 1316 // Time limit is |tested_time| +/- 45 min. |
1306 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45); | 1317 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45); |
1307 filter.SetTimeInRangeFilter(tested_time - three_quarters_of_an_hour, | 1318 filter.SetTimeInRangeFilter(tested_time - three_quarters_of_an_hour, |
1308 tested_time + three_quarters_of_an_hour); | 1319 tested_time + three_quarters_of_an_hour); |
1309 backend_->QueryFilteredURLs(request1, 100, filter); | 1320 backend_->QueryFilteredURLs(request1, 100, filter); |
1310 | 1321 |
1311 ASSERT_EQ(4U, get_most_visited_list().size()); | 1322 ASSERT_EQ(4U, get_filtered_list().size()); |
1312 EXPECT_EQ(std::string(google), get_most_visited_list()[0].url.spec()); | 1323 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
1313 EXPECT_EQ(std::string(yahoo_sports_soccer), | 1324 EXPECT_EQ(std::string(yahoo_sports_soccer), |
1314 get_most_visited_list()[1].url.spec()); | 1325 get_filtered_list()[1].url.spec()); |
1315 EXPECT_EQ(std::string(yahoo), get_most_visited_list()[2].url.spec()); | 1326 EXPECT_EQ(std::string(yahoo), get_filtered_list()[2].url.spec()); |
1316 EXPECT_EQ(std::string(yahoo_sports), | 1327 EXPECT_EQ(std::string(yahoo_sports), |
1317 get_most_visited_list()[3].url.spec()); | 1328 get_filtered_list()[3].url.spec()); |
1318 | 1329 |
1319 // Time limit is between |tested_time| and |tested_time| + 2 hours. | 1330 // Time limit is between |tested_time| and |tested_time| + 2 hours. |
1320 scoped_refptr<QueryMostVisitedURLsRequest> request2 = | 1331 scoped_refptr<QueryFilteredURLsRequest> request2 = |
1321 new history::QueryMostVisitedURLsRequest( | 1332 new history::QueryFilteredURLsRequest( |
1322 base::Bind(&HistoryBackendTest::OnQueryMostVisited, | 1333 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
1323 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 1334 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
1324 cancellable_request.MockScheduleOfRequest<QueryMostVisitedURLsRequest>( | 1335 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
1325 request2); | 1336 request2); |
1326 filter.SetTimeInRangeFilter(tested_time, | 1337 filter.SetTimeInRangeFilter(tested_time, |
1327 tested_time + base::TimeDelta::FromHours(2)); | 1338 tested_time + base::TimeDelta::FromHours(2)); |
1328 backend_->QueryFilteredURLs(request2, 100, filter); | 1339 backend_->QueryFilteredURLs(request2, 100, filter); |
1329 | 1340 |
1330 ASSERT_EQ(3U, get_most_visited_list().size()); | 1341 ASSERT_EQ(3U, get_filtered_list().size()); |
1331 EXPECT_EQ(std::string(google), get_most_visited_list()[0].url.spec()); | 1342 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
1332 EXPECT_EQ(std::string(yahoo), get_most_visited_list()[1].url.spec()); | 1343 EXPECT_EQ(std::string(yahoo), get_filtered_list()[1].url.spec()); |
1333 EXPECT_EQ(std::string(yahoo_sports), get_most_visited_list()[2].url.spec()); | 1344 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); |
1334 | 1345 |
1335 // Time limit is between |tested_time| - 2 hours and |tested_time|. | 1346 // Time limit is between |tested_time| - 2 hours and |tested_time|. |
1336 scoped_refptr<QueryMostVisitedURLsRequest> request3 = | 1347 scoped_refptr<QueryFilteredURLsRequest> request3 = |
1337 new history::QueryMostVisitedURLsRequest( | 1348 new history::QueryFilteredURLsRequest( |
1338 base::Bind(&HistoryBackendTest::OnQueryMostVisited, | 1349 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
1339 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 1350 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
1340 cancellable_request.MockScheduleOfRequest<QueryMostVisitedURLsRequest>( | 1351 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
1341 request3); | 1352 request3); |
1342 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(2), | 1353 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(2), |
1343 tested_time); | 1354 tested_time); |
1344 backend_->QueryFilteredURLs(request3, 100, filter); | 1355 backend_->QueryFilteredURLs(request3, 100, filter); |
1345 | 1356 |
1346 ASSERT_EQ(3U, get_most_visited_list().size()); | 1357 ASSERT_EQ(3U, get_filtered_list().size()); |
1347 EXPECT_EQ(std::string(google), get_most_visited_list()[0].url.spec()); | 1358 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
1348 EXPECT_EQ(std::string(yahoo_sports_soccer), | 1359 EXPECT_EQ(std::string(yahoo_sports_soccer), |
1349 get_most_visited_list()[1].url.spec()); | 1360 get_filtered_list()[1].url.spec()); |
1350 EXPECT_EQ(std::string(yahoo_sports), get_most_visited_list()[2].url.spec()); | 1361 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); |
1351 | 1362 |
1352 filter.ClearFilters(); | 1363 filter.ClearFilters(); |
1353 base::Time::Exploded exploded_time; | 1364 base::Time::Exploded exploded_time; |
1354 tested_time.LocalExplode(&exploded_time); | 1365 tested_time.LocalExplode(&exploded_time); |
1355 | 1366 |
1356 // Today. | 1367 // Today. |
1357 scoped_refptr<QueryMostVisitedURLsRequest> request4 = | 1368 scoped_refptr<QueryFilteredURLsRequest> request4 = |
1358 new history::QueryMostVisitedURLsRequest( | 1369 new history::QueryFilteredURLsRequest( |
1359 base::Bind(&HistoryBackendTest::OnQueryMostVisited, | 1370 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
1360 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 1371 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
1361 cancellable_request.MockScheduleOfRequest<QueryMostVisitedURLsRequest>( | 1372 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
1362 request4); | 1373 request4); |
1363 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week), | 1374 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week), |
1364 tested_time); | 1375 tested_time); |
1365 backend_->QueryFilteredURLs(request4, 100, filter); | 1376 backend_->QueryFilteredURLs(request4, 100, filter); |
1366 | 1377 |
1367 ASSERT_EQ(2U, get_most_visited_list().size()); | 1378 ASSERT_EQ(2U, get_filtered_list().size()); |
1368 EXPECT_EQ(std::string(google), get_most_visited_list()[0].url.spec()); | 1379 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
1369 EXPECT_EQ(std::string(yahoo_sports_soccer), | 1380 EXPECT_EQ(std::string(yahoo_sports_soccer), |
1370 get_most_visited_list()[1].url.spec()); | 1381 get_filtered_list()[1].url.spec()); |
1371 | 1382 |
1372 // Today + time limit - only yahoo_sports_soccer should fit. | 1383 // Today + time limit - only yahoo_sports_soccer should fit. |
1373 scoped_refptr<QueryMostVisitedURLsRequest> request5 = | 1384 scoped_refptr<QueryFilteredURLsRequest> request5 = |
1374 new history::QueryMostVisitedURLsRequest( | 1385 new history::QueryFilteredURLsRequest( |
1375 base::Bind(&HistoryBackendTest::OnQueryMostVisited, | 1386 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
1376 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 1387 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
1377 cancellable_request.MockScheduleOfRequest<QueryMostVisitedURLsRequest>( | 1388 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
1378 request5); | 1389 request5); |
1379 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(1), | 1390 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(1), |
1380 tested_time - base::TimeDelta::FromMinutes(20)); | 1391 tested_time - base::TimeDelta::FromMinutes(20)); |
1381 backend_->QueryFilteredURLs(request5, 100, filter); | 1392 backend_->QueryFilteredURLs(request5, 100, filter); |
1382 | 1393 |
1383 ASSERT_EQ(1U, get_most_visited_list().size()); | 1394 ASSERT_EQ(1U, get_filtered_list().size()); |
1384 EXPECT_EQ(std::string(yahoo_sports_soccer), | 1395 EXPECT_EQ(std::string(yahoo_sports_soccer), |
1385 get_most_visited_list()[0].url.spec()); | 1396 get_filtered_list()[0].url.spec()); |
1386 } | 1397 } |
1387 | 1398 |
1388 TEST_F(HistoryBackendTest, UpdateVisitDuration) { | 1399 TEST_F(HistoryBackendTest, UpdateVisitDuration) { |
1389 // This unit test will test adding and deleting visit details information. | 1400 // This unit test will test adding and deleting visit details information. |
1390 ASSERT_TRUE(backend_.get()); | 1401 ASSERT_TRUE(backend_.get()); |
1391 | 1402 |
1392 GURL url1("http://www.cnn.com"); | 1403 GURL url1("http://www.cnn.com"); |
1393 std::vector<VisitInfo> visit_info1, visit_info2; | 1404 std::vector<VisitInfo> visit_info1, visit_info2; |
1394 Time start_ts = Time::Now() - base::TimeDelta::FromDays(5); | 1405 Time start_ts = Time::Now() - base::TimeDelta::FromDays(5); |
1395 Time end_ts = start_ts + base::TimeDelta::FromDays(2); | 1406 Time end_ts = start_ts + base::TimeDelta::FromDays(2); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1494 EXPECT_EQ(cur_version, file_version); | 1505 EXPECT_EQ(cur_version, file_version); |
1495 | 1506 |
1496 // Check visit_duration column in visits table is created and set to 0. | 1507 // Check visit_duration column in visits table is created and set to 0. |
1497 s1.Assign(archived_db.GetUniqueStatement( | 1508 s1.Assign(archived_db.GetUniqueStatement( |
1498 "SELECT visit_duration FROM visits LIMIT 1")); | 1509 "SELECT visit_duration FROM visits LIMIT 1")); |
1499 ASSERT_TRUE(s1.Step()); | 1510 ASSERT_TRUE(s1.Step()); |
1500 EXPECT_EQ(0, s1.ColumnInt(0)); | 1511 EXPECT_EQ(0, s1.ColumnInt(0)); |
1501 } | 1512 } |
1502 | 1513 |
1503 } // namespace history | 1514 } // namespace history |
OLD | NEW |