// Copyright (c) 2011 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. // Because the unit tests for gfx::Image are spread across multiple // implementation files, this header contains the reusable components. #ifndef UI_GFX_IMAGE_UNITTEST_H_ #define UI_GFX_IMAGE_UNITTEST_H_ #include "base/scoped_ptr.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" #if defined(OS_LINUX) #include "ui/gfx/gtk_util.h" #elif defined(OS_MACOSX) #include "base/mac/mac_util.h" #include "skia/ext/skia_utils_mac.h" #endif namespace gfx { namespace test { #if defined(OS_MACOSX) typedef NSImage* PlatformImage; #elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS) typedef GdkPixbuf* PlatformImage; #else typedef const SkBitmap* PlatformImage; #endif SkBitmap* CreateBitmap() { SkBitmap* bitmap = new SkBitmap(); bitmap->setConfig(SkBitmap::kARGB_8888_Config, 25, 25); bitmap->allocPixels(); bitmap->eraseRGB(255, 0, 0); return bitmap; } PlatformImage CreatePlatformImage() { scoped_ptr bitmap(CreateBitmap()); #if defined(OS_MACOSX) NSImage* image = gfx::SkBitmapToNSImage(*(bitmap.get())); base::mac::NSObjectRetain(image); return image; #elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS) return gfx::GdkPixbufFromSkBitmap(bitmap.get()); #else return bitmap.release(); #endif } gfx::Image::RepresentationType GetPlatformRepresentationType() { #if defined(OS_MACOSX) return gfx::Image::kNSImageRep; #elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS) return gfx::Image::kGdkPixbufRep; #else return gfx::Image::kSkBitmapRep; #endif } } // namespace test } // namespace gfx #endif // UI_GFX_IMAGE_UNITTEST_H_