Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Side by Side Diff: chrome/browser/history/top_sites_impl_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698