Index: chrome/browser/history/history_backend_unittest.cc |
diff --git a/chrome/browser/history/history_backend_unittest.cc b/chrome/browser/history/history_backend_unittest.cc |
index fa5f962d73328b5d7b7bb1853b731ea31c9dbf1a..010e8f51c2abb4eb2aae29ba9020c3cf2db1f141 100644 |
--- a/chrome/browser/history/history_backend_unittest.cc |
+++ b/chrome/browser/history/history_backend_unittest.cc |
@@ -38,6 +38,8 @@ |
#include "content/public/test/test_browser_thread.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "third_party/skia/include/core/SkBitmap.h" |
+#include "ui/gfx/codec/png_codec.h" |
#include "url/gurl.h" |
using base::Time; |
@@ -266,20 +268,6 @@ class HistoryBackendTest : public HistoryBackendTestBase { |
return visits[0].transition; |
} |
- // Returns a vector with the small edge size. |
- const std::vector<int> GetEdgeSizesSmall() { |
- std::vector<int> sizes_small; |
- sizes_small.push_back(kSmallEdgeSize); |
- return sizes_small; |
- } |
- |
- // Returns a vector with the large edge size. |
- const std::vector<int> GetEdgeSizesLarge() { |
- std::vector<int> sizes_large; |
- sizes_large.push_back(kLargeEdgeSize); |
- return sizes_large; |
- } |
- |
// Returns a vector with the small and large edge sizes. |
const std::vector<int> GetEdgeSizesSmallAndLarge() { |
std::vector<int> sizes_small_and_large; |
@@ -288,15 +276,6 @@ class HistoryBackendTest : public HistoryBackendTestBase { |
return sizes_small_and_large; |
} |
- // Returns a vector with the tiny, small, and large edge sizes. |
- const std::vector<int> GetEdgeSizesTinySmallAndLarge() { |
- std::vector<int> sizes_tiny_small_and_large; |
- sizes_tiny_small_and_large.push_back(kTinyEdgeSize); |
- sizes_tiny_small_and_large.push_back(kSmallEdgeSize); |
- sizes_tiny_small_and_large.push_back(kLargeEdgeSize); |
- return sizes_tiny_small_and_large; |
- } |
- |
// Returns the number of icon mappings of |icon_type| to |page_url|. |
size_t NumIconMappingsForPageURL(const GURL& page_url, |
favicon_base::IconType icon_type) { |
@@ -345,53 +324,12 @@ class HistoryBackendTest : public HistoryBackendTestBase { |
return true; |
} |
- // Generates |favicon_bitmap_data| with entries for the icon_urls and sizes |
- // specified. The bitmap_data for entries are lowercase letters of the |
- // alphabet starting at 'a' for the entry at index 0. |
- void GenerateFaviconBitmapData( |
- const GURL& icon_url1, |
- const std::vector<int>& icon_url1_sizes, |
- std::vector<favicon_base::FaviconRawBitmapData>* favicon_bitmap_data) { |
- GenerateFaviconBitmapData(icon_url1, icon_url1_sizes, GURL(), |
- std::vector<int>(), favicon_bitmap_data); |
- } |
- |
- void GenerateFaviconBitmapData( |
- const GURL& icon_url1, |
- const std::vector<int>& icon_url1_sizes, |
- const GURL& icon_url2, |
- const std::vector<int>& icon_url2_sizes, |
- std::vector<favicon_base::FaviconRawBitmapData>* favicon_bitmap_data) { |
- favicon_bitmap_data->clear(); |
- |
- char bitmap_char = 'a'; |
- for (size_t i = 0; i < icon_url1_sizes.size(); ++i) { |
- std::vector<unsigned char> data; |
- data.push_back(bitmap_char); |
- favicon_base::FaviconRawBitmapData bitmap_data_element; |
- bitmap_data_element.bitmap_data = |
- base::RefCountedBytes::TakeVector(&data); |
- bitmap_data_element.pixel_size = |
- gfx::Size(icon_url1_sizes[i], icon_url1_sizes[i]); |
- bitmap_data_element.icon_url = icon_url1; |
- favicon_bitmap_data->push_back(bitmap_data_element); |
- |
- ++bitmap_char; |
- } |
- |
- for (size_t i = 0; i < icon_url2_sizes.size(); ++i) { |
- std::vector<unsigned char> data; |
- data.push_back(bitmap_char); |
- favicon_base::FaviconRawBitmapData bitmap_data_element; |
- bitmap_data_element.bitmap_data = |
- base::RefCountedBytes::TakeVector(&data); |
- bitmap_data_element.pixel_size = |
- gfx::Size(icon_url2_sizes[i], icon_url2_sizes[i]); |
- bitmap_data_element.icon_url = icon_url2; |
- favicon_bitmap_data->push_back(bitmap_data_element); |
- |
- ++bitmap_char; |
- } |
+ // Creates an |edge_size|x|edge_size| bitmap of |color|. |
+ SkBitmap CreateBitmap(SkColor color, int edge_size) { |
+ SkBitmap bitmap; |
+ bitmap.allocN32Pixels(edge_size, edge_size); |
+ bitmap.eraseColor(color); |
+ return bitmap; |
} |
// Returns true if |bitmap_data| is equal to |expected_data|. |
@@ -402,6 +340,17 @@ class HistoryBackendTest : public HistoryBackendTestBase { |
*bitmap_data->front() == expected_data; |
} |
+ // Returns true if |bitmap_data| is of |color|. |
+ bool BitmapColorEqual(SkColor expected_color, |
+ scoped_refptr<base::RefCountedMemory> bitmap_data) { |
+ SkBitmap bitmap; |
+ if (!gfx::PNGCodec::Decode( |
+ bitmap_data->front(), bitmap_data->size(), &bitmap)) |
+ return false; |
+ SkAutoLockPixels bitmap_lock(bitmap); |
+ return expected_color == bitmap.getColor(0, 0); |
+ } |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(HistoryBackendTest); |
}; |
@@ -1571,35 +1520,27 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageAndRedirects) { |
const GURL icon_url1("http://www.google.com/icon"); |
const GURL icon_url2("http://www.google.com/icon2"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
- // Generate bitmap data for a page with two favicons. |
- std::vector<favicon_base::FaviconRawBitmapData> two_favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmallAndLarge(), |
- icon_url2, GetEdgeSizesSmallAndLarge(), &two_favicon_bitmap_data); |
- |
- // Generate bitmap data for a page with a single favicon. |
- std::vector<favicon_base::FaviconRawBitmapData> one_favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmallAndLarge(), |
- &one_favicon_bitmap_data); |
- |
- // Add two favicons |
- backend_->SetFavicons(url1, favicon_base::FAVICON, two_favicon_bitmap_data); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON)); |
+ // Add a favicon. |
+ backend_->SetFavicon(url1, favicon_base::FAVICON, icon_url1, bitmaps); |
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON)); |
// Add one touch_icon |
- backend_->SetFavicons( |
- url1, favicon_base::TOUCH_ICON, one_favicon_bitmap_data); |
+ backend_->SetFavicon(url1, favicon_base::TOUCH_ICON, icon_url1, bitmaps); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON)); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::TOUCH_ICON)); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
// Add one TOUCH_PRECOMPOSED_ICON |
- backend_->SetFavicons( |
- url1, favicon_base::TOUCH_PRECOMPOSED_ICON, one_favicon_bitmap_data); |
+ backend_->SetFavicon( |
+ url1, favicon_base::TOUCH_PRECOMPOSED_ICON, icon_url1, bitmaps); |
// The touch_icon was replaced. |
EXPECT_EQ(0u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON)); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
EXPECT_EQ( |
1u, |
NumIconMappingsForPageURL(url1, favicon_base::TOUCH_PRECOMPOSED_ICON)); |
@@ -1608,38 +1549,32 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageAndRedirects) { |
NumIconMappingsForPageURL(url2, favicon_base::TOUCH_PRECOMPOSED_ICON)); |
// Add a touch_icon. |
- backend_->SetFavicons( |
- url1, favicon_base::TOUCH_ICON, one_favicon_bitmap_data); |
+ backend_->SetFavicon(url1, favicon_base::TOUCH_ICON, icon_url1, bitmaps); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON)); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
+ EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
// The TOUCH_PRECOMPOSED_ICON was replaced. |
EXPECT_EQ( |
0u, |
NumIconMappingsForPageURL(url1, favicon_base::TOUCH_PRECOMPOSED_ICON)); |
- // Add a single favicon. |
- backend_->SetFavicons(url1, favicon_base::FAVICON, one_favicon_bitmap_data); |
+ // Add a different favicon. |
+ backend_->SetFavicon(url1, favicon_base::FAVICON, icon_url2, bitmaps); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON)); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
EXPECT_EQ(1u, NumIconMappingsForPageURL(url2, favicon_base::FAVICON)); |
- |
- // Add two favicons. |
- backend_->SetFavicons(url1, favicon_base::FAVICON, two_favicon_bitmap_data); |
- EXPECT_EQ(1u, NumIconMappingsForPageURL(url1, favicon_base::TOUCH_ICON)); |
- EXPECT_EQ(2u, NumIconMappingsForPageURL(url1, favicon_base::FAVICON)); |
} |
// Test that there is no churn in icon mappings from calling |
-// SetFavicons() twice with the same |favicon_bitmap_data| parameter. |
+// SetFavicon() twice with the same |bitmaps| parameter. |
TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) { |
const GURL url("http://www.google.com/"); |
const GURL icon_url("http://www.google.com/icon"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(), |
- &favicon_bitmap_data); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps); |
std::vector<IconMapping> icon_mappings; |
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL( |
@@ -1647,7 +1582,7 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) { |
EXPECT_EQ(1u, icon_mappings.size()); |
IconMappingID mapping_id = icon_mappings[0].mapping_id; |
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps); |
icon_mappings.clear(); |
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL( |
@@ -1659,17 +1594,17 @@ TEST_F(HistoryBackendTest, SetFaviconMappingsForPageDuplicates) { |
EXPECT_EQ(mapping_id, icon_mappings[0].mapping_id); |
} |
-// Test that calling SetFavicons() with FaviconBitmapData of different pixel |
+// Test that calling SetFavicon() with FaviconBitmapData of different pixel |
// sizes than the initially passed in FaviconBitmapData deletes the no longer |
// used favicon bitmaps. |
-TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) { |
+TEST_F(HistoryBackendTest, SetFaviconDeleteBitmaps) { |
const GURL page_url("http://www.google.com/"); |
const GURL icon_url("http://www.google.com/icon"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
// Test initial state. |
std::vector<IconMapping> icon_mappings; |
@@ -1684,18 +1619,18 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) { |
EXPECT_EQ(2u, favicon_bitmaps.size()); |
FaviconBitmapID small_bitmap_id = favicon_bitmaps[0].bitmap_id; |
EXPECT_NE(0, small_bitmap_id); |
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmaps[0].bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmaps[0].bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmaps[0].pixel_size); |
FaviconBitmapID large_bitmap_id = favicon_bitmaps[1].bitmap_id; |
EXPECT_NE(0, large_bitmap_id); |
- EXPECT_TRUE(BitmapDataEqual('b', favicon_bitmaps[1].bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmaps[1].bitmap_data)); |
EXPECT_EQ(kLargeSize, favicon_bitmaps[1].pixel_size); |
- // Call SetFavicons() with bitmap data for only the large bitmap. Check that |
+ // Call SetFavicon() with bitmap data for only the large bitmap. Check that |
// the small bitmap is in fact deleted. |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesLarge(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ bitmaps.clear(); |
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kLargeEdgeSize)); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
scoped_refptr<base::RefCountedMemory> bitmap_data_out; |
gfx::Size pixel_size_out; |
@@ -1703,7 +1638,7 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) { |
NULL, &bitmap_data_out, &pixel_size_out)); |
EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmap(large_bitmap_id, |
NULL, &bitmap_data_out, &pixel_size_out)); |
- EXPECT_TRUE(BitmapDataEqual('a', bitmap_data_out)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorWHITE, bitmap_data_out)); |
EXPECT_EQ(kLargeSize, pixel_size_out); |
icon_mappings.clear(); |
@@ -1712,39 +1647,19 @@ TEST_F(HistoryBackendTest, SetFaviconsDeleteBitmaps) { |
EXPECT_EQ(1u, icon_mappings.size()); |
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); |
- // Call SetFavicons() with no bitmap data. Check that the bitmaps and icon |
- // mappings are deleted. |
- favicon_bitmap_data.clear(); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
- |
- EXPECT_FALSE(backend_->thumbnail_db_->GetFaviconBitmap(large_bitmap_id, NULL, |
- NULL, NULL)); |
- icon_mappings.clear(); |
- EXPECT_FALSE(backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url, |
- &icon_mappings)); |
- |
- // Notifications should have been broadcast for each call to SetFavicons(). |
- EXPECT_EQ(3, num_broadcasted_notifications()); |
+ // Notifications should have been broadcast for each call to SetFavicon(). |
+ EXPECT_EQ(2, num_broadcasted_notifications()); |
} |
-// Test updating a single favicon bitmap's data via SetFavicons. |
-TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) { |
+// Test updating a single favicon bitmap's data via SetFavicon. |
+TEST_F(HistoryBackendTest, SetFaviconReplaceBitmapData) { |
const GURL page_url("http://www.google.com/"); |
const GURL icon_url("http://www.google.com/icon"); |
- |
- std::vector<unsigned char> data_initial; |
- data_initial.push_back('a'); |
- |
- favicon_base::FaviconRawBitmapData bitmap_data_element; |
- bitmap_data_element.bitmap_data = |
- base::RefCountedBytes::TakeVector(&data_initial); |
- bitmap_data_element.pixel_size = kSmallSize; |
- bitmap_data_element.icon_url = icon_url; |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- favicon_bitmap_data.push_back(bitmap_data_element); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
// Add bitmap to the database. |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
favicon_base::FaviconID original_favicon_id = |
backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
@@ -1753,15 +1668,14 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) { |
FaviconBitmap original_favicon_bitmap; |
EXPECT_TRUE( |
GetOnlyFaviconBitmap(original_favicon_id, &original_favicon_bitmap)); |
- EXPECT_TRUE(BitmapDataEqual('a', original_favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE( |
+ BitmapColorEqual(SK_ColorBLUE, original_favicon_bitmap.bitmap_data)); |
EXPECT_EQ(1, num_broadcasted_notifications()); |
- // Call SetFavicons() with completely identical data. |
- std::vector<unsigned char> updated_data; |
- updated_data.push_back('a'); |
- favicon_bitmap_data[0].bitmap_data = new base::RefCountedBytes(updated_data); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ // Call SetFavicon() with completely identical data. |
+ bitmaps[0] = CreateBitmap(SK_ColorBLUE, kSmallEdgeSize); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
favicon_base::FaviconID updated_favicon_id = |
backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
@@ -1770,23 +1684,24 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) { |
FaviconBitmap updated_favicon_bitmap; |
EXPECT_TRUE( |
GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); |
- EXPECT_TRUE(BitmapDataEqual('a', updated_favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE( |
+ BitmapColorEqual(SK_ColorBLUE, updated_favicon_bitmap.bitmap_data)); |
// Because the bitmap data is byte equivalent, no notifications should have |
// been broadcasted. |
EXPECT_EQ(1, num_broadcasted_notifications()); |
- // Call SetFavicons() with identical data but a different bitmap. |
- updated_data[0] = 'b'; |
- favicon_bitmap_data[0].bitmap_data = new base::RefCountedBytes(updated_data); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ // Call SetFavicon() with a different bitmap of the same size. |
+ bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
updated_favicon_id = backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
icon_url, favicon_base::FAVICON, NULL); |
EXPECT_NE(0, updated_favicon_id); |
EXPECT_TRUE( |
GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); |
- EXPECT_TRUE(BitmapDataEqual('b', updated_favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE( |
+ BitmapColorEqual(SK_ColorWHITE, updated_favicon_bitmap.bitmap_data)); |
// There should be no churn in FaviconIDs or FaviconBitmapIds even though |
// the bitmap data changed. |
@@ -1801,17 +1716,16 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) { |
// Test that if two pages share the same FaviconID, changing the favicon for |
// one page does not affect the other. |
-TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) { |
+TEST_F(HistoryBackendTest, SetFaviconSameFaviconURLForTwoPages) { |
GURL icon_url("http://www.google.com/favicon.ico"); |
GURL icon_url_new("http://www.google.com/favicon2.ico"); |
GURL page_url1("http://www.google.com"); |
GURL page_url2("http://www.google.ca"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(), |
- &favicon_bitmap_data); |
- |
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url, bitmaps); |
std::vector<GURL> icon_urls; |
icon_urls.push_back(icon_url); |
@@ -1838,9 +1752,9 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) { |
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); |
// Change the icon URL that |page_url1| is mapped to. |
- GenerateFaviconBitmapData(icon_url_new, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data); |
+ bitmaps.clear(); |
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kSmallEdgeSize)); |
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url_new, bitmaps); |
// |page_url1| should map to a new FaviconID and have valid bitmap data. |
icon_mappings.clear(); |
@@ -1868,7 +1782,7 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) { |
&favicon_bitmaps)); |
EXPECT_EQ(2u, favicon_bitmaps.size()); |
- // A notification should have been broadcast for each call to SetFavicons() |
+ // A notification should have been broadcast for each call to SetFavicon() |
// and each call to UpdateFaviconMappingsAndFetch(). |
EXPECT_EQ(3, num_broadcasted_notifications()); |
} |
@@ -1879,11 +1793,10 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) { |
TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchNoChange) { |
GURL page_url("http://www.google.com"); |
GURL icon_url("http://www.google.com/favicon.ico"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
favicon_base::FaviconID icon_id = |
backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
@@ -1962,12 +1875,10 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) { |
GURL page_url("http://www.google.com"); |
GURL icon_url1("http:/www.google.com/favicon.ico"); |
GURL icon_url2("http://www.google.com/favicon2.ico"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url1, bitmaps); |
// Test initial state. |
std::vector<IconMapping> icon_mappings; |
@@ -1979,14 +1890,14 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) { |
FaviconBitmap favicon_bitmap; |
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap)); |
EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size); |
EXPECT_EQ(1, num_broadcasted_notifications()); |
// 1) Merge identical favicon bitmap. |
std::vector<unsigned char> data; |
- data.push_back('a'); |
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmaps[0], false, &data); |
scoped_refptr<base::RefCountedBytes> bitmap_data( |
new base::RefCountedBytes(data)); |
backend_->MergeFavicon( |
@@ -2002,13 +1913,14 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) { |
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap)); |
EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size); |
EXPECT_EQ(1, num_broadcasted_notifications()); |
// 2) Merge favicon bitmap of the same size. |
- data[0] = 'b'; |
+ data.clear(); |
+ data.push_back('b'); |
bitmap_data = new base::RefCountedBytes(data); |
backend_->MergeFavicon( |
page_url, icon_url1, favicon_base::FAVICON, bitmap_data, kSmallSize); |
@@ -2077,7 +1989,7 @@ TEST_F(HistoryBackendTest, MergeFaviconPageURLInDB) { |
EXPECT_TRUE(BitmapDataEqual('d', favicon_bitmaps[1].bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmaps[1].pixel_size); |
- // A notification should have been broadcast for each call to SetFavicons() |
+ // A notification should have been broadcast for each call to SetFavicon() |
// and MergeFavicon(). |
EXPECT_EQ(4, num_broadcasted_notifications()); |
} |
@@ -2089,12 +2001,10 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) { |
GURL page_url2("http://news.google.com"); |
GURL page_url3("http://maps.google.com"); |
GURL icon_url("http:/www.google.com/favicon.ico"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- |
- backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url1, favicon_base::FAVICON, icon_url, bitmaps); |
// Test initial state. |
std::vector<IconMapping> icon_mappings; |
@@ -2106,12 +2016,12 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) { |
FaviconBitmap favicon_bitmap; |
EXPECT_TRUE(GetOnlyFaviconBitmap(icon_mappings[0].icon_id, &favicon_bitmap)); |
EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size); |
// 1) Merge in an identical favicon bitmap data but for a different page URL. |
std::vector<unsigned char> data; |
- data.push_back('a'); |
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmaps[0], false, &data); |
scoped_refptr<base::RefCountedBytes> bitmap_data( |
new base::RefCountedBytes(data)); |
@@ -2125,12 +2035,14 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) { |
EXPECT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap)); |
EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
- EXPECT_TRUE(BitmapDataEqual('a', favicon_bitmap.bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
EXPECT_EQ(kSmallSize, favicon_bitmap.pixel_size); |
// 2) Merging a favicon bitmap with different bitmap data for the same icon |
// URL should overwrite the small favicon bitmap at |icon_url|. |
- bitmap_data->data()[0] = 'b'; |
+ data.clear(); |
+ data.push_back('b'); |
+ bitmap_data = new base::RefCountedBytes(data); |
backend_->MergeFavicon( |
page_url3, icon_url, favicon_base::FAVICON, bitmap_data, kSmallSize); |
@@ -2162,7 +2074,7 @@ TEST_F(HistoryBackendTest, MergeFaviconIconURLMappedToDifferentPageURL) { |
EXPECT_EQ(1u, icon_mappings.size()); |
EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); |
- // A notification should have been broadcast for each call to SetFavicons() |
+ // A notification should have been broadcast for each call to SetFavicon() |
// and MergeFavicon(). |
EXPECT_EQ(3, num_broadcasted_notifications()); |
} |
@@ -2210,13 +2122,12 @@ TEST_F(HistoryBackendTest, MergeFaviconShowsUpInGetFaviconsForURLResult) { |
GURL page_url("http://www.google.com"); |
GURL icon_url("http://www.google.com/favicon.ico"); |
GURL merged_icon_url("http://wwww.google.com/favicon2.ico"); |
- |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmallAndLarge(), |
- &favicon_bitmap_data); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
// Set some preexisting favicons for |page_url|. |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
// Merge small favicon. |
std::vector<unsigned char> data; |
@@ -2251,23 +2162,18 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLWithIconTypesPriority) { |
GURL icon_url("http://www.google.com/favicon.ico"); |
GURL touch_icon_url("http://wwww.google.com/touch_icon.ico"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- std::vector<int> favicon_size; |
- favicon_size.push_back(16); |
- favicon_size.push_back(32); |
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data); |
- ASSERT_EQ(2u, favicon_bitmap_data.size()); |
- |
- std::vector<favicon_base::FaviconRawBitmapData> touch_icon_bitmap_data; |
- std::vector<int> touch_icon_size; |
- touch_icon_size.push_back(64); |
- GenerateFaviconBitmapData(icon_url, touch_icon_size, &touch_icon_bitmap_data); |
- ASSERT_EQ(1u, touch_icon_bitmap_data.size()); |
+ std::vector<SkBitmap> favicon_bitmaps; |
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16)); |
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorRED, 32)); |
+ |
+ std::vector<SkBitmap> touch_bitmaps; |
+ touch_bitmaps.push_back(CreateBitmap(SK_ColorWHITE, 64)); |
// Set some preexisting favicons for |page_url|. |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
- backend_->SetFavicons( |
- page_url, favicon_base::TOUCH_ICON, touch_icon_bitmap_data); |
+ backend_->SetFavicon( |
+ page_url, favicon_base::FAVICON, icon_url, favicon_bitmaps); |
+ backend_->SetFavicon( |
+ page_url, favicon_base::TOUCH_ICON, touch_icon_url, touch_bitmaps); |
favicon_base::FaviconRawBitmapResult result; |
std::vector<int> icon_types; |
@@ -2293,23 +2199,18 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLReturnFavicon) { |
GURL icon_url("http://www.google.com/favicon.ico"); |
GURL touch_icon_url("http://wwww.google.com/touch_icon.ico"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- std::vector<int> favicon_size; |
- favicon_size.push_back(16); |
- favicon_size.push_back(32); |
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data); |
- ASSERT_EQ(2u, favicon_bitmap_data.size()); |
- |
- std::vector<favicon_base::FaviconRawBitmapData> touch_icon_bitmap_data; |
- std::vector<int> touch_icon_size; |
- touch_icon_size.push_back(32); |
- GenerateFaviconBitmapData(icon_url, touch_icon_size, &touch_icon_bitmap_data); |
- ASSERT_EQ(1u, touch_icon_bitmap_data.size()); |
+ std::vector<SkBitmap> favicon_bitmaps; |
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16)); |
+ favicon_bitmaps.push_back(CreateBitmap(SK_ColorRED, 32)); |
+ |
+ std::vector<SkBitmap> touch_bitmaps; |
+ touch_bitmaps.push_back(CreateBitmap(SK_ColorWHITE, 32)); |
// Set some preexisting favicons for |page_url|. |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
- backend_->SetFavicons( |
- page_url, favicon_base::TOUCH_ICON, touch_icon_bitmap_data); |
+ backend_->SetFavicon( |
+ page_url, favicon_base::FAVICON, icon_url, favicon_bitmaps); |
+ backend_->SetFavicon( |
+ page_url, favicon_base::TOUCH_ICON, touch_icon_url, touch_bitmaps); |
favicon_base::FaviconRawBitmapResult result; |
std::vector<int> icon_types; |
@@ -2335,14 +2236,11 @@ TEST_F(HistoryBackendTest, TestGetFaviconsForURLReturnFaviconEvenItSmaller) { |
GURL page_url("http://www.google.com"); |
GURL icon_url("http://www.google.com/favicon.ico"); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- std::vector<int> favicon_size; |
- favicon_size.push_back(16); |
- GenerateFaviconBitmapData(icon_url, favicon_size, &favicon_bitmap_data); |
- ASSERT_EQ(1u, favicon_bitmap_data.size()); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, 16)); |
// Set preexisting favicons for |page_url|. |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
favicon_base::FaviconRawBitmapResult result; |
std::vector<int> icon_types; |
@@ -2363,26 +2261,20 @@ TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchMultipleIconTypes) { |
GURL page_url3("http://mail.google.com"); |
GURL icon_urla("http://www.google.com/favicon1.ico"); |
GURL icon_urlb("http://www.google.com/favicon2.ico"); |
- GURL icon_urlc("http://www.google.com/favicon3.ico"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
// |page_url1| is mapped to |icon_urla| which if of type TOUCH_ICON. |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_urla, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons( |
- page_url1, favicon_base::TOUCH_ICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url1, favicon_base::TOUCH_ICON, icon_urla, bitmaps); |
- // |page_url2| is mapped to |icon_urlb| and |icon_urlc| which are of type |
+ // |page_url2| is mapped to |icon_urlb| which is of type |
// TOUCH_PRECOMPOSED_ICON. |
- GenerateFaviconBitmapData(icon_urlb, GetEdgeSizesSmall(), icon_urlc, |
- GetEdgeSizesSmall(), &favicon_bitmap_data); |
- backend_->SetFavicons( |
- page_url2, favicon_base::TOUCH_PRECOMPOSED_ICON, favicon_bitmap_data); |
+ backend_->SetFavicon( |
+ page_url2, favicon_base::TOUCH_PRECOMPOSED_ICON, icon_urlb, bitmaps); |
std::vector<GURL> icon_urls; |
icon_urls.push_back(icon_urla); |
icon_urls.push_back(icon_urlb); |
- icon_urls.push_back(icon_urlc); |
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; |
backend_->UpdateFaviconMappingsAndFetch( |
@@ -2402,25 +2294,20 @@ TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchMultipleIconTypes) { |
icon_mappings.clear(); |
EXPECT_TRUE(GetSortedIconMappingsForPageURL(page_url2, &icon_mappings)); |
- EXPECT_EQ(2u, icon_mappings.size()); |
+ EXPECT_EQ(1u, icon_mappings.size()); |
EXPECT_EQ(icon_urlb, icon_mappings[0].icon_url); |
EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[0].icon_type); |
- EXPECT_EQ(icon_urlc, icon_mappings[1].icon_url); |
- EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[1].icon_type); |
- // |page_url3| should be mapped only to |icon_urlb| and |icon_urlc| as |
- // TOUCH_PRECOMPOSED_ICON is the largest IconType. |
+ // |page_url3| should be mapped only to |icon_urlb| as TOUCH_PRECOMPOSED_ICON |
+ // is the largest IconType. |
icon_mappings.clear(); |
EXPECT_TRUE(GetSortedIconMappingsForPageURL(page_url3, &icon_mappings)); |
- EXPECT_EQ(2u, icon_mappings.size()); |
+ EXPECT_EQ(1u, icon_mappings.size()); |
EXPECT_EQ(icon_urlb, icon_mappings[0].icon_url); |
EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[0].icon_type); |
- EXPECT_EQ(icon_urlc, icon_mappings[1].icon_url); |
- EXPECT_EQ(favicon_base::TOUCH_PRECOMPOSED_ICON, icon_mappings[1].icon_type); |
} |
-// Test the results of GetFaviconsFromDB() when there are no found |
-// favicons. |
+// Test the results of GetFaviconsFromDB() when there are no found favicons. |
TEST_F(HistoryBackendTest, GetFaviconsFromDBEmpty) { |
const GURL page_url("http://www.google.com/"); |
@@ -2456,12 +2343,12 @@ TEST_F(HistoryBackendTest, GetFaviconsFromDBNoFaviconBitmaps) { |
TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) { |
const GURL page_url("http://www.google.com/"); |
const GURL icon_url("http://www.google.com/icon1"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorWHITE, kTinyEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
+ bitmaps.push_back(CreateBitmap(SK_ColorRED, kLargeEdgeSize)); |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesTinySmallAndLarge(), |
- &favicon_bitmap_data); |
- |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; |
EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, |
@@ -2480,61 +2367,31 @@ TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) { |
} |
EXPECT_FALSE(bitmap_results_out[0].expired); |
- EXPECT_TRUE(BitmapDataEqual('b', bitmap_results_out[0].bitmap_data)); |
+ EXPECT_TRUE( |
+ BitmapColorEqual(SK_ColorBLUE, bitmap_results_out[0].bitmap_data)); |
EXPECT_EQ(kSmallSize, bitmap_results_out[0].pixel_size); |
EXPECT_EQ(icon_url, bitmap_results_out[0].icon_url); |
EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[0].icon_type); |
EXPECT_FALSE(bitmap_results_out[1].expired); |
- EXPECT_TRUE(BitmapDataEqual('c', bitmap_results_out[1].bitmap_data)); |
+ EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, bitmap_results_out[1].bitmap_data)); |
EXPECT_EQ(kLargeSize, bitmap_results_out[1].pixel_size); |
EXPECT_EQ(icon_url, bitmap_results_out[1].icon_url); |
EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[1].icon_type); |
} |
-// Test that GetFaviconsFromDB() returns results from the icon URL whose |
-// bitmaps most closely match the passed in desired sizes. |
-TEST_F(HistoryBackendTest, GetFaviconsFromDBSingleIconURL) { |
- const GURL page_url("http://www.google.com/"); |
- |
- const GURL icon_url1("http://www.google.com/icon1"); |
- const GURL icon_url2("http://www.google.com/icon2"); |
- |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(), icon_url2, |
- GetEdgeSizesLarge(), &favicon_bitmap_data); |
- |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
- |
- std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; |
- EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, |
- favicon_base::FAVICON, |
- GetEdgeSizesSmallAndLarge(), |
- &bitmap_results_out)); |
- |
- // The results should have results for the icon URL with the large bitmap as |
- // downscaling is preferred to upscaling. |
- EXPECT_EQ(1u, bitmap_results_out.size()); |
- EXPECT_EQ(kLargeSize, bitmap_results_out[0].pixel_size); |
- EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url); |
-} |
- |
// Test the results of GetFaviconsFromDB() when called with different |
// |icon_types|. |
TEST_F(HistoryBackendTest, GetFaviconsFromDBIconType) { |
const GURL page_url("http://www.google.com/"); |
const GURL icon_url1("http://www.google.com/icon1.png"); |
const GURL icon_url2("http://www.google.com/icon2.png"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url1, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); |
- |
- GenerateFaviconBitmapData( |
- icon_url2, GetEdgeSizesSmall(), &favicon_bitmap_data); |
- backend_->SetFavicons( |
- page_url, favicon_base::TOUCH_ICON, favicon_bitmap_data); |
+ backend_->SetFavicon(page_url, favicon_base::FAVICON, icon_url1, bitmaps); |
+ backend_->SetFavicon(page_url, favicon_base::TOUCH_ICON, icon_url2, bitmaps); |
std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; |
EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, |
@@ -2605,12 +2462,11 @@ TEST_F(HistoryBackendTest, CloneFaviconIsRestrictedToSameDomain) { |
const GURL same_domain_url("http://www.google.com/subdir/index.html"); |
const GURL foreign_domain_url("http://www.not-google.com/"); |
const GURL icon_url("http://www.google.com/icon.png"); |
+ std::vector<SkBitmap> bitmaps; |
+ bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
// Add a favicon |
- std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; |
- GenerateFaviconBitmapData(icon_url, GetEdgeSizesSmall(), |
- &favicon_bitmap_data); |
- backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data); |
+ backend_->SetFavicon(url, favicon_base::FAVICON, icon_url, bitmaps); |
EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL( |
url, favicon_base::FAVICON, NULL)); |