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

Side by Side Diff: ui/gfx/image/image_unittest.cc

Issue 11722012: Add fuzziness to checking whether two SkBitmaps are equal for ImageTest.* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "third_party/skia/include/core/SkCanvas.h" 6 #include "third_party/skia/include/core/SkCanvas.h"
7 #include "third_party/skia/include/core/SkPaint.h" 7 #include "third_party/skia/include/core/SkPaint.h"
8 #include "ui/base/layout.h" 8 #include "ui/base/layout.h"
9 #include "ui/gfx/image/image.h" 9 #include "ui/gfx/image/image.h"
10 #include "ui/gfx/image/image_png_rep.h" 10 #include "ui/gfx/image/image_png_rep.h"
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 EXPECT_TRUE(ns_image); 440 EXPECT_TRUE(ns_image);
441 base::mac::NSObjectRelease(ns_image); 441 base::mac::NSObjectRelease(ns_image);
442 } 442 }
443 #endif 443 #endif
444 444
445 TEST_F(ImageTest, CheckSkiaColor) { 445 TEST_F(ImageTest, CheckSkiaColor) {
446 gfx::Image image(gt::CreatePlatformImage()); 446 gfx::Image image(gt::CreatePlatformImage());
447 447
448 const SkBitmap* bitmap = image.ToSkBitmap(); 448 const SkBitmap* bitmap = image.ToSkBitmap();
449 SkAutoLockPixels auto_lock(*bitmap); 449 SkAutoLockPixels auto_lock(*bitmap);
450 gt::CheckColor(bitmap->getColor(10, 10), false); 450 gt::CheckColors(bitmap->getColor(10, 10), SK_ColorGREEN);
451 } 451 }
452 452
453 TEST_F(ImageTest, SkBitmapConversionPreservesOrientation) { 453 TEST_F(ImageTest, SkBitmapConversionPreservesOrientation) {
454 const int width = 50; 454 const int width = 50;
455 const int height = 50; 455 const int height = 50;
456 SkBitmap bitmap; 456 SkBitmap bitmap;
457 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); 457 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
458 bitmap.allocPixels(); 458 bitmap.allocPixels();
459 bitmap.eraseRGB(0, 255, 0); 459 bitmap.eraseRGB(0, 255, 0);
460 460
461 // Paint the upper half of the image in red (lower half is in green). 461 // Paint the upper half of the image in red (lower half is in green).
462 SkCanvas canvas(bitmap); 462 SkCanvas canvas(bitmap);
463 SkPaint red; 463 SkPaint red;
464 red.setColor(SK_ColorRED); 464 red.setColor(SK_ColorRED);
465 canvas.drawRect(SkRect::MakeWH(width, height / 2), red); 465 canvas.drawRect(SkRect::MakeWH(width, height / 2), red);
466 { 466 {
467 SCOPED_TRACE("Checking color of the initial SkBitmap"); 467 SCOPED_TRACE("Checking color of the initial SkBitmap");
468 gt::CheckColor(bitmap.getColor(10, 10), true); 468 gt::CheckColors(bitmap.getColor(10, 10), SK_ColorRED);
469 gt::CheckColor(bitmap.getColor(10, 40), false); 469 gt::CheckColors(bitmap.getColor(10, 40), SK_ColorGREEN);
470 } 470 }
471 471
472 // Convert from SkBitmap to a platform representation, then check the upper 472 // Convert from SkBitmap to a platform representation, then check the upper
473 // half of the platform image to make sure it is red, not green. 473 // half of the platform image to make sure it is red, not green.
474 gfx::Image from_skbitmap(bitmap); 474 gfx::Image from_skbitmap(bitmap);
475 { 475 {
476 SCOPED_TRACE("Checking color of the platform image"); 476 SCOPED_TRACE("Checking color of the platform image");
477 gt::CheckColor( 477 gt::CheckColors(
478 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 10), 478 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 10),
479 true); 479 SK_ColorRED);
480 gt::CheckColor( 480 gt::CheckColors(
481 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 40), 481 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 40),
482 false); 482 SK_ColorGREEN);
483 } 483 }
484 484
485 // Force a conversion back to SkBitmap and check that the upper half is red. 485 // Force a conversion back to SkBitmap and check that the upper half is red.
486 gfx::Image from_platform(gt::CopyPlatformType(from_skbitmap)); 486 gfx::Image from_platform(gt::CopyPlatformType(from_skbitmap));
487 const SkBitmap* bitmap2 = from_platform.ToSkBitmap(); 487 const SkBitmap* bitmap2 = from_platform.ToSkBitmap();
488 SkAutoLockPixels auto_lock(*bitmap2); 488 SkAutoLockPixels auto_lock(*bitmap2);
489 { 489 {
490 SCOPED_TRACE("Checking color after conversion back to SkBitmap"); 490 SCOPED_TRACE("Checking color after conversion back to SkBitmap");
491 gt::CheckColor(bitmap2->getColor(10, 10), true); 491 gt::CheckColors(bitmap2->getColor(10, 10), SK_ColorRED);
492 gt::CheckColor(bitmap2->getColor(10, 40), false); 492 gt::CheckColors(bitmap2->getColor(10, 40), SK_ColorGREEN);
493 } 493 }
494 } 494 }
495 495
496 TEST_F(ImageTest, SkBitmapConversionPreservesTransparency) { 496 TEST_F(ImageTest, SkBitmapConversionPreservesTransparency) {
497 const int width = 50; 497 const int width = 50;
498 const int height = 50; 498 const int height = 50;
499 SkBitmap bitmap; 499 SkBitmap bitmap;
500 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); 500 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
501 bitmap.allocPixels(); 501 bitmap.allocPixels();
502 bitmap.setIsOpaque(false); 502 bitmap.setIsOpaque(false);
503 bitmap.eraseARGB(0, 0, 255, 0); 503 bitmap.eraseARGB(0, 0, 255, 0);
504 504
505 // Paint the upper half of the image in red (lower half is transparent). 505 // Paint the upper half of the image in red (lower half is transparent).
506 SkCanvas canvas(bitmap); 506 SkCanvas canvas(bitmap);
507 SkPaint red; 507 SkPaint red;
508 red.setColor(SK_ColorRED); 508 red.setColor(SK_ColorRED);
509 canvas.drawRect(SkRect::MakeWH(width, height / 2), red); 509 canvas.drawRect(SkRect::MakeWH(width, height / 2), red);
510 { 510 {
511 SCOPED_TRACE("Checking color of the initial SkBitmap"); 511 SCOPED_TRACE("Checking color of the initial SkBitmap");
512 gt::CheckColor(bitmap.getColor(10, 10), true); 512 gt::CheckColors(bitmap.getColor(10, 10), SK_ColorRED);
513 gt::CheckIsTransparent(bitmap.getColor(10, 40)); 513 gt::CheckIsTransparent(bitmap.getColor(10, 40));
514 } 514 }
515 515
516 // Convert from SkBitmap to a platform representation, then check the upper 516 // Convert from SkBitmap to a platform representation, then check the upper
517 // half of the platform image to make sure it is red, not green. 517 // half of the platform image to make sure it is red, not green.
518 gfx::Image from_skbitmap(bitmap); 518 gfx::Image from_skbitmap(bitmap);
519 { 519 {
520 SCOPED_TRACE("Checking color of the platform image"); 520 SCOPED_TRACE("Checking color of the platform image");
521 gt::CheckColor( 521 gt::CheckColors(
522 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 10), 522 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 10),
523 true); 523 SK_ColorRED);
524 gt::CheckIsTransparent( 524 gt::CheckIsTransparent(
525 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 40)); 525 gt::GetPlatformImageColor(gt::ToPlatformType(from_skbitmap), 10, 40));
526 } 526 }
527 527
528 // Force a conversion back to SkBitmap and check that the upper half is red. 528 // Force a conversion back to SkBitmap and check that the upper half is red.
529 gfx::Image from_platform(gt::CopyPlatformType(from_skbitmap)); 529 gfx::Image from_platform(gt::CopyPlatformType(from_skbitmap));
530 const SkBitmap* bitmap2 = from_platform.ToSkBitmap(); 530 const SkBitmap* bitmap2 = from_platform.ToSkBitmap();
531 SkAutoLockPixels auto_lock(*bitmap2); 531 SkAutoLockPixels auto_lock(*bitmap2);
532 { 532 {
533 SCOPED_TRACE("Checking color after conversion back to SkBitmap"); 533 SCOPED_TRACE("Checking color after conversion back to SkBitmap");
534 gt::CheckColor(bitmap2->getColor(10, 10), true); 534 gt::CheckColors(bitmap2->getColor(10, 10), SK_ColorRED);
535 gt::CheckIsTransparent(bitmap.getColor(10, 40)); 535 gt::CheckIsTransparent(bitmap.getColor(10, 40));
536 } 536 }
537 } 537 }
538 538
539 TEST_F(ImageTest, SwapRepresentations) { 539 TEST_F(ImageTest, SwapRepresentations) {
540 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U; 540 const size_t kRepCount = kUsesSkiaNatively ? 1U : 2U;
541 541
542 gfx::Image image1(gt::CreateBitmap(25, 25)); 542 gfx::Image image1(gt::CreateBitmap(25, 25));
543 const SkBitmap* bitmap1 = image1.ToSkBitmap(); 543 const SkBitmap* bitmap1 = image1.ToSkBitmap();
544 EXPECT_EQ(1U, image1.RepresentationCount()); 544 EXPECT_EQ(1U, image1.RepresentationCount());
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 gfx::ImageSkiaRep(bitmap, ui::SCALE_FACTOR_100P))); 635 gfx::ImageSkiaRep(bitmap, ui::SCALE_FACTOR_100P)));
636 } 636 }
637 EXPECT_TRUE(!image.ToSkBitmap()->isNull()); 637 EXPECT_TRUE(!image.ToSkBitmap()->isNull());
638 } 638 }
639 639
640 // Integration tests with UI toolkit frameworks require linking against the 640 // Integration tests with UI toolkit frameworks require linking against the
641 // Views library and cannot be here (ui_unittests doesn't include it). They 641 // Views library and cannot be here (ui_unittests doesn't include it). They
642 // instead live in /chrome/browser/ui/tests/ui_gfx_image_unittest.cc. 642 // instead live in /chrome/browser/ui/tests/ui_gfx_image_unittest.cc.
643 643
644 } // namespace 644 } // namespace
OLDNEW
« no previous file with comments | « tools/valgrind/gtest_exclude/ui_unittests.gtest_mac.txt ('k') | ui/gfx/image/image_unittest_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698