Index: ui/gfx/image/image_mac_unittest.mm |
diff --git a/ui/gfx/image/image_mac_unittest.mm b/ui/gfx/image/image_mac_unittest.mm |
deleted file mode 100644 |
index 2cbbd117a9772df42a734a0c93663546d6759aa5..0000000000000000000000000000000000000000 |
--- a/ui/gfx/image/image_mac_unittest.mm |
+++ /dev/null |
@@ -1,209 +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 <Cocoa/Cocoa.h> |
- |
-#include "base/logging.h" |
-#include "base/mac/scoped_nsobject.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "ui/gfx/image/image.h" |
-#include "ui/gfx/image/image_png_rep.h" |
-#include "ui/gfx/image/image_skia.h" |
-#include "ui/gfx/image/image_skia_util_mac.h" |
-#include "ui/gfx/image/image_unittest_util.h" |
- |
-namespace { |
- |
-// Returns true if the structure of |ns_image| matches the structure |
-// described by |width|, |height|, and |scales|. |
-// The structure matches if: |
-// - |ns_image| is not nil. |
-// - |ns_image| has NSImageReps of |scales|. |
-// - Each of the NSImageReps has a pixel size of [|ns_image| size] * |
-// scale. |
-bool NSImageStructureMatches( |
- NSImage* ns_image, |
- int width, |
- int height, |
- const std::vector<float>& scales) { |
- if (!ns_image || |
- [ns_image size].width != width || |
- [ns_image size].height != height || |
- [ns_image representations].count != scales.size()) { |
- return false; |
- } |
- |
- for (size_t i = 0; i < scales.size(); ++i) { |
- float scale = scales[i]; |
- bool found_match = false; |
- for (size_t j = 0; j < [ns_image representations].count; ++j) { |
- NSImageRep* ns_image_rep = [[ns_image representations] objectAtIndex:j]; |
- if (ns_image_rep && |
- [ns_image_rep pixelsWide] == width * scale && |
- [ns_image_rep pixelsHigh] == height * scale) { |
- found_match = true; |
- break; |
- } |
- } |
- if (!found_match) |
- return false; |
- } |
- return true; |
-} |
- |
-void BitmapImageRep(int width, int height, |
- NSBitmapImageRep** image_rep) { |
- *image_rep = [[[NSBitmapImageRep alloc] |
- initWithBitmapDataPlanes:NULL |
- pixelsWide:width |
- pixelsHigh:height |
- bitsPerSample:8 |
- samplesPerPixel:3 |
- hasAlpha:NO |
- isPlanar:NO |
- colorSpaceName:NSDeviceRGBColorSpace |
- bitmapFormat:0 |
- bytesPerRow:0 |
- bitsPerPixel:0] |
- autorelease]; |
- unsigned char* image_rep_data = [*image_rep bitmapData]; |
- for (int i = 0; i < width * height * 3; ++i) |
- image_rep_data[i] = 255; |
-} |
- |
-class ImageMacTest : public testing::Test { |
- public: |
- ImageMacTest() { |
- gfx::ImageSkia::SetSupportedScales(gfx::test::Get1xAnd2xScales()); |
- } |
- |
- virtual ~ImageMacTest() { |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(ImageMacTest); |
-}; |
- |
-namespace gt = gfx::test; |
- |
-TEST_F(ImageMacTest, MultiResolutionNSImageToImageSkia) { |
- const int kWidth1x = 10; |
- const int kHeight1x = 12; |
- const int kWidth2x = 20; |
- const int kHeight2x = 24; |
- |
- NSBitmapImageRep* ns_image_rep1; |
- BitmapImageRep(kWidth1x, kHeight1x, &ns_image_rep1); |
- NSBitmapImageRep* ns_image_rep2; |
- BitmapImageRep(kWidth2x, kHeight2x, &ns_image_rep2); |
- base::scoped_nsobject<NSImage> ns_image( |
- [[NSImage alloc] initWithSize:NSMakeSize(kWidth1x, kHeight1x)]); |
- [ns_image addRepresentation:ns_image_rep1]; |
- [ns_image addRepresentation:ns_image_rep2]; |
- |
- gfx::Image image(ns_image.release()); |
- |
- EXPECT_EQ(1u, image.RepresentationCount()); |
- |
- const gfx::ImageSkia* image_skia = image.ToImageSkia(); |
- |
- std::vector<float> scales; |
- scales.push_back(1.0f); |
- scales.push_back(2.0f); |
- EXPECT_TRUE(gt::ImageSkiaStructureMatches(*image_skia, kWidth1x, kHeight1x, |
- scales)); |
- |
- // ToImageSkia should create a second representation. |
- EXPECT_EQ(2u, image.RepresentationCount()); |
-} |
- |
-// Test that convertng to an ImageSkia from an NSImage with scale factors |
-// other than 1x and 2x results in an ImageSkia with scale factors 1x and |
-// 2x; |
-TEST_F(ImageMacTest, UnalignedMultiResolutionNSImageToImageSkia) { |
- const int kWidth1x = 10; |
- const int kHeight1x= 12; |
- const int kWidth4x = 40; |
- const int kHeight4x = 48; |
- |
- NSBitmapImageRep* ns_image_rep4; |
- BitmapImageRep(kWidth4x, kHeight4x, &ns_image_rep4); |
- base::scoped_nsobject<NSImage> ns_image( |
- [[NSImage alloc] initWithSize:NSMakeSize(kWidth1x, kHeight1x)]); |
- [ns_image addRepresentation:ns_image_rep4]; |
- |
- gfx::Image image(ns_image.release()); |
- |
- EXPECT_EQ(1u, image.RepresentationCount()); |
- |
- const gfx::ImageSkia* image_skia = image.ToImageSkia(); |
- |
- std::vector<float> scales; |
- scales.push_back(1.0f); |
- scales.push_back(2.0f); |
- EXPECT_TRUE(gt::ImageSkiaStructureMatches(*image_skia, kWidth1x, kHeight1x, |
- scales)); |
- |
- // ToImageSkia should create a second representation. |
- EXPECT_EQ(2u, image.RepresentationCount()); |
-} |
- |
-TEST_F(ImageMacTest, MultiResolutionImageSkiaToNSImage) { |
- const int kWidth1x = 10; |
- const int kHeight1x= 12; |
- const int kWidth2x = 20; |
- const int kHeight2x = 24; |
- |
- gfx::ImageSkia image_skia; |
- image_skia.AddRepresentation(gfx::ImageSkiaRep( |
- gt::CreateBitmap(kWidth1x, kHeight1x), 1.0f)); |
- image_skia.AddRepresentation(gfx::ImageSkiaRep( |
- gt::CreateBitmap(kWidth2x, kHeight2x), 2.0f)); |
- |
- gfx::Image image(image_skia); |
- |
- EXPECT_EQ(1u, image.RepresentationCount()); |
- EXPECT_EQ(2u, image.ToImageSkia()->image_reps().size()); |
- |
- NSImage* ns_image = image.ToNSImage(); |
- |
- std::vector<float> scales; |
- scales.push_back(1.0f); |
- scales.push_back(2.0f); |
- EXPECT_TRUE(NSImageStructureMatches(ns_image, kWidth1x, kHeight1x, scales)); |
- |
- // Request for NSImage* should create a second representation. |
- EXPECT_EQ(2u, image.RepresentationCount()); |
-} |
- |
-TEST_F(ImageMacTest, MultiResolutionPNGToNSImage) { |
- const int kSize1x = 25; |
- const int kSize2x = 50; |
- |
- scoped_refptr<base::RefCountedMemory> bytes1x = gt::CreatePNGBytes(kSize1x); |
- scoped_refptr<base::RefCountedMemory> bytes2x = gt::CreatePNGBytes(kSize2x); |
- std::vector<gfx::ImagePNGRep> image_png_reps; |
- image_png_reps.push_back(gfx::ImagePNGRep(bytes1x, 1.0f)); |
- image_png_reps.push_back(gfx::ImagePNGRep(bytes2x, 2.0f)); |
- |
- gfx::Image image(image_png_reps); |
- |
- NSImage* ns_image = image.ToNSImage(); |
- std::vector<float> scales; |
- scales.push_back(1.0f); |
- scales.push_back(2.0f); |
- EXPECT_TRUE(NSImageStructureMatches(ns_image, kSize1x, kSize1x, scales)); |
- |
- // Converting from PNG to NSImage should not go through ImageSkia. |
- EXPECT_FALSE(image.HasRepresentation(gfx::Image::kImageRepSkia)); |
- |
- // Convert to ImageSkia to check pixel contents of NSImageReps. |
- gfx::ImageSkia image_skia = gfx::ImageSkiaFromNSImage(ns_image); |
- EXPECT_TRUE(gt::IsEqual(bytes1x, |
- image_skia.GetRepresentation(1.0f).sk_bitmap())); |
- EXPECT_TRUE(gt::IsEqual(bytes2x, |
- image_skia.GetRepresentation(2.0f).sk_bitmap())); |
-} |
- |
-} // namespace |