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 "chrome/browser/history/android/android_provider_backend.h" | 5 #include "chrome/browser/history/android/android_provider_backend.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
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 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 ASSERT_TRUE(delegate_.modified_details()); | 485 ASSERT_TRUE(delegate_.modified_details()); |
486 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 486 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
487 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); | 487 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); |
488 EXPECT_EQ(row1.last_visit_time(), | 488 EXPECT_EQ(row1.last_visit_time(), |
489 delegate_.modified_details()->changed_urls[0].last_visit()); | 489 delegate_.modified_details()->changed_urls[0].last_visit()); |
490 EXPECT_EQ(row1.visit_count(), | 490 EXPECT_EQ(row1.visit_count(), |
491 delegate_.modified_details()->changed_urls[0].visit_count()); | 491 delegate_.modified_details()->changed_urls[0].visit_count()); |
492 EXPECT_EQ(row1.title(), | 492 EXPECT_EQ(row1.title(), |
493 delegate_.modified_details()->changed_urls[0].title()); | 493 delegate_.modified_details()->changed_urls[0].title()); |
494 EXPECT_FALSE(delegate_.favicon_details()); | 494 EXPECT_FALSE(delegate_.favicon_details()); |
495 ui_test_utils::RunAllPendingInMessageLoop(); | 495 content::RunAllPendingInMessageLoop(); |
496 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 496 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
497 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 497 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
498 ASSERT_TRUE(child); | 498 ASSERT_TRUE(child); |
499 EXPECT_EQ(row1.title(), child->GetTitle()); | 499 EXPECT_EQ(row1.title(), child->GetTitle()); |
500 EXPECT_EQ(row1.url(), child->url()); | 500 EXPECT_EQ(row1.url(), child->url()); |
501 | 501 |
502 delegate_.ResetDetails(); | 502 delegate_.ResetDetails(); |
503 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); | 503 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); |
504 EXPECT_FALSE(delegate_.deleted_details()); | 504 EXPECT_FALSE(delegate_.deleted_details()); |
505 ASSERT_TRUE(delegate_.modified_details()); | 505 ASSERT_TRUE(delegate_.modified_details()); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_, NULL, | 586 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_, NULL, |
587 &history_db_)); | 587 &history_db_)); |
588 | 588 |
589 scoped_ptr<AndroidProviderBackend> backend( | 589 scoped_ptr<AndroidProviderBackend> backend( |
590 new AndroidProviderBackend(android_cache_db_name_, &history_db_, | 590 new AndroidProviderBackend(android_cache_db_name_, &history_db_, |
591 &thumbnail_db_, bookmark_model_, &delegate_)); | 591 &thumbnail_db_, bookmark_model_, &delegate_)); |
592 | 592 |
593 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row1)); | 593 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row1)); |
594 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); | 594 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); |
595 // Verify the row1 has been added in bookmark model. | 595 // Verify the row1 has been added in bookmark model. |
596 ui_test_utils::RunAllPendingInMessageLoop(); | 596 content::RunAllPendingInMessageLoop(); |
597 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 597 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
598 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 598 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
599 ASSERT_TRUE(child); | 599 ASSERT_TRUE(child); |
600 EXPECT_EQ(row1.title(), child->GetTitle()); | 600 EXPECT_EQ(row1.title(), child->GetTitle()); |
601 EXPECT_EQ(row1.url(), child->url()); | 601 EXPECT_EQ(row1.url(), child->url()); |
602 | 602 |
603 // Delete the row1. | 603 // Delete the row1. |
604 std::vector<string16> args; | 604 std::vector<string16> args; |
605 int deleted_count = 0; | 605 int deleted_count = 0; |
606 delegate_.ResetDetails(); | 606 delegate_.ResetDetails(); |
607 ASSERT_TRUE(backend->DeleteHistoryAndBookmarks("Favicon IS NULL", args, | 607 ASSERT_TRUE(backend->DeleteHistoryAndBookmarks("Favicon IS NULL", args, |
608 &deleted_count)); | 608 &deleted_count)); |
609 EXPECT_EQ(1, deleted_count); | 609 EXPECT_EQ(1, deleted_count); |
610 // Verify the row1 was removed from bookmark model. | 610 // Verify the row1 was removed from bookmark model. |
611 ui_test_utils::RunAllPendingInMessageLoop(); | 611 content::RunAllPendingInMessageLoop(); |
612 ASSERT_EQ(0, bookmark_model_->mobile_node()->child_count()); | 612 ASSERT_EQ(0, bookmark_model_->mobile_node()->child_count()); |
613 | 613 |
614 // Verify notifications | 614 // Verify notifications |
615 ASSERT_TRUE(delegate_.deleted_details()); | 615 ASSERT_TRUE(delegate_.deleted_details()); |
616 EXPECT_FALSE(delegate_.modified_details()); | 616 EXPECT_FALSE(delegate_.modified_details()); |
617 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); | 617 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); |
618 EXPECT_EQ(row1.url(), delegate_.deleted_details()->rows[0].url()); | 618 EXPECT_EQ(row1.url(), delegate_.deleted_details()->rows[0].url()); |
619 EXPECT_EQ(row1.last_visit_time(), | 619 EXPECT_EQ(row1.last_visit_time(), |
620 delegate_.deleted_details()->rows[0].last_visit()); | 620 delegate_.deleted_details()->rows[0].last_visit()); |
621 EXPECT_EQ(row1.title(), | 621 EXPECT_EQ(row1.title(), |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 scoped_ptr<AndroidProviderBackend> backend( | 777 scoped_ptr<AndroidProviderBackend> backend( |
778 new AndroidProviderBackend(android_cache_db_name_, &history_db_, | 778 new AndroidProviderBackend(android_cache_db_name_, &history_db_, |
779 &thumbnail_db_, bookmark_model_, &delegate_)); | 779 &thumbnail_db_, bookmark_model_, &delegate_)); |
780 | 780 |
781 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); | 781 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); |
782 ASSERT_TRUE(id1); | 782 ASSERT_TRUE(id1); |
783 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); | 783 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); |
784 ASSERT_TRUE(id2); | 784 ASSERT_TRUE(id2); |
785 | 785 |
786 // Verify the row1 has been added in bookmark model. | 786 // Verify the row1 has been added in bookmark model. |
787 ui_test_utils::RunAllPendingInMessageLoop(); | 787 content::RunAllPendingInMessageLoop(); |
788 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 788 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
789 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 789 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
790 ASSERT_TRUE(child); | 790 ASSERT_TRUE(child); |
791 EXPECT_EQ(row1.title(), child->GetTitle()); | 791 EXPECT_EQ(row1.title(), child->GetTitle()); |
792 EXPECT_EQ(row1.url(), child->url()); | 792 EXPECT_EQ(row1.url(), child->url()); |
793 | 793 |
794 // Make sure the url has correctly insertted. | 794 // Make sure the url has correctly insertted. |
795 URLID url_id1 = history_db_.GetRowForURL(row1.url(), NULL); | 795 URLID url_id1 = history_db_.GetRowForURL(row1.url(), NULL); |
796 ASSERT_TRUE(url_id1); | 796 ASSERT_TRUE(url_id1); |
797 URLID url_id2 = history_db_.GetRowForURL(row2.url(), NULL); | 797 URLID url_id2 = history_db_.GetRowForURL(row2.url(), NULL); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
854 ToDatabaseTime(new_row.last_visit())); | 854 ToDatabaseTime(new_row.last_visit())); |
855 visits.clear(); | 855 visits.clear(); |
856 EXPECT_TRUE(history_db_.GetVisitsForURL(new_row.id(), &visits)); | 856 EXPECT_TRUE(history_db_.GetVisitsForURL(new_row.id(), &visits)); |
857 EXPECT_EQ(10u, visits.size()); | 857 EXPECT_EQ(10u, visits.size()); |
858 AndroidURLRow android_url_row1; | 858 AndroidURLRow android_url_row1; |
859 ASSERT_TRUE(history_db_.GetAndroidURLRow(new_row.id(), &android_url_row1)); | 859 ASSERT_TRUE(history_db_.GetAndroidURLRow(new_row.id(), &android_url_row1)); |
860 // Android URL ID shouldn't change. | 860 // Android URL ID shouldn't change. |
861 EXPECT_EQ(id1, android_url_row1.id); | 861 EXPECT_EQ(id1, android_url_row1.id); |
862 | 862 |
863 // Verify the bookmark model was updated. | 863 // Verify the bookmark model was updated. |
864 ui_test_utils::RunAllPendingInMessageLoop(); | 864 content::RunAllPendingInMessageLoop(); |
865 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 865 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
866 const BookmarkNode* child1 = bookmark_model_->mobile_node()->GetChild(0); | 866 const BookmarkNode* child1 = bookmark_model_->mobile_node()->GetChild(0); |
867 ASSERT_TRUE(child1); | 867 ASSERT_TRUE(child1); |
868 EXPECT_EQ(row1.title(), child1->GetTitle()); | 868 EXPECT_EQ(row1.title(), child1->GetTitle()); |
869 EXPECT_EQ(update_row1.url(), child1->url()); | 869 EXPECT_EQ(update_row1.url(), child1->url()); |
870 | 870 |
871 // Update the URL with visit count, created time, and last visit time. | 871 // Update the URL with visit count, created time, and last visit time. |
872 HistoryAndBookmarkRow update_row2; | 872 HistoryAndBookmarkRow update_row2; |
873 update_row2.set_raw_url("somethingelse.com"); | 873 update_row2.set_raw_url("somethingelse.com"); |
874 update_row2.set_url(GURL("http://somethingelse.com")); | 874 update_row2.set_url(GURL("http://somethingelse.com")); |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1543 scoped_ptr<AndroidProviderBackend> backend( | 1543 scoped_ptr<AndroidProviderBackend> backend( |
1544 new AndroidProviderBackend(android_cache_db_name_, &history_db_, | 1544 new AndroidProviderBackend(android_cache_db_name_, &history_db_, |
1545 &thumbnail_db_, bookmark_model_, &delegate_)); | 1545 &thumbnail_db_, bookmark_model_, &delegate_)); |
1546 | 1546 |
1547 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); | 1547 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); |
1548 ASSERT_TRUE(id1); | 1548 ASSERT_TRUE(id1); |
1549 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); | 1549 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); |
1550 ASSERT_TRUE(id2); | 1550 ASSERT_TRUE(id2); |
1551 | 1551 |
1552 // Verify the row1 has been added in bookmark model. | 1552 // Verify the row1 has been added in bookmark model. |
1553 ui_test_utils::RunAllPendingInMessageLoop(); | 1553 content::RunAllPendingInMessageLoop(); |
1554 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 1554 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
1555 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 1555 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
1556 ASSERT_TRUE(child); | 1556 ASSERT_TRUE(child); |
1557 EXPECT_EQ(row1.title(), child->GetTitle()); | 1557 EXPECT_EQ(row1.title(), child->GetTitle()); |
1558 EXPECT_EQ(row1.url(), child->url()); | 1558 EXPECT_EQ(row1.url(), child->url()); |
1559 | 1559 |
1560 // Delete history | 1560 // Delete history |
1561 int deleted_count = 0; | 1561 int deleted_count = 0; |
1562 ASSERT_TRUE(backend->DeleteHistory(std::string(), std::vector<string16>(), | 1562 ASSERT_TRUE(backend->DeleteHistory(std::string(), std::vector<string16>(), |
1563 &deleted_count)); | 1563 &deleted_count)); |
1564 EXPECT_EQ(2, deleted_count); | 1564 EXPECT_EQ(2, deleted_count); |
1565 // The row2 was deleted. | 1565 // The row2 was deleted. |
1566 EXPECT_FALSE(history_db_.GetRowForURL(row2.url(), NULL)); | 1566 EXPECT_FALSE(history_db_.GetRowForURL(row2.url(), NULL)); |
1567 // Still find the row1. | 1567 // Still find the row1. |
1568 URLRow url_row; | 1568 URLRow url_row; |
1569 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &url_row)); | 1569 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &url_row)); |
1570 // The visit_count was reset. | 1570 // The visit_count was reset. |
1571 EXPECT_EQ(0, url_row.visit_count()); | 1571 EXPECT_EQ(0, url_row.visit_count()); |
1572 EXPECT_EQ(Time::UnixEpoch(), url_row.last_visit()); | 1572 EXPECT_EQ(Time::UnixEpoch(), url_row.last_visit()); |
1573 | 1573 |
1574 // Verify the row1 is still in bookmark model. | 1574 // Verify the row1 is still in bookmark model. |
1575 ui_test_utils::RunAllPendingInMessageLoop(); | 1575 content::RunAllPendingInMessageLoop(); |
1576 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 1576 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
1577 const BookmarkNode* child1 = bookmark_model_->mobile_node()->GetChild(0); | 1577 const BookmarkNode* child1 = bookmark_model_->mobile_node()->GetChild(0); |
1578 ASSERT_TRUE(child1); | 1578 ASSERT_TRUE(child1); |
1579 EXPECT_EQ(row1.title(), child1->GetTitle()); | 1579 EXPECT_EQ(row1.title(), child1->GetTitle()); |
1580 EXPECT_EQ(row1.url(), child1->url()); | 1580 EXPECT_EQ(row1.url(), child1->url()); |
1581 | 1581 |
1582 // Verify notification | 1582 // Verify notification |
1583 ASSERT_TRUE(delegate_.deleted_details()); | 1583 ASSERT_TRUE(delegate_.deleted_details()); |
1584 ASSERT_EQ(2u, delegate_.deleted_details()->rows.size()); | 1584 ASSERT_EQ(2u, delegate_.deleted_details()->rows.size()); |
1585 EXPECT_EQ(row1.url(), | 1585 EXPECT_EQ(row1.url(), |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1701 row2.set_is_bookmark(false); | 1701 row2.set_is_bookmark(false); |
1702 row2.set_title(UTF8ToUTF16("example")); | 1702 row2.set_title(UTF8ToUTF16("example")); |
1703 std::vector<unsigned char> data; | 1703 std::vector<unsigned char> data; |
1704 data.push_back('1'); | 1704 data.push_back('1'); |
1705 row2.set_favicon(data); | 1705 row2.set_favicon(data); |
1706 | 1706 |
1707 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); | 1707 AndroidURLID id1 = backend->InsertHistoryAndBookmark(row1); |
1708 ASSERT_TRUE(id1); | 1708 ASSERT_TRUE(id1); |
1709 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); | 1709 AndroidURLID id2 = backend->InsertHistoryAndBookmark(row2); |
1710 ASSERT_TRUE(id2); | 1710 ASSERT_TRUE(id2); |
1711 ui_test_utils::RunAllPendingInMessageLoop(); | 1711 content::RunAllPendingInMessageLoop(); |
1712 | 1712 |
1713 // Query by folder=0, the row1 should returned. | 1713 // Query by folder=0, the row1 should returned. |
1714 std::vector<HistoryAndBookmarkRow::ColumnID> projections; | 1714 std::vector<HistoryAndBookmarkRow::ColumnID> projections; |
1715 | 1715 |
1716 projections.push_back(HistoryAndBookmarkRow::URL); | 1716 projections.push_back(HistoryAndBookmarkRow::URL); |
1717 | 1717 |
1718 scoped_ptr<AndroidStatement> statement(backend->QueryHistoryAndBookmarks( | 1718 scoped_ptr<AndroidStatement> statement(backend->QueryHistoryAndBookmarks( |
1719 projections, std::string("folder=0"), std::vector<string16>(), | 1719 projections, std::string("folder=0"), std::vector<string16>(), |
1720 std::string("url ASC"))); | 1720 std::string("url ASC"))); |
1721 ASSERT_TRUE(statement->statement()->Step()); | 1721 ASSERT_TRUE(statement->statement()->Step()); |
1722 EXPECT_EQ(row1.raw_url(), statement->statement()->ColumnString(0)); | 1722 EXPECT_EQ(row1.raw_url(), statement->statement()->ColumnString(0)); |
1723 EXPECT_FALSE(statement->statement()->Step()); | 1723 EXPECT_FALSE(statement->statement()->Step()); |
1724 | 1724 |
1725 // Query by folder=1, the row2 should returned. | 1725 // Query by folder=1, the row2 should returned. |
1726 statement.reset(backend->QueryHistoryAndBookmarks( | 1726 statement.reset(backend->QueryHistoryAndBookmarks( |
1727 projections, std::string("folder=1"), std::vector<string16>(), | 1727 projections, std::string("folder=1"), std::vector<string16>(), |
1728 std::string("url ASC"))); | 1728 std::string("url ASC"))); |
1729 ASSERT_TRUE(statement->statement()->Step()); | 1729 ASSERT_TRUE(statement->statement()->Step()); |
1730 EXPECT_EQ(row2.url(), GURL(statement->statement()->ColumnString(0))); | 1730 EXPECT_EQ(row2.url(), GURL(statement->statement()->ColumnString(0))); |
1731 EXPECT_FALSE(statement->statement()->Step()); | 1731 EXPECT_FALSE(statement->statement()->Step()); |
1732 } | 1732 } |
1733 | 1733 |
1734 } // namespace history | 1734 } // namespace history |
OLD | NEW |