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

Side by Side Diff: components/history/core/browser/history_backend_unittest.cc

Issue 2856873002: [Thumbnails DB] Allow setting last_requested time when accessing favicons. (Closed)
Patch Set: Peter's comments Created 3 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
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 "components/history/core/browser/history_backend.h" 5 #include "components/history/core/browser/history_backend.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 // we can test that updating works properly. 586 // we can test that updating works properly.
587 GURL favicon_url1("http://www.google.com/favicon.ico"); 587 GURL favicon_url1("http://www.google.com/favicon.ico");
588 GURL favicon_url2("http://news.google.com/favicon.ico"); 588 GURL favicon_url2("http://news.google.com/favicon.ico");
589 favicon_base::FaviconID favicon2 = 589 favicon_base::FaviconID favicon2 =
590 backend_->thumbnail_db_->AddFavicon(favicon_url2, favicon_base::FAVICON); 590 backend_->thumbnail_db_->AddFavicon(favicon_url2, favicon_base::FAVICON);
591 favicon_base::FaviconID favicon1 = 591 favicon_base::FaviconID favicon1 =
592 backend_->thumbnail_db_->AddFavicon(favicon_url1, favicon_base::FAVICON); 592 backend_->thumbnail_db_->AddFavicon(favicon_url1, favicon_base::FAVICON);
593 593
594 std::vector<unsigned char> data; 594 std::vector<unsigned char> data;
595 data.push_back('a'); 595 data.push_back('a');
596 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon1, 596 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(
597 new base::RefCountedBytes(data), base::Time::Now(), kSmallSize)); 597 favicon1, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT,
598 base::Time::Now(), kSmallSize));
598 data[0] = 'b'; 599 data[0] = 'b';
599 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon1, 600 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(
600 new base::RefCountedBytes(data), base::Time::Now(), kLargeSize)); 601 favicon1, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT,
602 base::Time::Now(), kLargeSize));
601 603
602 data[0] = 'c'; 604 data[0] = 'c';
603 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon2, 605 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(
604 new base::RefCountedBytes(data), base::Time::Now(), kSmallSize)); 606 favicon2, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT,
607 base::Time::Now(), kSmallSize));
605 data[0] = 'd'; 608 data[0] = 'd';
606 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon2, 609 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(
607 new base::RefCountedBytes(data), base::Time::Now(), kLargeSize)); 610 favicon2, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT,
611 base::Time::Now(), kLargeSize));
608 612
609 // First visit two URLs. 613 // First visit two URLs.
610 URLRow row1(GURL("http://www.google.com/")); 614 URLRow row1(GURL("http://www.google.com/"));
611 row1.set_visit_count(2); 615 row1.set_visit_count(2);
612 row1.set_typed_count(1); 616 row1.set_typed_count(1);
613 row1.set_last_visit(base::Time::Now()); 617 row1.set_last_visit(base::Time::Now());
614 backend_->thumbnail_db_->AddIconMapping(row1.url(), favicon1); 618 backend_->thumbnail_db_->AddIconMapping(row1.url(), favicon1);
615 619
616 URLRow row2(GURL("http://news.google.com/")); 620 URLRow row2(GURL("http://news.google.com/"));
617 row2.set_visit_count(1); 621 row2.set_visit_count(1);
(...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after
2069 page_url2, &icon_mappings)); 2073 page_url2, &icon_mappings));
2070 EXPECT_EQ(1u, icon_mappings.size()); 2074 EXPECT_EQ(1u, icon_mappings.size());
2071 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); 2075 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id);
2072 2076
2073 favicon_bitmaps.clear(); 2077 favicon_bitmaps.clear();
2074 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id, 2078 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id,
2075 &favicon_bitmaps)); 2079 &favicon_bitmaps));
2076 EXPECT_EQ(2u, favicon_bitmaps.size()); 2080 EXPECT_EQ(2u, favicon_bitmaps.size());
2077 } 2081 }
2078 2082
2079 // Tests calling SetLastResortFavicons(). Neither |page_url| nor |icon_url| are 2083 // Tests calling SetOnDemandFavicons(). Neither |page_url| nor |icon_url| are
2080 // known to the database. 2084 // known to the database.
2081 TEST_F(HistoryBackendTest, SetLastResortFaviconsForEmptyDB) { 2085 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForEmptyDB) {
2082 GURL page_url("http://www.google.com"); 2086 GURL page_url("http://www.google.com");
2083 GURL icon_url("http:/www.google.com/favicon.ico"); 2087 GURL icon_url("http:/www.google.com/favicon.ico");
2084 2088
2085 std::vector<SkBitmap> bitmaps; 2089 std::vector<SkBitmap> bitmaps;
2086 bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize)); 2090 bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize));
2087 2091
2088 // Call SetLastResortFavicons() with a different icon URL and bitmap data. 2092 // Call SetOnDemandFavicons() with a different icon URL and bitmap data.
2089 EXPECT_TRUE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, 2093 EXPECT_TRUE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON,
2090 icon_url, bitmaps)); 2094 icon_url, bitmaps));
2091 2095
2092 favicon_base::FaviconID favicon_id = 2096 favicon_base::FaviconID favicon_id =
2093 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, 2097 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url,
2094 favicon_base::FAVICON); 2098 favicon_base::FAVICON);
2095 EXPECT_NE(0, favicon_id); 2099 EXPECT_NE(0, favicon_id);
2096 2100
2097 FaviconBitmap favicon_bitmap; 2101 FaviconBitmap favicon_bitmap;
2098 ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap)); 2102 ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap));
2099 // The original bitmap should have been retrieved. 2103 // The original bitmap should have been retrieved.
2100 EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data)); 2104 EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data));
2101 // The favicon should not be marked as expired. 2105 // The favicon should not be marked as expired.
2102 EXPECT_EQ(base::Time(), favicon_bitmap.last_updated); 2106 EXPECT_EQ(base::Time(), favicon_bitmap.last_updated);
2103 } 2107 }
2104 2108
2105 // Tests calling SetLastResortFavicons(). |page_url| is known to the database 2109 // Tests calling SetOnDemandFavicons(). |page_url| is known to the database
2106 // but |icon_url| is not (the second should be irrelevant though). 2110 // but |icon_url| is not (the second should be irrelevant though).
2107 TEST_F(HistoryBackendTest, SetLastResortFaviconsForPageInDB) { 2111 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForPageInDB) {
2108 GURL page_url("http://www.google.com"); 2112 GURL page_url("http://www.google.com");
2109 GURL icon_url1("http:/www.google.com/favicon1.ico"); 2113 GURL icon_url1("http:/www.google.com/favicon1.ico");
2110 GURL icon_url2("http:/www.google.com/favicon2.ico"); 2114 GURL icon_url2("http:/www.google.com/favicon2.ico");
2111 std::vector<SkBitmap> bitmaps; 2115 std::vector<SkBitmap> bitmaps;
2112 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); 2116 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
2113 2117
2114 // Add bitmap to the database. 2118 // Add bitmap to the database.
2115 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps); 2119 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps);
2116 favicon_base::FaviconID original_favicon_id = 2120 favicon_base::FaviconID original_favicon_id =
2117 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url1, 2121 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url1,
2118 favicon_base::FAVICON); 2122 favicon_base::FAVICON);
2119 ASSERT_NE(0, original_favicon_id); 2123 ASSERT_NE(0, original_favicon_id);
2120 2124
2121 // Call SetLastResortFavicons() with a different icon URL and bitmap data. 2125 // Call SetOnDemandFavicons() with a different icon URL and bitmap data.
2122 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); 2126 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
2123 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, 2127 EXPECT_FALSE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON,
2124 icon_url2, bitmaps)); 2128 icon_url2, bitmaps));
2125 EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL( 2129 EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
2126 icon_url2, favicon_base::FAVICON)); 2130 icon_url2, favicon_base::FAVICON));
2127 2131
2128 FaviconBitmap favicon_bitmap; 2132 FaviconBitmap favicon_bitmap;
2129 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); 2133 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap));
2130 // The original bitmap should have been retrieved. 2134 // The original bitmap should have been retrieved.
2131 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); 2135 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
2132 // The favicon should not be marked as expired. 2136 // The favicon should not be marked as expired.
2133 EXPECT_NE(base::Time(), favicon_bitmap.last_updated); 2137 EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
2134 } 2138 }
2135 2139
2136 // Tests calling SetLastResortFavicons(). |page_url| is not known to the 2140 // Tests calling SetOnDemandFavicons(). |page_url| is not known to the
2137 // database but |icon_url| is. 2141 // database but |icon_url| is.
2138 TEST_F(HistoryBackendTest, SetLastResortFaviconsForIconInDB) { 2142 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForIconInDB) {
2139 const GURL old_page_url("http://www.google.com/old"); 2143 const GURL old_page_url("http://www.google.com/old");
2140 const GURL page_url("http://www.google.com/"); 2144 const GURL page_url("http://www.google.com/");
2141 const GURL icon_url("http://www.google.com/icon"); 2145 const GURL icon_url("http://www.google.com/icon");
2142 std::vector<SkBitmap> bitmaps; 2146 std::vector<SkBitmap> bitmaps;
2143 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); 2147 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
2144 2148
2145 // Add bitmap to the database. 2149 // Add bitmap to the database.
2146 backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps); 2150 backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps);
2147 favicon_base::FaviconID original_favicon_id = 2151 favicon_base::FaviconID original_favicon_id =
2148 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, 2152 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url,
2149 favicon_base::FAVICON); 2153 favicon_base::FAVICON);
2150 ASSERT_NE(0, original_favicon_id); 2154 ASSERT_NE(0, original_favicon_id);
2151 2155
2152 // Call SetLastResortFavicons() with a different bitmap. 2156 // Call SetOnDemandFavicons() with a different bitmap.
2153 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); 2157 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
2154 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, 2158 EXPECT_FALSE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON,
2155 icon_url, bitmaps)); 2159 icon_url, bitmaps));
2156 2160
2157 EXPECT_EQ(original_favicon_id, 2161 EXPECT_EQ(original_favicon_id,
2158 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( 2162 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
2159 icon_url, favicon_base::FAVICON)); 2163 icon_url, favicon_base::FAVICON));
2160 2164
2161 FaviconBitmap favicon_bitmap; 2165 FaviconBitmap favicon_bitmap;
2162 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); 2166 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap));
2163 // The original bitmap should have been retrieved. 2167 // The original bitmap should have been retrieved.
2164 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); 2168 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
2165 // The favicon should not be marked as expired. 2169 // The favicon should not be marked as expired.
(...skipping 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after
3895 backend_->QueryMostVisitedURLs(100, 100, &most_visited); 3899 backend_->QueryMostVisitedURLs(100, 100, &most_visited);
3896 3900
3897 const base::string16 kSomeTitle; // Ignored by equality operator. 3901 const base::string16 kSomeTitle; // Ignored by equality operator.
3898 EXPECT_THAT( 3902 EXPECT_THAT(
3899 most_visited, 3903 most_visited,
3900 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle), 3904 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle),
3901 MostVisitedURL(GURL("http://example5.com"), kSomeTitle))); 3905 MostVisitedURL(GURL("http://example5.com"), kSomeTitle)));
3902 } 3906 }
3903 3907
3904 } // namespace history 3908 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698