| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/wm/ash_native_cursor_manager.h" | 5 #include "ash/wm/ash_native_cursor_manager.h" |
| 6 | 6 |
| 7 #include "ash/display/display_util.h" | 7 #include "ash/display/display_util.h" |
| 8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
| 9 #include "ash/test/ash_test_base.h" | 9 #include "ash/test/ash_test_base.h" |
| 10 #include "ash/test/cursor_manager_test_api.h" | 10 #include "ash/test/cursor_manager_test_api.h" |
| 11 #include "ui/aura/test/aura_test_utils.h" | 11 #include "ui/aura/test/aura_test_utils.h" |
| 12 #include "ui/aura/test/test_window_delegate.h" | 12 #include "ui/aura/test/test_window_delegate.h" |
| 13 #include "ui/aura/test/test_windows.h" | 13 #include "ui/aura/test/test_windows.h" |
| 14 #include "ui/aura/window.h" | 14 #include "ui/aura/window.h" |
| 15 #include "ui/aura/window_event_dispatcher.h" | 15 #include "ui/aura/window_event_dispatcher.h" |
| 16 #include "ui/base/cursor/image_cursors.h" | 16 #include "ui/base/cursor/image_cursors.h" |
| 17 #include "ui/display/manager/display_manager.h" | 17 #include "ui/display/manager/display_manager.h" |
| 18 #include "ui/display/screen.h" | 18 #include "ui/display/screen.h" |
| 19 #include "ui/display/test/display_manager_test_api.h" | 19 #include "ui/display/test/display_manager_test_api.h" |
| 20 | 20 |
| 21 #if defined(OS_WIN) | |
| 22 #include "base/win/windows_version.h" | |
| 23 #include "ui/base/cursor/cursor_loader_win.h" | |
| 24 #endif | |
| 25 | |
| 26 #if defined(USE_X11) | 21 #if defined(USE_X11) |
| 27 #include "ui/base/cursor/cursor_loader_x11.h" | 22 #include "ui/base/cursor/cursor_loader_x11.h" |
| 28 #include "ui/resources/grit/ui_resources.h" | 23 #include "ui/resources/grit/ui_resources.h" |
| 29 #endif | 24 #endif |
| 30 | 25 |
| 31 namespace ash { | 26 namespace ash { |
| 32 namespace test { | 27 namespace test { |
| 33 | 28 |
| 34 namespace { | 29 namespace { |
| 35 | 30 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 53 private: | 48 private: |
| 54 gfx::Point mouse_event_location_; | 49 gfx::Point mouse_event_location_; |
| 55 | 50 |
| 56 DISALLOW_COPY_AND_ASSIGN(MouseEventLocationDelegate); | 51 DISALLOW_COPY_AND_ASSIGN(MouseEventLocationDelegate); |
| 57 }; | 52 }; |
| 58 | 53 |
| 59 } // namespace | 54 } // namespace |
| 60 | 55 |
| 61 typedef test::AshTestBase AshNativeCursorManagerTest; | 56 typedef test::AshTestBase AshNativeCursorManagerTest; |
| 62 | 57 |
| 63 #if defined(OS_WIN) && !defined(USE_ASH) | 58 TEST_F(AshNativeCursorManagerTest, LockCursor) { |
| 64 // TODO(msw): Times out on Windows. http://crbug.com/584038 | |
| 65 #define MAYBE_LockCursor DISABLED_LockCursor | |
| 66 #else | |
| 67 #define MAYBE_LockCursor LockCursor | |
| 68 #endif | |
| 69 TEST_F(AshNativeCursorManagerTest, MAYBE_LockCursor) { | |
| 70 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 59 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 71 CursorManagerTestApi test_api(cursor_manager); | 60 CursorManagerTestApi test_api(cursor_manager); |
| 72 | 61 |
| 73 #if defined(OS_WIN) | |
| 74 ui::CursorLoaderWin::SetCursorResourceModule(L"ash_unittests.exe"); | |
| 75 #endif | |
| 76 cursor_manager->SetCursor(ui::kCursorCopy); | 62 cursor_manager->SetCursor(ui::kCursorCopy); |
| 77 EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); | 63 EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); |
| 78 UpdateDisplay("800x800*2/r"); | 64 UpdateDisplay("800x800*2/r"); |
| 79 EXPECT_EQ(2.0f, test_api.GetCurrentCursor().device_scale_factor()); | 65 EXPECT_EQ(2.0f, test_api.GetCurrentCursor().device_scale_factor()); |
| 80 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); | 66 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); |
| 81 EXPECT_EQ(display::Display::ROTATE_90, test_api.GetCurrentCursorRotation()); | 67 EXPECT_EQ(display::Display::ROTATE_90, test_api.GetCurrentCursorRotation()); |
| 82 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); | 68 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); |
| 83 | 69 |
| 84 cursor_manager->LockCursor(); | 70 cursor_manager->LockCursor(); |
| 85 EXPECT_TRUE(cursor_manager->IsCursorLocked()); | 71 EXPECT_TRUE(cursor_manager->IsCursorLocked()); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 107 | 93 |
| 108 // Cursor type changes to the one specified while cursor is locked. | 94 // Cursor type changes to the one specified while cursor is locked. |
| 109 EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type()); | 95 EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type()); |
| 110 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); | 96 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); |
| 111 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); | 97 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); |
| 112 } | 98 } |
| 113 | 99 |
| 114 TEST_F(AshNativeCursorManagerTest, SetCursor) { | 100 TEST_F(AshNativeCursorManagerTest, SetCursor) { |
| 115 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 101 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 116 CursorManagerTestApi test_api(cursor_manager); | 102 CursorManagerTestApi test_api(cursor_manager); |
| 117 #if defined(OS_WIN) | |
| 118 ui::CursorLoaderWin::SetCursorResourceModule(L"ash_unittests.exe"); | |
| 119 #endif | |
| 120 cursor_manager->SetCursor(ui::kCursorCopy); | 103 cursor_manager->SetCursor(ui::kCursorCopy); |
| 121 EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); | 104 EXPECT_EQ(ui::kCursorCopy, test_api.GetCurrentCursor().native_type()); |
| 122 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); | 105 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); |
| 123 cursor_manager->SetCursor(ui::kCursorPointer); | 106 cursor_manager->SetCursor(ui::kCursorPointer); |
| 124 EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type()); | 107 EXPECT_EQ(ui::kCursorPointer, test_api.GetCurrentCursor().native_type()); |
| 125 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); | 108 EXPECT_TRUE(test_api.GetCurrentCursor().platform()); |
| 126 } | 109 } |
| 127 | 110 |
| 128 TEST_F(AshNativeCursorManagerTest, SetCursorSet) { | 111 TEST_F(AshNativeCursorManagerTest, SetCursorSet) { |
| 129 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 112 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 130 CursorManagerTestApi test_api(cursor_manager); | 113 CursorManagerTestApi test_api(cursor_manager); |
| 131 | 114 |
| 132 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); | 115 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); |
| 133 | 116 |
| 134 cursor_manager->SetCursorSet(ui::CURSOR_SET_NORMAL); | 117 cursor_manager->SetCursorSet(ui::CURSOR_SET_NORMAL); |
| 135 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); | 118 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); |
| 136 | 119 |
| 137 cursor_manager->SetCursorSet(ui::CURSOR_SET_LARGE); | 120 cursor_manager->SetCursorSet(ui::CURSOR_SET_LARGE); |
| 138 EXPECT_EQ(ui::CURSOR_SET_LARGE, test_api.GetCurrentCursorSet()); | 121 EXPECT_EQ(ui::CURSOR_SET_LARGE, test_api.GetCurrentCursorSet()); |
| 139 | 122 |
| 140 cursor_manager->SetCursorSet(ui::CURSOR_SET_NORMAL); | 123 cursor_manager->SetCursorSet(ui::CURSOR_SET_NORMAL); |
| 141 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); | 124 EXPECT_EQ(ui::CURSOR_SET_NORMAL, test_api.GetCurrentCursorSet()); |
| 142 } | 125 } |
| 143 | 126 |
| 144 #if defined(OS_WIN) && !defined(USE_ASH) | 127 TEST_F(AshNativeCursorManagerTest, SetDeviceScaleFactorAndRotation) { |
| 145 // TODO(msw): Times out on Windows. http://crbug.com/584038 | |
| 146 #define MAYBE_SetDeviceScaleFactorAndRotation \ | |
| 147 DISABLED_SetDeviceScaleFactorAndRotation | |
| 148 #else | |
| 149 #define MAYBE_SetDeviceScaleFactorAndRotation SetDeviceScaleFactorAndRotation | |
| 150 #endif | |
| 151 TEST_F(AshNativeCursorManagerTest, MAYBE_SetDeviceScaleFactorAndRotation) { | |
| 152 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 128 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 153 CursorManagerTestApi test_api(cursor_manager); | 129 CursorManagerTestApi test_api(cursor_manager); |
| 154 UpdateDisplay("800x100*2"); | 130 UpdateDisplay("800x100*2"); |
| 155 EXPECT_EQ(2.0f, test_api.GetCurrentCursor().device_scale_factor()); | 131 EXPECT_EQ(2.0f, test_api.GetCurrentCursor().device_scale_factor()); |
| 156 EXPECT_EQ(display::Display::ROTATE_0, test_api.GetCurrentCursorRotation()); | 132 EXPECT_EQ(display::Display::ROTATE_0, test_api.GetCurrentCursorRotation()); |
| 157 | 133 |
| 158 UpdateDisplay("800x100/l"); | 134 UpdateDisplay("800x100/l"); |
| 159 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); | 135 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); |
| 160 EXPECT_EQ(display::Display::ROTATE_270, test_api.GetCurrentCursorRotation()); | 136 EXPECT_EQ(display::Display::ROTATE_270, test_api.GetCurrentCursorRotation()); |
| 161 } | 137 } |
| 162 | 138 |
| 163 #if defined(OS_CHROMEOS) | |
| 164 // TODO(oshima): crbug.com/143619 | |
| 165 TEST_F(AshNativeCursorManagerTest, FractionalScale) { | 139 TEST_F(AshNativeCursorManagerTest, FractionalScale) { |
| 166 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 140 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 167 CursorManagerTestApi test_api(cursor_manager); | 141 CursorManagerTestApi test_api(cursor_manager); |
| 168 // Cursor should use the resource scale factor. | 142 // Cursor should use the resource scale factor. |
| 169 UpdateDisplay("800x100*1.25"); | 143 UpdateDisplay("800x100*1.25"); |
| 170 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); | 144 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor()); |
| 171 } | 145 } |
| 172 #endif | |
| 173 | 146 |
| 174 #if defined(OS_WIN) && !defined(USE_ASH) | 147 TEST_F(AshNativeCursorManagerTest, UIScaleShouldNotChangeCursor) { |
| 175 // TODO(msw): Times out on Windows. http://crbug.com/584038 | |
| 176 #define MAYBE_UIScaleShouldNotChangeCursor DISABLED_UIScaleShouldNotChangeCursor | |
| 177 #else | |
| 178 #define MAYBE_UIScaleShouldNotChangeCursor UIScaleShouldNotChangeCursor | |
| 179 #endif | |
| 180 TEST_F(AshNativeCursorManagerTest, MAYBE_UIScaleShouldNotChangeCursor) { | |
| 181 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 148 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 182 display::Display::SetInternalDisplayId(display_id); | 149 display::Display::SetInternalDisplayId(display_id); |
| 183 | 150 |
| 184 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); | 151 ::wm::CursorManager* cursor_manager = Shell::GetInstance()->cursor_manager(); |
| 185 CursorManagerTestApi test_api(cursor_manager); | 152 CursorManagerTestApi test_api(cursor_manager); |
| 186 | 153 |
| 187 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()) | 154 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()) |
| 188 .SetDisplayUIScale(display_id, 0.5f); | 155 .SetDisplayUIScale(display_id, 0.5f); |
| 189 EXPECT_EQ( | 156 EXPECT_EQ( |
| 190 1.0f, | 157 1.0f, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 loader.set_scale(2.0f); | 193 loader.set_scale(2.0f); |
| 227 loader.LoadImageCursor(kCursorId, IDR_AURA_CURSOR_MOVE, gfx::Point()); | 194 loader.LoadImageCursor(kCursorId, IDR_AURA_CURSOR_MOVE, gfx::Point()); |
| 228 image = loader.GetXcursorImageForTest(kCursorId); | 195 image = loader.GetXcursorImageForTest(kCursorId); |
| 229 EXPECT_EQ(height * 2, static_cast<int>(image->height)); | 196 EXPECT_EQ(height * 2, static_cast<int>(image->height)); |
| 230 EXPECT_EQ(width * 2, static_cast<int>(image->width)); | 197 EXPECT_EQ(width * 2, static_cast<int>(image->width)); |
| 231 } | 198 } |
| 232 #endif | 199 #endif |
| 233 | 200 |
| 234 } // namespace test | 201 } // namespace test |
| 235 } // namespace ash | 202 } // namespace ash |
| OLD | NEW |