Chromium Code Reviews| Index: services/ui/ws/window_tree_unittest.cc |
| diff --git a/services/ui/ws/window_tree_unittest.cc b/services/ui/ws/window_tree_unittest.cc |
| index 83b9de099926e015bba67ebad73b2c511145f941..8350e1f96b1faa40670fd8cf4c38805c88756529 100644 |
| --- a/services/ui/ws/window_tree_unittest.cc |
| +++ b/services/ui/ws/window_tree_unittest.cc |
| @@ -1493,6 +1493,45 @@ TEST_F(WindowTreeTest, SetModalTypeForwardedToWindowManager) { |
| EXPECT_TRUE(wm_internal.on_set_modal_type_called()); |
| } |
| +TEST_F(WindowTreeTest, TestWindowManagerSettingCursorLocation) { |
| + const ClientWindowId embed_window_id = BuildClientWindowId(wm_tree(), 1); |
| + EXPECT_TRUE( |
| + wm_tree()->NewWindow(embed_window_id, ServerWindow::Properties())); |
| + ServerWindow* embed_window = wm_tree()->GetWindowByClientId(embed_window_id); |
| + ASSERT_TRUE(embed_window); |
| + EXPECT_TRUE(wm_tree()->SetWindowVisibility(embed_window_id, true)); |
| + ASSERT_TRUE(FirstRoot(wm_tree())); |
| + const ClientWindowId wm_root_id = FirstRootId(wm_tree()); |
| + EXPECT_TRUE(wm_tree()->AddWindow(wm_root_id, embed_window_id)); |
| + ServerWindow* wm_root = FirstRoot(wm_tree()); |
| + ASSERT_TRUE(wm_root); |
| + wm_root->SetBounds(gfx::Rect(0, 0, 100, 100)); |
| + // This tests expects |wm_root| to be a possible target. |
| + wm_root->set_event_targeting_policy( |
| + mojom::EventTargetingPolicy::TARGET_AND_DESCENDANTS); |
| + display()->root_window()->SetBounds(gfx::Rect(0, 0, 100, 100)); |
| + mojom::WindowTreeClientPtr client; |
| + wm_client()->Bind(mojo::MakeRequest(&client)); |
| + const uint32_t embed_flags = 0; |
| + wm_tree()->Embed(embed_window_id, std::move(client), embed_flags); |
| + WindowTree* tree1 = window_server()->GetTreeWithRoot(embed_window); |
| + ASSERT_TRUE(tree1 != nullptr); |
| + ASSERT_NE(tree1, wm_tree()); |
| + |
| + embed_window->SetBounds(gfx::Rect(20, 20, 20, 20)); |
| + embed_window->SetCursor(ui::CursorData(ui::CursorType::kIBeam)); |
| + |
| + // Because the cursor is still at the origin, changing the cursor shouldn't |
| + // have switched to ibeam. |
| + EXPECT_EQ(ui::CursorType::kPointer, cursor_type()); |
| + |
| + // Have the window manager mvoe the cursor within the embed window. |
|
sky
2017/06/02 13:10:07
mvoe -> move
|
| + static_cast<mojom::WindowManagerClient*>(wm_tree()) |
| + ->WmMoveCursorToDisplayLocation(gfx::Point(21, 21), -1); |
| + |
| + EXPECT_EQ(ui::CursorType::kIBeam, cursor_type()); |
| +} |
| + |
| using WindowTreeShutdownTest = testing::Test; |
| // Makes sure WindowTreeClient doesn't get any messages during shutdown. |