OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/favicon_base/fallback_icon_url_parser.h" | 5 #include "components/favicon_base/fallback_icon_url_parser.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "components/favicon_base/fallback_icon_style.h" | 10 #include "components/favicon_base/fallback_icon_style.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 << "test_cases[" << i << "]"; | 86 << "test_cases[" << i << "]"; |
87 } | 87 } |
88 } | 88 } |
89 | 89 |
90 TEST_F(FallbackIconUrlParserTest, ParseSpecsEmpty) { | 90 TEST_F(FallbackIconUrlParserTest, ParseSpecsEmpty) { |
91 int size; | 91 int size; |
92 FallbackIconStyle style; | 92 FallbackIconStyle style; |
93 EXPECT_TRUE(ParseSpecs(",,,,", &size, &style)); | 93 EXPECT_TRUE(ParseSpecs(",,,,", &size, &style)); |
94 EXPECT_EQ(16, size); | 94 EXPECT_EQ(16, size); |
95 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); | 95 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); |
| 96 EXPECT_TRUE(style.is_default_background_color); |
96 EXPECT_EQ(kDefaultTextColorLight, style.text_color); | 97 EXPECT_EQ(kDefaultTextColorLight, style.text_color); |
97 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); | 98 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); |
98 EXPECT_EQ(kDefaultRoundness, style.roundness); | 99 EXPECT_EQ(kDefaultRoundness, style.roundness); |
99 } | 100 } |
100 | 101 |
101 TEST_F(FallbackIconUrlParserTest, ParseSpecsPartial) { | 102 TEST_F(FallbackIconUrlParserTest, ParseSpecsPartial) { |
102 int size; | 103 int size; |
103 FallbackIconStyle style; | 104 FallbackIconStyle style; |
104 EXPECT_TRUE(ParseSpecs(",,aCE,,0.1", &size, &style)); | 105 EXPECT_TRUE(ParseSpecs(",,aCE,,0.1", &size, &style)); |
105 EXPECT_EQ(16, size); | 106 EXPECT_EQ(16, size); |
106 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); | 107 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); |
| 108 EXPECT_TRUE(style.is_default_background_color); |
107 EXPECT_EQ(SkColorSetRGB(0xAA, 0xCC, 0xEE), style.text_color); | 109 EXPECT_EQ(SkColorSetRGB(0xAA, 0xCC, 0xEE), style.text_color); |
108 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); | 110 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); |
109 EXPECT_EQ(0.1, style.roundness); | 111 EXPECT_EQ(0.1, style.roundness); |
110 } | 112 } |
111 | 113 |
112 TEST_F(FallbackIconUrlParserTest, ParseSpecsFull) { | 114 TEST_F(FallbackIconUrlParserTest, ParseSpecsFull) { |
113 int size; | 115 int size; |
114 | 116 |
115 { | 117 { |
116 FallbackIconStyle style; | 118 FallbackIconStyle style; |
117 EXPECT_TRUE(ParseSpecs("16,000,f01,0.75,0.25", &size, &style)); | 119 EXPECT_TRUE(ParseSpecs("16,000,f01,0.75,0.25", &size, &style)); |
118 EXPECT_EQ(16, size); | 120 EXPECT_EQ(16, size); |
119 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 121 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 122 EXPECT_FALSE(style.is_default_background_color); |
120 EXPECT_EQ(SkColorSetRGB(0xff, 0x00, 0x11), style.text_color); | 123 EXPECT_EQ(SkColorSetRGB(0xff, 0x00, 0x11), style.text_color); |
121 EXPECT_EQ(0.75, style.font_size_ratio); | 124 EXPECT_EQ(0.75, style.font_size_ratio); |
122 EXPECT_EQ(0.25, style.roundness); | 125 EXPECT_EQ(0.25, style.roundness); |
123 } | 126 } |
124 | 127 |
125 { | 128 { |
126 FallbackIconStyle style; | 129 FallbackIconStyle style; |
127 EXPECT_TRUE(ParseSpecs("48,black,123456,0.5,0.3", &size, &style)); | 130 EXPECT_TRUE(ParseSpecs("48,black,123456,0.5,0.3", &size, &style)); |
128 EXPECT_EQ(48, size); | 131 EXPECT_EQ(48, size); |
129 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 132 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 133 EXPECT_FALSE(style.is_default_background_color); |
130 EXPECT_EQ(SkColorSetRGB(0x12, 0x34, 0x56), style.text_color); | 134 EXPECT_EQ(SkColorSetRGB(0x12, 0x34, 0x56), style.text_color); |
131 EXPECT_EQ(0.5, style.font_size_ratio); | 135 EXPECT_EQ(0.5, style.font_size_ratio); |
132 EXPECT_EQ(0.3, style.roundness); | 136 EXPECT_EQ(0.3, style.roundness); |
133 } | 137 } |
134 | 138 |
135 { | 139 { |
136 FallbackIconStyle style; | 140 FallbackIconStyle style; |
137 EXPECT_TRUE(ParseSpecs("1,000,red,0,0", &size, &style)); | 141 EXPECT_TRUE(ParseSpecs("1,000,red,0,0", &size, &style)); |
138 EXPECT_EQ(1, size); | 142 EXPECT_EQ(1, size); |
139 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 143 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 144 EXPECT_FALSE(style.is_default_background_color); |
140 EXPECT_EQ(SkColorSetRGB(0xFF, 0x00, 0x00), style.text_color); | 145 EXPECT_EQ(SkColorSetRGB(0xFF, 0x00, 0x00), style.text_color); |
141 EXPECT_EQ(0, style.font_size_ratio); | 146 EXPECT_EQ(0, style.font_size_ratio); |
142 EXPECT_EQ(0, style.roundness); | 147 EXPECT_EQ(0, style.roundness); |
143 } | 148 } |
144 } | 149 } |
145 | 150 |
146 TEST_F(FallbackIconUrlParserTest, ParseSpecsDefaultTextColor) { | 151 TEST_F(FallbackIconUrlParserTest, ParseSpecsDefaultTextColor) { |
147 int size; | 152 int size; |
148 | 153 |
149 { | 154 { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 TEST_F(FallbackIconUrlParserTest, ParseFallbackIconPathSuccess) { | 216 TEST_F(FallbackIconUrlParserTest, ParseFallbackIconPathSuccess) { |
212 const std::string specs = "31,black,fff,0.75,0.25"; | 217 const std::string specs = "31,black,fff,0.75,0.25"; |
213 | 218 |
214 // Everything populated. | 219 // Everything populated. |
215 { | 220 { |
216 chrome::ParsedFallbackIconPath parsed; | 221 chrome::ParsedFallbackIconPath parsed; |
217 EXPECT_TRUE(parsed.Parse(specs + "/" + kTestUrlStr)); | 222 EXPECT_TRUE(parsed.Parse(specs + "/" + kTestUrlStr)); |
218 EXPECT_EQ(31, parsed.size_in_pixels()); | 223 EXPECT_EQ(31, parsed.size_in_pixels()); |
219 const favicon_base::FallbackIconStyle& style = parsed.style(); | 224 const favicon_base::FallbackIconStyle& style = parsed.style(); |
220 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 225 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 226 EXPECT_FALSE(style.is_default_background_color); |
221 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); | 227 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); |
222 EXPECT_EQ(0.75, style.font_size_ratio); | 228 EXPECT_EQ(0.75, style.font_size_ratio); |
223 EXPECT_EQ(0.25, style.roundness); | 229 EXPECT_EQ(0.25, style.roundness); |
224 EXPECT_EQ(GURL(kTestUrlStr), GURL(parsed.url_string())); | 230 EXPECT_EQ(GURL(kTestUrlStr), GURL(parsed.url_string())); |
225 EXPECT_EQ(specs.length() + 1, parsed.path_index()); | 231 EXPECT_EQ(specs.length() + 1, parsed.path_index()); |
226 } | 232 } |
227 | 233 |
228 // Empty URL. | 234 // Empty URL. |
229 { | 235 { |
230 chrome::ParsedFallbackIconPath parsed; | 236 chrome::ParsedFallbackIconPath parsed; |
231 EXPECT_TRUE(parsed.Parse(specs + "/")); | 237 EXPECT_TRUE(parsed.Parse(specs + "/")); |
232 EXPECT_EQ(31, parsed.size_in_pixels()); | 238 EXPECT_EQ(31, parsed.size_in_pixels()); |
233 const favicon_base::FallbackIconStyle& style = parsed.style(); | 239 const favicon_base::FallbackIconStyle& style = parsed.style(); |
234 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 240 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 241 EXPECT_FALSE(style.is_default_background_color); |
235 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); | 242 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); |
236 EXPECT_EQ(0.75, style.font_size_ratio); | 243 EXPECT_EQ(0.75, style.font_size_ratio); |
237 EXPECT_EQ(0.25, style.roundness); | 244 EXPECT_EQ(0.25, style.roundness); |
238 EXPECT_EQ(GURL(), GURL(parsed.url_string())); | 245 EXPECT_EQ(GURL(), GURL(parsed.url_string())); |
239 EXPECT_EQ(specs.length() + 1, parsed.path_index()); | 246 EXPECT_EQ(specs.length() + 1, parsed.path_index()); |
240 } | 247 } |
241 | 248 |
242 // Tolerate invalid URL. | 249 // Tolerate invalid URL. |
243 { | 250 { |
244 chrome::ParsedFallbackIconPath parsed; | 251 chrome::ParsedFallbackIconPath parsed; |
245 EXPECT_TRUE(parsed.Parse(specs + "/NOT A VALID URL")); | 252 EXPECT_TRUE(parsed.Parse(specs + "/NOT A VALID URL")); |
246 EXPECT_EQ(31, parsed.size_in_pixels()); | 253 EXPECT_EQ(31, parsed.size_in_pixels()); |
247 const favicon_base::FallbackIconStyle& style = parsed.style(); | 254 const favicon_base::FallbackIconStyle& style = parsed.style(); |
248 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); | 255 EXPECT_EQ(SkColorSetRGB(0x00, 0x00, 0x00), style.background_color); |
| 256 EXPECT_FALSE(style.is_default_background_color); |
249 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); | 257 EXPECT_EQ(SkColorSetRGB(0xFF, 0xFF, 0xFF), style.text_color); |
250 EXPECT_EQ(0.75, style.font_size_ratio); | 258 EXPECT_EQ(0.75, style.font_size_ratio); |
251 EXPECT_EQ(0.25, style.roundness); | 259 EXPECT_EQ(0.25, style.roundness); |
252 EXPECT_EQ("NOT A VALID URL", parsed.url_string()); | 260 EXPECT_EQ("NOT A VALID URL", parsed.url_string()); |
253 EXPECT_EQ(specs.length() + 1, parsed.path_index()); | 261 EXPECT_EQ(specs.length() + 1, parsed.path_index()); |
254 } | 262 } |
255 | 263 |
256 // Size and style are default. | 264 // Size and style are default. |
257 { | 265 { |
258 std::string specs2 = ",,,,"; | 266 std::string specs2 = ",,,,"; |
259 chrome::ParsedFallbackIconPath parsed; | 267 chrome::ParsedFallbackIconPath parsed; |
260 EXPECT_TRUE(parsed.Parse(specs2 + "/" + kTestUrlStr)); | 268 EXPECT_TRUE(parsed.Parse(specs2 + "/" + kTestUrlStr)); |
261 EXPECT_EQ(gfx::kFaviconSize, parsed.size_in_pixels()); | 269 EXPECT_EQ(gfx::kFaviconSize, parsed.size_in_pixels()); |
262 const favicon_base::FallbackIconStyle& style = parsed.style(); | 270 const favicon_base::FallbackIconStyle& style = parsed.style(); |
263 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); | 271 EXPECT_EQ(kDefaultBackgroundColor, style.background_color); |
| 272 EXPECT_TRUE(style.is_default_background_color); |
264 EXPECT_EQ(kDefaultTextColorLight, style.text_color); | 273 EXPECT_EQ(kDefaultTextColorLight, style.text_color); |
265 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); | 274 EXPECT_EQ(kDefaultFontSizeRatio, style.font_size_ratio); |
266 EXPECT_EQ(kDefaultRoundness, style.roundness); | 275 EXPECT_EQ(kDefaultRoundness, style.roundness); |
267 EXPECT_EQ(GURL(kTestUrlStr), GURL(parsed.url_string())); | 276 EXPECT_EQ(GURL(kTestUrlStr), GURL(parsed.url_string())); |
268 EXPECT_EQ(specs2.length() + 1, parsed.path_index()); | 277 EXPECT_EQ(specs2.length() + 1, parsed.path_index()); |
269 } | 278 } |
270 } | 279 } |
271 | 280 |
272 TEST_F(FallbackIconUrlParserTest, ParseFallbackIconPathFailure) { | 281 TEST_F(FallbackIconUrlParserTest, ParseFallbackIconPathFailure) { |
273 const char* test_cases[] = { | 282 const char* test_cases[] = { |
274 // Bad size. | 283 // Bad size. |
275 "-1,000,fff,0.75,0.25/http://www.google.com/", | 284 "-1,000,fff,0.75,0.25/http://www.google.com/", |
276 // Bad specs. | 285 // Bad specs. |
277 "32,#junk,fff,0.75,0.25/http://www.google.com/", | 286 "32,#junk,fff,0.75,0.25/http://www.google.com/", |
278 }; | 287 }; |
279 for (size_t i = 0; i < arraysize(test_cases); ++i) { | 288 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
280 chrome::ParsedFallbackIconPath parsed; | 289 chrome::ParsedFallbackIconPath parsed; |
281 EXPECT_FALSE(parsed.Parse(test_cases[i])) << "test_cases[" << i << "]"; | 290 EXPECT_FALSE(parsed.Parse(test_cases[i])) << "test_cases[" << i << "]"; |
282 } | 291 } |
283 } | 292 } |
284 | 293 |
285 } // namespace chrome | 294 } // namespace chrome |
OLD | NEW |