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

Unified Diff: chrome/common/favicon/favicon_url_parser_unittest.cc

Issue 835903005: [Favicon] Add new fallback icon rendering flow. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactor by extracting FallbackIconSpecsBuilder. Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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));
+}

Powered by Google App Engine
This is Rietveld 408576698