12385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
22385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Use of this source code is governed by a BSD-style license that can be
32385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// found in the LICENSE file.
42385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
52385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "ui/base/cursor/cursor_loader_x11.h"
62385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
72385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#undef None
82385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#undef Bool
92385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
102385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "base/logging.h"
112385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "testing/gtest/include/gtest/gtest.h"
122385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "third_party/skia/include/core/SkBitmap.h"
132385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
142385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochnamespace ui {
152385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
162385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochTEST(CursorLoaderX11Test, ScaleAndRotate) {
172385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  SkBitmap bitmap;
182385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  bitmap.setConfig(SkBitmap::kARGB_8888_Config, 10, 5);
192385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  bitmap.allocPixels();
202385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
212385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  gfx::Point hotpoint(3,4);
222385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
232385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  ScaleAndRotateCursorBitmapAndHotpoint(1.0f,
242385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        gfx::Display::ROTATE_0,
252385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &bitmap,
262385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &hotpoint);
272385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(10, bitmap.width());
282385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(5, bitmap.height());
292385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ("3,4", hotpoint.ToString());
302385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
312385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  ScaleAndRotateCursorBitmapAndHotpoint(1.0f,
322385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        gfx::Display::ROTATE_90,
332385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &bitmap,
342385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &hotpoint);
352385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
362385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(5, bitmap.width());
372385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(10, bitmap.height());
382385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ("1,3", hotpoint.ToString());
392385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
402385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  ScaleAndRotateCursorBitmapAndHotpoint(2.0f,
412385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        gfx::Display::ROTATE_180,
422385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &bitmap,
432385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &hotpoint);
442385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(10, bitmap.width());
452385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(20, bitmap.height());
462385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ("8,14", hotpoint.ToString());
472385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
482385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  ScaleAndRotateCursorBitmapAndHotpoint(1.0f,
492385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        gfx::Display::ROTATE_270,
502385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &bitmap,
512385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                                        &hotpoint);
522385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(20, bitmap.width());
532385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ(10, bitmap.height());
542385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch  EXPECT_EQ("14,2", hotpoint.ToString());
552385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}
562385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
572385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch}  // namespace ui
58