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 |