diff options
Diffstat (limited to 'chromium/ui/aura/cursor')
-rw-r--r-- | chromium/ui/aura/cursor/BUILD.gn | 3 | ||||
-rw-r--r-- | chromium/ui/aura/cursor/cursor_loader_unittest.cc | 49 | ||||
-rw-r--r-- | chromium/ui/aura/cursor/cursors_aura.h | 2 |
3 files changed, 52 insertions, 2 deletions
diff --git a/chromium/ui/aura/cursor/BUILD.gn b/chromium/ui/aura/cursor/BUILD.gn index 57683e9616c..41b7004c087 100644 --- a/chromium/ui/aura/cursor/BUILD.gn +++ b/chromium/ui/aura/cursor/BUILD.gn @@ -42,8 +42,11 @@ source_set("unittests") { "//skia", "//testing/gtest", "//ui/aura:test_support", + "//ui/base", "//ui/base/cursor", "//ui/base/cursor/mojom:cursor_type", + "//ui/gfx:gfx_skia", "//ui/gfx/geometry", ] + data_deps = [ "//ui/resources:ui_test_pak_data" ] } diff --git a/chromium/ui/aura/cursor/cursor_loader_unittest.cc b/chromium/ui/aura/cursor/cursor_loader_unittest.cc index d939ac5cb83..64529c0033d 100644 --- a/chromium/ui/aura/cursor/cursor_loader_unittest.cc +++ b/chromium/ui/aura/cursor/cursor_loader_unittest.cc @@ -4,21 +4,36 @@ #include "ui/aura/cursor/cursor_loader.h" +#include "base/files/file_path.h" #include "base/memory/scoped_refptr.h" +#include "base/path_service.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/skia/include/core/SkBitmap.h" +#include "ui/aura/cursor/cursor_lookup.h" +#include "ui/aura/cursor/cursors_aura.h" #include "ui/aura/test/aura_test_base.h" #include "ui/base/cursor/cursor.h" #include "ui/base/cursor/cursor_factory.h" #include "ui/base/cursor/mojom/cursor_type.mojom-shared.h" #include "ui/base/cursor/platform_cursor.h" +#include "ui/base/resource/resource_bundle.h" +#include "ui/base/ui_base_paths.h" +#include "ui/gfx/geometry/point.h" +#include "ui/gfx/skia_util.h" namespace aura { namespace { -using CursorLoaderTest = ::aura::test::AuraTestBase; +using CursorLoaderTest = test::AuraTestBase; using ::ui::mojom::CursorType; +SkBitmap GetTestBitmap() { + SkBitmap bitmap; + bitmap.allocN32Pixels(10, 10); + return bitmap; +} + } // namespace TEST_F(CursorLoaderTest, InvisibleCursor) { @@ -26,9 +41,39 @@ TEST_F(CursorLoaderTest, InvisibleCursor) { ui::Cursor invisible_cursor(CursorType::kNone); cursor_loader.SetPlatformCursor(&invisible_cursor); - ASSERT_EQ( + EXPECT_EQ( invisible_cursor.platform(), ui::CursorFactory::GetInstance()->GetDefaultCursor(CursorType::kNone)); } +// TODO(https://crbug.com/1270302): although this is testing `GetCursorBitmap` +// from cursor_lookup.h, that will be replaced by a method of the same name in +// CursorLoader. +TEST_F(CursorLoaderTest, GetCursorData) { + ui::RegisterPathProvider(); + base::FilePath ui_test_pak_path = + base::PathService::CheckedGet(ui::UI_TEST_PAK); + ui::ResourceBundle::InitSharedInstanceWithPakPath(ui_test_pak_path); + + const ui::Cursor invisible_cursor = CursorType::kNone; + EXPECT_TRUE(GetCursorBitmap(invisible_cursor).isNull()); + EXPECT_TRUE(GetCursorHotspot(invisible_cursor).IsOrigin()); + + const ui::Cursor pointer_cursor = CursorType::kPointer; + EXPECT_FALSE(GetCursorBitmap(pointer_cursor).isNull()); + EXPECT_TRUE(gfx::BitmapsAreEqual(GetCursorBitmap(pointer_cursor), + GetDefaultBitmap(pointer_cursor))); + EXPECT_EQ(GetCursorHotspot(pointer_cursor), + GetDefaultHotspot(pointer_cursor)); + + ui::Cursor custom_cursor(CursorType::kCustom); + const SkBitmap kBitmap = GetTestBitmap(); + constexpr gfx::Point kHotspot = gfx::Point(10, 10); + custom_cursor.set_custom_bitmap(kBitmap); + custom_cursor.set_custom_hotspot(kHotspot); + EXPECT_EQ(GetCursorBitmap(custom_cursor).getGenerationID(), + kBitmap.getGenerationID()); + EXPECT_EQ(GetCursorHotspot(custom_cursor), kHotspot); +} + } // namespace aura diff --git a/chromium/ui/aura/cursor/cursors_aura.h b/chromium/ui/aura/cursor/cursors_aura.h index 020a43ae09a..3a13dcdc887 100644 --- a/chromium/ui/aura/cursor/cursors_aura.h +++ b/chromium/ui/aura/cursor/cursors_aura.h @@ -32,8 +32,10 @@ bool GetCursorDataFor(ui::CursorSize cursor_size, int* resource_id, gfx::Point* point); +COMPONENT_EXPORT(UI_AURA_CURSOR) SkBitmap GetDefaultBitmap(const ui::Cursor& cursor); +COMPONENT_EXPORT(UI_AURA_CURSOR) gfx::Point GetDefaultHotspot(const ui::Cursor& cursor); } // namespace aura |