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

Side by Side Diff: chrome/browser/themes/browser_theme_pack_unittest.cc

Issue 24175004: Remove dependency on ui::ScaleFactor from ui/gfx (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename methods and vars to make image_scale more clear Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/themes/browser_theme_pack.h" 5 #include "chrome/browser/themes/browser_theme_pack.h"
6 6
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/json/json_file_value_serializer.h" 8 #include "base/json/json_file_value_serializer.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 263
264 // Compare some known pixel colors at know locations for a theme 264 // Compare some known pixel colors at know locations for a theme
265 // image where two different PNG files were specified for scales 100% 265 // image where two different PNG files were specified for scales 100%
266 // and 200% respectively. 266 // and 200% respectively.
267 int idr = IDR_THEME_FRAME; 267 int idr = IDR_THEME_FRAME;
268 gfx::Image image = pack->GetImageNamed(idr); 268 gfx::Image image = pack->GetImageNamed(idr);
269 EXPECT_FALSE(image.IsEmpty()); 269 EXPECT_FALSE(image.IsEmpty());
270 const gfx::ImageSkia* image_skia = image.ToImageSkia(); 270 const gfx::ImageSkia* image_skia = image.ToImageSkia();
271 ASSERT_TRUE(image_skia); 271 ASSERT_TRUE(image_skia);
272 // Scale 100%. 272 // Scale 100%.
273 const gfx::ImageSkiaRep& rep1 = image_skia->GetRepresentation( 273 const gfx::ImageSkiaRep& rep1 = image_skia->GetRepresentation(1.0f);
274 ui::SCALE_FACTOR_100P);
275 ASSERT_FALSE(rep1.is_null()); 274 ASSERT_FALSE(rep1.is_null());
276 EXPECT_EQ(80, rep1.sk_bitmap().width()); 275 EXPECT_EQ(80, rep1.sk_bitmap().width());
277 EXPECT_EQ(80, rep1.sk_bitmap().height()); 276 EXPECT_EQ(80, rep1.sk_bitmap().height());
278 rep1.sk_bitmap().lockPixels(); 277 rep1.sk_bitmap().lockPixels();
279 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor( 4, 4)); 278 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor( 4, 4));
280 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor( 8, 8)); 279 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor( 8, 8));
281 EXPECT_EQ(SkColorSetRGB( 0, 241, 237), rep1.sk_bitmap().getColor(16, 16)); 280 EXPECT_EQ(SkColorSetRGB( 0, 241, 237), rep1.sk_bitmap().getColor(16, 16));
282 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor(24, 24)); 281 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep1.sk_bitmap().getColor(24, 24));
283 EXPECT_EQ(SkColorSetRGB( 0, 241, 237), rep1.sk_bitmap().getColor(32, 32)); 282 EXPECT_EQ(SkColorSetRGB( 0, 241, 237), rep1.sk_bitmap().getColor(32, 32));
284 rep1.sk_bitmap().unlockPixels(); 283 rep1.sk_bitmap().unlockPixels();
285 // Scale 200%. 284 // Scale 200%.
286 const gfx::ImageSkiaRep& rep2 = image_skia->GetRepresentation( 285 const gfx::ImageSkiaRep& rep2 = image_skia->GetRepresentation(2.0f);
287 ui::SCALE_FACTOR_200P);
288 ASSERT_FALSE(rep2.is_null()); 286 ASSERT_FALSE(rep2.is_null());
289 EXPECT_EQ(160, rep2.sk_bitmap().width()); 287 EXPECT_EQ(160, rep2.sk_bitmap().width());
290 EXPECT_EQ(160, rep2.sk_bitmap().height()); 288 EXPECT_EQ(160, rep2.sk_bitmap().height());
291 rep2.sk_bitmap().lockPixels(); 289 rep2.sk_bitmap().lockPixels();
292 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep2.sk_bitmap().getColor( 4, 4)); 290 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep2.sk_bitmap().getColor( 4, 4));
293 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor( 8, 8)); 291 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor( 8, 8));
294 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor(16, 16)); 292 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor(16, 16));
295 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor(24, 24)); 293 EXPECT_EQ(SkColorSetRGB(223, 42, 0), rep2.sk_bitmap().getColor(24, 24));
296 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep2.sk_bitmap().getColor(32, 32)); 294 EXPECT_EQ(SkColorSetRGB(255, 255, 255), rep2.sk_bitmap().getColor(32, 32));
297 rep2.sk_bitmap().unlockPixels(); 295 rep2.sk_bitmap().unlockPixels();
298 296
299 // TODO(sschmitz): I plan to remove the following (to the end of the fct) 297 // TODO(sschmitz): I plan to remove the following (to the end of the fct)
300 // Reason: this test may be brittle. It depends on details of how we scale 298 // Reason: this test may be brittle. It depends on details of how we scale
301 // an 100% image to an 200% image. If there's filtering etc, this test would 299 // an 100% image to an 200% image. If there's filtering etc, this test would
302 // break. Also High DPI is new, but scaling from 100% to 200% is not new 300 // break. Also High DPI is new, but scaling from 100% to 200% is not new
303 // and need not be tested here. But in the interrim it is useful to verify 301 // and need not be tested here. But in the interrim it is useful to verify
304 // that this image was scaled and did not appear in the input. 302 // that this image was scaled and did not appear in the input.
305 303
306 // Compare pixel colors and locations for a theme image that had 304 // Compare pixel colors and locations for a theme image that had
307 // only one PNG file specified (for scale 100%). The representation 305 // only one PNG file specified (for scale 100%). The representation
308 // for scale of 200% was computed. 306 // for scale of 200% was computed.
309 idr = IDR_THEME_FRAME_INCOGNITO_INACTIVE; 307 idr = IDR_THEME_FRAME_INCOGNITO_INACTIVE;
310 image = pack->GetImageNamed(idr); 308 image = pack->GetImageNamed(idr);
311 EXPECT_FALSE(image.IsEmpty()); 309 EXPECT_FALSE(image.IsEmpty());
312 image_skia = image.ToImageSkia(); 310 image_skia = image.ToImageSkia();
313 ASSERT_TRUE(image_skia); 311 ASSERT_TRUE(image_skia);
314 // Scale 100%. 312 // Scale 100%.
315 const gfx::ImageSkiaRep& rep3 = image_skia->GetRepresentation( 313 const gfx::ImageSkiaRep& rep3 = image_skia->GetRepresentation(1.0f);
316 ui::SCALE_FACTOR_100P);
317 ASSERT_FALSE(rep3.is_null()); 314 ASSERT_FALSE(rep3.is_null());
318 EXPECT_EQ(80, rep3.sk_bitmap().width()); 315 EXPECT_EQ(80, rep3.sk_bitmap().width());
319 EXPECT_EQ(80, rep3.sk_bitmap().height()); 316 EXPECT_EQ(80, rep3.sk_bitmap().height());
320 rep3.sk_bitmap().lockPixels(); 317 rep3.sk_bitmap().lockPixels();
321 // We take samples of colors and locations along the diagonal whenever 318 // We take samples of colors and locations along the diagonal whenever
322 // the color changes. Note these colors are slightly different from 319 // the color changes. Note these colors are slightly different from
323 // the input PNG file due to input processing. 320 // the input PNG file due to input processing.
324 std::vector<std::pair<int, SkColor> > normal; 321 std::vector<std::pair<int, SkColor> > normal;
325 int xy = 0; 322 int xy = 0;
326 SkColor color = rep3.sk_bitmap().getColor(xy, xy); 323 SkColor color = rep3.sk_bitmap().getColor(xy, xy);
327 normal.push_back(std::make_pair(xy, color)); 324 normal.push_back(std::make_pair(xy, color));
328 for (int xy = 0; xy < 40; ++xy) { 325 for (int xy = 0; xy < 40; ++xy) {
329 SkColor next_color = rep3.sk_bitmap().getColor(xy, xy); 326 SkColor next_color = rep3.sk_bitmap().getColor(xy, xy);
330 if (next_color != color) { 327 if (next_color != color) {
331 color = next_color; 328 color = next_color;
332 normal.push_back(std::make_pair(xy, color)); 329 normal.push_back(std::make_pair(xy, color));
333 } 330 }
334 } 331 }
335 EXPECT_EQ(static_cast<size_t>(9), normal.size()); 332 EXPECT_EQ(static_cast<size_t>(9), normal.size());
336 rep3.sk_bitmap().unlockPixels(); 333 rep3.sk_bitmap().unlockPixels();
337 // Scale 200%. 334 // Scale 200%.
338 const gfx::ImageSkiaRep& rep4 = image_skia->GetRepresentation( 335 const gfx::ImageSkiaRep& rep4 = image_skia->GetRepresentation(2.0f);
339 ui::SCALE_FACTOR_200P);
340 ASSERT_FALSE(rep4.is_null()); 336 ASSERT_FALSE(rep4.is_null());
341 EXPECT_EQ(160, rep4.sk_bitmap().width()); 337 EXPECT_EQ(160, rep4.sk_bitmap().width());
342 EXPECT_EQ(160, rep4.sk_bitmap().height()); 338 EXPECT_EQ(160, rep4.sk_bitmap().height());
343 rep4.sk_bitmap().lockPixels(); 339 rep4.sk_bitmap().lockPixels();
344 // We expect the same colors and at locations scaled by 2 340 // We expect the same colors and at locations scaled by 2
345 // since this bitmap was scaled by 2. 341 // since this bitmap was scaled by 2.
346 for (size_t i = 0; i < normal.size(); ++i) { 342 for (size_t i = 0; i < normal.size(); ++i) {
347 int xy = 2 * normal[i].first; 343 int xy = 2 * normal[i].first;
348 SkColor color = normal[i].second; 344 SkColor color = normal[i].second;
349 EXPECT_EQ(color, rep4.sk_bitmap().getColor(xy, xy)); 345 EXPECT_EQ(color, rep4.sk_bitmap().getColor(xy, xy));
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 } 598 }
603 599
604 // Part 2: Try to read back the data pack that we just wrote to disk. 600 // Part 2: Try to read back the data pack that we just wrote to disk.
605 { 601 {
606 scoped_refptr<BrowserThemePack> pack = 602 scoped_refptr<BrowserThemePack> pack =
607 BrowserThemePack::BuildFromDataPack(file, "gllekhaobjnhgeag"); 603 BrowserThemePack::BuildFromDataPack(file, "gllekhaobjnhgeag");
608 ASSERT_TRUE(pack.get()); 604 ASSERT_TRUE(pack.get());
609 VerifyHiDpiTheme(pack.get()); 605 VerifyHiDpiTheme(pack.get());
610 } 606 }
611 } 607 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698