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

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

Issue 335233003: Convert ui::ScaleFactor -> float in favicon/history code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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
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 "chrome/browser/history/history_backend.h" 5 #include "chrome/browser/history/history_backend.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 319
320 // Returns a gfx::Size vector with tiny, small and large sizes. 320 // Returns a gfx::Size vector with tiny, small and large sizes.
321 const std::vector<gfx::Size> GetSizesTinySmallAndLarge() { 321 const std::vector<gfx::Size> GetSizesTinySmallAndLarge() {
322 std::vector<gfx::Size> sizes_tiny_small_and_large; 322 std::vector<gfx::Size> sizes_tiny_small_and_large;
323 sizes_tiny_small_and_large.push_back(kTinySize); 323 sizes_tiny_small_and_large.push_back(kTinySize);
324 sizes_tiny_small_and_large.push_back(kSmallSize); 324 sizes_tiny_small_and_large.push_back(kSmallSize);
325 sizes_tiny_small_and_large.push_back(kLargeSize); 325 sizes_tiny_small_and_large.push_back(kLargeSize);
326 return sizes_tiny_small_and_large; 326 return sizes_tiny_small_and_large;
327 } 327 }
328 328
329 // Returns 1x and 2x scale factors. 329 // Returns 1x and 2x favicons cales.
330 const std::vector<ui::ScaleFactor> GetScaleFactors1x2x() { 330 const std::vector<float> GetFaviconScales1x2x() {
331 std::vector<ui::ScaleFactor> scale_factors_1x_2x; 331 std::vector<float> scales_1x_2x;
332 scale_factors_1x_2x.push_back(ui::SCALE_FACTOR_100P); 332 scales_1x_2x.push_back(1.0f);
333 scale_factors_1x_2x.push_back(ui::SCALE_FACTOR_200P); 333 scales_1x_2x.push_back(2.0f);
334 return scale_factors_1x_2x; 334 return scales_1x_2x;
335 } 335 }
336 336
337 // Returns the number of icon mappings of |icon_type| to |page_url|. 337 // Returns the number of icon mappings of |icon_type| to |page_url|.
338 size_t NumIconMappingsForPageURL(const GURL& page_url, 338 size_t NumIconMappingsForPageURL(const GURL& page_url,
339 favicon_base::IconType icon_type) { 339 favicon_base::IconType icon_type) {
340 std::vector<IconMapping> icon_mappings; 340 std::vector<IconMapping> icon_mappings;
341 backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url, icon_type, 341 backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url, icon_type,
342 &icon_mappings); 342 &icon_mappings);
343 return icon_mappings.size(); 343 return icon_mappings.size();
344 } 344 }
(...skipping 1432 matching lines...) Expand 10 before | Expand all | Expand 10 after
1777 backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data); 1777 backend_->SetFavicons(page_url1, favicon_base::FAVICON, favicon_bitmap_data);
1778 1778
1779 std::vector<GURL> icon_urls; 1779 std::vector<GURL> icon_urls;
1780 icon_urls.push_back(icon_url); 1780 icon_urls.push_back(icon_url);
1781 1781
1782 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 1782 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
1783 backend_->UpdateFaviconMappingsAndFetch(page_url2, 1783 backend_->UpdateFaviconMappingsAndFetch(page_url2,
1784 icon_urls, 1784 icon_urls,
1785 favicon_base::FAVICON, 1785 favicon_base::FAVICON,
1786 kSmallSize.width(), 1786 kSmallSize.width(),
1787 GetScaleFactors1x2x(), 1787 GetFaviconScales1x2x(),
1788 &bitmap_results); 1788 &bitmap_results);
1789 1789
1790 // Check that the same FaviconID is mapped to both page URLs. 1790 // Check that the same FaviconID is mapped to both page URLs.
1791 std::vector<IconMapping> icon_mappings; 1791 std::vector<IconMapping> icon_mappings;
1792 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL( 1792 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(
1793 page_url1, &icon_mappings)); 1793 page_url1, &icon_mappings));
1794 EXPECT_EQ(1u, icon_mappings.size()); 1794 EXPECT_EQ(1u, icon_mappings.size());
1795 favicon_base::FaviconID favicon_id = icon_mappings[0].icon_id; 1795 favicon_base::FaviconID favicon_id = icon_mappings[0].icon_id;
1796 EXPECT_NE(0, favicon_id); 1796 EXPECT_NE(0, favicon_id);
1797 1797
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1855 EXPECT_EQ(1, num_broadcasted_notifications()); 1855 EXPECT_EQ(1, num_broadcasted_notifications());
1856 1856
1857 std::vector<GURL> icon_urls; 1857 std::vector<GURL> icon_urls;
1858 icon_urls.push_back(icon_url); 1858 icon_urls.push_back(icon_url);
1859 1859
1860 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 1860 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
1861 backend_->UpdateFaviconMappingsAndFetch(page_url, 1861 backend_->UpdateFaviconMappingsAndFetch(page_url,
1862 icon_urls, 1862 icon_urls,
1863 favicon_base::FAVICON, 1863 favicon_base::FAVICON,
1864 kSmallSize.width(), 1864 kSmallSize.width(),
1865 GetScaleFactors1x2x(), 1865 GetFaviconScales1x2x(),
1866 &bitmap_results); 1866 &bitmap_results);
1867 1867
1868 EXPECT_EQ(icon_id, 1868 EXPECT_EQ(icon_id,
1869 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( 1869 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
1870 icon_url, favicon_base::FAVICON, NULL)); 1870 icon_url, favicon_base::FAVICON, NULL));
1871 1871
1872 // No notification should have been broadcast as no icon mapping, favicon, 1872 // No notification should have been broadcast as no icon mapping, favicon,
1873 // or favicon bitmap was updated, added or removed. 1873 // or favicon bitmap was updated, added or removed.
1874 EXPECT_EQ(1, num_broadcasted_notifications()); 1874 EXPECT_EQ(1, num_broadcasted_notifications());
1875 } 1875 }
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
2192 favicon_base::FAVICON, 2192 favicon_base::FAVICON,
2193 bitmap_data, 2193 bitmap_data,
2194 kSmallSize); 2194 kSmallSize);
2195 2195
2196 // Request favicon bitmaps for both 1x and 2x to simulate request done by 2196 // Request favicon bitmaps for both 1x and 2x to simulate request done by
2197 // BookmarkModel::GetFavicon(). 2197 // BookmarkModel::GetFavicon().
2198 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 2198 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
2199 backend_->GetFaviconsForURL(page_url, 2199 backend_->GetFaviconsForURL(page_url,
2200 favicon_base::FAVICON, 2200 favicon_base::FAVICON,
2201 kSmallSize.width(), 2201 kSmallSize.width(),
2202 GetScaleFactors1x2x(), 2202 GetFaviconScales1x2x(),
2203 &bitmap_results); 2203 &bitmap_results);
2204 2204
2205 EXPECT_EQ(2u, bitmap_results.size()); 2205 EXPECT_EQ(2u, bitmap_results.size());
2206 const favicon_base::FaviconRawBitmapResult& first_result = bitmap_results[0]; 2206 const favicon_base::FaviconRawBitmapResult& first_result = bitmap_results[0];
2207 const favicon_base::FaviconRawBitmapResult& result = 2207 const favicon_base::FaviconRawBitmapResult& result =
2208 (first_result.pixel_size == kSmallSize) ? first_result 2208 (first_result.pixel_size == kSmallSize) ? first_result
2209 : bitmap_results[1]; 2209 : bitmap_results[1];
2210 EXPECT_TRUE(BitmapDataEqual('c', result.bitmap_data)); 2210 EXPECT_TRUE(BitmapDataEqual('c', result.bitmap_data));
2211 } 2211 }
2212 2212
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2347 icon_urls.push_back(icon_urla); 2347 icon_urls.push_back(icon_urla);
2348 icon_urls.push_back(icon_urlb); 2348 icon_urls.push_back(icon_urlb);
2349 icon_urls.push_back(icon_urlc); 2349 icon_urls.push_back(icon_urlc);
2350 2350
2351 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 2351 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
2352 backend_->UpdateFaviconMappingsAndFetch( 2352 backend_->UpdateFaviconMappingsAndFetch(
2353 page_url3, 2353 page_url3,
2354 icon_urls, 2354 icon_urls,
2355 (favicon_base::TOUCH_ICON | favicon_base::TOUCH_PRECOMPOSED_ICON), 2355 (favicon_base::TOUCH_ICON | favicon_base::TOUCH_PRECOMPOSED_ICON),
2356 kSmallSize.width(), 2356 kSmallSize.width(),
2357 GetScaleFactors1x2x(), 2357 GetFaviconScales1x2x(),
2358 &bitmap_results); 2358 &bitmap_results);
2359 2359
2360 // |page_url1| and |page_url2| should still be mapped to the same icon URLs. 2360 // |page_url1| and |page_url2| should still be mapped to the same icon URLs.
2361 std::vector<IconMapping> icon_mappings; 2361 std::vector<IconMapping> icon_mappings;
2362 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url1, 2362 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(page_url1,
2363 &icon_mappings)); 2363 &icon_mappings));
2364 EXPECT_EQ(1u, icon_mappings.size()); 2364 EXPECT_EQ(1u, icon_mappings.size());
2365 EXPECT_EQ(icon_urla, icon_mappings[0].icon_url); 2365 EXPECT_EQ(icon_urla, icon_mappings[0].icon_url);
2366 EXPECT_EQ(favicon_base::TOUCH_ICON, icon_mappings[0].icon_type); 2366 EXPECT_EQ(favicon_base::TOUCH_ICON, icon_mappings[0].icon_type);
2367 2367
(...skipping 18 matching lines...) Expand all
2386 2386
2387 // Test the results of GetFaviconsFromDB() when there are no found 2387 // Test the results of GetFaviconsFromDB() when there are no found
2388 // favicons. 2388 // favicons.
2389 TEST_F(HistoryBackendTest, GetFaviconsFromDBEmpty) { 2389 TEST_F(HistoryBackendTest, GetFaviconsFromDBEmpty) {
2390 const GURL page_url("http://www.google.com/"); 2390 const GURL page_url("http://www.google.com/");
2391 2391
2392 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 2392 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
2393 EXPECT_FALSE(backend_->GetFaviconsFromDB(page_url, 2393 EXPECT_FALSE(backend_->GetFaviconsFromDB(page_url,
2394 favicon_base::FAVICON, 2394 favicon_base::FAVICON,
2395 kSmallSize.width(), 2395 kSmallSize.width(),
2396 GetScaleFactors1x2x(), 2396 GetFaviconScales1x2x(),
2397 &bitmap_results)); 2397 &bitmap_results));
2398 EXPECT_TRUE(bitmap_results.empty()); 2398 EXPECT_TRUE(bitmap_results.empty());
2399 } 2399 }
2400 2400
2401 // Test the results of GetFaviconsFromDB() when there are matching favicons 2401 // Test the results of GetFaviconsFromDB() when there are matching favicons
2402 // but there are no associated favicon bitmaps. 2402 // but there are no associated favicon bitmaps.
2403 TEST_F(HistoryBackendTest, GetFaviconsFromDBNoFaviconBitmaps) { 2403 TEST_F(HistoryBackendTest, GetFaviconsFromDBNoFaviconBitmaps) {
2404 const GURL page_url("http://www.google.com/"); 2404 const GURL page_url("http://www.google.com/");
2405 const GURL icon_url("http://www.google.com/icon1"); 2405 const GURL icon_url("http://www.google.com/icon1");
2406 2406
2407 favicon_base::FaviconID icon_id = 2407 favicon_base::FaviconID icon_id =
2408 backend_->thumbnail_db_->AddFavicon(icon_url, favicon_base::FAVICON); 2408 backend_->thumbnail_db_->AddFavicon(icon_url, favicon_base::FAVICON);
2409 EXPECT_NE(0, icon_id); 2409 EXPECT_NE(0, icon_id);
2410 EXPECT_NE(0, backend_->thumbnail_db_->AddIconMapping(page_url, icon_id)); 2410 EXPECT_NE(0, backend_->thumbnail_db_->AddIconMapping(page_url, icon_id));
2411 2411
2412 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2412 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2413 EXPECT_FALSE(backend_->GetFaviconsFromDB(page_url, 2413 EXPECT_FALSE(backend_->GetFaviconsFromDB(page_url,
2414 favicon_base::FAVICON, 2414 favicon_base::FAVICON,
2415 kSmallSize.width(), 2415 kSmallSize.width(),
2416 GetScaleFactors1x2x(), 2416 GetFaviconScales1x2x(),
2417 &bitmap_results_out)); 2417 &bitmap_results_out));
2418 EXPECT_TRUE(bitmap_results_out.empty()); 2418 EXPECT_TRUE(bitmap_results_out.empty());
2419 } 2419 }
2420 2420
2421 // Test that GetFaviconsFromDB() returns results for the bitmaps which most 2421 // Test that GetFaviconsFromDB() returns results for the bitmaps which most
2422 // closely match the passed in desired size and scale factors. 2422 // closely match the passed in desired size and scale factors.
2423 TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) { 2423 TEST_F(HistoryBackendTest, GetFaviconsFromDBSelectClosestMatch) {
2424 const GURL page_url("http://www.google.com/"); 2424 const GURL page_url("http://www.google.com/");
2425 const GURL icon_url("http://www.google.com/icon1"); 2425 const GURL icon_url("http://www.google.com/icon1");
2426 2426
2427 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; 2427 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
2428 GenerateFaviconBitmapData(icon_url, GetSizesTinySmallAndLarge(), 2428 GenerateFaviconBitmapData(icon_url, GetSizesTinySmallAndLarge(),
2429 &favicon_bitmap_data); 2429 &favicon_bitmap_data);
2430 2430
2431 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); 2431 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
2432 2432
2433 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2433 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2434 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, 2434 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
2435 favicon_base::FAVICON, 2435 favicon_base::FAVICON,
2436 kSmallSize.width(), 2436 kSmallSize.width(),
2437 GetScaleFactors1x2x(), 2437 GetFaviconScales1x2x(),
2438 &bitmap_results_out)); 2438 &bitmap_results_out));
2439 2439
2440 // The bitmap data for the small and large bitmaps should be returned as their 2440 // The bitmap data for the small and large bitmaps should be returned as their
2441 // sizes match exactly. 2441 // sizes match exactly.
2442 EXPECT_EQ(2u, bitmap_results_out.size()); 2442 EXPECT_EQ(2u, bitmap_results_out.size());
2443 // No required order for results. 2443 // No required order for results.
2444 if (bitmap_results_out[0].pixel_size == kLargeSize) { 2444 if (bitmap_results_out[0].pixel_size == kLargeSize) {
2445 favicon_base::FaviconRawBitmapResult tmp_result = bitmap_results_out[0]; 2445 favicon_base::FaviconRawBitmapResult tmp_result = bitmap_results_out[0];
2446 bitmap_results_out[0] = bitmap_results_out[1]; 2446 bitmap_results_out[0] = bitmap_results_out[1];
2447 bitmap_results_out[1] = tmp_result; 2447 bitmap_results_out[1] = tmp_result;
(...skipping 23 matching lines...) Expand all
2471 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; 2471 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
2472 GenerateFaviconBitmapData(icon_url1, GetSizesSmall(), icon_url2, 2472 GenerateFaviconBitmapData(icon_url1, GetSizesSmall(), icon_url2,
2473 GetSizesLarge(), &favicon_bitmap_data); 2473 GetSizesLarge(), &favicon_bitmap_data);
2474 2474
2475 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); 2475 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
2476 2476
2477 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2477 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2478 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, 2478 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
2479 favicon_base::FAVICON, 2479 favicon_base::FAVICON,
2480 kSmallSize.width(), 2480 kSmallSize.width(),
2481 GetScaleFactors1x2x(), 2481 GetFaviconScales1x2x(),
2482 &bitmap_results_out)); 2482 &bitmap_results_out));
2483 2483
2484 // The results should have results for the icon URL with the large bitmap as 2484 // The results should have results for the icon URL with the large bitmap as
2485 // downscaling is preferred to upscaling. 2485 // downscaling is preferred to upscaling.
2486 EXPECT_EQ(1u, bitmap_results_out.size()); 2486 EXPECT_EQ(1u, bitmap_results_out.size());
2487 EXPECT_EQ(kLargeSize, bitmap_results_out[0].pixel_size); 2487 EXPECT_EQ(kLargeSize, bitmap_results_out[0].pixel_size);
2488 EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url); 2488 EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url);
2489 } 2489 }
2490 2490
2491 // Test the results of GetFaviconsFromDB() when called with different 2491 // Test the results of GetFaviconsFromDB() when called with different
2492 // |icon_types|. 2492 // |icon_types|.
2493 TEST_F(HistoryBackendTest, GetFaviconsFromDBIconType) { 2493 TEST_F(HistoryBackendTest, GetFaviconsFromDBIconType) {
2494 const GURL page_url("http://www.google.com/"); 2494 const GURL page_url("http://www.google.com/");
2495 const GURL icon_url1("http://www.google.com/icon1.png"); 2495 const GURL icon_url1("http://www.google.com/icon1.png");
2496 const GURL icon_url2("http://www.google.com/icon2.png"); 2496 const GURL icon_url2("http://www.google.com/icon2.png");
2497 2497
2498 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; 2498 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
2499 GenerateFaviconBitmapData(icon_url1, GetSizesSmall(), &favicon_bitmap_data); 2499 GenerateFaviconBitmapData(icon_url1, GetSizesSmall(), &favicon_bitmap_data);
2500 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data); 2500 backend_->SetFavicons(page_url, favicon_base::FAVICON, favicon_bitmap_data);
2501 2501
2502 GenerateFaviconBitmapData(icon_url2, GetSizesSmall(), &favicon_bitmap_data); 2502 GenerateFaviconBitmapData(icon_url2, GetSizesSmall(), &favicon_bitmap_data);
2503 backend_->SetFavicons( 2503 backend_->SetFavicons(
2504 page_url, favicon_base::TOUCH_ICON, favicon_bitmap_data); 2504 page_url, favicon_base::TOUCH_ICON, favicon_bitmap_data);
2505 2505
2506 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2506 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2507 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, 2507 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
2508 favicon_base::FAVICON, 2508 favicon_base::FAVICON,
2509 kSmallSize.width(), 2509 kSmallSize.width(),
2510 GetScaleFactors1x2x(), 2510 GetFaviconScales1x2x(),
2511 &bitmap_results_out)); 2511 &bitmap_results_out));
2512 2512
2513 EXPECT_EQ(1u, bitmap_results_out.size()); 2513 EXPECT_EQ(1u, bitmap_results_out.size());
2514 EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[0].icon_type); 2514 EXPECT_EQ(favicon_base::FAVICON, bitmap_results_out[0].icon_type);
2515 EXPECT_EQ(icon_url1, bitmap_results_out[0].icon_url); 2515 EXPECT_EQ(icon_url1, bitmap_results_out[0].icon_url);
2516 2516
2517 bitmap_results_out.clear(); 2517 bitmap_results_out.clear();
2518 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, 2518 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
2519 favicon_base::TOUCH_ICON, 2519 favicon_base::TOUCH_ICON,
2520 kSmallSize.width(), 2520 kSmallSize.width(),
2521 GetScaleFactors1x2x(), 2521 GetFaviconScales1x2x(),
2522 &bitmap_results_out)); 2522 &bitmap_results_out));
2523 2523
2524 EXPECT_EQ(1u, bitmap_results_out.size()); 2524 EXPECT_EQ(1u, bitmap_results_out.size());
2525 EXPECT_EQ(favicon_base::TOUCH_ICON, bitmap_results_out[0].icon_type); 2525 EXPECT_EQ(favicon_base::TOUCH_ICON, bitmap_results_out[0].icon_type);
2526 EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url); 2526 EXPECT_EQ(icon_url2, bitmap_results_out[0].icon_url);
2527 } 2527 }
2528 2528
2529 // Test that GetFaviconsFromDB() correctly sets the expired flag for bitmap 2529 // Test that GetFaviconsFromDB() correctly sets the expired flag for bitmap
2530 // reults. 2530 // reults.
2531 TEST_F(HistoryBackendTest, GetFaviconsFromDBExpired) { 2531 TEST_F(HistoryBackendTest, GetFaviconsFromDBExpired) {
2532 const GURL page_url("http://www.google.com/"); 2532 const GURL page_url("http://www.google.com/");
2533 const GURL icon_url("http://www.google.com/icon.png"); 2533 const GURL icon_url("http://www.google.com/icon.png");
2534 2534
2535 std::vector<unsigned char> data; 2535 std::vector<unsigned char> data;
2536 data.push_back('a'); 2536 data.push_back('a');
2537 scoped_refptr<base::RefCountedBytes> bitmap_data( 2537 scoped_refptr<base::RefCountedBytes> bitmap_data(
2538 base::RefCountedBytes::TakeVector(&data)); 2538 base::RefCountedBytes::TakeVector(&data));
2539 base::Time last_updated = base::Time::FromTimeT(0); 2539 base::Time last_updated = base::Time::FromTimeT(0);
2540 favicon_base::FaviconID icon_id = backend_->thumbnail_db_->AddFavicon( 2540 favicon_base::FaviconID icon_id = backend_->thumbnail_db_->AddFavicon(
2541 icon_url, favicon_base::FAVICON, bitmap_data, last_updated, kSmallSize); 2541 icon_url, favicon_base::FAVICON, bitmap_data, last_updated, kSmallSize);
2542 EXPECT_NE(0, icon_id); 2542 EXPECT_NE(0, icon_id);
2543 EXPECT_NE(0, backend_->thumbnail_db_->AddIconMapping(page_url, icon_id)); 2543 EXPECT_NE(0, backend_->thumbnail_db_->AddIconMapping(page_url, icon_id));
2544 2544
2545 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2545 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2546 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url, 2546 EXPECT_TRUE(backend_->GetFaviconsFromDB(page_url,
2547 favicon_base::FAVICON, 2547 favicon_base::FAVICON,
2548 kSmallSize.width(), 2548 kSmallSize.width(),
2549 GetScaleFactors1x2x(), 2549 GetFaviconScales1x2x(),
2550 &bitmap_results_out)); 2550 &bitmap_results_out));
2551 2551
2552 EXPECT_EQ(1u, bitmap_results_out.size()); 2552 EXPECT_EQ(1u, bitmap_results_out.size());
2553 EXPECT_TRUE(bitmap_results_out[0].expired); 2553 EXPECT_TRUE(bitmap_results_out[0].expired);
2554 } 2554 }
2555 2555
2556 // Check that UpdateFaviconMappingsAndFetch() call back to the UI when there is 2556 // Check that UpdateFaviconMappingsAndFetch() call back to the UI when there is
2557 // no valid thumbnail database. 2557 // no valid thumbnail database.
2558 TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchNoDB) { 2558 TEST_F(HistoryBackendTest, UpdateFaviconMappingsAndFetchNoDB) {
2559 // Make the thumbnail database invalid. 2559 // Make the thumbnail database invalid.
2560 backend_->thumbnail_db_.reset(); 2560 backend_->thumbnail_db_.reset();
2561 2561
2562 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results; 2562 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results;
2563 2563
2564 backend_->UpdateFaviconMappingsAndFetch(GURL(), 2564 backend_->UpdateFaviconMappingsAndFetch(GURL(),
2565 std::vector<GURL>(), 2565 std::vector<GURL>(),
2566 favicon_base::FAVICON, 2566 favicon_base::FAVICON,
2567 kSmallSize.width(), 2567 kSmallSize.width(),
2568 GetScaleFactors1x2x(), 2568 GetFaviconScales1x2x(),
2569 &bitmap_results); 2569 &bitmap_results);
2570 2570
2571 EXPECT_TRUE(bitmap_results.empty()); 2571 EXPECT_TRUE(bitmap_results.empty());
2572 } 2572 }
2573 2573
2574 TEST_F(HistoryBackendTest, CloneFaviconIsRestrictedToSameDomain) { 2574 TEST_F(HistoryBackendTest, CloneFaviconIsRestrictedToSameDomain) {
2575 const GURL url("http://www.google.com/"); 2575 const GURL url("http://www.google.com/");
2576 const GURL same_domain_url("http://www.google.com/subdir/index.html"); 2576 const GURL same_domain_url("http://www.google.com/subdir/index.html");
2577 const GURL foreign_domain_url("http://www.not-google.com/"); 2577 const GURL foreign_domain_url("http://www.not-google.com/");
2578 const GURL icon_url("http://www.google.com/icon.png"); 2578 const GURL icon_url("http://www.google.com/icon.png");
2579 2579
2580 // Add a favicon 2580 // Add a favicon
2581 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data; 2581 std::vector<favicon_base::FaviconRawBitmapData> favicon_bitmap_data;
2582 GenerateFaviconBitmapData(icon_url, GetSizesSmall(), &favicon_bitmap_data); 2582 GenerateFaviconBitmapData(icon_url, GetSizesSmall(), &favicon_bitmap_data);
2583 backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data); 2583 backend_->SetFavicons(url, favicon_base::FAVICON, favicon_bitmap_data);
2584 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL( 2584 EXPECT_TRUE(backend_->thumbnail_db_->GetIconMappingsForPageURL(
2585 url, favicon_base::FAVICON, NULL)); 2585 url, favicon_base::FAVICON, NULL));
2586 2586
2587 // Validate starting state. 2587 // Validate starting state.
2588 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out; 2588 std::vector<favicon_base::FaviconRawBitmapResult> bitmap_results_out;
2589 EXPECT_TRUE(backend_->GetFaviconsFromDB(url, 2589 EXPECT_TRUE(backend_->GetFaviconsFromDB(url,
2590 favicon_base::FAVICON, 2590 favicon_base::FAVICON,
2591 kSmallSize.width(), 2591 kSmallSize.width(),
2592 GetScaleFactors1x2x(), 2592 GetFaviconScales1x2x(),
2593 &bitmap_results_out)); 2593 &bitmap_results_out));
2594 EXPECT_FALSE(backend_->GetFaviconsFromDB(same_domain_url, 2594 EXPECT_FALSE(backend_->GetFaviconsFromDB(same_domain_url,
2595 favicon_base::FAVICON, 2595 favicon_base::FAVICON,
2596 kSmallSize.width(), 2596 kSmallSize.width(),
2597 GetScaleFactors1x2x(), 2597 GetFaviconScales1x2x(),
2598 &bitmap_results_out)); 2598 &bitmap_results_out));
2599 EXPECT_FALSE(backend_->GetFaviconsFromDB(foreign_domain_url, 2599 EXPECT_FALSE(backend_->GetFaviconsFromDB(foreign_domain_url,
2600 favicon_base::FAVICON, 2600 favicon_base::FAVICON,
2601 kSmallSize.width(), 2601 kSmallSize.width(),
2602 GetScaleFactors1x2x(), 2602 GetFaviconScales1x2x(),
2603 &bitmap_results_out)); 2603 &bitmap_results_out));
2604 2604
2605 // Same-domain cloning should work. 2605 // Same-domain cloning should work.
2606 backend_->CloneFavicons(url, same_domain_url); 2606 backend_->CloneFavicons(url, same_domain_url);
2607 EXPECT_TRUE(backend_->GetFaviconsFromDB(same_domain_url, 2607 EXPECT_TRUE(backend_->GetFaviconsFromDB(same_domain_url,
2608 favicon_base::FAVICON, 2608 favicon_base::FAVICON,
2609 kSmallSize.width(), 2609 kSmallSize.width(),
2610 GetScaleFactors1x2x(), 2610 GetFaviconScales1x2x(),
2611 &bitmap_results_out)); 2611 &bitmap_results_out));
2612 2612
2613 // Foreign-domain cloning is forbidden. 2613 // Foreign-domain cloning is forbidden.
2614 backend_->CloneFavicons(url, foreign_domain_url); 2614 backend_->CloneFavicons(url, foreign_domain_url);
2615 EXPECT_FALSE(backend_->GetFaviconsFromDB(foreign_domain_url, 2615 EXPECT_FALSE(backend_->GetFaviconsFromDB(foreign_domain_url,
2616 favicon_base::FAVICON, 2616 favicon_base::FAVICON,
2617 kSmallSize.width(), 2617 kSmallSize.width(),
2618 GetScaleFactors1x2x(), 2618 GetFaviconScales1x2x(),
2619 &bitmap_results_out)); 2619 &bitmap_results_out));
2620 } 2620 }
2621 2621
2622 TEST_F(HistoryBackendTest, QueryFilteredURLs) { 2622 TEST_F(HistoryBackendTest, QueryFilteredURLs) {
2623 const char* google = "http://www.google.com/"; 2623 const char* google = "http://www.google.com/";
2624 const char* yahoo = "http://www.yahoo.com/"; 2624 const char* yahoo = "http://www.yahoo.com/";
2625 const char* yahoo_sports = "http://sports.yahoo.com/"; 2625 const char* yahoo_sports = "http://sports.yahoo.com/";
2626 const char* yahoo_sports_with_article1 = 2626 const char* yahoo_sports_with_article1 =
2627 "http://sports.yahoo.com/article1.htm"; 2627 "http://sports.yahoo.com/article1.htm";
2628 const char* yahoo_sports_with_article2 = 2628 const char* yahoo_sports_with_article2 =
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after
3357 // Verify that the second term is no longer returned as result, and also check 3357 // Verify that the second term is no longer returned as result, and also check
3358 // at the low level that it is gone for good. The term corresponding to the 3358 // at the low level that it is gone for good. The term corresponding to the
3359 // first URLRow should not be affected. 3359 // first URLRow should not be affected.
3360 EXPECT_EQ(1u, GetNumberOfMatchingSearchTerms(kTestKeywordId, term1)); 3360 EXPECT_EQ(1u, GetNumberOfMatchingSearchTerms(kTestKeywordId, term1));
3361 EXPECT_EQ(0u, GetNumberOfMatchingSearchTerms(kTestKeywordId, term2)); 3361 EXPECT_EQ(0u, GetNumberOfMatchingSearchTerms(kTestKeywordId, term2));
3362 EXPECT_TRUE(mem_backend_->db()->GetKeywordSearchTermRow(row1.id(), NULL)); 3362 EXPECT_TRUE(mem_backend_->db()->GetKeywordSearchTermRow(row1.id(), NULL));
3363 EXPECT_FALSE(mem_backend_->db()->GetKeywordSearchTermRow(row2.id(), NULL)); 3363 EXPECT_FALSE(mem_backend_->db()->GetKeywordSearchTermRow(row2.id(), NULL));
3364 } 3364 }
3365 3365
3366 } // namespace history 3366 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698