Chromium Code Reviews| 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_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| 11 #include "base/files/scoped_temp_dir.h" | 11 #include "base/files/scoped_temp_dir.h" |
| 12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 13 #include "base/strings/stringprintf.h" | 13 #include "base/strings/stringprintf.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 15 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 16 #include "chrome/browser/chrome_notification_types.h" | 16 #include "chrome/browser/chrome_notification_types.h" |
| 17 #include "chrome/browser/favicon/favicon_changed_details.h" | |
| 18 #include "chrome/browser/history/android/android_time.h" | 17 #include "chrome/browser/history/android/android_time.h" |
| 19 #include "chrome/browser/history/chrome_history_client.h" | 18 #include "chrome/browser/history/chrome_history_client.h" |
| 20 #include "chrome/browser/history/chrome_history_client_factory.h" | 19 #include "chrome/browser/history/chrome_history_client_factory.h" |
| 21 #include "chrome/browser/history/history_backend.h" | 20 #include "chrome/browser/history/history_backend.h" |
| 22 #include "chrome/browser/profiles/profile_manager.h" | 21 #include "chrome/browser/profiles/profile_manager.h" |
| 23 #include "chrome/common/chrome_constants.h" | 22 #include "chrome/common/chrome_constants.h" |
| 24 #include "chrome/test/base/testing_browser_process.h" | 23 #include "chrome/test/base/testing_browser_process.h" |
| 25 #include "chrome/test/base/testing_profile.h" | 24 #include "chrome/test/base/testing_profile.h" |
| 26 #include "chrome/test/base/testing_profile_manager.h" | 25 #include "chrome/test/base/testing_profile_manager.h" |
| 27 #include "components/bookmarks/browser/bookmark_model.h" | 26 #include "components/bookmarks/browser/bookmark_model.h" |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 57 | 56 |
| 58 } // namespace | 57 } // namespace |
| 59 | 58 |
| 60 class AndroidProviderBackendDelegate : public HistoryBackend::Delegate { | 59 class AndroidProviderBackendDelegate : public HistoryBackend::Delegate { |
| 61 public: | 60 public: |
| 62 AndroidProviderBackendDelegate() {} | 61 AndroidProviderBackendDelegate() {} |
| 63 | 62 |
| 64 virtual void NotifyProfileError(sql::InitStatus init_status) OVERRIDE {} | 63 virtual void NotifyProfileError(sql::InitStatus init_status) OVERRIDE {} |
| 65 virtual void SetInMemoryBackend( | 64 virtual void SetInMemoryBackend( |
| 66 scoped_ptr<InMemoryHistoryBackend> backend) OVERRIDE {} | 65 scoped_ptr<InMemoryHistoryBackend> backend) OVERRIDE {} |
| 66 virtual void NotifyFaviconChanged(const std::set<GURL>& url) OVERRIDE { | |
| 67 favicon_changed_.reset(new std::set<GURL>(url.begin(), url.end())); | |
| 68 } | |
| 67 virtual void BroadcastNotifications( | 69 virtual void BroadcastNotifications( |
| 68 int type, | 70 int type, |
| 69 scoped_ptr<HistoryDetails> details) OVERRIDE { | 71 scoped_ptr<HistoryDetails> details) OVERRIDE { |
| 70 switch (type) { | 72 switch (type) { |
| 71 case chrome::NOTIFICATION_HISTORY_URLS_DELETED: | 73 case chrome::NOTIFICATION_HISTORY_URLS_DELETED: |
| 72 deleted_details_.reset( | 74 deleted_details_.reset( |
| 73 static_cast<URLsDeletedDetails*>(details.release())); | 75 static_cast<URLsDeletedDetails*>(details.release())); |
| 74 break; | 76 break; |
| 75 case chrome::NOTIFICATION_FAVICON_CHANGED: | |
| 76 favicon_details_.reset( | |
| 77 static_cast<FaviconChangedDetails*>(details.release())); | |
| 78 break; | |
| 79 case chrome::NOTIFICATION_HISTORY_URLS_MODIFIED: | 77 case chrome::NOTIFICATION_HISTORY_URLS_MODIFIED: |
| 80 modified_details_.reset( | 78 modified_details_.reset( |
| 81 static_cast<URLsModifiedDetails*>(details.release())); | 79 static_cast<URLsModifiedDetails*>(details.release())); |
| 82 break; | 80 break; |
| 81 default: | |
| 82 NOTREACHED() << "Unexpected notification type: " << type; | |
| 83 } | 83 } |
| 84 } | 84 } |
| 85 virtual void DBLoaded() OVERRIDE {} | 85 virtual void DBLoaded() OVERRIDE {} |
| 86 virtual void NotifyVisitDBObserversOnAddVisit( | 86 virtual void NotifyVisitDBObserversOnAddVisit( |
| 87 const history::BriefVisitInfo& info) OVERRIDE {} | 87 const history::BriefVisitInfo& info) OVERRIDE {} |
| 88 | 88 |
| 89 URLsDeletedDetails* deleted_details() const { | 89 URLsDeletedDetails* deleted_details() const { |
| 90 return deleted_details_.get(); | 90 return deleted_details_.get(); |
| 91 } | 91 } |
| 92 | 92 |
| 93 URLsModifiedDetails* modified_details() const { | 93 URLsModifiedDetails* modified_details() const { |
| 94 return modified_details_.get(); | 94 return modified_details_.get(); |
| 95 } | 95 } |
| 96 | 96 |
| 97 FaviconChangedDetails* favicon_details() const { | 97 std::set<GURL>* favicon_changed() const { return favicon_changed_.get(); } |
| 98 return favicon_details_.get(); | |
| 99 } | |
| 100 | 98 |
| 101 void ResetDetails() { | 99 void ResetDetails() { |
| 102 deleted_details_.reset(); | 100 deleted_details_.reset(); |
| 103 modified_details_.reset(); | 101 modified_details_.reset(); |
| 104 favicon_details_.reset(); | 102 favicon_changed_.reset(); |
| 105 } | 103 } |
| 106 | 104 |
| 107 private: | 105 private: |
| 108 scoped_ptr<URLsDeletedDetails> deleted_details_; | 106 scoped_ptr<URLsDeletedDetails> deleted_details_; |
| 109 scoped_ptr<URLsModifiedDetails> modified_details_; | 107 scoped_ptr<URLsModifiedDetails> modified_details_; |
| 110 scoped_ptr<FaviconChangedDetails> favicon_details_; | 108 scoped_ptr<std::set<GURL>> favicon_changed_; |
|
brettw
2014/09/02 23:23:10
Ditto on >>
sdefresne
2014/09/03 10:00:01
Done.
| |
| 111 | 109 |
| 112 DISALLOW_COPY_AND_ASSIGN(AndroidProviderBackendDelegate); | 110 DISALLOW_COPY_AND_ASSIGN(AndroidProviderBackendDelegate); |
| 113 }; | 111 }; |
| 114 | 112 |
| 115 class AndroidProviderBackendTest : public testing::Test { | 113 class AndroidProviderBackendTest : public testing::Test { |
| 116 public: | 114 public: |
| 117 AndroidProviderBackendTest() | 115 AndroidProviderBackendTest() |
| 118 : thumbnail_db_(NULL), | 116 : thumbnail_db_(NULL), |
| 119 profile_manager_( | 117 profile_manager_( |
| 120 TestingBrowserProcess::GetGlobal()), | 118 TestingBrowserProcess::GetGlobal()), |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 527 EXPECT_FALSE(delegate_.deleted_details()); | 525 EXPECT_FALSE(delegate_.deleted_details()); |
| 528 ASSERT_TRUE(delegate_.modified_details()); | 526 ASSERT_TRUE(delegate_.modified_details()); |
| 529 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 527 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 530 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); | 528 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); |
| 531 EXPECT_EQ(row1.last_visit_time(), | 529 EXPECT_EQ(row1.last_visit_time(), |
| 532 delegate_.modified_details()->changed_urls[0].last_visit()); | 530 delegate_.modified_details()->changed_urls[0].last_visit()); |
| 533 EXPECT_EQ(row1.visit_count(), | 531 EXPECT_EQ(row1.visit_count(), |
| 534 delegate_.modified_details()->changed_urls[0].visit_count()); | 532 delegate_.modified_details()->changed_urls[0].visit_count()); |
| 535 EXPECT_EQ(row1.title(), | 533 EXPECT_EQ(row1.title(), |
| 536 delegate_.modified_details()->changed_urls[0].title()); | 534 delegate_.modified_details()->changed_urls[0].title()); |
| 537 EXPECT_FALSE(delegate_.favicon_details()); | 535 EXPECT_FALSE(delegate_.favicon_changed()); |
| 538 content::RunAllPendingInMessageLoop(); | 536 content::RunAllPendingInMessageLoop(); |
| 539 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 537 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
| 540 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 538 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
| 541 ASSERT_TRUE(child); | 539 ASSERT_TRUE(child); |
| 542 EXPECT_EQ(row1.title(), child->GetTitle()); | 540 EXPECT_EQ(row1.title(), child->GetTitle()); |
| 543 EXPECT_EQ(row1.url(), child->url()); | 541 EXPECT_EQ(row1.url(), child->url()); |
| 544 | 542 |
| 545 delegate_.ResetDetails(); | 543 delegate_.ResetDetails(); |
| 546 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); | 544 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); |
| 547 EXPECT_FALSE(delegate_.deleted_details()); | 545 EXPECT_FALSE(delegate_.deleted_details()); |
| 548 ASSERT_TRUE(delegate_.modified_details()); | 546 ASSERT_TRUE(delegate_.modified_details()); |
| 549 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 547 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 550 EXPECT_EQ(row2.url(), delegate_.modified_details()->changed_urls[0].url()); | 548 EXPECT_EQ(row2.url(), delegate_.modified_details()->changed_urls[0].url()); |
| 551 EXPECT_EQ(row2.last_visit_time(), | 549 EXPECT_EQ(row2.last_visit_time(), |
| 552 delegate_.modified_details()->changed_urls[0].last_visit()); | 550 delegate_.modified_details()->changed_urls[0].last_visit()); |
| 553 EXPECT_EQ(row2.title(), | 551 EXPECT_EQ(row2.title(), |
| 554 delegate_.modified_details()->changed_urls[0].title()); | 552 delegate_.modified_details()->changed_urls[0].title()); |
| 555 ASSERT_TRUE(delegate_.favicon_details()); | 553 ASSERT_TRUE(delegate_.favicon_changed()); |
| 556 ASSERT_EQ(1u, delegate_.favicon_details()->urls.size()); | 554 ASSERT_EQ(1u, delegate_.favicon_changed()->size()); |
| 557 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 555 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 558 delegate_.favicon_details()->urls.find(row2.url())); | 556 delegate_.favicon_changed()->find(row2.url())); |
| 559 | 557 |
| 560 std::vector<HistoryAndBookmarkRow::ColumnID> projections; | 558 std::vector<HistoryAndBookmarkRow::ColumnID> projections; |
| 561 projections.push_back(HistoryAndBookmarkRow::ID); | 559 projections.push_back(HistoryAndBookmarkRow::ID); |
| 562 projections.push_back(HistoryAndBookmarkRow::URL); | 560 projections.push_back(HistoryAndBookmarkRow::URL); |
| 563 projections.push_back(HistoryAndBookmarkRow::TITLE); | 561 projections.push_back(HistoryAndBookmarkRow::TITLE); |
| 564 projections.push_back(HistoryAndBookmarkRow::CREATED); | 562 projections.push_back(HistoryAndBookmarkRow::CREATED); |
| 565 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); | 563 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); |
| 566 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); | 564 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); |
| 567 projections.push_back(HistoryAndBookmarkRow::FAVICON); | 565 projections.push_back(HistoryAndBookmarkRow::FAVICON); |
| 568 projections.push_back(HistoryAndBookmarkRow::BOOKMARK); | 566 projections.push_back(HistoryAndBookmarkRow::BOOKMARK); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 658 | 656 |
| 659 // Verify notifications | 657 // Verify notifications |
| 660 ASSERT_TRUE(delegate_.deleted_details()); | 658 ASSERT_TRUE(delegate_.deleted_details()); |
| 661 EXPECT_FALSE(delegate_.modified_details()); | 659 EXPECT_FALSE(delegate_.modified_details()); |
| 662 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); | 660 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); |
| 663 EXPECT_EQ(row1.url(), delegate_.deleted_details()->rows[0].url()); | 661 EXPECT_EQ(row1.url(), delegate_.deleted_details()->rows[0].url()); |
| 664 EXPECT_EQ(row1.last_visit_time(), | 662 EXPECT_EQ(row1.last_visit_time(), |
| 665 delegate_.deleted_details()->rows[0].last_visit()); | 663 delegate_.deleted_details()->rows[0].last_visit()); |
| 666 EXPECT_EQ(row1.title(), | 664 EXPECT_EQ(row1.title(), |
| 667 delegate_.deleted_details()->rows[0].title()); | 665 delegate_.deleted_details()->rows[0].title()); |
| 668 EXPECT_FALSE(delegate_.favicon_details()); | 666 EXPECT_FALSE(delegate_.favicon_changed()); |
| 669 | 667 |
| 670 std::vector<HistoryAndBookmarkRow::ColumnID> projections; | 668 std::vector<HistoryAndBookmarkRow::ColumnID> projections; |
| 671 projections.push_back(HistoryAndBookmarkRow::ID); | 669 projections.push_back(HistoryAndBookmarkRow::ID); |
| 672 projections.push_back(HistoryAndBookmarkRow::URL); | 670 projections.push_back(HistoryAndBookmarkRow::URL); |
| 673 projections.push_back(HistoryAndBookmarkRow::TITLE); | 671 projections.push_back(HistoryAndBookmarkRow::TITLE); |
| 674 projections.push_back(HistoryAndBookmarkRow::CREATED); | 672 projections.push_back(HistoryAndBookmarkRow::CREATED); |
| 675 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); | 673 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); |
| 676 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); | 674 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); |
| 677 projections.push_back(HistoryAndBookmarkRow::FAVICON); | 675 projections.push_back(HistoryAndBookmarkRow::FAVICON); |
| 678 projections.push_back(HistoryAndBookmarkRow::BOOKMARK); | 676 projections.push_back(HistoryAndBookmarkRow::BOOKMARK); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 705 std::vector<base::string16>(), &deleted_count)); | 703 std::vector<base::string16>(), &deleted_count)); |
| 706 // Verify notifications | 704 // Verify notifications |
| 707 ASSERT_TRUE(delegate_.deleted_details()); | 705 ASSERT_TRUE(delegate_.deleted_details()); |
| 708 EXPECT_FALSE(delegate_.modified_details()); | 706 EXPECT_FALSE(delegate_.modified_details()); |
| 709 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); | 707 EXPECT_EQ(1u, delegate_.deleted_details()->rows.size()); |
| 710 EXPECT_EQ(row2.url(), delegate_.deleted_details()->rows[0].url()); | 708 EXPECT_EQ(row2.url(), delegate_.deleted_details()->rows[0].url()); |
| 711 EXPECT_EQ(row2.last_visit_time(), | 709 EXPECT_EQ(row2.last_visit_time(), |
| 712 delegate_.deleted_details()->rows[0].last_visit()); | 710 delegate_.deleted_details()->rows[0].last_visit()); |
| 713 EXPECT_EQ(row2.title(), | 711 EXPECT_EQ(row2.title(), |
| 714 delegate_.deleted_details()->rows[0].title()); | 712 delegate_.deleted_details()->rows[0].title()); |
| 715 ASSERT_TRUE(delegate_.favicon_details()); | 713 ASSERT_TRUE(delegate_.favicon_changed()); |
| 716 ASSERT_EQ(1u, delegate_.favicon_details()->urls.size()); | 714 ASSERT_EQ(1u, delegate_.favicon_changed()->size()); |
| 717 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 715 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 718 delegate_.favicon_details()->urls.find(row2.url())); | 716 delegate_.favicon_changed()->find(row2.url())); |
| 719 | 717 |
| 720 ASSERT_EQ(1, deleted_count); | 718 ASSERT_EQ(1, deleted_count); |
| 721 scoped_ptr<AndroidStatement> statement1(backend->QueryHistoryAndBookmarks( | 719 scoped_ptr<AndroidStatement> statement1(backend->QueryHistoryAndBookmarks( |
| 722 projections, std::string(), std::vector<base::string16>(), | 720 projections, std::string(), std::vector<base::string16>(), |
| 723 std::string("url ASC"))); | 721 std::string("url ASC"))); |
| 724 ASSERT_FALSE(statement1->statement()->Step()); | 722 ASSERT_FALSE(statement1->statement()->Step()); |
| 725 } | 723 } |
| 726 | 724 |
| 727 TEST_F(AndroidProviderBackendTest, IsValidHistoryAndBookmarkRow) { | 725 TEST_F(AndroidProviderBackendTest, IsValidHistoryAndBookmarkRow) { |
| 728 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); | 726 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 880 delegate_.deleted_details()->rows[0].title()); | 878 delegate_.deleted_details()->rows[0].title()); |
| 881 ASSERT_TRUE(delegate_.modified_details()); | 879 ASSERT_TRUE(delegate_.modified_details()); |
| 882 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 880 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 883 EXPECT_EQ(update_row1.url(), | 881 EXPECT_EQ(update_row1.url(), |
| 884 delegate_.modified_details()->changed_urls[0].url()); | 882 delegate_.modified_details()->changed_urls[0].url()); |
| 885 EXPECT_EQ(ToDatabaseTime(row1.last_visit_time()), | 883 EXPECT_EQ(ToDatabaseTime(row1.last_visit_time()), |
| 886 ToDatabaseTime( | 884 ToDatabaseTime( |
| 887 delegate_.modified_details()->changed_urls[0].last_visit())); | 885 delegate_.modified_details()->changed_urls[0].last_visit())); |
| 888 EXPECT_EQ(row1.title(), | 886 EXPECT_EQ(row1.title(), |
| 889 delegate_.modified_details()->changed_urls[0].title()); | 887 delegate_.modified_details()->changed_urls[0].title()); |
| 890 EXPECT_FALSE(delegate_.favicon_details()); | 888 EXPECT_FALSE(delegate_.favicon_changed()); |
| 891 | 889 |
| 892 EXPECT_EQ(1, update_count); | 890 EXPECT_EQ(1, update_count); |
| 893 // We shouldn't find orignal url anymore. | 891 // We shouldn't find orignal url anymore. |
| 894 EXPECT_FALSE(history_db_.GetRowForURL(row1.url(), NULL)); | 892 EXPECT_FALSE(history_db_.GetRowForURL(row1.url(), NULL)); |
| 895 visits.clear(); | 893 visits.clear(); |
| 896 EXPECT_TRUE(history_db_.GetVisitsForURL(url_id1, &visits)); | 894 EXPECT_TRUE(history_db_.GetVisitsForURL(url_id1, &visits)); |
| 897 EXPECT_EQ(0u, visits.size()); | 895 EXPECT_EQ(0u, visits.size()); |
| 898 // Verify new URL. | 896 // Verify new URL. |
| 899 URLRow new_row; | 897 URLRow new_row; |
| 900 EXPECT_TRUE(history_db_.GetRowForURL(update_row1.url(), &new_row)); | 898 EXPECT_TRUE(history_db_.GetRowForURL(update_row1.url(), &new_row)); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 940 delegate_.deleted_details()->rows[0].title()); | 938 delegate_.deleted_details()->rows[0].title()); |
| 941 ASSERT_TRUE(delegate_.modified_details()); | 939 ASSERT_TRUE(delegate_.modified_details()); |
| 942 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 940 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 943 EXPECT_EQ(update_row2.url(), | 941 EXPECT_EQ(update_row2.url(), |
| 944 delegate_.modified_details()->changed_urls[0].url()); | 942 delegate_.modified_details()->changed_urls[0].url()); |
| 945 EXPECT_EQ(ToDatabaseTime(update_row2.last_visit_time()), | 943 EXPECT_EQ(ToDatabaseTime(update_row2.last_visit_time()), |
| 946 ToDatabaseTime( | 944 ToDatabaseTime( |
| 947 delegate_.modified_details()->changed_urls[0].last_visit())); | 945 delegate_.modified_details()->changed_urls[0].last_visit())); |
| 948 EXPECT_EQ(update_row2.visit_count(), | 946 EXPECT_EQ(update_row2.visit_count(), |
| 949 delegate_.modified_details()->changed_urls[0].visit_count()); | 947 delegate_.modified_details()->changed_urls[0].visit_count()); |
| 950 ASSERT_TRUE(delegate_.favicon_details()); | 948 ASSERT_TRUE(delegate_.favicon_changed()); |
| 951 ASSERT_EQ(2u, delegate_.favicon_details()->urls.size()); | 949 ASSERT_EQ(2u, delegate_.favicon_changed()->size()); |
| 952 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 950 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 953 delegate_.favicon_details()->urls.find(row2.url())); | 951 delegate_.favicon_changed()->find(row2.url())); |
| 954 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 952 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 955 delegate_.favicon_details()->urls.find(update_row2.url())); | 953 delegate_.favicon_changed()->find(update_row2.url())); |
| 956 | 954 |
| 957 EXPECT_EQ(1, update_count); | 955 EXPECT_EQ(1, update_count); |
| 958 // We shouldn't find orignal url anymore. | 956 // We shouldn't find orignal url anymore. |
| 959 EXPECT_FALSE(history_db_.GetRowForURL(row2.url(), NULL)); | 957 EXPECT_FALSE(history_db_.GetRowForURL(row2.url(), NULL)); |
| 960 visits.clear(); | 958 visits.clear(); |
| 961 EXPECT_TRUE(history_db_.GetVisitsForURL(url_id2, &visits)); | 959 EXPECT_TRUE(history_db_.GetVisitsForURL(url_id2, &visits)); |
| 962 EXPECT_EQ(0u, visits.size()); | 960 EXPECT_EQ(0u, visits.size()); |
| 963 | 961 |
| 964 // Verify new URL. | 962 // Verify new URL. |
| 965 URLRow new_row2; | 963 URLRow new_row2; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1027 EXPECT_FALSE(delegate_.deleted_details()); | 1025 EXPECT_FALSE(delegate_.deleted_details()); |
| 1028 ASSERT_TRUE(delegate_.modified_details()); | 1026 ASSERT_TRUE(delegate_.modified_details()); |
| 1029 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 1027 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 1030 EXPECT_EQ(row1.url(), | 1028 EXPECT_EQ(row1.url(), |
| 1031 delegate_.modified_details()->changed_urls[0].url()); | 1029 delegate_.modified_details()->changed_urls[0].url()); |
| 1032 EXPECT_EQ(ToDatabaseTime(row1.last_visit_time()), | 1030 EXPECT_EQ(ToDatabaseTime(row1.last_visit_time()), |
| 1033 ToDatabaseTime( | 1031 ToDatabaseTime( |
| 1034 delegate_.modified_details()->changed_urls[0].last_visit())); | 1032 delegate_.modified_details()->changed_urls[0].last_visit())); |
| 1035 EXPECT_EQ(update_row1.visit_count(), | 1033 EXPECT_EQ(update_row1.visit_count(), |
| 1036 delegate_.modified_details()->changed_urls[0].visit_count()); | 1034 delegate_.modified_details()->changed_urls[0].visit_count()); |
| 1037 EXPECT_FALSE(delegate_.favicon_details()); | 1035 EXPECT_FALSE(delegate_.favicon_changed()); |
| 1038 | 1036 |
| 1039 // All visits should be removed, and 5 new visit insertted. | 1037 // All visits should be removed, and 5 new visit insertted. |
| 1040 URLRow new_row1; | 1038 URLRow new_row1; |
| 1041 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &new_row1)); | 1039 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &new_row1)); |
| 1042 EXPECT_EQ(5, new_row1.visit_count()); | 1040 EXPECT_EQ(5, new_row1.visit_count()); |
| 1043 VisitVector visits; | 1041 VisitVector visits; |
| 1044 ASSERT_TRUE(history_db_.GetVisitsForURL(new_row1.id(), &visits)); | 1042 ASSERT_TRUE(history_db_.GetVisitsForURL(new_row1.id(), &visits)); |
| 1045 ASSERT_EQ(5u, visits.size()); | 1043 ASSERT_EQ(5u, visits.size()); |
| 1046 EXPECT_EQ(row1.last_visit_time(), visits[4].visit_time); | 1044 EXPECT_EQ(row1.last_visit_time(), visits[4].visit_time); |
| 1047 EXPECT_GT(row1.last_visit_time(), visits[0].visit_time); | 1045 EXPECT_GT(row1.last_visit_time(), visits[0].visit_time); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1108 update_args, &update_count)); | 1106 update_args, &update_count)); |
| 1109 // Verify notifications, Update involves modified URL. | 1107 // Verify notifications, Update involves modified URL. |
| 1110 EXPECT_FALSE(delegate_.deleted_details()); | 1108 EXPECT_FALSE(delegate_.deleted_details()); |
| 1111 ASSERT_TRUE(delegate_.modified_details()); | 1109 ASSERT_TRUE(delegate_.modified_details()); |
| 1112 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 1110 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 1113 EXPECT_EQ(row1.url(), | 1111 EXPECT_EQ(row1.url(), |
| 1114 delegate_.modified_details()->changed_urls[0].url()); | 1112 delegate_.modified_details()->changed_urls[0].url()); |
| 1115 EXPECT_EQ(ToDatabaseTime(update_row1.last_visit_time()), | 1113 EXPECT_EQ(ToDatabaseTime(update_row1.last_visit_time()), |
| 1116 ToDatabaseTime( | 1114 ToDatabaseTime( |
| 1117 delegate_.modified_details()->changed_urls[0].last_visit())); | 1115 delegate_.modified_details()->changed_urls[0].last_visit())); |
| 1118 EXPECT_FALSE(delegate_.favicon_details()); | 1116 EXPECT_FALSE(delegate_.favicon_changed()); |
| 1119 | 1117 |
| 1120 URLRow new_row1; | 1118 URLRow new_row1; |
| 1121 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &new_row1)); | 1119 ASSERT_TRUE(history_db_.GetRowForURL(row1.url(), &new_row1)); |
| 1122 EXPECT_EQ(11, new_row1.visit_count()); | 1120 EXPECT_EQ(11, new_row1.visit_count()); |
| 1123 EXPECT_EQ(update_row1.last_visit_time(), new_row1.last_visit()); | 1121 EXPECT_EQ(update_row1.last_visit_time(), new_row1.last_visit()); |
| 1124 VisitVector visits; | 1122 VisitVector visits; |
| 1125 ASSERT_TRUE(history_db_.GetVisitsForURL(new_row1.id(), &visits)); | 1123 ASSERT_TRUE(history_db_.GetVisitsForURL(new_row1.id(), &visits)); |
| 1126 // 1 new visit insertted. | 1124 // 1 new visit insertted. |
| 1127 ASSERT_EQ(11u, visits.size()); | 1125 ASSERT_EQ(11u, visits.size()); |
| 1128 EXPECT_EQ(update_row1.last_visit_time(), visits[10].visit_time); | 1126 EXPECT_EQ(update_row1.last_visit_time(), visits[10].visit_time); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1168 std::vector<unsigned char> data; | 1166 std::vector<unsigned char> data; |
| 1169 data.push_back('1'); | 1167 data.push_back('1'); |
| 1170 update_row1.set_favicon(base::RefCountedBytes::TakeVector(&data)); | 1168 update_row1.set_favicon(base::RefCountedBytes::TakeVector(&data)); |
| 1171 update_args.push_back(UTF8ToUTF16(row1.raw_url())); | 1169 update_args.push_back(UTF8ToUTF16(row1.raw_url())); |
| 1172 delegate_.ResetDetails(); | 1170 delegate_.ResetDetails(); |
| 1173 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", | 1171 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", |
| 1174 update_args, &update_count)); | 1172 update_args, &update_count)); |
| 1175 // Verify notifications. | 1173 // Verify notifications. |
| 1176 EXPECT_FALSE(delegate_.deleted_details()); | 1174 EXPECT_FALSE(delegate_.deleted_details()); |
| 1177 EXPECT_FALSE(delegate_.modified_details()); | 1175 EXPECT_FALSE(delegate_.modified_details()); |
| 1178 ASSERT_TRUE(delegate_.favicon_details()); | 1176 ASSERT_TRUE(delegate_.favicon_changed()); |
| 1179 ASSERT_EQ(1u, delegate_.favicon_details()->urls.size()); | 1177 ASSERT_EQ(1u, delegate_.favicon_changed()->size()); |
| 1180 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 1178 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 1181 delegate_.favicon_details()->urls.find(row1.url())); | 1179 delegate_.favicon_changed()->find(row1.url())); |
| 1182 | 1180 |
| 1183 std::vector<IconMapping> icon_mappings; | 1181 std::vector<IconMapping> icon_mappings; |
| 1184 EXPECT_TRUE(thumbnail_db_.GetIconMappingsForPageURL( | 1182 EXPECT_TRUE(thumbnail_db_.GetIconMappingsForPageURL( |
| 1185 row1.url(), favicon_base::FAVICON, &icon_mappings)); | 1183 row1.url(), favicon_base::FAVICON, &icon_mappings)); |
| 1186 EXPECT_EQ(1u, icon_mappings.size()); | 1184 EXPECT_EQ(1u, icon_mappings.size()); |
| 1187 std::vector<FaviconBitmap> favicon_bitmaps; | 1185 std::vector<FaviconBitmap> favicon_bitmaps; |
| 1188 EXPECT_TRUE(thumbnail_db_.GetFaviconBitmaps(icon_mappings[0].icon_id, | 1186 EXPECT_TRUE(thumbnail_db_.GetFaviconBitmaps(icon_mappings[0].icon_id, |
| 1189 &favicon_bitmaps)); | 1187 &favicon_bitmaps)); |
| 1190 EXPECT_EQ(1u, favicon_bitmaps.size()); | 1188 EXPECT_EQ(1u, favicon_bitmaps.size()); |
| 1191 EXPECT_TRUE(favicon_bitmaps[0].bitmap_data.get()); | 1189 EXPECT_TRUE(favicon_bitmaps[0].bitmap_data.get()); |
| 1192 EXPECT_EQ(1u, favicon_bitmaps[0].bitmap_data->size()); | 1190 EXPECT_EQ(1u, favicon_bitmaps[0].bitmap_data->size()); |
| 1193 EXPECT_EQ('1', *favicon_bitmaps[0].bitmap_data->front()); | 1191 EXPECT_EQ('1', *favicon_bitmaps[0].bitmap_data->front()); |
| 1194 | 1192 |
| 1195 // Remove favicon. | 1193 // Remove favicon. |
| 1196 HistoryAndBookmarkRow update_row2; | 1194 HistoryAndBookmarkRow update_row2; |
| 1197 | 1195 |
| 1198 // Set favicon. | 1196 // Set favicon. |
| 1199 update_row1.set_favicon(new base::RefCountedBytes()); | 1197 update_row1.set_favicon(new base::RefCountedBytes()); |
| 1200 update_args.clear(); | 1198 update_args.clear(); |
| 1201 update_args.push_back(UTF8ToUTF16(row1.raw_url())); | 1199 update_args.push_back(UTF8ToUTF16(row1.raw_url())); |
| 1202 delegate_.ResetDetails(); | 1200 delegate_.ResetDetails(); |
| 1203 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", | 1201 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", |
| 1204 update_args, &update_count)); | 1202 update_args, &update_count)); |
| 1205 // Verify notifications. | 1203 // Verify notifications. |
| 1206 EXPECT_FALSE(delegate_.deleted_details()); | 1204 EXPECT_FALSE(delegate_.deleted_details()); |
| 1207 EXPECT_FALSE(delegate_.modified_details()); | 1205 EXPECT_FALSE(delegate_.modified_details()); |
| 1208 ASSERT_TRUE(delegate_.favicon_details()); | 1206 ASSERT_TRUE(delegate_.favicon_changed()); |
| 1209 ASSERT_EQ(1u, delegate_.favicon_details()->urls.size()); | 1207 ASSERT_EQ(1u, delegate_.favicon_changed()->size()); |
| 1210 ASSERT_TRUE(delegate_.favicon_details()->urls.end() != | 1208 ASSERT_TRUE(delegate_.favicon_changed()->end() != |
| 1211 delegate_.favicon_details()->urls.find(row1.url())); | 1209 delegate_.favicon_changed()->find(row1.url())); |
| 1212 | 1210 |
| 1213 EXPECT_FALSE(thumbnail_db_.GetIconMappingsForPageURL( | 1211 EXPECT_FALSE(thumbnail_db_.GetIconMappingsForPageURL( |
| 1214 row1.url(), favicon_base::FAVICON, NULL)); | 1212 row1.url(), favicon_base::FAVICON, NULL)); |
| 1215 } | 1213 } |
| 1216 | 1214 |
| 1217 TEST_F(AndroidProviderBackendTest, UpdateSearchTermTable) { | 1215 TEST_F(AndroidProviderBackendTest, UpdateSearchTermTable) { |
| 1218 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); | 1216 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); |
| 1219 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_)); | 1217 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_)); |
| 1220 scoped_ptr<AndroidProviderBackend> backend( | 1218 scoped_ptr<AndroidProviderBackend> backend( |
| 1221 new AndroidProviderBackend(android_cache_db_name_, | 1219 new AndroidProviderBackend(android_cache_db_name_, |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1651 EXPECT_EQ(row1.title(), child1->GetTitle()); | 1649 EXPECT_EQ(row1.title(), child1->GetTitle()); |
| 1652 EXPECT_EQ(row1.url(), child1->url()); | 1650 EXPECT_EQ(row1.url(), child1->url()); |
| 1653 | 1651 |
| 1654 // Verify notification | 1652 // Verify notification |
| 1655 ASSERT_TRUE(delegate_.deleted_details()); | 1653 ASSERT_TRUE(delegate_.deleted_details()); |
| 1656 ASSERT_EQ(2u, delegate_.deleted_details()->rows.size()); | 1654 ASSERT_EQ(2u, delegate_.deleted_details()->rows.size()); |
| 1657 EXPECT_EQ(row1.url(), | 1655 EXPECT_EQ(row1.url(), |
| 1658 delegate_.modified_details()->changed_urls[0].url()); | 1656 delegate_.modified_details()->changed_urls[0].url()); |
| 1659 EXPECT_EQ(Time::UnixEpoch(), | 1657 EXPECT_EQ(Time::UnixEpoch(), |
| 1660 delegate_.modified_details()->changed_urls[0].last_visit()); | 1658 delegate_.modified_details()->changed_urls[0].last_visit()); |
| 1661 EXPECT_EQ(1u, delegate_.favicon_details()->urls.size()); | 1659 EXPECT_EQ(1u, delegate_.favicon_changed()->size()); |
| 1662 } | 1660 } |
| 1663 | 1661 |
| 1664 TEST_F(AndroidProviderBackendTest, TestMultipleNestingTransaction) { | 1662 TEST_F(AndroidProviderBackendTest, TestMultipleNestingTransaction) { |
| 1665 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); | 1663 ASSERT_EQ(sql::INIT_OK, history_db_.Init(history_db_name_)); |
| 1666 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_)); | 1664 ASSERT_EQ(sql::INIT_OK, thumbnail_db_.Init(thumbnail_db_name_)); |
| 1667 scoped_ptr<AndroidProviderBackend> backend( | 1665 scoped_ptr<AndroidProviderBackend> backend( |
| 1668 new AndroidProviderBackend(android_cache_db_name_, | 1666 new AndroidProviderBackend(android_cache_db_name_, |
| 1669 &history_db_, | 1667 &history_db_, |
| 1670 &thumbnail_db_, | 1668 &thumbnail_db_, |
| 1671 history_client_, | 1669 history_client_, |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1958 EXPECT_FALSE(delegate_.deleted_details()); | 1956 EXPECT_FALSE(delegate_.deleted_details()); |
| 1959 ASSERT_TRUE(delegate_.modified_details()); | 1957 ASSERT_TRUE(delegate_.modified_details()); |
| 1960 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 1958 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 1961 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); | 1959 EXPECT_EQ(row1.url(), delegate_.modified_details()->changed_urls[0].url()); |
| 1962 EXPECT_EQ(row1.last_visit_time(), | 1960 EXPECT_EQ(row1.last_visit_time(), |
| 1963 delegate_.modified_details()->changed_urls[0].last_visit()); | 1961 delegate_.modified_details()->changed_urls[0].last_visit()); |
| 1964 EXPECT_EQ(row1.visit_count(), | 1962 EXPECT_EQ(row1.visit_count(), |
| 1965 delegate_.modified_details()->changed_urls[0].visit_count()); | 1963 delegate_.modified_details()->changed_urls[0].visit_count()); |
| 1966 EXPECT_EQ(row1.title(), | 1964 EXPECT_EQ(row1.title(), |
| 1967 delegate_.modified_details()->changed_urls[0].title()); | 1965 delegate_.modified_details()->changed_urls[0].title()); |
| 1968 EXPECT_FALSE(delegate_.favicon_details()); | 1966 EXPECT_FALSE(delegate_.favicon_changed()); |
| 1969 content::RunAllPendingInMessageLoop(); | 1967 content::RunAllPendingInMessageLoop(); |
| 1970 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); | 1968 ASSERT_EQ(1, bookmark_model_->mobile_node()->child_count()); |
| 1971 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); | 1969 const BookmarkNode* child = bookmark_model_->mobile_node()->GetChild(0); |
| 1972 ASSERT_TRUE(child); | 1970 ASSERT_TRUE(child); |
| 1973 EXPECT_EQ(row1.title(), child->GetTitle()); | 1971 EXPECT_EQ(row1.title(), child->GetTitle()); |
| 1974 EXPECT_EQ(row1.url(), child->url()); | 1972 EXPECT_EQ(row1.url(), child->url()); |
| 1975 | 1973 |
| 1976 delegate_.ResetDetails(); | 1974 delegate_.ResetDetails(); |
| 1977 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); | 1975 ASSERT_TRUE(backend->InsertHistoryAndBookmark(row2)); |
| 1978 EXPECT_FALSE(delegate_.deleted_details()); | 1976 EXPECT_FALSE(delegate_.deleted_details()); |
| 1979 ASSERT_TRUE(delegate_.modified_details()); | 1977 ASSERT_TRUE(delegate_.modified_details()); |
| 1980 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 1978 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 1981 EXPECT_EQ(row2.url(), delegate_.modified_details()->changed_urls[0].url()); | 1979 EXPECT_EQ(row2.url(), delegate_.modified_details()->changed_urls[0].url()); |
| 1982 EXPECT_EQ(row2.last_visit_time(), | 1980 EXPECT_EQ(row2.last_visit_time(), |
| 1983 delegate_.modified_details()->changed_urls[0].last_visit()); | 1981 delegate_.modified_details()->changed_urls[0].last_visit()); |
| 1984 EXPECT_EQ(row2.title(), | 1982 EXPECT_EQ(row2.title(), |
| 1985 delegate_.modified_details()->changed_urls[0].title()); | 1983 delegate_.modified_details()->changed_urls[0].title()); |
| 1986 // Favicon details is still false because thumbnail database wasn't | 1984 // Favicon details is still false because thumbnail database wasn't |
| 1987 // initialized, we ignore any changes of favicon. | 1985 // initialized, we ignore any changes of favicon. |
| 1988 ASSERT_FALSE(delegate_.favicon_details()); | 1986 ASSERT_FALSE(delegate_.favicon_changed()); |
| 1989 } | 1987 } |
| 1990 | 1988 |
| 1991 TEST_F(AndroidProviderBackendTest, DeleteWithoutThumbnailDB) { | 1989 TEST_F(AndroidProviderBackendTest, DeleteWithoutThumbnailDB) { |
| 1992 HistoryAndBookmarkRow row1; | 1990 HistoryAndBookmarkRow row1; |
| 1993 row1.set_raw_url("cnn.com"); | 1991 row1.set_raw_url("cnn.com"); |
| 1994 row1.set_url(GURL("http://cnn.com")); | 1992 row1.set_url(GURL("http://cnn.com")); |
| 1995 row1.set_last_visit_time(Time::Now() - TimeDelta::FromDays(1)); | 1993 row1.set_last_visit_time(Time::Now() - TimeDelta::FromDays(1)); |
| 1996 row1.set_created(Time::Now() - TimeDelta::FromDays(20)); | 1994 row1.set_created(Time::Now() - TimeDelta::FromDays(20)); |
| 1997 row1.set_visit_count(10); | 1995 row1.set_visit_count(10); |
| 1998 row1.set_is_bookmark(true); | 1996 row1.set_is_bookmark(true); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2049 EXPECT_EQ(2, deleted_count); | 2047 EXPECT_EQ(2, deleted_count); |
| 2050 // Verify the rows was removed from bookmark model. | 2048 // Verify the rows was removed from bookmark model. |
| 2051 content::RunAllPendingInMessageLoop(); | 2049 content::RunAllPendingInMessageLoop(); |
| 2052 ASSERT_EQ(0, bookmark_model_->mobile_node()->child_count()); | 2050 ASSERT_EQ(0, bookmark_model_->mobile_node()->child_count()); |
| 2053 | 2051 |
| 2054 // Verify notifications | 2052 // Verify notifications |
| 2055 ASSERT_TRUE(delegate_.deleted_details()); | 2053 ASSERT_TRUE(delegate_.deleted_details()); |
| 2056 EXPECT_FALSE(delegate_.modified_details()); | 2054 EXPECT_FALSE(delegate_.modified_details()); |
| 2057 EXPECT_EQ(2u, delegate_.deleted_details()->rows.size()); | 2055 EXPECT_EQ(2u, delegate_.deleted_details()->rows.size()); |
| 2058 // No favicon has been deleted. | 2056 // No favicon has been deleted. |
| 2059 EXPECT_FALSE(delegate_.favicon_details()); | 2057 EXPECT_FALSE(delegate_.favicon_changed()); |
| 2060 | 2058 |
| 2061 // No row exists. | 2059 // No row exists. |
| 2062 std::vector<HistoryAndBookmarkRow::ColumnID> projections; | 2060 std::vector<HistoryAndBookmarkRow::ColumnID> projections; |
| 2063 projections.push_back(HistoryAndBookmarkRow::ID); | 2061 projections.push_back(HistoryAndBookmarkRow::ID); |
| 2064 projections.push_back(HistoryAndBookmarkRow::URL); | 2062 projections.push_back(HistoryAndBookmarkRow::URL); |
| 2065 projections.push_back(HistoryAndBookmarkRow::TITLE); | 2063 projections.push_back(HistoryAndBookmarkRow::TITLE); |
| 2066 projections.push_back(HistoryAndBookmarkRow::CREATED); | 2064 projections.push_back(HistoryAndBookmarkRow::CREATED); |
| 2067 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); | 2065 projections.push_back(HistoryAndBookmarkRow::LAST_VISIT_TIME); |
| 2068 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); | 2066 projections.push_back(HistoryAndBookmarkRow::VISIT_COUNT); |
| 2069 projections.push_back(HistoryAndBookmarkRow::FAVICON); | 2067 projections.push_back(HistoryAndBookmarkRow::FAVICON); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2122 update_row1.set_favicon(base::RefCountedBytes::TakeVector(&data)); | 2120 update_row1.set_favicon(base::RefCountedBytes::TakeVector(&data)); |
| 2123 update_args.push_back(UTF8ToUTF16(row1.raw_url())); | 2121 update_args.push_back(UTF8ToUTF16(row1.raw_url())); |
| 2124 delegate_.ResetDetails(); | 2122 delegate_.ResetDetails(); |
| 2125 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", | 2123 ASSERT_TRUE(backend->UpdateHistoryAndBookmarks(update_row1, "url = ?", |
| 2126 update_args, &update_count)); | 2124 update_args, &update_count)); |
| 2127 // Verify notifications. | 2125 // Verify notifications. |
| 2128 EXPECT_FALSE(delegate_.deleted_details()); | 2126 EXPECT_FALSE(delegate_.deleted_details()); |
| 2129 ASSERT_TRUE(delegate_.modified_details()); | 2127 ASSERT_TRUE(delegate_.modified_details()); |
| 2130 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); | 2128 ASSERT_EQ(1u, delegate_.modified_details()->changed_urls.size()); |
| 2131 // No favicon will be updated as thumbnail database is missing. | 2129 // No favicon will be updated as thumbnail database is missing. |
| 2132 EXPECT_FALSE(delegate_.favicon_details()); | 2130 EXPECT_FALSE(delegate_.favicon_changed()); |
| 2133 } | 2131 } |
| 2134 | 2132 |
| 2135 } // namespace history | 2133 } // namespace history |
| OLD | NEW |