| Index: ash/display/mouse_cursor_event_filter_unittest.cc
|
| diff --git a/ash/display/mouse_cursor_event_filter_unittest.cc b/ash/display/mouse_cursor_event_filter_unittest.cc
|
| index 3325d37a0cb33edc814ee5b81f8b14be5cb32218..2659df7a856a6a70323b1d08695dc32904aedc17 100644
|
| --- a/ash/display/mouse_cursor_event_filter_unittest.cc
|
| +++ b/ash/display/mouse_cursor_event_filter_unittest.cc
|
| @@ -28,7 +28,7 @@ class MouseCursorEventFilterTest : public test::AshTestBase {
|
|
|
| bool WarpMouseCursorIfNecessary(aura::Window* target_root,
|
| gfx::Point point_in_screen) {
|
| - bool is_warped = event_filter()->WarpMouseCursorIfNecessary(
|
| + bool is_warped = event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| target_root, point_in_screen);
|
| event_filter()->reset_was_mouse_warped_for_test();
|
| return is_warped;
|
| @@ -43,7 +43,7 @@ class MouseCursorEventFilterTest : public test::AshTestBase {
|
| location, 0, 0);
|
| ui::Event::DispatcherApi(&pressed).set_target(drag_source_root);
|
| event_filter()->OnMouseEvent(&pressed);
|
| - bool is_warped = event_filter()->WarpMouseCursorIfNecessary(
|
| + bool is_warped = event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| target_root, point_in_screen);
|
| event_filter()->reset_was_mouse_warped_for_test();
|
|
|
| @@ -127,16 +127,19 @@ TEST_F(MouseCursorEventFilterTest, WarpMouseDifferentSizeDisplays) {
|
| aura::Env::GetInstance()->last_mouse_location().ToString());
|
|
|
| // Touch the left edge of the secondary root window. Pointer should warp
|
| - // because 1px left of (0, 499) is inside the primary root window.
|
| - EXPECT_TRUE(WarpMouseCursorIfNecessary(root_windows[1],
|
| - gfx::Point(500, 499)));
|
| - EXPECT_EQ("498,499", // by 2px.
|
| + // because 1px left of (0, 480) is inside the primary root window.
|
| + EXPECT_TRUE(
|
| + WarpMouseCursorIfNecessary(root_windows[1], gfx::Point(500, 480)));
|
| + EXPECT_EQ("498,480", // by 2px.
|
| aura::Env::GetInstance()->last_mouse_location().ToString());
|
| }
|
|
|
| // Verifies if the mouse pointer correctly moves between displays with
|
| // different scale factors.
|
| TEST_F(MouseCursorEventFilterTest, WarpMouseDifferentScaleDisplays) {
|
| + if (MouseCursorEventFilter::IsMouseWarpInNativeCoordsEnabled())
|
| + return;
|
| +
|
| if (!SupportsMultipleDisplays())
|
| return;
|
|
|
| @@ -179,7 +182,46 @@ TEST_F(MouseCursorEventFilterTest, WarpMouseDifferentScaleDisplays) {
|
| aura::Env::GetInstance()->last_mouse_location().ToString());
|
| }
|
|
|
| +// Verifies if the mouse pointer correctly moves between displays with
|
| +// different scale factors. In native coords mode, there is no
|
| +// difference between drag and move.
|
| +TEST_F(MouseCursorEventFilterTest, WarpMouseDifferentScaleDisplaysInNative) {
|
| + if (!MouseCursorEventFilter::IsMouseWarpInNativeCoordsEnabled())
|
| + return;
|
| +
|
| + if (!SupportsMultipleDisplays())
|
| + return;
|
| +
|
| + UpdateDisplay("500x500,600x600*2");
|
| +
|
| + ASSERT_EQ(DisplayLayout::RIGHT,
|
| + Shell::GetInstance()
|
| + ->display_manager()
|
| + ->GetCurrentDisplayLayout()
|
| + .position);
|
| +
|
| + aura::Window::Windows root_windows = Shell::GetAllRootWindows();
|
| + aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(900, 123));
|
| +
|
| + EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| + root_windows[0], gfx::Point(499, 123)));
|
| + EXPECT_EQ("500,123",
|
| + aura::Env::GetInstance()->last_mouse_location().ToString());
|
| +
|
| + event_filter()->reset_was_mouse_warped_for_test();
|
| +
|
| + // Touch the edge of 2nd display again and make sure it warps to
|
| + // 1st dislay.
|
| + EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| + root_windows[1], gfx::Point(500, 123)));
|
| + EXPECT_EQ("498,123",
|
| + aura::Env::GetInstance()->last_mouse_location().ToString());
|
| +}
|
| +
|
| TEST_F(MouseCursorEventFilterTest, DoNotWarpTwice) {
|
| + if (MouseCursorEventFilter::IsMouseWarpInNativeCoordsEnabled())
|
| + return;
|
| +
|
| if (!SupportsMultipleDisplays())
|
| return;
|
|
|
| @@ -189,20 +231,20 @@ TEST_F(MouseCursorEventFilterTest, DoNotWarpTwice) {
|
| aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(623, 123));
|
|
|
| // Touch the right edge of the primary root window. Pointer should warp.
|
| - EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessary(root_windows[0],
|
| - gfx::Point(499, 11)));
|
| + EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| + root_windows[0], gfx::Point(499, 11)));
|
| EXPECT_EQ("501,11", // by 2px.
|
| aura::Env::GetInstance()->last_mouse_location().ToString());
|
|
|
| // Touch the left edge of the secondary root window immediately. This should
|
| // be ignored.
|
| - EXPECT_FALSE(event_filter()->WarpMouseCursorIfNecessary(root_windows[1],
|
| - gfx::Point(500, 11)));
|
| + EXPECT_FALSE(event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| + root_windows[1], gfx::Point(500, 11)));
|
|
|
| // Touch the left edge of the secondary root window again, pointer should
|
| // warp for this time.
|
| - EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessary(root_windows[1],
|
| - gfx::Point(500, 11)));
|
| + EXPECT_TRUE(event_filter()->WarpMouseCursorIfNecessaryForTest(
|
| + root_windows[1], gfx::Point(500, 11)));
|
| EXPECT_EQ("498,11", // by 2px.
|
| aura::Env::GetInstance()->last_mouse_location().ToString());
|
| }
|
|
|