OLD | NEW |
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 "components/favicon_base/select_favicon_frames.h" | 5 #include "components/favicon_base/select_favicon_frames.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 #include "third_party/skia/include/core/SkBitmap.h" | 8 #include "third_party/skia/include/core/SkBitmap.h" |
9 #include "third_party/skia/include/core/SkColor.h" | 9 #include "third_party/skia/include/core/SkColor.h" |
10 #include "ui/base/layout.h" | 10 #include "ui/base/layout.h" |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 EXPECT_EQ(1.5f, rep.scale()); | 190 EXPECT_EQ(1.5f, rep.scale()); |
191 EXPECT_EQ(16, rep.GetWidth()); | 191 EXPECT_EQ(16, rep.GetWidth()); |
192 EXPECT_EQ(16, rep.GetHeight()); | 192 EXPECT_EQ(16, rep.GetHeight()); |
193 EXPECT_EQ(24, rep.pixel_width()); | 193 EXPECT_EQ(24, rep.pixel_width()); |
194 EXPECT_EQ(24, rep.pixel_height()); | 194 EXPECT_EQ(24, rep.pixel_height()); |
195 EXPECT_EQ(3u, image.image_reps().size()); | 195 EXPECT_EQ(3u, image.image_reps().size()); |
196 #endif | 196 #endif |
197 } | 197 } |
198 | 198 |
199 TEST(SelectFaviconFramesTest, ExactMatchBetterThanLargeBitmap) { | 199 TEST(SelectFaviconFramesTest, ExactMatchBetterThanLargeBitmap) { |
| 200 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 201 |
200 float score1; | 202 float score1; |
201 vector<SkBitmap> bitmaps1; | 203 vector<SkBitmap> bitmaps1; |
202 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 48, 48)); | 204 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 48, 48)); |
203 CreateFaviconImageSkia( | 205 CreateFaviconImageSkia( |
204 bitmaps1, | 206 bitmaps1, |
205 SizesFromBitmaps(bitmaps1), 16, &score1); | 207 SizesFromBitmaps(bitmaps1), 16, &score1); |
206 | 208 |
207 float score2; | 209 float score2; |
208 vector<SkBitmap> bitmaps2; | 210 vector<SkBitmap> bitmaps2; |
209 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 16, 16)); | 211 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 16, 16)); |
210 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 32, 32)); | 212 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 32, 32)); |
211 CreateFaviconImageSkia(bitmaps2, | 213 CreateFaviconImageSkia(bitmaps2, |
212 SizesFromBitmaps(bitmaps2), 16, &score2); | 214 SizesFromBitmaps(bitmaps2), 16, &score2); |
213 | 215 |
214 EXPECT_GT(score2, score1); | 216 EXPECT_GT(score2, score1); |
215 } | 217 } |
216 | 218 |
217 TEST(SelectFaviconFramesTest, UpsampleABitBetterThanHugeBitmap) { | 219 TEST(SelectFaviconFramesTest, UpsampleABitBetterThanHugeBitmap) { |
| 220 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 221 |
218 float score1; | 222 float score1; |
219 vector<SkBitmap> bitmaps1; | 223 vector<SkBitmap> bitmaps1; |
220 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 128, 128)); | 224 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 128, 128)); |
221 CreateFaviconImageSkia(bitmaps1, | 225 CreateFaviconImageSkia(bitmaps1, |
222 SizesFromBitmaps(bitmaps1), 16, &score1); | 226 SizesFromBitmaps(bitmaps1), 16, &score1); |
223 | 227 |
224 float score2; | 228 float score2; |
225 vector<SkBitmap> bitmaps2; | 229 vector<SkBitmap> bitmaps2; |
226 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 24, 24)); | 230 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 24, 24)); |
227 CreateFaviconImageSkia(bitmaps2, | 231 CreateFaviconImageSkia(bitmaps2, |
(...skipping 10 matching lines...) Expand all Loading... |
238 bitmaps4.push_back(MakeBitmap(SK_ColorGREEN, 15, 15)); | 242 bitmaps4.push_back(MakeBitmap(SK_ColorGREEN, 15, 15)); |
239 CreateFaviconImageSkia(bitmaps4, | 243 CreateFaviconImageSkia(bitmaps4, |
240 SizesFromBitmaps(bitmaps4), 16, &score4); | 244 SizesFromBitmaps(bitmaps4), 16, &score4); |
241 | 245 |
242 EXPECT_GT(score2, score1); | 246 EXPECT_GT(score2, score1); |
243 EXPECT_GT(score3, score1); | 247 EXPECT_GT(score3, score1); |
244 EXPECT_GT(score4, score1); | 248 EXPECT_GT(score4, score1); |
245 } | 249 } |
246 | 250 |
247 TEST(SelectFaviconFramesTest, DownsamplingBetterThanUpsampling) { | 251 TEST(SelectFaviconFramesTest, DownsamplingBetterThanUpsampling) { |
| 252 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 253 |
248 float score1; | 254 float score1; |
249 vector<SkBitmap> bitmaps1; | 255 vector<SkBitmap> bitmaps1; |
250 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 8, 8)); | 256 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 8, 8)); |
251 CreateFaviconImageSkia(bitmaps1, | 257 CreateFaviconImageSkia(bitmaps1, |
252 SizesFromBitmaps(bitmaps1), 16, &score1); | 258 SizesFromBitmaps(bitmaps1), 16, &score1); |
253 | 259 |
254 float score2; | 260 float score2; |
255 vector<SkBitmap> bitmaps2; | 261 vector<SkBitmap> bitmaps2; |
256 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 24, 24)); | 262 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 24, 24)); |
257 CreateFaviconImageSkia(bitmaps2, | 263 CreateFaviconImageSkia(bitmaps2, |
258 SizesFromBitmaps(bitmaps2), 16, &score2); | 264 SizesFromBitmaps(bitmaps2), 16, &score2); |
259 | 265 |
260 EXPECT_GT(score2, score1); | 266 EXPECT_GT(score2, score1); |
261 } | 267 } |
262 | 268 |
263 TEST(SelectFaviconFramesTest, DownsamplingLessIsBetter) { | 269 TEST(SelectFaviconFramesTest, DownsamplingLessIsBetter) { |
| 270 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 271 |
264 float score1; | 272 float score1; |
265 vector<SkBitmap> bitmaps1; | 273 vector<SkBitmap> bitmaps1; |
266 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 34, 34)); | 274 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 34, 34)); |
267 CreateFaviconImageSkia(bitmaps1, | 275 CreateFaviconImageSkia(bitmaps1, |
268 SizesFromBitmaps(bitmaps1), 16, &score1); | 276 SizesFromBitmaps(bitmaps1), 16, &score1); |
269 | 277 |
270 float score2; | 278 float score2; |
271 vector<SkBitmap> bitmaps2; | 279 vector<SkBitmap> bitmaps2; |
272 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 33, 33)); | 280 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 33, 33)); |
273 CreateFaviconImageSkia(bitmaps2, | 281 CreateFaviconImageSkia(bitmaps2, |
274 SizesFromBitmaps(bitmaps2), 16, &score2); | 282 SizesFromBitmaps(bitmaps2), 16, &score2); |
275 | 283 |
276 EXPECT_GT(score2, score1); | 284 EXPECT_GT(score2, score1); |
277 } | 285 } |
278 | 286 |
279 TEST(SelectFaviconFramesTest, UpsamplingLessIsBetter) { | 287 TEST(SelectFaviconFramesTest, UpsamplingLessIsBetter) { |
| 288 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 289 |
280 float score1; | 290 float score1; |
281 vector<SkBitmap> bitmaps1; | 291 vector<SkBitmap> bitmaps1; |
282 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 8, 8)); | 292 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 8, 8)); |
283 CreateFaviconImageSkia(bitmaps1, | 293 CreateFaviconImageSkia(bitmaps1, |
284 SizesFromBitmaps(bitmaps1), 16, &score1); | 294 SizesFromBitmaps(bitmaps1), 16, &score1); |
285 | 295 |
286 float score2; | 296 float score2; |
287 vector<SkBitmap> bitmaps2; | 297 vector<SkBitmap> bitmaps2; |
288 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 9, 9)); | 298 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 9, 9)); |
289 CreateFaviconImageSkia(bitmaps2, | 299 CreateFaviconImageSkia(bitmaps2, |
290 SizesFromBitmaps(bitmaps2), 16, &score2); | 300 SizesFromBitmaps(bitmaps2), 16, &score2); |
291 | 301 |
292 EXPECT_GT(score2, score1); | 302 EXPECT_GT(score2, score1); |
293 } | 303 } |
294 | 304 |
295 // Test that the score is determined by the |original_sizes| parameter, not the | 305 // Test that the score is determined by the |original_sizes| parameter, not the |
296 // |bitmaps| parameter to SelectFaviconFrames(). | 306 // |bitmaps| parameter to SelectFaviconFrames(). |
297 TEST(SelectFaviconFramesTest, ScoreDeterminedByOriginalSizes) { | 307 TEST(SelectFaviconFramesTest, ScoreDeterminedByOriginalSizes) { |
| 308 SCOPED_FAVICON_SCALE_FACTOR_1XAND2X; |
| 309 |
298 vector<SkBitmap> bitmaps1; | 310 vector<SkBitmap> bitmaps1; |
299 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 16, 16)); | 311 bitmaps1.push_back(MakeBitmap(SK_ColorGREEN, 16, 16)); |
300 vector<gfx::Size> sizes1; | 312 vector<gfx::Size> sizes1; |
301 sizes1.push_back(gfx::Size(256, 256)); | 313 sizes1.push_back(gfx::Size(256, 256)); |
302 float score1; | 314 float score1; |
303 CreateFaviconImageSkia(bitmaps1, sizes1, 16, &score1); | 315 CreateFaviconImageSkia(bitmaps1, sizes1, 16, &score1); |
304 | 316 |
305 vector<SkBitmap> bitmaps2; | 317 vector<SkBitmap> bitmaps2; |
306 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 15, 15)); | 318 bitmaps2.push_back(MakeBitmap(SK_ColorGREEN, 15, 15)); |
307 vector<gfx::Size> sizes2; | 319 vector<gfx::Size> sizes2; |
308 sizes2.push_back(gfx::Size(15, 15)); | 320 sizes2.push_back(gfx::Size(15, 15)); |
309 float score2; | 321 float score2; |
310 CreateFaviconImageSkia(bitmaps2, sizes2, 16, &score2); | 322 CreateFaviconImageSkia(bitmaps2, sizes2, 16, &score2); |
311 | 323 |
312 EXPECT_GT(score2, score1); | 324 EXPECT_GT(score2, score1); |
313 } | 325 } |
314 | 326 |
315 } // namespace | 327 } // namespace |
OLD | NEW |