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 |
- |