Index: ash/display/cursor_window_controller_unittest.cc |
diff --git a/ash/display/cursor_window_controller_unittest.cc b/ash/display/cursor_window_controller_unittest.cc |
index 8298604de1dc1802ef91e0c27117e28282128a81..1831f43f45eadde6ec65fb4e81e3b465d347ee34 100644 |
--- a/ash/display/cursor_window_controller_unittest.cc |
+++ b/ash/display/cursor_window_controller_unittest.cc |
@@ -25,9 +25,7 @@ class CursorWindowControllerTest : public test::AshTestBase { |
// test::AshTestBase: |
void SetUp() override { |
AshTestBase::SetUp(); |
- cursor_window_controller_ = |
- Shell::GetInstance()->display_controller()->cursor_window_controller(); |
- cursor_window_controller_->SetCursorCompositingEnabled(true); |
+ SetCursorCompositionEnabled(true); |
} |
int GetCursorType() const { return cursor_window_controller_->cursor_type_; } |
@@ -44,6 +42,12 @@ class CursorWindowControllerTest : public test::AshTestBase { |
return cursor_window_controller_->display_.id(); |
} |
+ void SetCursorCompositionEnabled(bool enabled) { |
+ cursor_window_controller_ = |
+ Shell::GetInstance()->display_controller()->cursor_window_controller(); |
+ cursor_window_controller_->SetCursorCompositingEnabled(enabled); |
+ } |
+ |
private: |
// Not owned. |
CursorWindowController* cursor_window_controller_; |
@@ -105,4 +109,39 @@ TEST_F(CursorWindowControllerTest, MoveToDifferentDisplay) { |
EXPECT_EQ(50, cursor_bounds.y() + hot_point.y()); |
} |
+// Windows doesn't support compositor based cursor. |
+#if !defined(OS_WIN) |
+// Make sure that composition cursor inherits the visibility state. |
+TEST_F(CursorWindowControllerTest, VisibilityTest) { |
+ ASSERT_TRUE(GetCursorWindow()); |
+ EXPECT_TRUE(GetCursorWindow()->IsVisible()); |
+ aura::client::CursorClient* client = Shell::GetInstance()->cursor_manager(); |
+ client->HideCursor(); |
+ ASSERT_TRUE(GetCursorWindow()); |
+ EXPECT_FALSE(GetCursorWindow()->IsVisible()); |
+ |
+ // Normal cursor should be in the correct state. |
+ SetCursorCompositionEnabled(false); |
+ ASSERT_FALSE(GetCursorWindow()); |
+ ASSERT_FALSE(client->IsCursorVisible()); |
+ |
+ // Cursor was hidden. |
+ SetCursorCompositionEnabled(true); |
+ ASSERT_TRUE(GetCursorWindow()); |
+ EXPECT_FALSE(GetCursorWindow()->IsVisible()); |
+ |
+ // Goback to normal cursor and show the cursor. |
+ SetCursorCompositionEnabled(false); |
+ ASSERT_FALSE(GetCursorWindow()); |
+ ASSERT_FALSE(client->IsCursorVisible()); |
+ client->ShowCursor(); |
+ ASSERT_TRUE(client->IsCursorVisible()); |
+ |
+ // Cursor was shown. |
+ SetCursorCompositionEnabled(true); |
+ ASSERT_TRUE(GetCursorWindow()); |
+ EXPECT_TRUE(GetCursorWindow()->IsVisible()); |
+} |
+#endif |
+ |
} // namespace ash |