| Index: chrome/browser/manifest/manifest_icon_selector_unittest.cc
|
| diff --git a/chrome/browser/manifest/manifest_icon_selector_unittest.cc b/chrome/browser/manifest/manifest_icon_selector_unittest.cc
|
| deleted file mode 100644
|
| index f819b766afd77d49a8901db2c6e1fe1317170e8b..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/manifest/manifest_icon_selector_unittest.cc
|
| +++ /dev/null
|
| @@ -1,495 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/manifest/manifest_icon_selector.h"
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using IconPurpose = content::Manifest::Icon::IconPurpose;
|
| -
|
| -namespace {
|
| -
|
| -const int kIdealIconSize = 144;
|
| -const int kMinimumIconSize = 0;
|
| -
|
| -static content::Manifest::Icon CreateIcon(const std::string& url,
|
| - const std::string& type,
|
| - const std::vector<gfx::Size> sizes,
|
| - IconPurpose purpose) {
|
| - content::Manifest::Icon icon;
|
| - icon.src = GURL(url);
|
| - icon.type = base::UTF8ToUTF16(type);
|
| - icon.sizes = sizes;
|
| - icon.purpose.push_back(purpose);
|
| -
|
| - return icon;
|
| -}
|
| -
|
| -} // anonymous namespace
|
| -
|
| -TEST(ManifestIconSelector, NoIcons) {
|
| - // No icons should return the empty URL.
|
| - std::vector<content::Manifest::Icon> icons;
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_TRUE(url.is_empty());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, NoSizes) {
|
| - // Icon with no sizes are ignored.
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "",
|
| - std::vector<gfx::Size>(), IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_TRUE(url.is_empty());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, MIMETypeFiltering) {
|
| - // Icons with type specified to a MIME type that isn't a valid image MIME type
|
| - // are ignored.
|
| - std::vector<gfx::Size> sizes;
|
| - sizes.push_back(gfx::Size(1024, 1024));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "image/foo_bar", sizes,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "image/", sizes, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "image/", sizes, IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "video/mp4", sizes,
|
| - IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_TRUE(url.is_empty());
|
| -
|
| - icons.clear();
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "image/png", sizes,
|
| - IconPurpose::ANY));
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| -
|
| - icons.clear();
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "image/gif", sizes,
|
| - IconPurpose::ANY));
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| -
|
| - icons.clear();
|
| - icons.push_back(CreateIcon("http://foo.com/icon.png", "image/jpeg", sizes,
|
| - IconPurpose::ANY));
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, PurposeFiltering) {
|
| - // Icons with purpose specified to non-matching purpose are ignored.
|
| - std::vector<gfx::Size> sizes_48;
|
| - sizes_48.push_back(gfx::Size(48, 48));
|
| -
|
| - std::vector<gfx::Size> sizes_96;
|
| - sizes_96.push_back(gfx::Size(96, 96));
|
| -
|
| - std::vector<gfx::Size> sizes_144;
|
| - sizes_144.push_back(gfx::Size(144, 144));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_48.png", "", sizes_48, IconPurpose::BADGE));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_96.png", "", sizes_96, IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_144.png", "", sizes_144,
|
| - IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, 48, kMinimumIconSize, IconPurpose::BADGE);
|
| - EXPECT_EQ("http://foo.com/icon_48.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, 48, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_96.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 96, kMinimumIconSize,
|
| - IconPurpose::BADGE);
|
| - EXPECT_EQ("http://foo.com/icon_48.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 96, 96,
|
| - IconPurpose::BADGE);
|
| - EXPECT_TRUE(url.is_empty());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 144, kMinimumIconSize,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_144.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, IdealSizeIsUsedFirst) {
|
| - // Each icon is marked with sizes that match the ideal icon size.
|
| - std::vector<gfx::Size> sizes_48;
|
| - sizes_48.push_back(gfx::Size(48, 48));
|
| -
|
| - std::vector<gfx::Size> sizes_96;
|
| - sizes_96.push_back(gfx::Size(96, 96));
|
| -
|
| - std::vector<gfx::Size> sizes_144;
|
| - sizes_144.push_back(gfx::Size(144, 144));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_48.png", "", sizes_48, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_96.png", "", sizes_96, IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_144.png", "", sizes_144,
|
| - IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, 48, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_48.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 96, kMinimumIconSize,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_96.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 144, kMinimumIconSize,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_144.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, FirstIconWithIdealSizeIsUsedFirst) {
|
| - // This test has three icons. The first icon is going to be used because it
|
| - // contains the ideal size.
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(kIdealIconSize, kIdealIconSize));
|
| - sizes_1.push_back(gfx::Size(kIdealIconSize * 2, kIdealIconSize * 2));
|
| - sizes_1.push_back(gfx::Size(kIdealIconSize * 3, kIdealIconSize * 3));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(1024, 1024));
|
| -
|
| - std::vector<gfx::Size> sizes_3;
|
| - sizes_3.push_back(gfx::Size(1024, 1024));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x1.png", "", sizes_1, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x2.png", "", sizes_2, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x3.png", "", sizes_3, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize * 2, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize * 3, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, FallbackToSmallestLargerIcon) {
|
| - // If there is no perfect icon, the smallest larger icon will be chosen.
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(90, 90));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(128, 128));
|
| -
|
| - std::vector<gfx::Size> sizes_3;
|
| - sizes_3.push_back(gfx::Size(192, 192));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x1.png", "", sizes_1, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x2.png", "", sizes_2, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x3.png", "", sizes_3, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, 48, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 96, kMinimumIconSize,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x2.png", url.spec());
|
| -
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 144, kMinimumIconSize,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x3.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, FallbackToLargestIconLargerThanMinimum) {
|
| - // When an icon of the correct size has not been found, we fall back to the
|
| - // closest non-matching sizes. Make sure that the minimum passed is enforced.
|
| - std::vector<gfx::Size> sizes_1_2;
|
| - std::vector<gfx::Size> sizes_3;
|
| -
|
| - sizes_1_2.push_back(gfx::Size(47, 47));
|
| - sizes_3.push_back(gfx::Size(95, 95));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_x1.png", "", sizes_1_2,
|
| - IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_x2.png", "", sizes_1_2,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x3.png", "", sizes_3, IconPurpose::ANY));
|
| -
|
| - // Icon 3 should match.
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(icons, 1024, 48,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x3.png", url.spec());
|
| -
|
| - // Nothing matches here as the minimum is 96.
|
| - url = ManifestIconSelector::FindBestMatchingIcon(icons, 1024, 96,
|
| - IconPurpose::ANY);
|
| - EXPECT_TRUE(url.is_empty());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, IdealVeryCloseToMinimumMatches) {
|
| - std::vector<gfx::Size> sizes;
|
| - sizes.push_back(gfx::Size(2, 2));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x1.png", "", sizes, IconPurpose::ANY));
|
| -
|
| - GURL url =
|
| - ManifestIconSelector::FindBestMatchingIcon(icons, 2, 1, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, SizeVeryCloseToMinimumMatches) {
|
| - std::vector<gfx::Size> sizes;
|
| - sizes.push_back(gfx::Size(2, 2));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_x1.png", "", sizes, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(icons, 200, 1,
|
| - IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon_x1.png", url.spec());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, NotSquareIconsAreIgnored) {
|
| - std::vector<gfx::Size> sizes;
|
| - sizes.push_back(gfx::Size(1024, 1023));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_TRUE(url.is_empty());
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, ClosestIconToIdeal) {
|
| - // Ensure ManifestIconSelector::FindBestMatchingIcon selects the closest icon
|
| - // to the ideal size when presented with a number of options.
|
| - int very_small = kIdealIconSize / 4;
|
| - int small_size = kIdealIconSize / 2;
|
| - int bit_small = kIdealIconSize - 1;
|
| - int bit_big = kIdealIconSize + 1;
|
| - int big = kIdealIconSize * 2;
|
| - int very_big = kIdealIconSize * 4;
|
| -
|
| - // (very_small, bit_small) => bit_small
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(very_small, very_small));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(bit_small, bit_small));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // (very_small, bit_small, small_size) => bit_small
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(very_small, very_small));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(bit_small, bit_small));
|
| -
|
| - std::vector<gfx::Size> sizes_3;
|
| - sizes_3.push_back(gfx::Size(small_size, small_size));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no_1.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no_2.png", "", sizes_3,
|
| - IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // (very_big, big) => big
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(very_big, very_big));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(big, big));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // (very_big, big, bit_big) => bit_big
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(very_big, very_big));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(big, big));
|
| -
|
| - std::vector<gfx::Size> sizes_3;
|
| - sizes_3.push_back(gfx::Size(bit_big, bit_big));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_2,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_3, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // (bit_small, very_big) => very_big
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(bit_small, bit_small));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(very_big, very_big));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // (bit_small, bit_big) => bit_big
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(bit_small, bit_small));
|
| -
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(bit_big, bit_big));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -}
|
| -
|
| -TEST(ManifestIconSelector, UseAnyIfNoIdealSize) {
|
| - // 'any' (ie. gfx::Size(0,0)) should be used if there is no icon of a
|
| - // ideal size.
|
| -
|
| - // Icon with 'any' and icon with ideal size => ideal size is chosen.
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(kIdealIconSize, kIdealIconSize));
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(0, 0));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_1, IconPurpose::ANY));
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_2,
|
| - IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // Icon with 'any' and icon larger than ideal size => any is chosen.
|
| - {
|
| - std::vector<gfx::Size> sizes_1;
|
| - sizes_1.push_back(gfx::Size(kIdealIconSize + 1, kIdealIconSize + 1));
|
| - std::vector<gfx::Size> sizes_2;
|
| - sizes_2.push_back(gfx::Size(0, 0));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(CreateIcon("http://foo.com/icon_no.png", "", sizes_1,
|
| - IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes_2, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -
|
| - // Multiple icons with 'any' => the last one is chosen.
|
| - {
|
| - std::vector<gfx::Size> sizes;
|
| - sizes.push_back(gfx::Size(0, 0));
|
| -
|
| - std::vector<content::Manifest::Icon> icons;
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_no1.png", "", sizes, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon_no2.png", "", sizes, IconPurpose::ANY));
|
| - icons.push_back(
|
| - CreateIcon("http://foo.com/icon.png", "", sizes, IconPurpose::ANY));
|
| -
|
| - GURL url = ManifestIconSelector::FindBestMatchingIcon(
|
| - icons, kIdealIconSize * 3, kMinimumIconSize, IconPurpose::ANY);
|
| - EXPECT_EQ("http://foo.com/icon.png", url.spec());
|
| - }
|
| -}
|
|
|