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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/memory/weak_ptr.h" | 6 #include "base/memory/weak_ptr.h" |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "base/task/cancelable_task_tracker.h" | 9 #include "base/task/cancelable_task_tracker.h" |
| 10 #include "chrome/browser/history/history_service_factory.h" | 10 #include "chrome/browser/history/history_service_factory.h" |
| 11 #include "chrome/browser/history/top_sites.h" | |
| 12 #include "chrome/browser/history/top_sites_factory.h" | 11 #include "chrome/browser/history/top_sites_factory.h" |
| 13 #include "chrome/browser/history/top_sites_impl.h" | 12 #include "chrome/browser/history/top_sites_impl.h" |
| 14 #include "chrome/common/chrome_constants.h" | 13 #include "chrome/common/chrome_constants.h" |
| 15 #include "chrome/common/chrome_paths.h" | 14 #include "chrome/common/chrome_paths.h" |
| 16 #include "chrome/test/base/testing_profile.h" | 15 #include "chrome/test/base/testing_profile.h" |
| 17 #include "components/history/core/browser/history_db_task.h" | 16 #include "components/history/core/browser/history_db_task.h" |
| 18 #include "components/history/core/browser/history_types.h" | 17 #include "components/history/core/browser/history_types.h" |
| 18 #include "components/history/core/browser/top_sites.h" | |
| 19 #include "components/history/core/browser/top_sites_cache.h" | 19 #include "components/history/core/browser/top_sites_cache.h" |
| 20 #include "components/history/core/test/history_unittest_base.h" | 20 #include "components/history/core/test/history_unittest_base.h" |
| 21 #include "content/public/test/test_browser_thread.h" | 21 #include "content/public/test/test_browser_thread.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| 23 #include "third_party/skia/include/core/SkBitmap.h" | 23 #include "third_party/skia/include/core/SkBitmap.h" |
| 24 #include "ui/gfx/codec/jpeg_codec.h" | 24 #include "ui/gfx/codec/jpeg_codec.h" |
| 25 #include "url/gurl.h" | 25 #include "url/gurl.h" |
| 26 | 26 |
| 27 using content::BrowserThread; | 27 using content::BrowserThread; |
| 28 | 28 |
| 29 namespace history { | 29 namespace history { |
| 30 | 30 |
| 31 namespace { | 31 namespace { |
| 32 | 32 |
| 33 static const char kPrepopulatedPageURL[] = | |
| 34 "http://www.google.com/int/chrome/welcome.html"; | |
| 35 | |
| 36 // Create a TopSites implementation for testing. | |
| 37 scoped_refptr<RefcountedKeyedService> BuildTopSitesImpl( | |
| 38 content::BrowserContext* context) { | |
| 39 PrepopulatedPageList prepopulated_pages; | |
| 40 prepopulated_pages.push_back(PrepopulatedPage(GURL(kPrepopulatedPageURL), | |
| 41 base::string16(), -1, -1, 0)); | |
| 42 | |
| 43 scoped_refptr<TopSitesImpl> top_sites = | |
| 44 new TopSitesImpl(static_cast<Profile*>(context), prepopulated_pages); | |
| 45 top_sites->Init( | |
| 46 context->GetPath().Append(chrome::kTopSitesFilename), | |
| 47 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)); | |
| 48 return top_sites; | |
| 49 } | |
| 50 | |
| 33 // Used by WaitForHistory, see it for details. | 51 // Used by WaitForHistory, see it for details. |
| 34 class WaitForHistoryTask : public HistoryDBTask { | 52 class WaitForHistoryTask : public HistoryDBTask { |
| 35 public: | 53 public: |
| 36 WaitForHistoryTask() {} | 54 WaitForHistoryTask() {} |
| 37 | 55 |
| 38 bool RunOnDBThread(HistoryBackend* backend, HistoryDatabase* db) override { | 56 bool RunOnDBThread(HistoryBackend* backend, HistoryDatabase* db) override { |
| 39 return true; | 57 return true; |
| 40 } | 58 } |
| 41 | 59 |
| 42 void DoneRunOnMainThread() override { base::MessageLoop::current()->Quit(); } | 60 void DoneRunOnMainThread() override { base::MessageLoop::current()->Quit(); } |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 197 TopSitesImpl* top_sites() { | 215 TopSitesImpl* top_sites() { |
| 198 return static_cast<TopSitesImpl*>( | 216 return static_cast<TopSitesImpl*>( |
| 199 TopSitesFactory::GetForProfile(profile_.get()).get()); | 217 TopSitesFactory::GetForProfile(profile_.get()).get()); |
| 200 } | 218 } |
| 201 TestingProfile* profile() { return profile_.get(); } | 219 TestingProfile* profile() { return profile_.get(); } |
| 202 HistoryService* history_service() { | 220 HistoryService* history_service() { |
| 203 return HistoryServiceFactory::GetForProfile( | 221 return HistoryServiceFactory::GetForProfile( |
| 204 profile_.get(), ServiceAccessType::EXPLICIT_ACCESS); | 222 profile_.get(), ServiceAccessType::EXPLICIT_ACCESS); |
| 205 } | 223 } |
| 206 | 224 |
| 207 MostVisitedURLList GetPrepopulatePages() { | 225 PrepopulatedPageList GetPrepopulatedPages() { |
|
droger
2015/01/27 10:08:36
Return a const reference?
sdefresne
2015/01/27 13:55:16
I can't since top_sites()->GetPrepopulatedPages()
| |
| 208 return top_sites()->GetPrepopulatePages(); | 226 return top_sites()->GetPrepopulatedPages(); |
| 209 } | 227 } |
| 210 | 228 |
| 211 // Returns true if the TopSitesQuerier contains the prepopulate data starting | 229 // Returns true if the TopSitesQuerier contains the prepopulate data starting |
| 212 // at |start_index|. | 230 // at |start_index|. |
| 213 void ContainsPrepopulatePages(const TopSitesQuerier& querier, | 231 void ContainsPrepopulatePages(const TopSitesQuerier& querier, |
| 214 size_t start_index) { | 232 size_t start_index) { |
| 215 MostVisitedURLList prepopulate_urls = GetPrepopulatePages(); | 233 PrepopulatedPageList prepopulate_pages = GetPrepopulatedPages(); |
| 216 ASSERT_LE(start_index + prepopulate_urls.size(), querier.urls().size()); | 234 ASSERT_LE(start_index + prepopulate_pages.size(), querier.urls().size()); |
| 217 for (size_t i = 0; i < prepopulate_urls.size(); ++i) { | 235 for (size_t i = 0; i < prepopulate_pages.size(); ++i) { |
| 218 EXPECT_EQ(prepopulate_urls[i].url.spec(), | 236 EXPECT_EQ(prepopulate_pages[i].url.url.spec(), |
| 219 querier.urls()[start_index + i].url.spec()) << " @ index " << | 237 querier.urls()[start_index + i].url.spec()) |
| 220 i; | 238 << " @ index " << i; |
| 221 } | 239 } |
| 222 } | 240 } |
| 223 | 241 |
| 224 // Used for callbacks from history. | 242 // Used for callbacks from history. |
| 225 void EmptyCallback() { | 243 void EmptyCallback() {} |
|
droger
2015/01/27 10:08:36
Optional:
use base::DoNothing() instead.
sdefresne
2015/01/27 13:55:16
Not used.
| |
| 226 } | |
| 227 | 244 |
| 228 // Quit the current message loop when invoked. Useful when running a nested | 245 // Quit the current message loop when invoked. Useful when running a nested |
| 229 // message loop. | 246 // message loop. |
| 230 void QuitCallback() { | 247 void QuitCallback() { |
| 231 base::MessageLoop::current()->Quit(); | 248 base::MessageLoop::current()->Quit(); |
| 232 } | 249 } |
| 233 | 250 |
| 234 // Adds a page to history. | 251 // Adds a page to history. |
| 235 void AddPageToHistory(const GURL& url) { | 252 void AddPageToHistory(const GURL& url) { |
| 236 RedirectList redirects; | 253 RedirectList redirects; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 318 bool AddPrepopulatedPages(MostVisitedURLList* urls) { | 335 bool AddPrepopulatedPages(MostVisitedURLList* urls) { |
| 319 return top_sites()->AddPrepopulatedPages(urls, 0u); | 336 return top_sites()->AddPrepopulatedPages(urls, 0u); |
| 320 } | 337 } |
| 321 | 338 |
| 322 void EmptyThreadSafeCache() { | 339 void EmptyThreadSafeCache() { |
| 323 base::AutoLock lock(top_sites()->lock_); | 340 base::AutoLock lock(top_sites()->lock_); |
| 324 MostVisitedURLList empty; | 341 MostVisitedURLList empty; |
| 325 top_sites()->thread_safe_cache_->SetTopSites(empty); | 342 top_sites()->thread_safe_cache_->SetTopSites(empty); |
| 326 } | 343 } |
| 327 | 344 |
| 328 void CreateTopSites() { profile_->CreateTopSites(); } | 345 void CreateTopSites() { |
| 346 profile_->DestroyTopSites(); | |
|
droger
2015/01/27 10:08:37
Maybe add a comment here explaining why you need t
sdefresne
2015/01/27 13:55:16
Done.
| |
| 347 TopSitesFactory::GetInstance()->SetTestingFactory(profile_.get(), | |
| 348 BuildTopSitesImpl); | |
| 349 } | |
| 329 | 350 |
| 330 private: | 351 private: |
| 331 base::MessageLoopForUI message_loop_; | 352 base::MessageLoopForUI message_loop_; |
| 332 content::TestBrowserThread ui_thread_; | 353 content::TestBrowserThread ui_thread_; |
| 333 content::TestBrowserThread db_thread_; | 354 content::TestBrowserThread db_thread_; |
| 334 scoped_ptr<TestingProfile> profile_; | 355 scoped_ptr<TestingProfile> profile_; |
| 335 // To cancel HistoryService tasks. | 356 // To cancel HistoryService tasks. |
| 336 base::CancelableTaskTracker history_tracker_; | 357 base::CancelableTaskTracker history_tracker_; |
| 337 | 358 |
| 338 // To cancel TopSitesBackend tasks. | 359 // To cancel TopSitesBackend tasks. |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 632 | 653 |
| 633 StartQueryForMostVisited(); | 654 StartQueryForMostVisited(); |
| 634 WaitForHistory(); | 655 WaitForHistory(); |
| 635 | 656 |
| 636 TopSitesQuerier querier; | 657 TopSitesQuerier querier; |
| 637 querier.QueryTopSites(top_sites(), false); | 658 querier.QueryTopSites(top_sites(), false); |
| 638 | 659 |
| 639 ASSERT_EQ(1, querier.number_of_callbacks()); | 660 ASSERT_EQ(1, querier.number_of_callbacks()); |
| 640 | 661 |
| 641 // 2 extra prepopulated URLs. | 662 // 2 extra prepopulated URLs. |
| 642 ASSERT_EQ(2u + GetPrepopulatePages().size(), querier.urls().size()); | 663 ASSERT_EQ(2u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 643 EXPECT_EQ(news, querier.urls()[0].url); | 664 EXPECT_EQ(news, querier.urls()[0].url); |
| 644 EXPECT_EQ(google, querier.urls()[1].url); | 665 EXPECT_EQ(google, querier.urls()[1].url); |
| 645 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); | 666 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); |
| 646 } | 667 } |
| 647 | 668 |
| 648 // Makes sure changes done to top sites get mirrored to the db. | 669 // Makes sure changes done to top sites get mirrored to the db. |
| 649 TEST_F(TopSitesImplTest, SaveToDB) { | 670 TEST_F(TopSitesImplTest, SaveToDB) { |
| 650 MostVisitedURL url; | 671 MostVisitedURL url; |
| 651 GURL asdf_url("http://asdf.com"); | 672 GURL asdf_url("http://asdf.com"); |
| 652 base::string16 asdf_title(base::ASCIIToUTF16("ASDF")); | 673 base::string16 asdf_title(base::ASCIIToUTF16("ASDF")); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 665 // Add a thumbnail. | 686 // Add a thumbnail. |
| 666 gfx::Image tmp_bitmap(CreateBitmap(SK_ColorBLUE)); | 687 gfx::Image tmp_bitmap(CreateBitmap(SK_ColorBLUE)); |
| 667 ASSERT_TRUE(top_sites()->SetPageThumbnail(asdf_url, tmp_bitmap, | 688 ASSERT_TRUE(top_sites()->SetPageThumbnail(asdf_url, tmp_bitmap, |
| 668 ThumbnailScore())); | 689 ThumbnailScore())); |
| 669 | 690 |
| 670 RecreateTopSitesAndBlock(); | 691 RecreateTopSitesAndBlock(); |
| 671 | 692 |
| 672 { | 693 { |
| 673 TopSitesQuerier querier; | 694 TopSitesQuerier querier; |
| 674 querier.QueryTopSites(top_sites(), false); | 695 querier.QueryTopSites(top_sites(), false); |
| 675 ASSERT_EQ(1u + GetPrepopulatePages().size(), querier.urls().size()); | 696 ASSERT_EQ(1u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 676 EXPECT_EQ(asdf_url, querier.urls()[0].url); | 697 EXPECT_EQ(asdf_url, querier.urls()[0].url); |
| 677 EXPECT_EQ(asdf_title, querier.urls()[0].title); | 698 EXPECT_EQ(asdf_title, querier.urls()[0].title); |
| 678 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); | 699 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); |
| 679 | 700 |
| 680 scoped_refptr<base::RefCountedMemory> read_data; | 701 scoped_refptr<base::RefCountedMemory> read_data; |
| 681 EXPECT_TRUE(top_sites()->GetPageThumbnail(asdf_url, false, &read_data)); | 702 EXPECT_TRUE(top_sites()->GetPageThumbnail(asdf_url, false, &read_data)); |
| 682 EXPECT_TRUE(ThumbnailEqualsBytes(tmp_bitmap, read_data.get())); | 703 EXPECT_TRUE(ThumbnailEqualsBytes(tmp_bitmap, read_data.get())); |
| 683 } | 704 } |
| 684 | 705 |
| 685 MostVisitedURL url2; | 706 MostVisitedURL url2; |
| 686 url2.url = google_url; | 707 url2.url = google_url; |
| 687 url2.title = google_title; | 708 url2.title = google_title; |
| 688 url2.redirects.push_back(url2.url); | 709 url2.redirects.push_back(url2.url); |
| 689 | 710 |
| 690 AddPageToHistory(url2.url, url2.title); | 711 AddPageToHistory(url2.url, url2.title); |
| 691 | 712 |
| 692 // Add new thumbnail at rank 0 and shift the other result to 1. | 713 // Add new thumbnail at rank 0 and shift the other result to 1. |
| 693 ASSERT_TRUE(top_sites()->SetPageThumbnail(google_url, | 714 ASSERT_TRUE(top_sites()->SetPageThumbnail(google_url, |
| 694 tmp_bitmap, | 715 tmp_bitmap, |
| 695 ThumbnailScore())); | 716 ThumbnailScore())); |
| 696 | 717 |
| 697 // Make TopSites reread from the db. | 718 // Make TopSites reread from the db. |
| 698 RefreshTopSitesAndRecreate(); | 719 RefreshTopSitesAndRecreate(); |
| 699 | 720 |
| 700 { | 721 { |
| 701 TopSitesQuerier querier; | 722 TopSitesQuerier querier; |
| 702 querier.QueryTopSites(top_sites(), false); | 723 querier.QueryTopSites(top_sites(), false); |
| 703 ASSERT_EQ(2u + GetPrepopulatePages().size(), querier.urls().size()); | 724 ASSERT_EQ(2u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 704 EXPECT_EQ(asdf_url, querier.urls()[0].url); | 725 EXPECT_EQ(asdf_url, querier.urls()[0].url); |
| 705 EXPECT_EQ(asdf_title, querier.urls()[0].title); | 726 EXPECT_EQ(asdf_title, querier.urls()[0].title); |
| 706 EXPECT_EQ(google_url, querier.urls()[1].url); | 727 EXPECT_EQ(google_url, querier.urls()[1].url); |
| 707 EXPECT_EQ(google_title, querier.urls()[1].title); | 728 EXPECT_EQ(google_title, querier.urls()[1].title); |
| 708 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); | 729 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); |
| 709 } | 730 } |
| 710 } | 731 } |
| 711 | 732 |
| 712 // Makes sure forced URLs in top sites get mirrored to the db. | 733 // Makes sure forced URLs in top sites get mirrored to the db. |
| 713 TEST_F(TopSitesImplTest, SaveForcedToDB) { | 734 TEST_F(TopSitesImplTest, SaveForcedToDB) { |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 740 // Force-flush the cache to ensure we don't reread from it inadvertently. | 761 // Force-flush the cache to ensure we don't reread from it inadvertently. |
| 741 EmptyThreadSafeCache(); | 762 EmptyThreadSafeCache(); |
| 742 | 763 |
| 743 // Make TopSites reread from the db. | 764 // Make TopSites reread from the db. |
| 744 StartQueryForMostVisited(); | 765 StartQueryForMostVisited(); |
| 745 WaitForHistory(); | 766 WaitForHistory(); |
| 746 | 767 |
| 747 TopSitesQuerier querier; | 768 TopSitesQuerier querier; |
| 748 querier.QueryAllTopSites(top_sites(), true, true); | 769 querier.QueryAllTopSites(top_sites(), true, true); |
| 749 | 770 |
| 750 ASSERT_EQ(4u + GetPrepopulatePages().size(), querier.urls().size()); | 771 ASSERT_EQ(4u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 751 EXPECT_EQ(GURL("http://forced1"), querier.urls()[0].url); | 772 EXPECT_EQ(GURL("http://forced1"), querier.urls()[0].url); |
| 752 EXPECT_EQ(base::ASCIIToUTF16("forced1"), querier.urls()[0].title); | 773 EXPECT_EQ(base::ASCIIToUTF16("forced1"), querier.urls()[0].title); |
| 753 SkBitmap thumbnail = GetThumbnail(GURL("http://forced1")); | 774 SkBitmap thumbnail = GetThumbnail(GURL("http://forced1")); |
| 754 ASSERT_EQ(orig_thumbnail.getSize(), thumbnail.getSize()); | 775 ASSERT_EQ(orig_thumbnail.getSize(), thumbnail.getSize()); |
| 755 orig_thumbnail.lockPixels(); | 776 orig_thumbnail.lockPixels(); |
| 756 thumbnail.lockPixels(); | 777 thumbnail.lockPixels(); |
| 757 EXPECT_EQ(0, memcmp(orig_thumbnail.getPixels(), thumbnail.getPixels(), | 778 EXPECT_EQ(0, memcmp(orig_thumbnail.getPixels(), thumbnail.getPixels(), |
| 758 orig_thumbnail.getSize())); | 779 orig_thumbnail.getSize())); |
| 759 thumbnail.unlockPixels(); | 780 thumbnail.unlockPixels(); |
| 760 orig_thumbnail.unlockPixels(); | 781 orig_thumbnail.unlockPixels(); |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 790 | 811 |
| 791 base::Time add_time(base::Time::Now()); | 812 base::Time add_time(base::Time::Now()); |
| 792 AddPageToHistory(url.url, url.title, url.redirects, add_time); | 813 AddPageToHistory(url.url, url.title, url.redirects, add_time); |
| 793 | 814 |
| 794 RefreshTopSitesAndRecreate(); | 815 RefreshTopSitesAndRecreate(); |
| 795 | 816 |
| 796 { | 817 { |
| 797 TopSitesQuerier querier; | 818 TopSitesQuerier querier; |
| 798 querier.QueryTopSites(top_sites(), false); | 819 querier.QueryTopSites(top_sites(), false); |
| 799 | 820 |
| 800 ASSERT_EQ(1u + GetPrepopulatePages().size(), querier.urls().size()); | 821 ASSERT_EQ(1u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 801 EXPECT_EQ(asdf_url, querier.urls()[0].url); | 822 EXPECT_EQ(asdf_url, querier.urls()[0].url); |
| 802 EXPECT_EQ(asdf_title, querier.urls()[0].title); | 823 EXPECT_EQ(asdf_title, querier.urls()[0].title); |
| 803 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); | 824 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); |
| 804 | 825 |
| 805 scoped_refptr<base::RefCountedMemory> read_data; | 826 scoped_refptr<base::RefCountedMemory> read_data; |
| 806 EXPECT_TRUE(top_sites()->GetPageThumbnail(asdf_url, false, &read_data)); | 827 EXPECT_TRUE(top_sites()->GetPageThumbnail(asdf_url, false, &read_data)); |
| 807 EXPECT_TRUE(ThumbnailEqualsBytes(asdf_thumbnail, read_data.get())); | 828 EXPECT_TRUE(ThumbnailEqualsBytes(asdf_thumbnail, read_data.get())); |
| 808 } | 829 } |
| 809 | 830 |
| 810 MostVisitedURL url2; | 831 MostVisitedURL url2; |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 824 ASSERT_TRUE(top_sites()->SetPageThumbnail( | 845 ASSERT_TRUE(top_sites()->SetPageThumbnail( |
| 825 url2.url, google_thumbnail, ThumbnailScore())); | 846 url2.url, google_thumbnail, ThumbnailScore())); |
| 826 | 847 |
| 827 RefreshTopSitesAndRecreate(); | 848 RefreshTopSitesAndRecreate(); |
| 828 | 849 |
| 829 { | 850 { |
| 830 scoped_refptr<base::RefCountedMemory> read_data; | 851 scoped_refptr<base::RefCountedMemory> read_data; |
| 831 TopSitesQuerier querier; | 852 TopSitesQuerier querier; |
| 832 querier.QueryTopSites(top_sites(), false); | 853 querier.QueryTopSites(top_sites(), false); |
| 833 | 854 |
| 834 ASSERT_EQ(2u + GetPrepopulatePages().size(), querier.urls().size()); | 855 ASSERT_EQ(2u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 835 EXPECT_EQ(google1_url, querier.urls()[0].url); | 856 EXPECT_EQ(google1_url, querier.urls()[0].url); |
| 836 EXPECT_EQ(google_title, querier.urls()[0].title); | 857 EXPECT_EQ(google_title, querier.urls()[0].title); |
| 837 ASSERT_EQ(3u, querier.urls()[0].redirects.size()); | 858 ASSERT_EQ(3u, querier.urls()[0].redirects.size()); |
| 838 EXPECT_TRUE(top_sites()->GetPageThumbnail(google3_url, false, &read_data)); | 859 EXPECT_TRUE(top_sites()->GetPageThumbnail(google3_url, false, &read_data)); |
| 839 EXPECT_TRUE(ThumbnailEqualsBytes(google_thumbnail, read_data.get())); | 860 EXPECT_TRUE(ThumbnailEqualsBytes(google_thumbnail, read_data.get())); |
| 840 | 861 |
| 841 EXPECT_EQ(asdf_url, querier.urls()[1].url); | 862 EXPECT_EQ(asdf_url, querier.urls()[1].url); |
| 842 EXPECT_EQ(asdf_title, querier.urls()[1].title); | 863 EXPECT_EQ(asdf_title, querier.urls()[1].title); |
| 843 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); | 864 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); |
| 844 } | 865 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 893 | 914 |
| 894 AddPageToHistory(google1_url, google_title); | 915 AddPageToHistory(google1_url, google_title); |
| 895 AddPageToHistory(news_url, news_title); | 916 AddPageToHistory(news_url, news_title); |
| 896 | 917 |
| 897 RefreshTopSitesAndRecreate(); | 918 RefreshTopSitesAndRecreate(); |
| 898 | 919 |
| 899 { | 920 { |
| 900 TopSitesQuerier querier; | 921 TopSitesQuerier querier; |
| 901 querier.QueryTopSites(top_sites(), false); | 922 querier.QueryTopSites(top_sites(), false); |
| 902 | 923 |
| 903 ASSERT_EQ(GetPrepopulatePages().size() + 2, querier.urls().size()); | 924 ASSERT_EQ(GetPrepopulatedPages().size() + 2, querier.urls().size()); |
| 904 } | 925 } |
| 905 | 926 |
| 906 DeleteURL(news_url); | 927 DeleteURL(news_url); |
| 907 | 928 |
| 908 // Wait for history to process the deletion. | 929 // Wait for history to process the deletion. |
| 909 WaitForHistory(); | 930 WaitForHistory(); |
| 910 | 931 |
| 911 { | 932 { |
| 912 TopSitesQuerier querier; | 933 TopSitesQuerier querier; |
| 913 querier.QueryTopSites(top_sites(), false); | 934 querier.QueryTopSites(top_sites(), false); |
| 914 | 935 |
| 915 ASSERT_EQ(1u + GetPrepopulatePages().size(), querier.urls().size()); | 936 ASSERT_EQ(1u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 916 EXPECT_EQ(google_title, querier.urls()[0].title); | 937 EXPECT_EQ(google_title, querier.urls()[0].title); |
| 917 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); | 938 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); |
| 918 } | 939 } |
| 919 | 940 |
| 920 // Now reload. This verifies topsites actually wrote the deletion to disk. | 941 // Now reload. This verifies topsites actually wrote the deletion to disk. |
| 921 RefreshTopSitesAndRecreate(); | 942 RefreshTopSitesAndRecreate(); |
| 922 | 943 |
| 923 { | 944 { |
| 924 TopSitesQuerier querier; | 945 TopSitesQuerier querier; |
| 925 querier.QueryTopSites(top_sites(), false); | 946 querier.QueryTopSites(top_sites(), false); |
| 926 | 947 |
| 927 ASSERT_EQ(1u + GetPrepopulatePages().size(), querier.urls().size()); | 948 ASSERT_EQ(1u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 928 EXPECT_EQ(google_title, querier.urls()[0].title); | 949 EXPECT_EQ(google_title, querier.urls()[0].title); |
| 929 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); | 950 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 1)); |
| 930 } | 951 } |
| 931 | 952 |
| 932 DeleteURL(google1_url); | 953 DeleteURL(google1_url); |
| 933 | 954 |
| 934 // Wait for history to process the deletion. | 955 // Wait for history to process the deletion. |
| 935 WaitForHistory(); | 956 WaitForHistory(); |
| 936 | 957 |
| 937 { | 958 { |
| 938 TopSitesQuerier querier; | 959 TopSitesQuerier querier; |
| 939 querier.QueryTopSites(top_sites(), false); | 960 querier.QueryTopSites(top_sites(), false); |
| 940 | 961 |
| 941 ASSERT_EQ(GetPrepopulatePages().size(), querier.urls().size()); | 962 ASSERT_EQ(GetPrepopulatedPages().size(), querier.urls().size()); |
| 942 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); | 963 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); |
| 943 } | 964 } |
| 944 | 965 |
| 945 // Now reload. This verifies topsites actually wrote the deletion to disk. | 966 // Now reload. This verifies topsites actually wrote the deletion to disk. |
| 946 RefreshTopSitesAndRecreate(); | 967 RefreshTopSitesAndRecreate(); |
| 947 | 968 |
| 948 { | 969 { |
| 949 TopSitesQuerier querier; | 970 TopSitesQuerier querier; |
| 950 querier.QueryTopSites(top_sites(), false); | 971 querier.QueryTopSites(top_sites(), false); |
| 951 | 972 |
| 952 ASSERT_EQ(GetPrepopulatePages().size(), querier.urls().size()); | 973 ASSERT_EQ(GetPrepopulatedPages().size(), querier.urls().size()); |
| 953 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); | 974 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 0)); |
| 954 } | 975 } |
| 955 } | 976 } |
| 956 | 977 |
| 957 // Makes sure GetUpdateDelay is updated appropriately. | 978 // Makes sure GetUpdateDelay is updated appropriately. |
| 958 TEST_F(TopSitesImplTest, GetUpdateDelay) { | 979 TEST_F(TopSitesImplTest, GetUpdateDelay) { |
| 959 SetLastNumUrlsChanged(0); | 980 SetLastNumUrlsChanged(0); |
| 960 EXPECT_EQ(30, GetUpdateDelay().InSeconds()); | 981 EXPECT_EQ(30, GetUpdateDelay().InSeconds()); |
| 961 | 982 |
| 962 MostVisitedURLList url_list; | 983 MostVisitedURLList url_list; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 998 // We shouldn't have gotten a callback. | 1019 // We shouldn't have gotten a callback. |
| 999 EXPECT_EQ(0, querier1.number_of_callbacks()); | 1020 EXPECT_EQ(0, querier1.number_of_callbacks()); |
| 1000 EXPECT_EQ(0, querier2.number_of_callbacks()); | 1021 EXPECT_EQ(0, querier2.number_of_callbacks()); |
| 1001 EXPECT_EQ(0, querier3.number_of_callbacks()); | 1022 EXPECT_EQ(0, querier3.number_of_callbacks()); |
| 1002 | 1023 |
| 1003 // Wait for loading to complete. | 1024 // Wait for loading to complete. |
| 1004 profile()->BlockUntilTopSitesLoaded(); | 1025 profile()->BlockUntilTopSitesLoaded(); |
| 1005 | 1026 |
| 1006 // Now we should have gotten the callbacks. | 1027 // Now we should have gotten the callbacks. |
| 1007 EXPECT_EQ(1, querier1.number_of_callbacks()); | 1028 EXPECT_EQ(1, querier1.number_of_callbacks()); |
| 1008 EXPECT_EQ(GetPrepopulatePages().size(), querier1.urls().size()); | 1029 EXPECT_EQ(GetPrepopulatedPages().size(), querier1.urls().size()); |
| 1009 EXPECT_EQ(1, querier2.number_of_callbacks()); | 1030 EXPECT_EQ(1, querier2.number_of_callbacks()); |
| 1010 EXPECT_EQ(GetPrepopulatePages().size(), querier2.urls().size()); | 1031 EXPECT_EQ(GetPrepopulatedPages().size(), querier2.urls().size()); |
| 1011 EXPECT_EQ(1, querier3.number_of_callbacks()); | 1032 EXPECT_EQ(1, querier3.number_of_callbacks()); |
| 1012 EXPECT_EQ(GetPrepopulatePages().size(), querier3.urls().size()); | 1033 EXPECT_EQ(GetPrepopulatedPages().size(), querier3.urls().size()); |
| 1013 | 1034 |
| 1014 // Reset the top sites. | 1035 // Reset the top sites. |
| 1015 MostVisitedURLList pages; | 1036 MostVisitedURLList pages; |
| 1016 MostVisitedURL url; | 1037 MostVisitedURL url; |
| 1017 url.url = GURL("http://1.com/"); | 1038 url.url = GURL("http://1.com/"); |
| 1018 url.redirects.push_back(url.url); | 1039 url.redirects.push_back(url.url); |
| 1019 pages.push_back(url); | 1040 pages.push_back(url); |
| 1020 url.url = GURL("http://2.com/"); | 1041 url.url = GURL("http://2.com/"); |
| 1021 url.redirects.push_back(url.url); | 1042 url.redirects.push_back(url.url); |
| 1022 pages.push_back(url); | 1043 pages.push_back(url); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1033 querier4.QueryTopSites(top_sites(), false); | 1054 querier4.QueryTopSites(top_sites(), false); |
| 1034 | 1055 |
| 1035 // We shouldn't have gotten a callback. | 1056 // We shouldn't have gotten a callback. |
| 1036 EXPECT_EQ(0, querier4.number_of_callbacks()); | 1057 EXPECT_EQ(0, querier4.number_of_callbacks()); |
| 1037 | 1058 |
| 1038 // Wait for loading to complete. | 1059 // Wait for loading to complete. |
| 1039 profile()->BlockUntilTopSitesLoaded(); | 1060 profile()->BlockUntilTopSitesLoaded(); |
| 1040 | 1061 |
| 1041 // Now we should have gotten the callbacks. | 1062 // Now we should have gotten the callbacks. |
| 1042 EXPECT_EQ(1, querier4.number_of_callbacks()); | 1063 EXPECT_EQ(1, querier4.number_of_callbacks()); |
| 1043 ASSERT_EQ(2u + GetPrepopulatePages().size(), querier4.urls().size()); | 1064 ASSERT_EQ(2u + GetPrepopulatedPages().size(), querier4.urls().size()); |
| 1044 | 1065 |
| 1045 EXPECT_EQ("http://1.com/", querier4.urls()[0].url.spec()); | 1066 EXPECT_EQ("http://1.com/", querier4.urls()[0].url.spec()); |
| 1046 EXPECT_EQ("http://2.com/", querier4.urls()[1].url.spec()); | 1067 EXPECT_EQ("http://2.com/", querier4.urls()[1].url.spec()); |
| 1047 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier4, 2)); | 1068 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier4, 2)); |
| 1048 | 1069 |
| 1049 // Reset the top sites again, this time don't reload. | 1070 // Reset the top sites again, this time don't reload. |
| 1050 url.url = GURL("http://3.com/"); | 1071 url.url = GURL("http://3.com/"); |
| 1051 url.redirects.push_back(url.url); | 1072 url.redirects.push_back(url.url); |
| 1052 pages.push_back(url); | 1073 pages.push_back(url); |
| 1053 SetTopSites(pages); | 1074 SetTopSites(pages); |
| 1054 | 1075 |
| 1055 // Query again. | 1076 // Query again. |
| 1056 TopSitesQuerier querier5; | 1077 TopSitesQuerier querier5; |
| 1057 querier5.QueryTopSites(top_sites(), true); | 1078 querier5.QueryTopSites(top_sites(), true); |
| 1058 | 1079 |
| 1059 EXPECT_EQ(1, querier5.number_of_callbacks()); | 1080 EXPECT_EQ(1, querier5.number_of_callbacks()); |
| 1060 | 1081 |
| 1061 ASSERT_EQ(3u + GetPrepopulatePages().size(), querier5.urls().size()); | 1082 ASSERT_EQ(3u + GetPrepopulatedPages().size(), querier5.urls().size()); |
| 1062 EXPECT_EQ("http://1.com/", querier5.urls()[0].url.spec()); | 1083 EXPECT_EQ("http://1.com/", querier5.urls()[0].url.spec()); |
| 1063 EXPECT_EQ("http://2.com/", querier5.urls()[1].url.spec()); | 1084 EXPECT_EQ("http://2.com/", querier5.urls()[1].url.spec()); |
| 1064 EXPECT_EQ("http://3.com/", querier5.urls()[2].url.spec()); | 1085 EXPECT_EQ("http://3.com/", querier5.urls()[2].url.spec()); |
| 1065 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier5, 3)); | 1086 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier5, 3)); |
| 1066 } | 1087 } |
| 1067 | 1088 |
| 1068 // Makes sure canceled requests are not notified. | 1089 // Makes sure canceled requests are not notified. |
| 1069 TEST_F(TopSitesImplTest, CancelingRequestsForTopSites) { | 1090 TEST_F(TopSitesImplTest, CancelingRequestsForTopSites) { |
| 1070 // Recreate top sites. It won't be loaded now. | 1091 // Recreate top sites. It won't be loaded now. |
| 1071 CreateTopSites(); | 1092 CreateTopSites(); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 1083 EXPECT_EQ(0, querier1.number_of_callbacks()); | 1104 EXPECT_EQ(0, querier1.number_of_callbacks()); |
| 1084 EXPECT_EQ(0, querier2.number_of_callbacks()); | 1105 EXPECT_EQ(0, querier2.number_of_callbacks()); |
| 1085 | 1106 |
| 1086 querier2.CancelRequest(); | 1107 querier2.CancelRequest(); |
| 1087 | 1108 |
| 1088 // Wait for loading to complete. | 1109 // Wait for loading to complete. |
| 1089 profile()->BlockUntilTopSitesLoaded(); | 1110 profile()->BlockUntilTopSitesLoaded(); |
| 1090 | 1111 |
| 1091 // The first callback should succeed. | 1112 // The first callback should succeed. |
| 1092 EXPECT_EQ(1, querier1.number_of_callbacks()); | 1113 EXPECT_EQ(1, querier1.number_of_callbacks()); |
| 1093 EXPECT_EQ(GetPrepopulatePages().size(), querier1.urls().size()); | 1114 EXPECT_EQ(GetPrepopulatedPages().size(), querier1.urls().size()); |
| 1094 | 1115 |
| 1095 // And the canceled callback should not be notified. | 1116 // And the canceled callback should not be notified. |
| 1096 EXPECT_EQ(0, querier2.number_of_callbacks()); | 1117 EXPECT_EQ(0, querier2.number_of_callbacks()); |
| 1097 } | 1118 } |
| 1098 | 1119 |
| 1099 // Makes sure temporary thumbnails are copied over correctly. | 1120 // Makes sure temporary thumbnails are copied over correctly. |
| 1100 TEST_F(TopSitesImplTest, AddTemporaryThumbnail) { | 1121 TEST_F(TopSitesImplTest, AddTemporaryThumbnail) { |
| 1101 GURL unknown_url("http://news.google.com/"); | 1122 GURL unknown_url("http://news.google.com/"); |
| 1102 GURL invalid_url("chrome://thumb/http://google.com/"); | 1123 GURL invalid_url("chrome://thumb/http://google.com/"); |
| 1103 GURL url1a("http://google.com/"); | 1124 GURL url1a("http://google.com/"); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1199 | 1220 |
| 1200 { | 1221 { |
| 1201 TopSitesQuerier q; | 1222 TopSitesQuerier q; |
| 1202 q.QueryTopSites(top_sites(), true); | 1223 q.QueryTopSites(top_sites(), true); |
| 1203 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1224 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1204 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | 1225 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); |
| 1205 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); | 1226 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); |
| 1206 } | 1227 } |
| 1207 } | 1228 } |
| 1208 | 1229 |
| 1209 #if !defined(OS_ANDROID) | |
| 1210 // Tests variations of blacklisting including blacklisting prepopulated pages. | 1230 // Tests variations of blacklisting including blacklisting prepopulated pages. |
| 1211 // This test is disable for Android because Android does not have any | 1231 // This test is disable for Android because Android does not have any |
| 1212 // prepopulated pages. | 1232 // prepopulated pages. |
| 1213 TEST_F(TopSitesImplTest, BlacklistingWithPrepopulated) { | 1233 TEST_F(TopSitesImplTest, BlacklistingWithPrepopulated) { |
| 1214 MostVisitedURLList pages; | 1234 MostVisitedURLList pages; |
| 1215 MostVisitedURL url, url1; | 1235 MostVisitedURL url, url1; |
| 1216 url.url = GURL("http://bbc.com/"); | 1236 url.url = GURL("http://bbc.com/"); |
| 1217 url.redirects.push_back(url.url); | 1237 url.redirects.push_back(url.url); |
| 1218 pages.push_back(url); | 1238 pages.push_back(url); |
| 1219 url1.url = GURL("http://google.com/"); | 1239 url1.url = GURL("http://google.com/"); |
| 1220 url1.redirects.push_back(url1.url); | 1240 url1.redirects.push_back(url1.url); |
| 1221 pages.push_back(url1); | 1241 pages.push_back(url1); |
| 1222 | 1242 |
| 1223 SetTopSites(pages); | 1243 SetTopSites(pages); |
| 1224 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://bbc.com/"))); | 1244 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://bbc.com/"))); |
| 1225 | 1245 |
| 1226 // Blacklist google.com. | 1246 // Blacklist google.com. |
| 1227 top_sites()->AddBlacklistedURL(GURL("http://google.com/")); | 1247 top_sites()->AddBlacklistedURL(GURL("http://google.com/")); |
| 1228 | 1248 |
| 1229 GURL prepopulate_url = GetPrepopulatePages()[0].url; | 1249 GURL prepopulate_url = GetPrepopulatedPages()[0].url.url; |
| 1230 | 1250 |
| 1231 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); | 1251 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); |
| 1232 EXPECT_TRUE(top_sites()->IsBlacklisted(GURL("http://google.com/"))); | 1252 EXPECT_TRUE(top_sites()->IsBlacklisted(GURL("http://google.com/"))); |
| 1233 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://bbc.com/"))); | 1253 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://bbc.com/"))); |
| 1234 EXPECT_FALSE(top_sites()->IsBlacklisted(prepopulate_url)); | 1254 EXPECT_FALSE(top_sites()->IsBlacklisted(prepopulate_url)); |
| 1235 | 1255 |
| 1236 // Make sure the blacklisted site isn't returned in the results. | 1256 // Make sure the blacklisted site isn't returned in the results. |
| 1237 { | 1257 { |
| 1238 TopSitesQuerier q; | 1258 TopSitesQuerier q; |
| 1239 q.QueryTopSites(top_sites(), true); | 1259 q.QueryTopSites(top_sites(), true); |
| 1240 ASSERT_EQ(1u + GetPrepopulatePages().size(), q.urls().size()); | 1260 ASSERT_EQ(1u + GetPrepopulatedPages().size(), q.urls().size()); |
| 1241 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1261 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1242 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 1)); | 1262 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 1)); |
| 1243 } | 1263 } |
| 1244 | 1264 |
| 1245 // Recreate top sites and make sure blacklisted url was correctly read. | 1265 // Recreate top sites and make sure blacklisted url was correctly read. |
| 1246 RecreateTopSitesAndBlock(); | 1266 RecreateTopSitesAndBlock(); |
| 1247 { | 1267 { |
| 1248 TopSitesQuerier q; | 1268 TopSitesQuerier q; |
| 1249 q.QueryTopSites(top_sites(), true); | 1269 q.QueryTopSites(top_sites(), true); |
| 1250 ASSERT_EQ(1u + GetPrepopulatePages().size(), q.urls().size()); | 1270 ASSERT_EQ(1u + GetPrepopulatedPages().size(), q.urls().size()); |
| 1251 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1271 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1252 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 1)); | 1272 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 1)); |
| 1253 } | 1273 } |
| 1254 | 1274 |
| 1255 // Blacklist one of the prepopulate urls. | 1275 // Blacklist one of the prepopulate urls. |
| 1256 top_sites()->AddBlacklistedURL(prepopulate_url); | 1276 top_sites()->AddBlacklistedURL(prepopulate_url); |
| 1257 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); | 1277 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); |
| 1258 | 1278 |
| 1259 // Make sure the blacklisted prepopulate url isn't returned. | 1279 // Make sure the blacklisted prepopulate url isn't returned. |
| 1260 { | 1280 { |
| 1261 TopSitesQuerier q; | 1281 TopSitesQuerier q; |
| 1262 q.QueryTopSites(top_sites(), true); | 1282 q.QueryTopSites(top_sites(), true); |
| 1263 ASSERT_EQ(1u + GetPrepopulatePages().size() - 1, q.urls().size()); | 1283 ASSERT_EQ(1u + GetPrepopulatedPages().size() - 1, q.urls().size()); |
| 1264 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1284 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1265 for (size_t i = 1; i < q.urls().size(); ++i) | 1285 for (size_t i = 1; i < q.urls().size(); ++i) |
| 1266 EXPECT_NE(prepopulate_url.spec(), q.urls()[i].url.spec()); | 1286 EXPECT_NE(prepopulate_url.spec(), q.urls()[i].url.spec()); |
| 1267 } | 1287 } |
| 1268 | 1288 |
| 1269 // Mark google as no longer blacklisted. | 1289 // Mark google as no longer blacklisted. |
| 1270 top_sites()->RemoveBlacklistedURL(GURL("http://google.com/")); | 1290 top_sites()->RemoveBlacklistedURL(GURL("http://google.com/")); |
| 1271 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); | 1291 EXPECT_TRUE(top_sites()->HasBlacklistedItems()); |
| 1272 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://google.com/"))); | 1292 EXPECT_FALSE(top_sites()->IsBlacklisted(GURL("http://google.com/"))); |
| 1273 | 1293 |
| 1274 // Make sure google is returned now. | 1294 // Make sure google is returned now. |
| 1275 { | 1295 { |
| 1276 TopSitesQuerier q; | 1296 TopSitesQuerier q; |
| 1277 q.QueryTopSites(top_sites(), true); | 1297 q.QueryTopSites(top_sites(), true); |
| 1278 ASSERT_EQ(2u + GetPrepopulatePages().size() - 1, q.urls().size()); | 1298 ASSERT_EQ(2u + GetPrepopulatedPages().size() - 1, q.urls().size()); |
| 1279 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1299 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1280 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | 1300 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); |
| 1281 // Android has only one prepopulated page which has been blacklisted, so | 1301 // Android has only one prepopulated page which has been blacklisted, so |
| 1282 // only 2 urls are returned. | 1302 // only 2 urls are returned. |
| 1283 if (q.urls().size() > 2) | 1303 if (q.urls().size() > 2) |
| 1284 EXPECT_NE(prepopulate_url.spec(), q.urls()[2].url.spec()); | 1304 EXPECT_NE(prepopulate_url.spec(), q.urls()[2].url.spec()); |
| 1285 else | 1305 else |
| 1286 EXPECT_EQ(1u, GetPrepopulatePages().size()); | 1306 EXPECT_EQ(1u, GetPrepopulatedPages().size()); |
| 1287 } | 1307 } |
| 1288 | 1308 |
| 1289 // Remove all blacklisted sites. | 1309 // Remove all blacklisted sites. |
| 1290 top_sites()->ClearBlacklistedURLs(); | 1310 top_sites()->ClearBlacklistedURLs(); |
| 1291 EXPECT_FALSE(top_sites()->HasBlacklistedItems()); | 1311 EXPECT_FALSE(top_sites()->HasBlacklistedItems()); |
| 1292 | 1312 |
| 1293 { | 1313 { |
| 1294 TopSitesQuerier q; | 1314 TopSitesQuerier q; |
| 1295 q.QueryTopSites(top_sites(), true); | 1315 q.QueryTopSites(top_sites(), true); |
| 1296 ASSERT_EQ(2u + GetPrepopulatePages().size(), q.urls().size()); | 1316 ASSERT_EQ(2u + GetPrepopulatedPages().size(), q.urls().size()); |
| 1297 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); | 1317 EXPECT_EQ("http://bbc.com/", q.urls()[0].url.spec()); |
| 1298 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); | 1318 EXPECT_EQ("http://google.com/", q.urls()[1].url.spec()); |
| 1299 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); | 1319 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 2)); |
| 1300 } | 1320 } |
| 1301 } | 1321 } |
| 1302 #endif | |
| 1303 | 1322 |
| 1304 // Makes sure prepopulated pages exist. | 1323 // Makes sure prepopulated pages exist. |
| 1305 TEST_F(TopSitesImplTest, AddPrepopulatedPages) { | 1324 TEST_F(TopSitesImplTest, AddPrepopulatedPages) { |
| 1306 TopSitesQuerier q; | 1325 TopSitesQuerier q; |
| 1307 q.QueryTopSites(top_sites(), true); | 1326 q.QueryTopSites(top_sites(), true); |
| 1308 EXPECT_EQ(GetPrepopulatePages().size(), q.urls().size()); | 1327 EXPECT_EQ(GetPrepopulatedPages().size(), q.urls().size()); |
| 1309 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); | 1328 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); |
| 1310 | 1329 |
| 1311 MostVisitedURLList pages = q.urls(); | 1330 MostVisitedURLList pages = q.urls(); |
| 1312 EXPECT_FALSE(AddPrepopulatedPages(&pages)); | 1331 EXPECT_FALSE(AddPrepopulatedPages(&pages)); |
| 1313 | 1332 |
| 1314 EXPECT_EQ(GetPrepopulatePages().size(), pages.size()); | 1333 EXPECT_EQ(GetPrepopulatedPages().size(), pages.size()); |
| 1315 q.set_urls(pages); | 1334 q.set_urls(pages); |
| 1316 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); | 1335 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(q, 0)); |
| 1317 } | 1336 } |
| 1318 | 1337 |
| 1319 // Ensure calling SetTopSites with forced sites already in the DB works. | 1338 // Ensure calling SetTopSites with forced sites already in the DB works. |
| 1320 // This test both eviction and | 1339 // This test both eviction and |
| 1321 TEST_F(TopSitesImplTest, SetForcedTopSites) { | 1340 TEST_F(TopSitesImplTest, SetForcedTopSites) { |
| 1322 // Create forced elements in old URL list. | 1341 // Create forced elements in old URL list. |
| 1323 MostVisitedURLList old_url_list; | 1342 MostVisitedURLList old_url_list; |
| 1324 AppendForcedMostVisitedURL(&old_url_list, GURL("http://oldforced/0"), 1000); | 1343 AppendForcedMostVisitedURL(&old_url_list, GURL("http://oldforced/0"), 1000); |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1462 9000); | 1481 9000); |
| 1463 AppendMostVisitedURL(&new_url_list, GURL("http://collision/2")); | 1482 AppendMostVisitedURL(&new_url_list, GURL("http://collision/2")); |
| 1464 AppendMostVisitedURL(&new_url_list, GURL("http://url/3")); | 1483 AppendMostVisitedURL(&new_url_list, GURL("http://url/3")); |
| 1465 SetTopSites(new_url_list); | 1484 SetTopSites(new_url_list); |
| 1466 | 1485 |
| 1467 // Query all URLs. | 1486 // Query all URLs. |
| 1468 TopSitesQuerier querier; | 1487 TopSitesQuerier querier; |
| 1469 querier.QueryAllTopSites(top_sites(), false, true); | 1488 querier.QueryAllTopSites(top_sites(), false, true); |
| 1470 | 1489 |
| 1471 // Check URLs. When collision occurs, the incoming one is always preferred. | 1490 // Check URLs. When collision occurs, the incoming one is always preferred. |
| 1472 ASSERT_EQ(7u + GetPrepopulatePages().size(), querier.urls().size()); | 1491 ASSERT_EQ(7u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1473 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); | 1492 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); |
| 1474 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); | 1493 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); |
| 1475 EXPECT_EQ("http://collision/1", querier.urls()[1].url.spec()); | 1494 EXPECT_EQ("http://collision/1", querier.urls()[1].url.spec()); |
| 1476 EXPECT_EQ(2000u, querier.urls()[1].last_forced_time.ToJsTime()); | 1495 EXPECT_EQ(2000u, querier.urls()[1].last_forced_time.ToJsTime()); |
| 1477 EXPECT_EQ("http://url/2", querier.urls()[2].url.spec()); | 1496 EXPECT_EQ("http://url/2", querier.urls()[2].url.spec()); |
| 1478 EXPECT_EQ(3000u, querier.urls()[2].last_forced_time.ToJsTime()); | 1497 EXPECT_EQ(3000u, querier.urls()[2].last_forced_time.ToJsTime()); |
| 1479 EXPECT_EQ("http://collision/0", querier.urls()[3].url.spec()); | 1498 EXPECT_EQ("http://collision/0", querier.urls()[3].url.spec()); |
| 1480 EXPECT_EQ(5000u, querier.urls()[3].last_forced_time.ToJsTime()); | 1499 EXPECT_EQ(5000u, querier.urls()[3].last_forced_time.ToJsTime()); |
| 1481 EXPECT_EQ("http://noncollision/0", querier.urls()[4].url.spec()); | 1500 EXPECT_EQ("http://noncollision/0", querier.urls()[4].url.spec()); |
| 1482 EXPECT_EQ(9000u, querier.urls()[4].last_forced_time.ToJsTime()); | 1501 EXPECT_EQ(9000u, querier.urls()[4].last_forced_time.ToJsTime()); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 1496 SetTopSites(url_list); | 1515 SetTopSites(url_list); |
| 1497 | 1516 |
| 1498 // Set the new list of URLs to be exactly the same. | 1517 // Set the new list of URLs to be exactly the same. |
| 1499 SetTopSites(MostVisitedURLList(url_list)); | 1518 SetTopSites(MostVisitedURLList(url_list)); |
| 1500 | 1519 |
| 1501 // Query all URLs. | 1520 // Query all URLs. |
| 1502 TopSitesQuerier querier; | 1521 TopSitesQuerier querier; |
| 1503 querier.QueryAllTopSites(top_sites(), false, true); | 1522 querier.QueryAllTopSites(top_sites(), false, true); |
| 1504 | 1523 |
| 1505 // Check URLs. When collision occurs, the incoming one is always preferred. | 1524 // Check URLs. When collision occurs, the incoming one is always preferred. |
| 1506 ASSERT_EQ(3u + GetPrepopulatePages().size(), querier.urls().size()); | 1525 ASSERT_EQ(3u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1507 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); | 1526 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); |
| 1508 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); | 1527 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); |
| 1509 EXPECT_EQ("http://url/1", querier.urls()[1].url.spec()); | 1528 EXPECT_EQ("http://url/1", querier.urls()[1].url.spec()); |
| 1510 EXPECT_EQ("http://url/2", querier.urls()[2].url.spec()); | 1529 EXPECT_EQ("http://url/2", querier.urls()[2].url.spec()); |
| 1511 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 3)); | 1530 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 3)); |
| 1512 } | 1531 } |
| 1513 | 1532 |
| 1514 TEST_F(TopSitesImplTest, SetTopSitesWithAlreadyExistingForcedURLs) { | 1533 TEST_F(TopSitesImplTest, SetTopSitesWithAlreadyExistingForcedURLs) { |
| 1515 // Set the initial list of URLs. | 1534 // Set the initial list of URLs. |
| 1516 MostVisitedURLList old_url_list; | 1535 MostVisitedURLList old_url_list; |
| 1517 AppendForcedMostVisitedURL(&old_url_list, GURL("http://url/0/redir"), 1000); | 1536 AppendForcedMostVisitedURL(&old_url_list, GURL("http://url/0/redir"), 1000); |
| 1518 AppendForcedMostVisitedURL(&old_url_list, GURL("http://url/1"), 2000); | 1537 AppendForcedMostVisitedURL(&old_url_list, GURL("http://url/1"), 2000); |
| 1519 SetTopSites(old_url_list); | 1538 SetTopSites(old_url_list); |
| 1520 | 1539 |
| 1521 // Setup a new URL list that will cause collisions. | 1540 // Setup a new URL list that will cause collisions. |
| 1522 MostVisitedURLList new_url_list; | 1541 MostVisitedURLList new_url_list; |
| 1523 AppendMostVisitedURLWithRedirect(&new_url_list, GURL("http://url/0/redir"), | 1542 AppendMostVisitedURLWithRedirect(&new_url_list, GURL("http://url/0/redir"), |
| 1524 GURL("http://url/0")); | 1543 GURL("http://url/0")); |
| 1525 AppendMostVisitedURL(&new_url_list, GURL("http://url/1")); | 1544 AppendMostVisitedURL(&new_url_list, GURL("http://url/1")); |
| 1526 SetTopSites(new_url_list); | 1545 SetTopSites(new_url_list); |
| 1527 | 1546 |
| 1528 // Query all URLs. | 1547 // Query all URLs. |
| 1529 TopSitesQuerier querier; | 1548 TopSitesQuerier querier; |
| 1530 querier.QueryAllTopSites(top_sites(), false, true); | 1549 querier.QueryAllTopSites(top_sites(), false, true); |
| 1531 | 1550 |
| 1532 // Check URLs. When collision occurs, the non-forced one is always preferred. | 1551 // Check URLs. When collision occurs, the non-forced one is always preferred. |
| 1533 ASSERT_EQ(2u + GetPrepopulatePages().size(), querier.urls().size()); | 1552 ASSERT_EQ(2u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1534 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); | 1553 EXPECT_EQ("http://url/0", querier.urls()[0].url.spec()); |
| 1535 EXPECT_EQ("http://url/0/redir", querier.urls()[0].redirects[0].spec()); | 1554 EXPECT_EQ("http://url/0/redir", querier.urls()[0].redirects[0].spec()); |
| 1536 EXPECT_TRUE(querier.urls()[0].last_forced_time.is_null()); | 1555 EXPECT_TRUE(querier.urls()[0].last_forced_time.is_null()); |
| 1537 EXPECT_EQ("http://url/1", querier.urls()[1].url.spec()); | 1556 EXPECT_EQ("http://url/1", querier.urls()[1].url.spec()); |
| 1538 EXPECT_TRUE(querier.urls()[1].last_forced_time.is_null()); | 1557 EXPECT_TRUE(querier.urls()[1].last_forced_time.is_null()); |
| 1539 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); | 1558 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 2)); |
| 1540 } | 1559 } |
| 1541 | 1560 |
| 1542 TEST_F(TopSitesImplTest, AddForcedURL) { | 1561 TEST_F(TopSitesImplTest, AddForcedURL) { |
| 1543 // Set the initial list of URLs. | 1562 // Set the initial list of URLs. |
| 1544 MostVisitedURLList url_list; | 1563 MostVisitedURLList url_list; |
| 1545 AppendForcedMostVisitedURL(&url_list, GURL("http://forced/0"), 2000); | 1564 AppendForcedMostVisitedURL(&url_list, GURL("http://forced/0"), 2000); |
| 1546 AppendForcedMostVisitedURL(&url_list, GURL("http://forced/1"), 4000); | 1565 AppendForcedMostVisitedURL(&url_list, GURL("http://forced/1"), 4000); |
| 1547 AppendMostVisitedURL(&url_list, GURL("http://nonforced/0")); | 1566 AppendMostVisitedURL(&url_list, GURL("http://nonforced/0")); |
| 1548 AppendMostVisitedURL(&url_list, GURL("http://nonforced/1")); | 1567 AppendMostVisitedURL(&url_list, GURL("http://nonforced/1")); |
| 1549 AppendMostVisitedURL(&url_list, GURL("http://nonforced/2")); | 1568 AppendMostVisitedURL(&url_list, GURL("http://nonforced/2")); |
| 1550 SetTopSites(url_list); | 1569 SetTopSites(url_list); |
| 1551 | 1570 |
| 1552 // Add forced sites here and there to exercise a couple of cases. | 1571 // Add forced sites here and there to exercise a couple of cases. |
| 1553 EXPECT_TRUE(AddForcedURL(GURL("http://forced/2"), | 1572 EXPECT_TRUE(AddForcedURL(GURL("http://forced/2"), |
| 1554 base::Time::FromJsTime(5000))); | 1573 base::Time::FromJsTime(5000))); |
| 1555 EXPECT_TRUE(AddForcedURL(GURL("http://forced/3"), | 1574 EXPECT_TRUE(AddForcedURL(GURL("http://forced/3"), |
| 1556 base::Time::FromJsTime(1000))); | 1575 base::Time::FromJsTime(1000))); |
| 1557 EXPECT_TRUE(AddForcedURL(GURL("http://forced/4"), | 1576 EXPECT_TRUE(AddForcedURL(GURL("http://forced/4"), |
| 1558 base::Time::FromJsTime(3000))); | 1577 base::Time::FromJsTime(3000))); |
| 1559 | 1578 |
| 1560 // Check URLs. | 1579 // Check URLs. |
| 1561 TopSitesQuerier querier; | 1580 TopSitesQuerier querier; |
| 1562 querier.QueryAllTopSites(top_sites(), false, true); | 1581 querier.QueryAllTopSites(top_sites(), false, true); |
| 1563 ASSERT_EQ(8u + GetPrepopulatePages().size(), querier.urls().size()); | 1582 ASSERT_EQ(8u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1564 EXPECT_EQ("http://forced/3", querier.urls()[0].url.spec()); | 1583 EXPECT_EQ("http://forced/3", querier.urls()[0].url.spec()); |
| 1565 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); | 1584 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); |
| 1566 EXPECT_EQ("http://forced/0", querier.urls()[1].url.spec()); | 1585 EXPECT_EQ("http://forced/0", querier.urls()[1].url.spec()); |
| 1567 EXPECT_EQ(2000u, querier.urls()[1].last_forced_time.ToJsTime()); | 1586 EXPECT_EQ(2000u, querier.urls()[1].last_forced_time.ToJsTime()); |
| 1568 EXPECT_EQ("http://forced/4", querier.urls()[2].url.spec()); | 1587 EXPECT_EQ("http://forced/4", querier.urls()[2].url.spec()); |
| 1569 EXPECT_EQ(3000u, querier.urls()[2].last_forced_time.ToJsTime()); | 1588 EXPECT_EQ(3000u, querier.urls()[2].last_forced_time.ToJsTime()); |
| 1570 EXPECT_EQ("http://forced/1", querier.urls()[3].url.spec()); | 1589 EXPECT_EQ("http://forced/1", querier.urls()[3].url.spec()); |
| 1571 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); | 1590 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); |
| 1572 EXPECT_EQ("http://forced/2", querier.urls()[4].url.spec()); | 1591 EXPECT_EQ("http://forced/2", querier.urls()[4].url.spec()); |
| 1573 EXPECT_EQ(5000u, querier.urls()[4].last_forced_time.ToJsTime()); | 1592 EXPECT_EQ(5000u, querier.urls()[4].last_forced_time.ToJsTime()); |
| 1574 EXPECT_EQ("http://nonforced/0", querier.urls()[5].url.spec()); | 1593 EXPECT_EQ("http://nonforced/0", querier.urls()[5].url.spec()); |
| 1575 EXPECT_TRUE(querier.urls()[5].last_forced_time.is_null()); | 1594 EXPECT_TRUE(querier.urls()[5].last_forced_time.is_null()); |
| 1576 EXPECT_EQ("http://nonforced/1", querier.urls()[6].url.spec()); | 1595 EXPECT_EQ("http://nonforced/1", querier.urls()[6].url.spec()); |
| 1577 EXPECT_TRUE(querier.urls()[6].last_forced_time.is_null()); | 1596 EXPECT_TRUE(querier.urls()[6].last_forced_time.is_null()); |
| 1578 EXPECT_EQ("http://nonforced/2", querier.urls()[7].url.spec()); | 1597 EXPECT_EQ("http://nonforced/2", querier.urls()[7].url.spec()); |
| 1579 EXPECT_TRUE(querier.urls()[7].last_forced_time.is_null()); | 1598 EXPECT_TRUE(querier.urls()[7].last_forced_time.is_null()); |
| 1580 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 8)); | 1599 ASSERT_NO_FATAL_FAILURE(ContainsPrepopulatePages(querier, 8)); |
| 1581 | 1600 |
| 1582 // Add some collisions with forced and non-forced. Non-forced URLs are never | 1601 // Add some collisions with forced and non-forced. Non-forced URLs are never |
| 1583 // expected to move. | 1602 // expected to move. |
| 1584 EXPECT_TRUE(AddForcedURL(GURL("http://forced/3"), | 1603 EXPECT_TRUE(AddForcedURL(GURL("http://forced/3"), |
| 1585 base::Time::FromJsTime(4000))); | 1604 base::Time::FromJsTime(4000))); |
| 1586 EXPECT_TRUE(AddForcedURL(GURL("http://forced/1"), | 1605 EXPECT_TRUE(AddForcedURL(GURL("http://forced/1"), |
| 1587 base::Time::FromJsTime(1000))); | 1606 base::Time::FromJsTime(1000))); |
| 1588 EXPECT_FALSE(AddForcedURL(GURL("http://nonforced/0"), | 1607 EXPECT_FALSE(AddForcedURL(GURL("http://nonforced/0"), |
| 1589 base::Time::FromJsTime(6000))); | 1608 base::Time::FromJsTime(6000))); |
| 1590 | 1609 |
| 1591 // Check relevant URLs. | 1610 // Check relevant URLs. |
| 1592 querier.QueryAllTopSites(top_sites(), false, true); | 1611 querier.QueryAllTopSites(top_sites(), false, true); |
| 1593 ASSERT_EQ(8u + GetPrepopulatePages().size(), querier.urls().size()); | 1612 ASSERT_EQ(8u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1594 EXPECT_EQ("http://forced/1", querier.urls()[0].url.spec()); | 1613 EXPECT_EQ("http://forced/1", querier.urls()[0].url.spec()); |
| 1595 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); | 1614 EXPECT_EQ(1000u, querier.urls()[0].last_forced_time.ToJsTime()); |
| 1596 EXPECT_EQ("http://forced/3", querier.urls()[3].url.spec()); | 1615 EXPECT_EQ("http://forced/3", querier.urls()[3].url.spec()); |
| 1597 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); | 1616 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); |
| 1598 EXPECT_EQ("http://nonforced/0", querier.urls()[5].url.spec()); | 1617 EXPECT_EQ("http://nonforced/0", querier.urls()[5].url.spec()); |
| 1599 EXPECT_TRUE(querier.urls()[5].last_forced_time.is_null()); | 1618 EXPECT_TRUE(querier.urls()[5].last_forced_time.is_null()); |
| 1600 | 1619 |
| 1601 // Add a timestamp collision and make sure things don't break. | 1620 // Add a timestamp collision and make sure things don't break. |
| 1602 EXPECT_TRUE(AddForcedURL(GURL("http://forced/5"), | 1621 EXPECT_TRUE(AddForcedURL(GURL("http://forced/5"), |
| 1603 base::Time::FromJsTime(4000))); | 1622 base::Time::FromJsTime(4000))); |
| 1604 querier.QueryAllTopSites(top_sites(), false, true); | 1623 querier.QueryAllTopSites(top_sites(), false, true); |
| 1605 ASSERT_EQ(9u + GetPrepopulatePages().size(), querier.urls().size()); | 1624 ASSERT_EQ(9u + GetPrepopulatedPages().size(), querier.urls().size()); |
| 1606 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); | 1625 EXPECT_EQ(4000u, querier.urls()[3].last_forced_time.ToJsTime()); |
| 1607 EXPECT_EQ(4000u, querier.urls()[4].last_forced_time.ToJsTime()); | 1626 EXPECT_EQ(4000u, querier.urls()[4].last_forced_time.ToJsTime()); |
| 1608 // We don't care which order they get sorted in. | 1627 // We don't care which order they get sorted in. |
| 1609 if (querier.urls()[3].url.spec() == "http://forced/3") { | 1628 if (querier.urls()[3].url.spec() == "http://forced/3") { |
| 1610 EXPECT_EQ("http://forced/3", querier.urls()[3].url.spec()); | 1629 EXPECT_EQ("http://forced/3", querier.urls()[3].url.spec()); |
| 1611 EXPECT_EQ("http://forced/5", querier.urls()[4].url.spec()); | 1630 EXPECT_EQ("http://forced/5", querier.urls()[4].url.spec()); |
| 1612 } else { | 1631 } else { |
| 1613 EXPECT_EQ("http://forced/5", querier.urls()[3].url.spec()); | 1632 EXPECT_EQ("http://forced/5", querier.urls()[3].url.spec()); |
| 1614 EXPECT_EQ("http://forced/3", querier.urls()[4].url.spec()); | 1633 EXPECT_EQ("http://forced/3", querier.urls()[4].url.spec()); |
| 1615 } | 1634 } |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 1634 ASSERT_EQ(orig_thumbnail.getSize(), thumbnail.getSize()); | 1653 ASSERT_EQ(orig_thumbnail.getSize(), thumbnail.getSize()); |
| 1635 orig_thumbnail.lockPixels(); | 1654 orig_thumbnail.lockPixels(); |
| 1636 thumbnail.lockPixels(); | 1655 thumbnail.lockPixels(); |
| 1637 EXPECT_EQ(0, memcmp(orig_thumbnail.getPixels(), thumbnail.getPixels(), | 1656 EXPECT_EQ(0, memcmp(orig_thumbnail.getPixels(), thumbnail.getPixels(), |
| 1638 orig_thumbnail.getSize())); | 1657 orig_thumbnail.getSize())); |
| 1639 thumbnail.unlockPixels(); | 1658 thumbnail.unlockPixels(); |
| 1640 orig_thumbnail.unlockPixels(); | 1659 orig_thumbnail.unlockPixels(); |
| 1641 } | 1660 } |
| 1642 | 1661 |
| 1643 } // namespace history | 1662 } // namespace history |
| OLD | NEW |