Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(303)

Side by Side Diff: ash/wm/ash_native_cursor_manager_interactive_uitest.cc

Issue 2932563002: Implement cursor changing on Mushrome (Closed)
Patch Set: oshima patch take 2 Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/wm/ash_native_cursor_manager.cc ('k') | ash/wm/ash_native_cursor_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 #include "ash/wm/ash_native_cursor_manager.h"
5
6 #include "ash/shell.h"
7 #include "ash/test/ash_interactive_ui_test_base.h"
8 #include "ash/test/cursor_manager_test_api.h"
9 #include "base/run_loop.h"
10 #include "ui/aura/window.h"
11 #include "ui/aura/window_tree_host.h"
12 #include "ui/base/test/ui_controls.h"
13 #include "ui/display/manager/display_manager.h"
14 #include "ui/display/manager/managed_display_info.h"
15
16 #if defined(USE_X11)
17 #include <X11/Xlib.h>
18
19 #include "ui/gfx/x/x11_types.h"
20 #endif
21
22 namespace ash {
23
24 using AshNativeCursorManagerTest = test::AshInteractiveUITestBase;
25
26 namespace {
27
28 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id,
29 const gfx::Rect& bounds,
30 float device_scale_factor) {
31 display::ManagedDisplayInfo info(id, "", false);
32 info.SetBounds(bounds);
33 info.set_device_scale_factor(device_scale_factor);
34 return info;
35 }
36
37 void MoveMouseSync(aura::Window* window, int x, int y) {
38 #if defined(USE_X11)
39 XWarpPointer(gfx::GetXDisplay(), None,
40 window->GetHost()->GetAcceleratedWidget(), 0, 0, 0, 0, x, y);
41 #endif
42 // Send and wait for a key event to make sure that mouse
43 // events are fully processed.
44 base::RunLoop loop;
45 ui_controls::SendKeyPressNotifyWhenDone(window, ui::VKEY_SPACE, false, false,
46 false, false, loop.QuitClosure());
47 loop.Run();
48 }
49
50 } // namespace
51
52 #if defined(USE_X11)
53 #define MAYBE_CursorChangeOnEnterNotify CursorChangeOnEnterNotify
54 #else
55 #define MAYBE_CursorChangeOnEnterNotify DISABLED_CursorChangeOnEnterNotify
56 #endif
57
58 TEST_F(AshNativeCursorManagerTest, MAYBE_CursorChangeOnEnterNotify) {
59 ::wm::CursorManager* cursor_manager = Shell::Get()->cursor_manager();
60 test::CursorManagerTestApi test_api(cursor_manager);
61
62 display::ManagedDisplayInfo display_info1 =
63 CreateDisplayInfo(10, gfx::Rect(0, 0, 500, 300), 1.0f);
64 display::ManagedDisplayInfo display_info2 =
65 CreateDisplayInfo(20, gfx::Rect(500, 0, 500, 300), 2.0f);
66 std::vector<display::ManagedDisplayInfo> display_info_list;
67 display_info_list.push_back(display_info1);
68 display_info_list.push_back(display_info2);
69 display_manager()->OnNativeDisplaysChanged(display_info_list);
70
71 MoveMouseSync(Shell::GetAllRootWindows()[0], 10, 10);
72 EXPECT_EQ(1.0f, test_api.GetCurrentCursor().device_scale_factor());
73
74 MoveMouseSync(Shell::GetAllRootWindows()[0], 600, 10);
75 EXPECT_EQ(2.0f, test_api.GetCurrentCursor().device_scale_factor());
76 }
77
78 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/ash_native_cursor_manager.cc ('k') | ash/wm/ash_native_cursor_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698