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

Unified Diff: skia/ext/skia_utils_mac_unittest.mm

Issue 2011713003: Roll skia to 8cc209111876b7c78b5ec577c9221d8ed5e21024 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « skia/ext/skia_utils_mac.mm ('k') | skia/ext/skia_utils_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/ext/skia_utils_mac_unittest.mm
diff --git a/skia/ext/skia_utils_mac_unittest.mm b/skia/ext/skia_utils_mac_unittest.mm
deleted file mode 100644
index 27c862bf2fa23e128676acc7a591add51b56be27..0000000000000000000000000000000000000000
--- a/skia/ext/skia_utils_mac_unittest.mm
+++ /dev/null
@@ -1,247 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "skia/ext/skia_utils_mac.h"
-
-#import <AppKit/AppKit.h>
-
-#include "base/mac/scoped_nsobject.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-
-namespace {
-
-class SkiaUtilsMacTest : public testing::Test {
- public:
- // Creates a red or blue bitmap.
- SkBitmap CreateSkBitmap(int width, int height, bool isred, bool tfbit);
-
- // Creates a red or blue image.
- NSImage* CreateNSImage(int width, int height, bool isred);
-
- // Checks that the given bitmap rep is actually red or blue.
- void TestImageRep(NSBitmapImageRep* imageRep, bool isred);
-
- // Checks that the given bitmap is actually red or blue.
- void TestSkBitmap(const SkBitmap& bitmap, bool isred);
-
- enum BitLockerTest {
- TestIdentity = 0,
- TestTranslate = 1,
- TestClip = 2,
- TestXClip = TestTranslate | TestClip,
- TestNoBits = 4,
- TestTranslateNoBits = TestTranslate | TestNoBits,
- TestClipNoBits = TestClip | TestNoBits,
- TestXClipNoBits = TestXClip | TestNoBits,
- };
- void RunBitLockerTest(BitLockerTest test);
-
- // If not red, is blue.
- // If not tfbit (twenty-four-bit), is 444.
- void ShapeHelper(int width, int height, bool isred, bool tfbit);
-};
-
-SkBitmap SkiaUtilsMacTest::CreateSkBitmap(int width, int height,
- bool isred, bool tfbit) {
- SkColorType ct = tfbit ? kN32_SkColorType : kARGB_4444_SkColorType;
- SkImageInfo info = SkImageInfo::Make(width, height, ct, kPremul_SkAlphaType);
-
- SkBitmap bitmap;
- bitmap.allocPixels(info);
-
- if (isred)
- bitmap.eraseARGB(0xff, 0xff, 0, 0);
- else
- bitmap.eraseARGB(0xff, 0, 0, 0xff);
-
- return bitmap;
-}
-
-NSImage* SkiaUtilsMacTest::CreateNSImage(int width, int height, bool isred) {
- base::scoped_nsobject<NSImage> image(
- [[NSImage alloc] initWithSize:NSMakeSize(width, height)]);
- [image lockFocus];
- if (isred)
- [[NSColor colorWithDeviceRed:1.0 green:0.0 blue:0.0 alpha:1.0] set];
- else
- [[NSColor colorWithDeviceRed:0.0 green:0.0 blue:1.0 alpha:1.0] set];
- NSRectFill(NSMakeRect(0, 0, width, height));
- [image unlockFocus];
- return [image.release() autorelease];
-}
-
-void SkiaUtilsMacTest::TestImageRep(NSBitmapImageRep* imageRep, bool isred) {
- // Get the color of a pixel and make sure it looks fine
- int x = [imageRep size].width > 17 ? 17 : 0;
- int y = [imageRep size].height > 17 ? 17 : 0;
- NSColor* color = [imageRep colorAtX:x y:y];
- CGFloat red = 0, green = 0, blue = 0, alpha = 0;
-
- // SkBitmapToNSImage returns a bitmap in the calibrated color space (sRGB),
- // while NSReadPixel returns a color in the device color space. Convert back
- // to the calibrated color space before testing.
- color = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
-
- [color getRed:&red green:&green blue:&blue alpha:&alpha];
-
- // Be tolerant of floating point rounding and lossy color space conversions.
- if (isred) {
- EXPECT_GT(red, 0.95);
- EXPECT_LT(blue, 0.05);
- } else {
- EXPECT_LT(red, 0.05);
- EXPECT_GT(blue, 0.95);
- }
- EXPECT_LT(green, 0.05);
- EXPECT_GT(alpha, 0.95);
-}
-
-void SkiaUtilsMacTest::TestSkBitmap(const SkBitmap& bitmap, bool isred) {
- int x = bitmap.width() > 17 ? 17 : 0;
- int y = bitmap.height() > 17 ? 17 : 0;
- SkColor color = bitmap.getColor(x, y);
-
- if (isred) {
- EXPECT_EQ(255u, SkColorGetR(color));
- EXPECT_EQ(0u, SkColorGetB(color));
- } else {
- EXPECT_EQ(0u, SkColorGetR(color));
- EXPECT_EQ(255u, SkColorGetB(color));
- }
- EXPECT_EQ(0u, SkColorGetG(color));
- EXPECT_EQ(255u, SkColorGetA(color));
-}
-
-// setBitmapDevice has been deprecated/removed. Is this test still useful?
-void SkiaUtilsMacTest::RunBitLockerTest(BitLockerTest test) {
- const unsigned width = 2;
- const unsigned height = 2;
- const unsigned storageSize = width * height;
- const unsigned original[] = {0xFF333333, 0xFF666666, 0xFF999999, 0xFFCCCCCC};
- EXPECT_EQ(storageSize, sizeof(original) / sizeof(original[0]));
- unsigned bits[storageSize];
- memcpy(bits, original, sizeof(original));
- SkImageInfo info = SkImageInfo::MakeN32Premul(width, height);
- SkBitmap bitmap;
- bitmap.installPixels(info, bits, info.minRowBytes());
-
- SkCanvas canvas(bitmap);
- if (test & TestTranslate)
- canvas.translate(width / 2, 0);
- if (test & TestClip) {
- SkRect clipRect = {0, height / 2, width, height};
- canvas.clipRect(clipRect);
- }
- {
- gfx::SkiaBitLocker bitLocker(&canvas);
- CGContextRef cgContext = bitLocker.cgContext();
- CGColorRef testColor = CGColorGetConstantColor(kCGColorWhite);
- CGContextSetFillColorWithColor(cgContext, testColor);
- CGRect cgRect = {{0, 0}, {width, height}};
- CGContextFillRect(cgContext, cgRect);
- if (test & TestNoBits) {
- if (test & TestClip) {
- SkRect clipRect = {0, height / 2, width, height};
- canvas.clipRect(clipRect);
- }
- }
- }
- const unsigned results[][storageSize] = {
- {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF}, // identity
- {0xFF333333, 0xFFFFFFFF, 0xFF999999, 0xFFFFFFFF}, // translate
- {0xFF333333, 0xFF666666, 0xFFFFFFFF, 0xFFFFFFFF}, // clip
- {0xFF333333, 0xFF666666, 0xFF999999, 0xFFFFFFFF} // translate | clip
- };
- for (unsigned index = 0; index < storageSize; index++)
- EXPECT_EQ(results[test & ~TestNoBits][index], bits[index]);
-}
-
-void SkiaUtilsMacTest::ShapeHelper(int width, int height,
- bool isred, bool tfbit) {
- SkBitmap thing(CreateSkBitmap(width, height, isred, tfbit));
-
- // Confirm size
- NSImage* image = gfx::SkBitmapToNSImage(thing);
- EXPECT_DOUBLE_EQ([image size].width, (double)width);
- EXPECT_DOUBLE_EQ([image size].height, (double)height);
-
- EXPECT_TRUE([[image representations] count] == 1);
- EXPECT_TRUE([[[image representations] lastObject]
- isKindOfClass:[NSBitmapImageRep class]]);
- TestImageRep([[image representations] lastObject], isred);
-}
-
-TEST_F(SkiaUtilsMacTest, BitmapToNSImage_RedSquare64x64) {
- ShapeHelper(64, 64, true, true);
-}
-
-TEST_F(SkiaUtilsMacTest, BitmapToNSImage_BlueRectangle199x19) {
- ShapeHelper(199, 19, false, true);
-}
-
-TEST_F(SkiaUtilsMacTest, BitmapToNSImage_BlueRectangle444) {
- ShapeHelper(200, 200, false, false);
-}
-
-TEST_F(SkiaUtilsMacTest, BitmapToNSBitmapImageRep_BlueRectangle20x30) {
- int width = 20;
- int height = 30;
-
- SkBitmap bitmap(CreateSkBitmap(width, height, false, true));
- NSBitmapImageRep* imageRep = gfx::SkBitmapToNSBitmapImageRep(bitmap);
-
- EXPECT_DOUBLE_EQ(width, [imageRep size].width);
- EXPECT_DOUBLE_EQ(height, [imageRep size].height);
- TestImageRep(imageRep, false);
-}
-
-TEST_F(SkiaUtilsMacTest, NSImageRepToSkBitmap) {
- int width = 10;
- int height = 15;
- bool isred = true;
-
- NSImage* image = CreateNSImage(width, height, isred);
- EXPECT_EQ(1u, [[image representations] count]);
- NSBitmapImageRep* imageRep = [[image representations] lastObject];
- NSColorSpace* colorSpace = [NSColorSpace deviceRGBColorSpace];
- SkBitmap bitmap(gfx::NSImageRepToSkBitmapWithColorSpace(
- imageRep, [image size], false, [colorSpace CGColorSpace]));
- TestSkBitmap(bitmap, isred);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_Identity) {
- RunBitLockerTest(SkiaUtilsMacTest::TestIdentity);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_Translate) {
- RunBitLockerTest(SkiaUtilsMacTest::TestTranslate);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_Clip) {
- RunBitLockerTest(SkiaUtilsMacTest::TestClip);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_XClip) {
- RunBitLockerTest(SkiaUtilsMacTest::TestXClip);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_NoBits) {
- RunBitLockerTest(SkiaUtilsMacTest::TestNoBits);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_TranslateNoBits) {
- RunBitLockerTest(SkiaUtilsMacTest::TestTranslateNoBits);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_ClipNoBits) {
- RunBitLockerTest(SkiaUtilsMacTest::TestClipNoBits);
-}
-
-TEST_F(SkiaUtilsMacTest, BitLocker_XClipNoBits) {
- RunBitLockerTest(SkiaUtilsMacTest::TestXClipNoBits);
-}
-
-} // namespace
-
« no previous file with comments | « skia/ext/skia_utils_mac.mm ('k') | skia/ext/skia_utils_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698