| Index: chrome/common/favicon/favicon_url_parser_unittest.cc
|
| diff --git a/chrome/common/favicon/favicon_url_parser_unittest.cc b/chrome/common/favicon/favicon_url_parser_unittest.cc
|
| index 6077b7ea32d68bfd72cb7a8b93f6d080abf93155..d53f631953badb4d89877995b0193594f88cbd4d 100644
|
| --- a/chrome/common/favicon/favicon_url_parser_unittest.cc
|
| +++ b/chrome/common/favicon/favicon_url_parser_unittest.cc
|
| @@ -5,10 +5,13 @@
|
| #include "chrome/common/favicon/favicon_url_parser.h"
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "components/favicon_base/fallback_icon_specs.h"
|
| #include "components/favicon_base/favicon_types.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/base/layout.h"
|
|
|
| +using favicon_base::FallbackIconSpecs;
|
| +
|
| class FaviconUrlParserTest : public testing::Test {
|
| public:
|
| FaviconUrlParserTest() {
|
| @@ -43,6 +46,7 @@ TEST_F(FaviconUrlParserTest, ParsingNoExtraParams) {
|
| EXPECT_EQ(url, parsed.url);
|
| EXPECT_EQ(16, parsed.size_in_dip);
|
| EXPECT_EQ(1.0f, parsed.device_scale_factor);
|
| + EXPECT_FALSE(parsed.fallback_specs);
|
| }
|
|
|
| // Test parsing path with a 'size' parameter.
|
| @@ -163,3 +167,46 @@ TEST_F(FaviconUrlParserTest, ParsingSizeParamAndUrlModifier) {
|
| EXPECT_EQ("http://www.google.com/favicon.ico", parsed.url);
|
| EXPECT_EQ(0, parsed.size_in_dip);
|
| }
|
| +
|
| +// Test parsing path with a 'fallback' parameter.
|
| +TEST_F(FaviconUrlParserTest, ParsingFallbackParam) {
|
| + const std::string url("https://www.google.ca/imghp?hl=en&tab=wi");
|
| + int icon_types = favicon_base::TOUCH_PRECOMPOSED_ICON;
|
| + chrome::ParsedFaviconPath parsed;
|
| +
|
| + // Empty is valid.
|
| + const std::string path15 = "fallback//" + url;
|
| + EXPECT_TRUE(chrome::ParseFaviconPath(path15, icon_types, &parsed));
|
| + EXPECT_TRUE(parsed.fallback_specs);
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(FallbackIconSpecs::BACKGROUND_COLOR));
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(FallbackIconSpecs::TEXT_COLOR));
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(FallbackIconSpecs::FONT_SIZE_RATIO));
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(
|
| + FallbackIconSpecs::CORNER_RADIUS_RATIO));
|
| +
|
| + // Everything populated.
|
| + const std::string path16 = "fallback/abc,123456,0.5,0.1/" + url;
|
| + EXPECT_TRUE(chrome::ParseFaviconPath(path16, icon_types, &parsed));
|
| + EXPECT_TRUE(parsed.fallback_specs);
|
| + EXPECT_EQ(SkColorSetRGB(0xAA, 0xBB, 0xCC),
|
| + parsed.fallback_specs->BackgroundColor());
|
| + EXPECT_EQ(SkColorSetRGB(0x12, 0x34, 0x56),
|
| + parsed.fallback_specs->TextColor());
|
| + EXPECT_EQ(0.5, parsed.fallback_specs->FontSizeRatio());
|
| + EXPECT_EQ(0.1, parsed.fallback_specs->CornerRadiusRatio());
|
| +
|
| + // Partially populated.
|
| + const std::string path17 = "fallback/123abc,,0.6/" + url;
|
| + EXPECT_TRUE(chrome::ParseFaviconPath(path17, icon_types, &parsed));
|
| + EXPECT_TRUE(parsed.fallback_specs);
|
| + EXPECT_EQ(SkColorSetRGB(0x12, 0x3A, 0xBC),
|
| + parsed.fallback_specs->BackgroundColor());
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(FallbackIconSpecs::TEXT_COLOR));
|
| + EXPECT_EQ(0.6, parsed.fallback_specs->FontSizeRatio());
|
| + EXPECT_FALSE(parsed.fallback_specs->Has(
|
| + FallbackIconSpecs::CORNER_RADIUS_RATIO));
|
| +
|
| + // Error: FontSizeRatio too large.
|
| + const std::string path18 = "fallback/fff,000,100/" + url;
|
| + EXPECT_FALSE(chrome::ParseFaviconPath(path18, icon_types, &parsed));
|
| +}
|
|
|