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

Unified Diff: services/ui/ws/display_unittest.cc

Issue 2857963003: Add {Lock,Unlock,Show,Hide}Cursor() to the window manager mojom. (Closed)
Patch Set: General cleanup. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: services/ui/ws/display_unittest.cc
diff --git a/services/ui/ws/display_unittest.cc b/services/ui/ws/display_unittest.cc
index 8a832269a63d3828dcbd5abdb1673d86fbcba2c8..26ecb2fd827c538c54b7ec9a738d4eb601321e6f 100644
--- a/services/ui/ws/display_unittest.cc
+++ b/services/ui/ws/display_unittest.cc
@@ -25,6 +25,7 @@
#include "services/ui/ws/window_tree.h"
#include "services/ui/ws/window_tree_binding.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/cursor/cursor.h"
#include "ui/display/display.h"
#include "ui/events/event.h"
#include "ui/gfx/geometry/rect.h"
@@ -103,6 +104,7 @@ class DisplayTest : public testing::Test {
return ws_test_helper_.window_server_delegate();
}
TestScreenManager& screen_manager() { return screen_manager_; }
+ const ui::CursorData& cursor() { return ws_test_helper_.cursor(); }
protected:
// testing::Test:
@@ -428,6 +430,115 @@ TEST_F(DisplayTest, DestroyingDisplayDoesntDelete) {
EXPECT_TRUE(secondary_root_destroyed);
}
+TEST_F(DisplayTest, CursorLockTest) {
+ AddWindowManager(window_server(), kTestId1);
+ const int64_t display_id =
+ screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f));
+
+ ASSERT_EQ(1u, display_manager()->displays().size());
+ Display* display = display_manager()->GetDisplayById(display_id);
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kWait));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->LockCursor();
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kCell));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->UnlockCursor();
+
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kCell));
+}
+
+TEST_F(DisplayTest, CursorVisibilityTest) {
+ AddWindowManager(window_server(), kTestId1);
+ const int64_t display_id =
+ screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f));
+
+ ASSERT_EQ(1u, display_manager()->displays().size());
+ Display* display = display_manager()->GetDisplayById(display_id);
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kWait));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->HideCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kNone));
+
+ display->ShowCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->HideCursor();
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kCell));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kNone));
+
+ display->ShowCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kCell));
+}
+
+TEST_F(DisplayTest, CursorOverrideTest) {
+ AddWindowManager(window_server(), kTestId1);
+ const int64_t display_id =
+ screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f));
+
+ ASSERT_EQ(1u, display_manager()->displays().size());
+ Display* display = display_manager()->GetDisplayById(display_id);
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kWait));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->SetGlobalOverrideCursor(ui::CursorData(ui::CursorType::kCell));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kCell));
+
+ display->SetGlobalOverrideCursor(base::nullopt);
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+}
+
+TEST_F(DisplayTest, CursorOverrideLockTest) {
+ // This test is meant to mimic the calls in ScreenshotController when it sets
+ // a cursor.
+ AddWindowManager(window_server(), kTestId1);
+ const int64_t display_id =
+ screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f));
+
+ ASSERT_EQ(1u, display_manager()->displays().size());
+ Display* display = display_manager()->GetDisplayById(display_id);
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kWait));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->SetGlobalOverrideCursor(ui::CursorData(ui::CursorType::kCross));
+ display->LockCursor();
+ display->SetGlobalOverrideCursor(base::nullopt);
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kCross));
+
+ display->UnlockCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+}
+
+TEST_F(DisplayTest, CursorOverrideVisibilityTest) {
+ // This test is meant to mimic the calls in ScreenshotController when it
+ // hides the cursor.
+ AddWindowManager(window_server(), kTestId1);
+ const int64_t display_id =
+ screen_manager().AddDisplay(MakeDisplay(0, 0, 1024, 768, 1.0f));
+
+ ASSERT_EQ(1u, display_manager()->displays().size());
+ Display* display = display_manager()->GetDisplayById(display_id);
+
+ display->UpdateNativeCursor(ui::CursorData(ui::CursorType::kWait));
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+
+ display->HideCursor();
+ display->LockCursor();
+ display->SetGlobalOverrideCursor(base::nullopt);
+ display->ShowCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kNone));
+
+ display->UnlockCursor();
+ EXPECT_TRUE(cursor().IsType(ui::CursorType::kWait));
+}
+
} // namespace test
} // namespace ws
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698