| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // History unit tests come in two flavors: | 5 // History unit tests come in two flavors: |
| 6 // | 6 // |
| 7 // 1. The more complicated style is that the unit test creates a full history | 7 // 1. The more complicated style is that the unit test creates a full history |
| 8 // service. This spawns a background thread for the history backend, and | 8 // service. This spawns a background thread for the history backend, and |
| 9 // all communication is asynchronous. This is useful for testing more | 9 // all communication is asynchronous. This is useful for testing more |
| 10 // complicated things or end-to-end behavior. | 10 // complicated things or end-to-end behavior. |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 history->QueryRedirectsFrom(url, &consumer_, | 234 history->QueryRedirectsFrom(url, &consumer_, |
| 235 NewCallback(this, &HistoryTest::OnRedirectQueryComplete)); | 235 NewCallback(this, &HistoryTest::OnRedirectQueryComplete)); |
| 236 MessageLoop::current()->Run(); // Will be exited in *QueryComplete. | 236 MessageLoop::current()->Run(); // Will be exited in *QueryComplete. |
| 237 return redirect_query_success_; | 237 return redirect_query_success_; |
| 238 } | 238 } |
| 239 | 239 |
| 240 // Callback for QueryRedirects. | 240 // Callback for QueryRedirects. |
| 241 void OnRedirectQueryComplete(HistoryService::Handle handle, | 241 void OnRedirectQueryComplete(HistoryService::Handle handle, |
| 242 GURL url, | 242 GURL url, |
| 243 bool success, | 243 bool success, |
| 244 HistoryService::RedirectList* redirects) { | 244 history::RedirectList* redirects) { |
| 245 redirect_query_success_ = success; | 245 redirect_query_success_ = success; |
| 246 if (redirect_query_success_) | 246 if (redirect_query_success_) |
| 247 saved_redirects_.swap(*redirects); | 247 saved_redirects_.swap(*redirects); |
| 248 else | 248 else |
| 249 saved_redirects_.clear(); | 249 saved_redirects_.clear(); |
| 250 MessageLoop::current()->Quit(); | 250 MessageLoop::current()->Quit(); |
| 251 } | 251 } |
| 252 | 252 |
| 253 MessageLoopForUI message_loop_; | 253 MessageLoopForUI message_loop_; |
| 254 | 254 |
| 255 // PageUsageData vector to test segments. | 255 // PageUsageData vector to test segments. |
| 256 ScopedVector<PageUsageData> page_usage_data_; | 256 ScopedVector<PageUsageData> page_usage_data_; |
| 257 | 257 |
| 258 // When non-NULL, this will be deleted on tear down and we will block until | 258 // When non-NULL, this will be deleted on tear down and we will block until |
| 259 // the backend thread has completed. This allows tests for the history | 259 // the backend thread has completed. This allows tests for the history |
| 260 // service to use this feature, but other tests to ignore this. | 260 // service to use this feature, but other tests to ignore this. |
| 261 scoped_refptr<HistoryService> history_service_; | 261 scoped_refptr<HistoryService> history_service_; |
| 262 | 262 |
| 263 // names of the database files | 263 // names of the database files |
| 264 FilePath history_dir_; | 264 FilePath history_dir_; |
| 265 | 265 |
| 266 // Set by the thumbnail callback when we get data, you should be sure to | 266 // Set by the thumbnail callback when we get data, you should be sure to |
| 267 // clear this before issuing a thumbnail request. | 267 // clear this before issuing a thumbnail request. |
| 268 bool got_thumbnail_callback_; | 268 bool got_thumbnail_callback_; |
| 269 std::vector<unsigned char> thumbnail_data_; | 269 std::vector<unsigned char> thumbnail_data_; |
| 270 | 270 |
| 271 // Set by the redirect callback when we get data. You should be sure to | 271 // Set by the redirect callback when we get data. You should be sure to |
| 272 // clear this before issuing a redirect request. | 272 // clear this before issuing a redirect request. |
| 273 HistoryService::RedirectList saved_redirects_; | 273 history::RedirectList saved_redirects_; |
| 274 bool redirect_query_success_; | 274 bool redirect_query_success_; |
| 275 | 275 |
| 276 // For history requests. | 276 // For history requests. |
| 277 CancelableRequestConsumer consumer_; | 277 CancelableRequestConsumer consumer_; |
| 278 | 278 |
| 279 // For saving URL info after a call to QueryURL | 279 // For saving URL info after a call to QueryURL |
| 280 bool query_url_success_; | 280 bool query_url_success_; |
| 281 URLRow query_url_row_; | 281 URLRow query_url_row_; |
| 282 VisitVector query_url_visits_; | 282 VisitVector query_url_visits_; |
| 283 | 283 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 | 377 |
| 378 TEST_F(HistoryTest, AddPage) { | 378 TEST_F(HistoryTest, AddPage) { |
| 379 scoped_refptr<HistoryService> history(new HistoryService); | 379 scoped_refptr<HistoryService> history(new HistoryService); |
| 380 history_service_ = history; | 380 history_service_ = history; |
| 381 ASSERT_TRUE(history->Init(history_dir_, NULL)); | 381 ASSERT_TRUE(history->Init(history_dir_, NULL)); |
| 382 | 382 |
| 383 // Add the page once from a child frame. | 383 // Add the page once from a child frame. |
| 384 const GURL test_url("http://www.google.com/"); | 384 const GURL test_url("http://www.google.com/"); |
| 385 history->AddPage(test_url, NULL, 0, GURL(), | 385 history->AddPage(test_url, NULL, 0, GURL(), |
| 386 PageTransition::MANUAL_SUBFRAME, | 386 PageTransition::MANUAL_SUBFRAME, |
| 387 HistoryService::RedirectList(), false); | 387 history::RedirectList(), false); |
| 388 EXPECT_TRUE(QueryURL(history, test_url)); | 388 EXPECT_TRUE(QueryURL(history, test_url)); |
| 389 EXPECT_EQ(1, query_url_row_.visit_count()); | 389 EXPECT_EQ(1, query_url_row_.visit_count()); |
| 390 EXPECT_EQ(0, query_url_row_.typed_count()); | 390 EXPECT_EQ(0, query_url_row_.typed_count()); |
| 391 EXPECT_TRUE(query_url_row_.hidden()); // Hidden because of child frame. | 391 EXPECT_TRUE(query_url_row_.hidden()); // Hidden because of child frame. |
| 392 | 392 |
| 393 // Add the page once from the main frame (should unhide it). | 393 // Add the page once from the main frame (should unhide it). |
| 394 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::LINK, | 394 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::LINK, |
| 395 HistoryService::RedirectList(), false); | 395 history::RedirectList(), false); |
| 396 EXPECT_TRUE(QueryURL(history, test_url)); | 396 EXPECT_TRUE(QueryURL(history, test_url)); |
| 397 EXPECT_EQ(2, query_url_row_.visit_count()); // Added twice. | 397 EXPECT_EQ(2, query_url_row_.visit_count()); // Added twice. |
| 398 EXPECT_EQ(0, query_url_row_.typed_count()); // Never typed. | 398 EXPECT_EQ(0, query_url_row_.typed_count()); // Never typed. |
| 399 EXPECT_FALSE(query_url_row_.hidden()); // Because loaded in main frame. | 399 EXPECT_FALSE(query_url_row_.hidden()); // Because loaded in main frame. |
| 400 } | 400 } |
| 401 | 401 |
| 402 TEST_F(HistoryTest, AddPageSameTimes) { | 402 TEST_F(HistoryTest, AddPageSameTimes) { |
| 403 scoped_refptr<HistoryService> history(new HistoryService); | 403 scoped_refptr<HistoryService> history(new HistoryService); |
| 404 history_service_ = history; | 404 history_service_ = history; |
| 405 ASSERT_TRUE(history->Init(history_dir_, NULL)); | 405 ASSERT_TRUE(history->Init(history_dir_, NULL)); |
| 406 | 406 |
| 407 Time now = Time::Now(); | 407 Time now = Time::Now(); |
| 408 const GURL test_urls[] = { | 408 const GURL test_urls[] = { |
| 409 GURL("http://timer.first.page/"), | 409 GURL("http://timer.first.page/"), |
| 410 GURL("http://timer.second.page/"), | 410 GURL("http://timer.second.page/"), |
| 411 GURL("http://timer.third.page/"), | 411 GURL("http://timer.third.page/"), |
| 412 }; | 412 }; |
| 413 | 413 |
| 414 // Make sure that two pages added at the same time with no intervening | 414 // Make sure that two pages added at the same time with no intervening |
| 415 // additions have different timestamps. | 415 // additions have different timestamps. |
| 416 history->AddPage(test_urls[0], now, NULL, 0, GURL(), | 416 history->AddPage(test_urls[0], now, NULL, 0, GURL(), |
| 417 PageTransition::LINK, | 417 PageTransition::LINK, |
| 418 HistoryService::RedirectList(), false); | 418 history::RedirectList(), false); |
| 419 EXPECT_TRUE(QueryURL(history, test_urls[0])); | 419 EXPECT_TRUE(QueryURL(history, test_urls[0])); |
| 420 EXPECT_EQ(1, query_url_row_.visit_count()); | 420 EXPECT_EQ(1, query_url_row_.visit_count()); |
| 421 EXPECT_TRUE(now == query_url_row_.last_visit()); // gtest doesn't like Time | 421 EXPECT_TRUE(now == query_url_row_.last_visit()); // gtest doesn't like Time |
| 422 | 422 |
| 423 history->AddPage(test_urls[1], now, NULL, 0, GURL(), | 423 history->AddPage(test_urls[1], now, NULL, 0, GURL(), |
| 424 PageTransition::LINK, | 424 PageTransition::LINK, |
| 425 HistoryService::RedirectList(), false); | 425 history::RedirectList(), false); |
| 426 EXPECT_TRUE(QueryURL(history, test_urls[1])); | 426 EXPECT_TRUE(QueryURL(history, test_urls[1])); |
| 427 EXPECT_EQ(1, query_url_row_.visit_count()); | 427 EXPECT_EQ(1, query_url_row_.visit_count()); |
| 428 EXPECT_TRUE(now + TimeDelta::FromMicroseconds(1) == | 428 EXPECT_TRUE(now + TimeDelta::FromMicroseconds(1) == |
| 429 query_url_row_.last_visit()); | 429 query_url_row_.last_visit()); |
| 430 | 430 |
| 431 // Make sure the next page, at a different time, is also correct. | 431 // Make sure the next page, at a different time, is also correct. |
| 432 history->AddPage(test_urls[2], now + TimeDelta::FromMinutes(1), | 432 history->AddPage(test_urls[2], now + TimeDelta::FromMinutes(1), |
| 433 NULL, 0, GURL(), | 433 NULL, 0, GURL(), |
| 434 PageTransition::LINK, | 434 PageTransition::LINK, |
| 435 HistoryService::RedirectList(), false); | 435 history::RedirectList(), false); |
| 436 EXPECT_TRUE(QueryURL(history, test_urls[2])); | 436 EXPECT_TRUE(QueryURL(history, test_urls[2])); |
| 437 EXPECT_EQ(1, query_url_row_.visit_count()); | 437 EXPECT_EQ(1, query_url_row_.visit_count()); |
| 438 EXPECT_TRUE(now + TimeDelta::FromMinutes(1) == | 438 EXPECT_TRUE(now + TimeDelta::FromMinutes(1) == |
| 439 query_url_row_.last_visit()); | 439 query_url_row_.last_visit()); |
| 440 } | 440 } |
| 441 | 441 |
| 442 TEST_F(HistoryTest, AddRedirect) { | 442 TEST_F(HistoryTest, AddRedirect) { |
| 443 scoped_refptr<HistoryService> history(new HistoryService); | 443 scoped_refptr<HistoryService> history(new HistoryService); |
| 444 history_service_ = history; | 444 history_service_ = history; |
| 445 ASSERT_TRUE(history->Init(history_dir_, NULL)); | 445 ASSERT_TRUE(history->Init(history_dir_, NULL)); |
| 446 | 446 |
| 447 const char* first_sequence[] = { | 447 const char* first_sequence[] = { |
| 448 "http://first.page/", | 448 "http://first.page/", |
| 449 "http://second.page/"}; | 449 "http://second.page/"}; |
| 450 int first_count = arraysize(first_sequence); | 450 int first_count = arraysize(first_sequence); |
| 451 HistoryService::RedirectList first_redirects; | 451 history::RedirectList first_redirects; |
| 452 for (int i = 0; i < first_count; i++) | 452 for (int i = 0; i < first_count; i++) |
| 453 first_redirects.push_back(GURL(first_sequence[i])); | 453 first_redirects.push_back(GURL(first_sequence[i])); |
| 454 | 454 |
| 455 // Add the sequence of pages as a server with no referrer. Note that we need | 455 // Add the sequence of pages as a server with no referrer. Note that we need |
| 456 // to have a non-NULL page ID scope. | 456 // to have a non-NULL page ID scope. |
| 457 history->AddPage(first_redirects.back(), MakeFakeHost(1), 0, GURL(), | 457 history->AddPage(first_redirects.back(), MakeFakeHost(1), 0, GURL(), |
| 458 PageTransition::LINK, first_redirects, true); | 458 PageTransition::LINK, first_redirects, true); |
| 459 | 459 |
| 460 // The first page should be added once with a link visit type (because we set | 460 // The first page should be added once with a link visit type (because we set |
| 461 // LINK when we added the original URL, and a referrer of nowhere (0). | 461 // LINK when we added the original URL, and a referrer of nowhere (0). |
| (...skipping 17 matching lines...) Expand all Loading... |
| 479 | 479 |
| 480 // Check that the redirect finding function successfully reports it. | 480 // Check that the redirect finding function successfully reports it. |
| 481 saved_redirects_.clear(); | 481 saved_redirects_.clear(); |
| 482 QueryRedirectsFrom(history, first_redirects[0]); | 482 QueryRedirectsFrom(history, first_redirects[0]); |
| 483 ASSERT_EQ(1U, saved_redirects_.size()); | 483 ASSERT_EQ(1U, saved_redirects_.size()); |
| 484 EXPECT_EQ(first_redirects[1], saved_redirects_[0]); | 484 EXPECT_EQ(first_redirects[1], saved_redirects_[0]); |
| 485 | 485 |
| 486 // Now add a client redirect from that second visit to a third, client | 486 // Now add a client redirect from that second visit to a third, client |
| 487 // redirects are tracked by the RenderView prior to updating history, | 487 // redirects are tracked by the RenderView prior to updating history, |
| 488 // so we pass in a CLIENT_REDIRECT qualifier to mock that behavior. | 488 // so we pass in a CLIENT_REDIRECT qualifier to mock that behavior. |
| 489 HistoryService::RedirectList second_redirects; | 489 history::RedirectList second_redirects; |
| 490 second_redirects.push_back(first_redirects[1]); | 490 second_redirects.push_back(first_redirects[1]); |
| 491 second_redirects.push_back(GURL("http://last.page/")); | 491 second_redirects.push_back(GURL("http://last.page/")); |
| 492 history->AddPage(second_redirects[1], MakeFakeHost(1), 1, | 492 history->AddPage(second_redirects[1], MakeFakeHost(1), 1, |
| 493 second_redirects[0], | 493 second_redirects[0], |
| 494 static_cast<PageTransition::Type>(PageTransition::LINK | | 494 static_cast<PageTransition::Type>(PageTransition::LINK | |
| 495 PageTransition::CLIENT_REDIRECT), | 495 PageTransition::CLIENT_REDIRECT), |
| 496 second_redirects, true); | 496 second_redirects, true); |
| 497 | 497 |
| 498 // The last page (source of the client redirect) should NOT have an | 498 // The last page (source of the client redirect) should NOT have an |
| 499 // additional visit added, because it was a client redirect (normally it | 499 // additional visit added, because it was a client redirect (normally it |
| (...skipping 11 matching lines...) Expand all Loading... |
| 511 } | 511 } |
| 512 | 512 |
| 513 TEST_F(HistoryTest, Typed) { | 513 TEST_F(HistoryTest, Typed) { |
| 514 scoped_refptr<HistoryService> history(new HistoryService); | 514 scoped_refptr<HistoryService> history(new HistoryService); |
| 515 history_service_ = history; | 515 history_service_ = history; |
| 516 ASSERT_TRUE(history->Init(history_dir_, NULL)); | 516 ASSERT_TRUE(history->Init(history_dir_, NULL)); |
| 517 | 517 |
| 518 // Add the page once as typed. | 518 // Add the page once as typed. |
| 519 const GURL test_url("http://www.google.com/"); | 519 const GURL test_url("http://www.google.com/"); |
| 520 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::TYPED, | 520 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::TYPED, |
| 521 HistoryService::RedirectList(), false); | 521 history::RedirectList(), false); |
| 522 EXPECT_TRUE(QueryURL(history, test_url)); | 522 EXPECT_TRUE(QueryURL(history, test_url)); |
| 523 | 523 |
| 524 // We should have the same typed & visit count. | 524 // We should have the same typed & visit count. |
| 525 EXPECT_EQ(1, query_url_row_.visit_count()); | 525 EXPECT_EQ(1, query_url_row_.visit_count()); |
| 526 EXPECT_EQ(1, query_url_row_.typed_count()); | 526 EXPECT_EQ(1, query_url_row_.typed_count()); |
| 527 | 527 |
| 528 // Add the page again not typed. | 528 // Add the page again not typed. |
| 529 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::LINK, | 529 history->AddPage(test_url, NULL, 0, GURL(), PageTransition::LINK, |
| 530 HistoryService::RedirectList(), false); | 530 history::RedirectList(), false); |
| 531 EXPECT_TRUE(QueryURL(history, test_url)); | 531 EXPECT_TRUE(QueryURL(history, test_url)); |
| 532 | 532 |
| 533 // The second time should not have updated the typed count. | 533 // The second time should not have updated the typed count. |
| 534 EXPECT_EQ(2, query_url_row_.visit_count()); | 534 EXPECT_EQ(2, query_url_row_.visit_count()); |
| 535 EXPECT_EQ(1, query_url_row_.typed_count()); | 535 EXPECT_EQ(1, query_url_row_.typed_count()); |
| 536 | 536 |
| 537 // Add the page again as a generated URL. | 537 // Add the page again as a generated URL. |
| 538 history->AddPage(test_url, NULL, 0, GURL(), | 538 history->AddPage(test_url, NULL, 0, GURL(), |
| 539 PageTransition::GENERATED, HistoryService::RedirectList(), | 539 PageTransition::GENERATED, history::RedirectList(), |
| 540 false); | 540 false); |
| 541 EXPECT_TRUE(QueryURL(history, test_url)); | 541 EXPECT_TRUE(QueryURL(history, test_url)); |
| 542 | 542 |
| 543 // This should have worked like a link click. | 543 // This should have worked like a link click. |
| 544 EXPECT_EQ(3, query_url_row_.visit_count()); | 544 EXPECT_EQ(3, query_url_row_.visit_count()); |
| 545 EXPECT_EQ(1, query_url_row_.typed_count()); | 545 EXPECT_EQ(1, query_url_row_.typed_count()); |
| 546 | 546 |
| 547 // Add the page again as a reload. | 547 // Add the page again as a reload. |
| 548 history->AddPage(test_url, NULL, 0, GURL(), | 548 history->AddPage(test_url, NULL, 0, GURL(), |
| 549 PageTransition::RELOAD, HistoryService::RedirectList(), | 549 PageTransition::RELOAD, history::RedirectList(), |
| 550 false); | 550 false); |
| 551 EXPECT_TRUE(QueryURL(history, test_url)); | 551 EXPECT_TRUE(QueryURL(history, test_url)); |
| 552 | 552 |
| 553 // This should not have incremented any visit counts. | 553 // This should not have incremented any visit counts. |
| 554 EXPECT_EQ(3, query_url_row_.visit_count()); | 554 EXPECT_EQ(3, query_url_row_.visit_count()); |
| 555 EXPECT_EQ(1, query_url_row_.typed_count()); | 555 EXPECT_EQ(1, query_url_row_.typed_count()); |
| 556 } | 556 } |
| 557 | 557 |
| 558 TEST_F(HistoryTest, SetTitle) { | 558 TEST_F(HistoryTest, SetTitle) { |
| 559 scoped_refptr<HistoryService> history(new HistoryService); | 559 scoped_refptr<HistoryService> history(new HistoryService); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 589 scoped_refptr<HistoryService> history(new HistoryService); | 589 scoped_refptr<HistoryService> history(new HistoryService); |
| 590 history_service_ = history; | 590 history_service_ = history; |
| 591 | 591 |
| 592 ASSERT_TRUE(history->Init(history_dir_, NULL)); | 592 ASSERT_TRUE(history->Init(history_dir_, NULL)); |
| 593 | 593 |
| 594 static const void* scope = static_cast<void*>(this); | 594 static const void* scope = static_cast<void*>(this); |
| 595 | 595 |
| 596 // Add a URL. | 596 // Add a URL. |
| 597 const GURL existing_url("http://www.google.com/"); | 597 const GURL existing_url("http://www.google.com/"); |
| 598 history->AddPage(existing_url, scope, 0, GURL(), | 598 history->AddPage(existing_url, scope, 0, GURL(), |
| 599 PageTransition::TYPED, HistoryService::RedirectList(), | 599 PageTransition::TYPED, history::RedirectList(), |
| 600 false); | 600 false); |
| 601 | 601 |
| 602 // Make sure a segment was created. | 602 // Make sure a segment was created. |
| 603 history->QuerySegmentUsageSince( | 603 history->QuerySegmentUsageSince( |
| 604 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, | 604 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, |
| 605 NewCallback(static_cast<HistoryTest*>(this), | 605 NewCallback(static_cast<HistoryTest*>(this), |
| 606 &HistoryTest::OnSegmentUsageAvailable)); | 606 &HistoryTest::OnSegmentUsageAvailable)); |
| 607 | 607 |
| 608 // Wait for processing. | 608 // Wait for processing. |
| 609 MessageLoop::current()->Run(); | 609 MessageLoop::current()->Run(); |
| 610 | 610 |
| 611 ASSERT_EQ(1U, page_usage_data_->size()); | 611 ASSERT_EQ(1U, page_usage_data_->size()); |
| 612 EXPECT_TRUE(page_usage_data_[0]->GetURL() == existing_url); | 612 EXPECT_TRUE(page_usage_data_[0]->GetURL() == existing_url); |
| 613 EXPECT_DOUBLE_EQ(3.0, page_usage_data_[0]->GetScore()); | 613 EXPECT_DOUBLE_EQ(3.0, page_usage_data_[0]->GetScore()); |
| 614 | 614 |
| 615 // Add a URL which doesn't create a segment. | 615 // Add a URL which doesn't create a segment. |
| 616 const GURL link_url("http://yahoo.com/"); | 616 const GURL link_url("http://yahoo.com/"); |
| 617 history->AddPage(link_url, scope, 0, GURL(), | 617 history->AddPage(link_url, scope, 0, GURL(), |
| 618 PageTransition::LINK, HistoryService::RedirectList(), | 618 PageTransition::LINK, history::RedirectList(), |
| 619 false); | 619 false); |
| 620 | 620 |
| 621 // Query again | 621 // Query again |
| 622 history->QuerySegmentUsageSince( | 622 history->QuerySegmentUsageSince( |
| 623 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, | 623 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, |
| 624 NewCallback(static_cast<HistoryTest*>(this), | 624 NewCallback(static_cast<HistoryTest*>(this), |
| 625 &HistoryTest::OnSegmentUsageAvailable)); | 625 &HistoryTest::OnSegmentUsageAvailable)); |
| 626 | 626 |
| 627 // Wait for processing. | 627 // Wait for processing. |
| 628 MessageLoop::current()->Run(); | 628 MessageLoop::current()->Run(); |
| 629 | 629 |
| 630 // Make sure we still have one segment. | 630 // Make sure we still have one segment. |
| 631 ASSERT_EQ(1U, page_usage_data_->size()); | 631 ASSERT_EQ(1U, page_usage_data_->size()); |
| 632 EXPECT_TRUE(page_usage_data_[0]->GetURL() == existing_url); | 632 EXPECT_TRUE(page_usage_data_[0]->GetURL() == existing_url); |
| 633 | 633 |
| 634 // Add a page linked from existing_url. | 634 // Add a page linked from existing_url. |
| 635 history->AddPage(GURL("http://www.google.com/foo"), scope, 3, existing_url, | 635 history->AddPage(GURL("http://www.google.com/foo"), scope, 3, existing_url, |
| 636 PageTransition::LINK, HistoryService::RedirectList(), | 636 PageTransition::LINK, history::RedirectList(), |
| 637 false); | 637 false); |
| 638 | 638 |
| 639 // Query again | 639 // Query again |
| 640 history->QuerySegmentUsageSince( | 640 history->QuerySegmentUsageSince( |
| 641 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, | 641 &consumer_, Time::Now() - TimeDelta::FromDays(1), 10, |
| 642 NewCallback(static_cast<HistoryTest*>(this), | 642 NewCallback(static_cast<HistoryTest*>(this), |
| 643 &HistoryTest::OnSegmentUsageAvailable)); | 643 &HistoryTest::OnSegmentUsageAvailable)); |
| 644 | 644 |
| 645 // Wait for processing. | 645 // Wait for processing. |
| 646 MessageLoop::current()->Run(); | 646 MessageLoop::current()->Run(); |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 755 // Creates a new HistoryAddPageArgs object for sending to the history database | 755 // Creates a new HistoryAddPageArgs object for sending to the history database |
| 756 // with reasonable defaults and the given NULL-terminated URL string. The | 756 // with reasonable defaults and the given NULL-terminated URL string. The |
| 757 // returned object will NOT be add-ref'ed, which is the responsibility of the | 757 // returned object will NOT be add-ref'ed, which is the responsibility of the |
| 758 // caller. | 758 // caller. |
| 759 HistoryAddPageArgs* MakeAddArgs(const GURL& url) { | 759 HistoryAddPageArgs* MakeAddArgs(const GURL& url) { |
| 760 return new HistoryAddPageArgs(url, | 760 return new HistoryAddPageArgs(url, |
| 761 Time::Now(), | 761 Time::Now(), |
| 762 kAddArgsScope, | 762 kAddArgsScope, |
| 763 0, | 763 0, |
| 764 GURL(), | 764 GURL(), |
| 765 HistoryService::RedirectList(), | 765 history::RedirectList(), |
| 766 PageTransition::TYPED, false); | 766 PageTransition::TYPED, false); |
| 767 } | 767 } |
| 768 | 768 |
| 769 // Convenience version of the above to convert a char string. | 769 // Convenience version of the above to convert a char string. |
| 770 HistoryAddPageArgs* MakeAddArgs(const char* url) { | 770 HistoryAddPageArgs* MakeAddArgs(const char* url) { |
| 771 return MakeAddArgs(GURL(url)); | 771 return MakeAddArgs(GURL(url)); |
| 772 } | 772 } |
| 773 | 773 |
| 774 // A HistoryDBTask implementation. Each time RunOnDBThread is invoked | 774 // A HistoryDBTask implementation. Each time RunOnDBThread is invoked |
| 775 // invoke_count is increment. When invoked kWantInvokeCount times, true is | 775 // invoke_count is increment. When invoked kWantInvokeCount times, true is |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 history_service_ = history; | 830 history_service_ = history; |
| 831 history->ScheduleDBTask(task.get(), &request_consumer); | 831 history->ScheduleDBTask(task.get(), &request_consumer); |
| 832 request_consumer.CancelAllRequests(); | 832 request_consumer.CancelAllRequests(); |
| 833 CleanupHistoryService(); | 833 CleanupHistoryService(); |
| 834 // WARNING: history has now been deleted. | 834 // WARNING: history has now been deleted. |
| 835 history = NULL; | 835 history = NULL; |
| 836 ASSERT_FALSE(task->done_invoked); | 836 ASSERT_FALSE(task->done_invoked); |
| 837 } | 837 } |
| 838 | 838 |
| 839 } // namespace history | 839 } // namespace history |
| OLD | NEW |