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

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

Issue 2746002: 1. Create and use the TopSites database file.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/top_sites_database.cc ('k') | chrome/browser/profile.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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/scoped_temp_dir.h" 5 #include "base/scoped_temp_dir.h"
6 #include "base/string_util.h" 6 #include "base/string_util.h"
7 #include "chrome/browser/history/top_sites.h" 7 #include "chrome/browser/history/top_sites.h"
8 #include "chrome/common/chrome_paths.h" 8 #include "chrome/common/chrome_paths.h"
9 #include "chrome/browser/history/top_sites_database.h" 9 #include "chrome/browser/history/top_sites_database.h"
10 #include "chrome/browser/history/history_notifications.h"
10 #include "chrome/test/testing_profile.h" 11 #include "chrome/test/testing_profile.h"
11 #include "chrome/tools/profiles/thumbnail-inl.h" 12 #include "chrome/tools/profiles/thumbnail-inl.h"
12 #include "gfx/codec/jpeg_codec.h" 13 #include "gfx/codec/jpeg_codec.h"
13 #include "googleurl/src/gurl.h" 14 #include "googleurl/src/gurl.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/skia/include/core/SkBitmap.h" 16 #include "third_party/skia/include/core/SkBitmap.h"
16 17
17 18
18 namespace history { 19 namespace history {
19 20
20 static const unsigned char kBlob[] = 21 static const unsigned char kBlob[] =
21 "12346102356120394751634516591348710478123649165419234519234512349134"; 22 "12346102356120394751634516591348710478123649165419234519234512349134";
22 23
23 class TopSitesTest : public testing::Test { 24 class TopSitesTest : public testing::Test {
24 public: 25 public:
25 TopSitesTest() { 26 TopSitesTest() {
26 } 27 }
27 ~TopSitesTest() { 28 ~TopSitesTest() {
28 } 29 }
29 30
30 TopSites& top_sites() { return *top_sites_; } 31 TopSites& top_sites() { return *top_sites_; }
32 Profile& profile() {return *profile_;}
31 FilePath& file_name() { return file_name_; } 33 FilePath& file_name() { return file_name_; }
32 RefCountedBytes* google_thumbnail() { return google_thumbnail_; } 34 RefCountedBytes* google_thumbnail() { return google_thumbnail_; }
33 RefCountedBytes* random_thumbnail() { return random_thumbnail_; } 35 RefCountedBytes* random_thumbnail() { return random_thumbnail_; }
34 RefCountedBytes* weewar_thumbnail() { return weewar_thumbnail_; } 36 RefCountedBytes* weewar_thumbnail() { return weewar_thumbnail_; }
35 37
36 virtual void SetUp() { 38 virtual void SetUp() {
37 profile_.reset(new TestingProfile); 39 profile_.reset(new TestingProfile);
38 top_sites_ = new TopSites(profile_.get()); 40 top_sites_ = new TopSites(profile_.get());
39 41
40 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 42 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 } 83 }
82 84
83 private: 85 private:
84 scoped_refptr<TopSites> top_sites_; 86 scoped_refptr<TopSites> top_sites_;
85 scoped_ptr<TestingProfile> profile_; 87 scoped_ptr<TestingProfile> profile_;
86 ScopedTempDir temp_dir_; 88 ScopedTempDir temp_dir_;
87 FilePath file_name_; // Database filename. 89 FilePath file_name_; // Database filename.
88 scoped_refptr<RefCountedBytes> google_thumbnail_; 90 scoped_refptr<RefCountedBytes> google_thumbnail_;
89 scoped_refptr<RefCountedBytes> random_thumbnail_; 91 scoped_refptr<RefCountedBytes> random_thumbnail_;
90 scoped_refptr<RefCountedBytes> weewar_thumbnail_; 92 scoped_refptr<RefCountedBytes> weewar_thumbnail_;
93 MessageLoop message_loop_;
91 94
92 DISALLOW_COPY_AND_ASSIGN(TopSitesTest); 95 DISALLOW_COPY_AND_ASSIGN(TopSitesTest);
93 }; 96 };
94 97
95 // A mockup of a HistoryService used for testing TopSites. 98 // A mockup of a HistoryService used for testing TopSites.
96 class MockHistoryServiceImpl : public TopSites::MockHistoryService { 99 class MockHistoryServiceImpl : public TopSites::MockHistoryService {
97 public: 100 public:
98 // Calls the callback directly with the results. 101 // Calls the callback directly with the results.
99 HistoryService::Handle QueryMostVisitedURLs( 102 HistoryService::Handle QueryMostVisitedURLs(
100 int result_count, int days_back, 103 int result_count, int days_back,
101 CancelableRequestConsumerBase* consumer, 104 CancelableRequestConsumerBase* consumer,
102 HistoryService::QueryMostVisitedURLsCallback* callback) { 105 HistoryService::QueryMostVisitedURLsCallback* callback) {
103 callback->Run(CancelableRequestProvider::Handle(0), // Handle is unused. 106 callback->Run(CancelableRequestProvider::Handle(0), // Handle is unused.
104 most_visited_urls_); 107 most_visited_urls_);
105 delete callback; 108 delete callback;
106 return 0; 109 return 0;
107 } 110 }
108 111
109 // Add a page to the end of the pages list. 112 // Add a page to the end of the pages list.
110 void AppendMockPage(const GURL& url, 113 void AppendMockPage(const GURL& url,
111 const string16& title) { 114 const string16& title) {
112 MostVisitedURL page; 115 MostVisitedURL page;
113 page.url = url; 116 page.url = url;
114 page.title = title; 117 page.title = title;
115 page.redirects = RedirectList(); 118 page.redirects = RedirectList();
116 page.redirects.push_back(url); 119 page.redirects.push_back(url);
117 most_visited_urls_.push_back(page); 120 most_visited_urls_.push_back(page);
118 } 121 }
119 122
123 // Removes the last URL in the list.
124 void RemoveMostVisitedURL() {
125 most_visited_urls_.pop_back();
126 }
127
120 private: 128 private:
121 MostVisitedURLList most_visited_urls_; 129 MostVisitedURLList most_visited_urls_;
122 }; 130 };
123 131
124 132
125 // A mockup of a TopSitesDatabase used for testing TopSites. 133 // A mockup of a TopSitesDatabase used for testing TopSites.
126 class MockTopSitesDatabaseImpl : public TopSitesDatabase { 134 class MockTopSitesDatabaseImpl : public TopSitesDatabase {
127 public: 135 public:
128 virtual MostVisitedURLList GetTopURLs() { 136 virtual MostVisitedURLList GetTopURLs() {
129 // Return a copy of the vector. 137 // Return a copy of the vector.
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 high_score)); 608 high_score));
601 // Check that the thumbnail was updated. 609 // Check that the thumbnail was updated.
602 top_sites().GetPageThumbnail(google1_url, &out_1); 610 top_sites().GetPageThumbnail(google1_url, &out_1);
603 EXPECT_FALSE(ThumbnailsAreEqual(out_1, out_2.thumbnail)); 611 EXPECT_FALSE(ThumbnailsAreEqual(out_1, out_2.thumbnail));
604 // Read the new thumbnail from the DB - should match what's in TopSites. 612 // Read the new thumbnail from the DB - should match what's in TopSites.
605 db->GetPageThumbnail(url2, &out_2); 613 db->GetPageThumbnail(url2, &out_2);
606 EXPECT_TRUE(ThumbnailsAreEqual(out_1, out_2.thumbnail)); 614 EXPECT_TRUE(ThumbnailsAreEqual(out_1, out_2.thumbnail));
607 EXPECT_TRUE(high_score.Equals(out_2.thumbnail_score)); 615 EXPECT_TRUE(high_score.Equals(out_2.thumbnail_score));
608 } 616 }
609 617
618 TEST_F(TopSitesTest, DeleteNotifications) {
619 GURL google1_url("http://google.com");
620 GURL google2_url("http://google.com/redirect");
621 GURL google3_url("http://www.google.com");
622 string16 google_title(ASCIIToUTF16("Google"));
623 GURL news_url("http://news.google.com");
624 string16 news_title(ASCIIToUTF16("Google News"));
625
626 MockHistoryServiceImpl hs;
627
628 top_sites().Init(file_name());
629
630 hs.AppendMockPage(google1_url, google_title);
631 hs.AppendMockPage(news_url, news_title);
632 top_sites().SetMockHistoryService(&hs);
633
634 top_sites().StartQueryForMostVisited();
635
636 MostVisitedURLList result = top_sites().GetMostVisitedURLs();
637 ASSERT_EQ(2u, result.size());
638
639 hs.RemoveMostVisitedURL();
640
641 history::URLsDeletedDetails details;
642 details.all_history = false;
643 top_sites().Observe(NotificationType::HISTORY_URLS_DELETED,
644 Source<Profile> (&profile()),
645 (const NotificationDetails&)details);
646
647 result = top_sites().GetMostVisitedURLs();
648 ASSERT_EQ(1u, result.size());
649 EXPECT_EQ(google_title, result[0].title);
650
651 hs.RemoveMostVisitedURL();
652 details.all_history = true;
653 top_sites().Observe(NotificationType::HISTORY_URLS_DELETED,
654 Source<Profile> (&profile()),
655 (const NotificationDetails&)details);
656 result = top_sites().GetMostVisitedURLs();
657 ASSERT_EQ(0u, result.size());
658 }
659
660 TEST_F(TopSitesTest, GetUpdateDelay) {
661 top_sites().last_num_urls_changed_ = 0;
662 EXPECT_EQ(60, top_sites().GetUpdateDelay().InMinutes());
663
664 top_sites().last_num_urls_changed_ = 3;
665 EXPECT_EQ(52, top_sites().GetUpdateDelay().InMinutes());
666
667 top_sites().last_num_urls_changed_ = 20;
668 EXPECT_EQ(1, top_sites().GetUpdateDelay().InMinutes());
669 }
670
610 } // namespace history 671 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/top_sites_database.cc ('k') | chrome/browser/profile.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698