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

Side by Side Diff: chrome/browser/history/history_backend_unittest.cc

Issue 10060003: Support for different weight-functions for time-slicing. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added missing #include Created 8 years, 7 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/history/history_backend.cc ('k') | chrome/browser/history/visit_database.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 EXPECT_EQ(0, backend_->db()->GetSegmentNamed(segment_name)); 603 EXPECT_EQ(0, backend_->db()->GetSegmentNamed(segment_name));
604 604
605 // One visit should be added. 605 // One visit should be added.
606 VisitVector visits; 606 VisitVector visits;
607 EXPECT_TRUE(backend_->db()->GetVisitsForURL(url_id, &visits)); 607 EXPECT_TRUE(backend_->db()->GetVisitsForURL(url_id, &visits));
608 EXPECT_EQ(1U, visits.size()); 608 EXPECT_EQ(1U, visits.size());
609 609
610 // But no visible visits. 610 // But no visible visits.
611 visits.clear(); 611 visits.clear();
612 backend_->db()->GetVisibleVisitsInRange(base::Time(), base::Time(), 1, 612 backend_->db()->GetVisibleVisitsInRange(base::Time(), base::Time(), 1,
613 &visits); 613 &visits, true);
614 EXPECT_TRUE(visits.empty()); 614 EXPECT_TRUE(visits.empty());
615 615
616 // Expire the visits. 616 // Expire the visits.
617 std::set<GURL> restrict_urls; 617 std::set<GURL> restrict_urls;
618 backend_->expire_backend()->ExpireHistoryBetween(restrict_urls, 618 backend_->expire_backend()->ExpireHistoryBetween(restrict_urls,
619 visit_time, Time::Now()); 619 visit_time, Time::Now());
620 620
621 // The visit should have been nuked. 621 // The visit should have been nuked.
622 visits.clear(); 622 visits.clear();
623 EXPECT_TRUE(backend_->db()->GetVisitsForURL(url_id, &visits)); 623 EXPECT_TRUE(backend_->db()->GetVisitsForURL(url_id, &visits));
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
1248 const char* yahoo_sports_with_article2 = 1248 const char* yahoo_sports_with_article2 =
1249 "http://sports.yahoo.com/article2.htm"; 1249 "http://sports.yahoo.com/article2.htm";
1250 const char* yahoo_sports_soccer = "http://sports.yahoo.com/soccer"; 1250 const char* yahoo_sports_soccer = "http://sports.yahoo.com/soccer";
1251 1251
1252 // Clear all history. 1252 // Clear all history.
1253 backend_->DeleteAllHistory(); 1253 backend_->DeleteAllHistory();
1254 1254
1255 Time tested_time = Time::Now().LocalMidnight() + 1255 Time tested_time = Time::Now().LocalMidnight() +
1256 base::TimeDelta::FromHours(4); 1256 base::TimeDelta::FromHours(4);
1257 base::TimeDelta half_an_hour = base::TimeDelta::FromMinutes(30); 1257 base::TimeDelta half_an_hour = base::TimeDelta::FromMinutes(30);
1258 base::TimeDelta one_hour = base::TimeDelta::FromHours(1);
1258 base::TimeDelta one_day = base::TimeDelta::FromDays(1); 1259 base::TimeDelta one_day = base::TimeDelta::FromDays(1);
1259 1260
1260 const content::PageTransition kTypedTransition = 1261 const content::PageTransition kTypedTransition =
1261 content::PAGE_TRANSITION_TYPED; 1262 content::PAGE_TRANSITION_TYPED;
1262 1263
1263 const char* redirect_sequence[2]; 1264 const char* redirect_sequence[2];
1264 redirect_sequence[1] = NULL; 1265 redirect_sequence[1] = NULL;
1265 1266
1266 redirect_sequence[0] = google; 1267 redirect_sequence[0] = google;
1267 AddRedirectChainWithTransitionAndTime( 1268 AddRedirectChainWithTransitionAndTime(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 new history::QueryFilteredURLsRequest( 1311 new history::QueryFilteredURLsRequest(
1311 base::Bind(&HistoryBackendTest::OnQueryFiltered, 1312 base::Bind(&HistoryBackendTest::OnQueryFiltered,
1312 base::Unretained(static_cast<HistoryBackendTest*>(this)))); 1313 base::Unretained(static_cast<HistoryBackendTest*>(this))));
1313 HistoryBackendCancelableRequest cancellable_request; 1314 HistoryBackendCancelableRequest cancellable_request;
1314 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( 1315 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>(
1315 request1); 1316 request1);
1316 1317
1317 VisitFilter filter; 1318 VisitFilter filter;
1318 // Time limit is |tested_time| +/- 45 min. 1319 // Time limit is |tested_time| +/- 45 min.
1319 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45); 1320 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45);
1320 filter.SetTimeInRangeFilter(tested_time - three_quarters_of_an_hour, 1321 filter.SetFilterTime(tested_time);
1321 tested_time + three_quarters_of_an_hour); 1322 filter.SetFilterWidth(three_quarters_of_an_hour);
1322 backend_->QueryFilteredURLs(request1, 100, filter); 1323 backend_->QueryFilteredURLs(request1, 100, filter);
1323 1324
1324 ASSERT_EQ(4U, get_filtered_list().size()); 1325 ASSERT_EQ(4U, get_filtered_list().size());
1325 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); 1326 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec());
1326 EXPECT_EQ(std::string(yahoo_sports_soccer), 1327 EXPECT_EQ(std::string(yahoo_sports_soccer),
1327 get_filtered_list()[1].url.spec()); 1328 get_filtered_list()[1].url.spec());
1328 EXPECT_EQ(std::string(yahoo), get_filtered_list()[2].url.spec()); 1329 EXPECT_EQ(std::string(yahoo), get_filtered_list()[2].url.spec());
1329 EXPECT_EQ(std::string(yahoo_sports), 1330 EXPECT_EQ(std::string(yahoo_sports),
1330 get_filtered_list()[3].url.spec()); 1331 get_filtered_list()[3].url.spec());
1331 1332
1332 // Time limit is between |tested_time| and |tested_time| + 2 hours. 1333 // Time limit is between |tested_time| and |tested_time| + 2 hours.
1333 scoped_refptr<QueryFilteredURLsRequest> request2 = 1334 scoped_refptr<QueryFilteredURLsRequest> request2 =
1334 new history::QueryFilteredURLsRequest( 1335 new history::QueryFilteredURLsRequest(
1335 base::Bind(&HistoryBackendTest::OnQueryFiltered, 1336 base::Bind(&HistoryBackendTest::OnQueryFiltered,
1336 base::Unretained(static_cast<HistoryBackendTest*>(this)))); 1337 base::Unretained(static_cast<HistoryBackendTest*>(this))));
1337 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( 1338 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>(
1338 request2); 1339 request2);
1339 filter.SetTimeInRangeFilter(tested_time, 1340 filter.SetFilterTime(tested_time + one_hour);
1340 tested_time + base::TimeDelta::FromHours(2)); 1341 filter.SetFilterWidth(one_hour);
1341 backend_->QueryFilteredURLs(request2, 100, filter); 1342 backend_->QueryFilteredURLs(request2, 100, filter);
1342 1343
1343 ASSERT_EQ(3U, get_filtered_list().size()); 1344 ASSERT_EQ(3U, get_filtered_list().size());
1344 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); 1345 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec());
1345 EXPECT_EQ(std::string(yahoo), get_filtered_list()[1].url.spec()); 1346 EXPECT_EQ(std::string(yahoo), get_filtered_list()[1].url.spec());
1346 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); 1347 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec());
1347 1348
1348 // Time limit is between |tested_time| - 2 hours and |tested_time|. 1349 // Time limit is between |tested_time| - 2 hours and |tested_time|.
1349 scoped_refptr<QueryFilteredURLsRequest> request3 = 1350 scoped_refptr<QueryFilteredURLsRequest> request3 =
1350 new history::QueryFilteredURLsRequest( 1351 new history::QueryFilteredURLsRequest(
1351 base::Bind(&HistoryBackendTest::OnQueryFiltered, 1352 base::Bind(&HistoryBackendTest::OnQueryFiltered,
1352 base::Unretained(static_cast<HistoryBackendTest*>(this)))); 1353 base::Unretained(static_cast<HistoryBackendTest*>(this))));
1353 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( 1354 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>(
1354 request3); 1355 request3);
1355 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(2), 1356 filter.SetFilterTime(tested_time - one_hour);
1356 tested_time); 1357 filter.SetFilterWidth(one_hour);
1357 backend_->QueryFilteredURLs(request3, 100, filter); 1358 backend_->QueryFilteredURLs(request3, 100, filter);
1358 1359
1359 ASSERT_EQ(3U, get_filtered_list().size()); 1360 ASSERT_EQ(3U, get_filtered_list().size());
1360 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); 1361 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec());
1361 EXPECT_EQ(std::string(yahoo_sports_soccer), 1362 EXPECT_EQ(std::string(yahoo_sports_soccer),
1362 get_filtered_list()[1].url.spec()); 1363 get_filtered_list()[1].url.spec());
1363 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); 1364 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec());
1364 1365
1365 filter.ClearFilters(); 1366 filter.ClearFilters();
1366 base::Time::Exploded exploded_time; 1367 base::Time::Exploded exploded_time;
1367 tested_time.LocalExplode(&exploded_time); 1368 tested_time.LocalExplode(&exploded_time);
1368 1369
1369 // Today. 1370 // Today.
1370 scoped_refptr<QueryFilteredURLsRequest> request4 = 1371 scoped_refptr<QueryFilteredURLsRequest> request4 =
1371 new history::QueryFilteredURLsRequest( 1372 new history::QueryFilteredURLsRequest(
1372 base::Bind(&HistoryBackendTest::OnQueryFiltered, 1373 base::Bind(&HistoryBackendTest::OnQueryFiltered,
1373 base::Unretained(static_cast<HistoryBackendTest*>(this)))); 1374 base::Unretained(static_cast<HistoryBackendTest*>(this))));
1374 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( 1375 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>(
1375 request4); 1376 request4);
1376 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week), 1377 filter.SetFilterTime(tested_time);
1377 tested_time); 1378 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week));
1378 backend_->QueryFilteredURLs(request4, 100, filter); 1379 backend_->QueryFilteredURLs(request4, 100, filter);
1379 1380
1380 ASSERT_EQ(2U, get_filtered_list().size()); 1381 ASSERT_EQ(2U, get_filtered_list().size());
1381 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); 1382 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec());
1382 EXPECT_EQ(std::string(yahoo_sports_soccer), 1383 EXPECT_EQ(std::string(yahoo_sports_soccer),
1383 get_filtered_list()[1].url.spec()); 1384 get_filtered_list()[1].url.spec());
1384 1385
1385 // Today + time limit - only yahoo_sports_soccer should fit. 1386 // Today + time limit - only yahoo_sports_soccer should fit.
1386 scoped_refptr<QueryFilteredURLsRequest> request5 = 1387 scoped_refptr<QueryFilteredURLsRequest> request5 =
1387 new history::QueryFilteredURLsRequest( 1388 new history::QueryFilteredURLsRequest(
1388 base::Bind(&HistoryBackendTest::OnQueryFiltered, 1389 base::Bind(&HistoryBackendTest::OnQueryFiltered,
1389 base::Unretained(static_cast<HistoryBackendTest*>(this)))); 1390 base::Unretained(static_cast<HistoryBackendTest*>(this))));
1390 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( 1391 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>(
1391 request5); 1392 request5);
1392 filter.SetTimeInRangeFilter(tested_time - base::TimeDelta::FromHours(1), 1393 filter.SetFilterTime(tested_time - base::TimeDelta::FromMinutes(40));
1393 tested_time - base::TimeDelta::FromMinutes(20)); 1394 filter.SetFilterWidth(base::TimeDelta::FromMinutes(20));
1394 backend_->QueryFilteredURLs(request5, 100, filter); 1395 backend_->QueryFilteredURLs(request5, 100, filter);
1395 1396
1396 ASSERT_EQ(1U, get_filtered_list().size()); 1397 ASSERT_EQ(1U, get_filtered_list().size());
1397 EXPECT_EQ(std::string(yahoo_sports_soccer), 1398 EXPECT_EQ(std::string(yahoo_sports_soccer),
1398 get_filtered_list()[0].url.spec()); 1399 get_filtered_list()[0].url.spec());
1399 } 1400 }
1400 1401
1401 TEST_F(HistoryBackendTest, UpdateVisitDuration) { 1402 TEST_F(HistoryBackendTest, UpdateVisitDuration) {
1402 // This unit test will test adding and deleting visit details information. 1403 // This unit test will test adding and deleting visit details information.
1403 ASSERT_TRUE(backend_.get()); 1404 ASSERT_TRUE(backend_.get());
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 EXPECT_EQ(cur_version, file_version); 1508 EXPECT_EQ(cur_version, file_version);
1508 1509
1509 // Check visit_duration column in visits table is created and set to 0. 1510 // Check visit_duration column in visits table is created and set to 0.
1510 s1.Assign(archived_db.GetUniqueStatement( 1511 s1.Assign(archived_db.GetUniqueStatement(
1511 "SELECT visit_duration FROM visits LIMIT 1")); 1512 "SELECT visit_duration FROM visits LIMIT 1"));
1512 ASSERT_TRUE(s1.Step()); 1513 ASSERT_TRUE(s1.Step());
1513 EXPECT_EQ(0, s1.ColumnInt(0)); 1514 EXPECT_EQ(0, s1.ColumnInt(0));
1514 } 1515 }
1515 1516
1516 } // namespace history 1517 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/history_backend.cc ('k') | chrome/browser/history/visit_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698