| 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 |