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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 &bookmark_model_); | 380 &bookmark_model_); |
381 backend_->Init(std::string(), false); | 381 backend_->Init(std::string(), false); |
382 } | 382 } |
383 | 383 |
384 bool loaded_; | 384 bool loaded_; |
385 | 385 |
386 private: | 386 private: |
387 friend class HistoryBackendTestDelegate; | 387 friend class HistoryBackendTestDelegate; |
388 | 388 |
389 virtual void TearDown() { | 389 virtual void TearDown() { |
390 if (backend_) | 390 if (backend_.get()) |
391 backend_->Closing(); | 391 backend_->Closing(); |
392 backend_ = NULL; | 392 backend_ = NULL; |
393 mem_backend_.reset(); | 393 mem_backend_.reset(); |
394 file_util::Delete(test_dir_, true); | 394 file_util::Delete(test_dir_, true); |
395 } | 395 } |
396 | 396 |
397 void SetInMemoryBackend(int backend_id, InMemoryHistoryBackend* backend) { | 397 void SetInMemoryBackend(int backend_id, InMemoryHistoryBackend* backend) { |
398 mem_backend_.reset(backend); | 398 mem_backend_.reset(backend); |
399 } | 399 } |
400 | 400 |
(...skipping 1939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2340 kTypedTransition, | 2340 kTypedTransition, |
2341 tested_time - half_an_hour); | 2341 tested_time - half_an_hour); |
2342 backend_->Commit(); | 2342 backend_->Commit(); |
2343 | 2343 |
2344 scoped_refptr<QueryFilteredURLsRequest> request1 = | 2344 scoped_refptr<QueryFilteredURLsRequest> request1 = |
2345 new history::QueryFilteredURLsRequest( | 2345 new history::QueryFilteredURLsRequest( |
2346 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2346 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2347 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2347 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2348 HistoryBackendCancelableRequest cancellable_request; | 2348 HistoryBackendCancelableRequest cancellable_request; |
2349 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2349 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2350 request1); | 2350 request1.get()); |
2351 | 2351 |
2352 VisitFilter filter; | 2352 VisitFilter filter; |
2353 // Time limit is |tested_time| +/- 45 min. | 2353 // Time limit is |tested_time| +/- 45 min. |
2354 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45); | 2354 base::TimeDelta three_quarters_of_an_hour = base::TimeDelta::FromMinutes(45); |
2355 filter.SetFilterTime(tested_time); | 2355 filter.SetFilterTime(tested_time); |
2356 filter.SetFilterWidth(three_quarters_of_an_hour); | 2356 filter.SetFilterWidth(three_quarters_of_an_hour); |
2357 backend_->QueryFilteredURLs(request1, 100, filter, false); | 2357 backend_->QueryFilteredURLs(request1, 100, filter, false); |
2358 | 2358 |
2359 ASSERT_EQ(4U, get_filtered_list().size()); | 2359 ASSERT_EQ(4U, get_filtered_list().size()); |
2360 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); | 2360 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
2361 EXPECT_EQ(std::string(yahoo_sports_soccer), | 2361 EXPECT_EQ(std::string(yahoo_sports_soccer), |
2362 get_filtered_list()[1].url.spec()); | 2362 get_filtered_list()[1].url.spec()); |
2363 EXPECT_EQ(std::string(yahoo), get_filtered_list()[2].url.spec()); | 2363 EXPECT_EQ(std::string(yahoo), get_filtered_list()[2].url.spec()); |
2364 EXPECT_EQ(std::string(yahoo_sports), | 2364 EXPECT_EQ(std::string(yahoo_sports), |
2365 get_filtered_list()[3].url.spec()); | 2365 get_filtered_list()[3].url.spec()); |
2366 | 2366 |
2367 // Time limit is between |tested_time| and |tested_time| + 2 hours. | 2367 // Time limit is between |tested_time| and |tested_time| + 2 hours. |
2368 scoped_refptr<QueryFilteredURLsRequest> request2 = | 2368 scoped_refptr<QueryFilteredURLsRequest> request2 = |
2369 new history::QueryFilteredURLsRequest( | 2369 new history::QueryFilteredURLsRequest( |
2370 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2370 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2371 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2371 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2372 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2372 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2373 request2); | 2373 request2.get()); |
2374 filter.SetFilterTime(tested_time + one_hour); | 2374 filter.SetFilterTime(tested_time + one_hour); |
2375 filter.SetFilterWidth(one_hour); | 2375 filter.SetFilterWidth(one_hour); |
2376 backend_->QueryFilteredURLs(request2, 100, filter, false); | 2376 backend_->QueryFilteredURLs(request2, 100, filter, false); |
2377 | 2377 |
2378 ASSERT_EQ(3U, get_filtered_list().size()); | 2378 ASSERT_EQ(3U, get_filtered_list().size()); |
2379 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); | 2379 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
2380 EXPECT_EQ(std::string(yahoo), get_filtered_list()[1].url.spec()); | 2380 EXPECT_EQ(std::string(yahoo), get_filtered_list()[1].url.spec()); |
2381 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); | 2381 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); |
2382 | 2382 |
2383 // Time limit is between |tested_time| - 2 hours and |tested_time|. | 2383 // Time limit is between |tested_time| - 2 hours and |tested_time|. |
2384 scoped_refptr<QueryFilteredURLsRequest> request3 = | 2384 scoped_refptr<QueryFilteredURLsRequest> request3 = |
2385 new history::QueryFilteredURLsRequest( | 2385 new history::QueryFilteredURLsRequest( |
2386 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2386 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2387 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2387 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2388 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2388 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2389 request3); | 2389 request3.get()); |
2390 filter.SetFilterTime(tested_time - one_hour); | 2390 filter.SetFilterTime(tested_time - one_hour); |
2391 filter.SetFilterWidth(one_hour); | 2391 filter.SetFilterWidth(one_hour); |
2392 backend_->QueryFilteredURLs(request3, 100, filter, false); | 2392 backend_->QueryFilteredURLs(request3, 100, filter, false); |
2393 | 2393 |
2394 ASSERT_EQ(3U, get_filtered_list().size()); | 2394 ASSERT_EQ(3U, get_filtered_list().size()); |
2395 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); | 2395 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
2396 EXPECT_EQ(std::string(yahoo_sports_soccer), | 2396 EXPECT_EQ(std::string(yahoo_sports_soccer), |
2397 get_filtered_list()[1].url.spec()); | 2397 get_filtered_list()[1].url.spec()); |
2398 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); | 2398 EXPECT_EQ(std::string(yahoo_sports), get_filtered_list()[2].url.spec()); |
2399 | 2399 |
2400 filter.ClearFilters(); | 2400 filter.ClearFilters(); |
2401 base::Time::Exploded exploded_time; | 2401 base::Time::Exploded exploded_time; |
2402 tested_time.LocalExplode(&exploded_time); | 2402 tested_time.LocalExplode(&exploded_time); |
2403 | 2403 |
2404 // Today. | 2404 // Today. |
2405 scoped_refptr<QueryFilteredURLsRequest> request4 = | 2405 scoped_refptr<QueryFilteredURLsRequest> request4 = |
2406 new history::QueryFilteredURLsRequest( | 2406 new history::QueryFilteredURLsRequest( |
2407 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2407 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2408 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2408 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2409 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2409 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2410 request4); | 2410 request4.get()); |
2411 filter.SetFilterTime(tested_time); | 2411 filter.SetFilterTime(tested_time); |
2412 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week)); | 2412 filter.SetDayOfTheWeekFilter(static_cast<int>(exploded_time.day_of_week)); |
2413 backend_->QueryFilteredURLs(request4, 100, filter, false); | 2413 backend_->QueryFilteredURLs(request4, 100, filter, false); |
2414 | 2414 |
2415 ASSERT_EQ(2U, get_filtered_list().size()); | 2415 ASSERT_EQ(2U, get_filtered_list().size()); |
2416 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); | 2416 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
2417 EXPECT_EQ(std::string(yahoo_sports_soccer), | 2417 EXPECT_EQ(std::string(yahoo_sports_soccer), |
2418 get_filtered_list()[1].url.spec()); | 2418 get_filtered_list()[1].url.spec()); |
2419 | 2419 |
2420 // Today + time limit - only yahoo_sports_soccer should fit. | 2420 // Today + time limit - only yahoo_sports_soccer should fit. |
2421 scoped_refptr<QueryFilteredURLsRequest> request5 = | 2421 scoped_refptr<QueryFilteredURLsRequest> request5 = |
2422 new history::QueryFilteredURLsRequest( | 2422 new history::QueryFilteredURLsRequest( |
2423 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2423 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2424 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2424 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2425 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2425 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2426 request5); | 2426 request5.get()); |
2427 filter.SetFilterTime(tested_time - base::TimeDelta::FromMinutes(40)); | 2427 filter.SetFilterTime(tested_time - base::TimeDelta::FromMinutes(40)); |
2428 filter.SetFilterWidth(base::TimeDelta::FromMinutes(20)); | 2428 filter.SetFilterWidth(base::TimeDelta::FromMinutes(20)); |
2429 backend_->QueryFilteredURLs(request5, 100, filter, false); | 2429 backend_->QueryFilteredURLs(request5, 100, filter, false); |
2430 | 2430 |
2431 ASSERT_EQ(1U, get_filtered_list().size()); | 2431 ASSERT_EQ(1U, get_filtered_list().size()); |
2432 EXPECT_EQ(std::string(yahoo_sports_soccer), | 2432 EXPECT_EQ(std::string(yahoo_sports_soccer), |
2433 get_filtered_list()[0].url.spec()); | 2433 get_filtered_list()[0].url.spec()); |
2434 | 2434 |
2435 // Make sure we get debug data if we request it. | 2435 // Make sure we get debug data if we request it. |
2436 scoped_refptr<QueryFilteredURLsRequest> request6 = | 2436 scoped_refptr<QueryFilteredURLsRequest> request6 = |
2437 new history::QueryFilteredURLsRequest( | 2437 new history::QueryFilteredURLsRequest( |
2438 base::Bind(&HistoryBackendTest::OnQueryFiltered, | 2438 base::Bind(&HistoryBackendTest::OnQueryFiltered, |
2439 base::Unretained(static_cast<HistoryBackendTest*>(this)))); | 2439 base::Unretained(static_cast<HistoryBackendTest*>(this)))); |
2440 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( | 2440 cancellable_request.MockScheduleOfRequest<QueryFilteredURLsRequest>( |
2441 request6); | 2441 request6.get()); |
2442 filter.SetFilterTime(tested_time); | 2442 filter.SetFilterTime(tested_time); |
2443 filter.SetFilterWidth(one_hour * 2); | 2443 filter.SetFilterWidth(one_hour * 2); |
2444 backend_->QueryFilteredURLs(request6, 100, filter, true); | 2444 backend_->QueryFilteredURLs(request6, 100, filter, true); |
2445 | 2445 |
2446 // If the SegmentID is used by QueryFilteredURLs when generating the debug | 2446 // If the SegmentID is used by QueryFilteredURLs when generating the debug |
2447 // data instead of the URLID, the |total_visits| for the |yahoo_sports_soccer| | 2447 // data instead of the URLID, the |total_visits| for the |yahoo_sports_soccer| |
2448 // entry will be zero instead of 1. | 2448 // entry will be zero instead of 1. |
2449 ASSERT_GE(get_filtered_list().size(), 2U); | 2449 ASSERT_GE(get_filtered_list().size(), 2U); |
2450 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); | 2450 EXPECT_EQ(std::string(google), get_filtered_list()[0].url.spec()); |
2451 EXPECT_EQ(std::string(yahoo_sports_soccer), | 2451 EXPECT_EQ(std::string(yahoo_sports_soccer), |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2809 service->AddPage( | 2809 service->AddPage( |
2810 url, base::Time::Now(), NULL, 1, GURL(), RedirectList(), | 2810 url, base::Time::Now(), NULL, 1, GURL(), RedirectList(), |
2811 content::PAGE_TRANSITION_TYPED, SOURCE_BROWSED, false); | 2811 content::PAGE_TRANSITION_TYPED, SOURCE_BROWSED, false); |
2812 | 2812 |
2813 // This won't actually delete the URL, rather it'll empty out the visits. | 2813 // This won't actually delete the URL, rather it'll empty out the visits. |
2814 // This triggers blocking on the BookmarkModel. | 2814 // This triggers blocking on the BookmarkModel. |
2815 service->DeleteURL(url); | 2815 service->DeleteURL(url); |
2816 } | 2816 } |
2817 | 2817 |
2818 } // namespace history | 2818 } // namespace history |
OLD | NEW |