OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 display->GetWindowManagerDisplayRootForUser(user_id); | 48 display->GetWindowManagerDisplayRootForUser(user_id); |
49 return display_root ? display_root->window_manager_state() : nullptr; | 49 return display_root ? display_root->window_manager_state() : nullptr; |
50 } | 50 } |
51 | 51 |
52 } // namespace | 52 } // namespace |
53 | 53 |
54 // ----------------------------------------------------------------------------- | 54 // ----------------------------------------------------------------------------- |
55 | 55 |
56 class DisplayTest : public testing::Test { | 56 class DisplayTest : public testing::Test { |
57 public: | 57 public: |
58 DisplayTest() : cursor_id_(0), platform_display_factory_(&cursor_id_) {} | 58 DisplayTest() {} |
59 ~DisplayTest() override {} | 59 ~DisplayTest() override {} |
60 | 60 |
| 61 WindowServer* window_server() { return ws_test_helper_.window_server(); } |
| 62 TestWindowServerDelegate* window_server_delegate() { |
| 63 return ws_test_helper_.window_server_delegate(); |
| 64 } |
| 65 |
61 protected: | 66 protected: |
62 // testing::Test: | 67 // testing::Test: |
63 void SetUp() override { | 68 void SetUp() override { |
64 PlatformDisplay::set_factory_for_testing(&platform_display_factory_); | 69 window_server()->user_id_tracker()->AddUserId(kTestId1); |
65 window_server_.reset(new WindowServer(&window_server_delegate_)); | 70 window_server()->user_id_tracker()->AddUserId(kTestId2); |
66 window_server_delegate_.set_window_server(window_server_.get()); | |
67 window_server_->user_id_tracker()->AddUserId(kTestId1); | |
68 window_server_->user_id_tracker()->AddUserId(kTestId2); | |
69 } | 71 } |
70 | 72 |
71 protected: | |
72 int32_t cursor_id_; | |
73 TestPlatformDisplayFactory platform_display_factory_; | |
74 TestWindowServerDelegate window_server_delegate_; | |
75 std::unique_ptr<WindowServer> window_server_; | |
76 base::MessageLoop message_loop_; | |
77 | |
78 private: | 73 private: |
| 74 WindowServerTestHelper ws_test_helper_; |
79 DISALLOW_COPY_AND_ASSIGN(DisplayTest); | 75 DISALLOW_COPY_AND_ASSIGN(DisplayTest); |
80 }; | 76 }; |
81 | 77 |
82 TEST_F(DisplayTest, CallsCreateDefaultDisplays) { | 78 TEST_F(DisplayTest, CallsCreateDefaultDisplays) { |
83 const int kNumHostsToCreate = 2; | 79 const int kNumHostsToCreate = 2; |
84 window_server_delegate_.set_num_displays_to_create(kNumHostsToCreate); | 80 window_server_delegate()->set_num_displays_to_create(kNumHostsToCreate); |
85 | 81 |
86 DisplayManager* display_manager = window_server_->display_manager(); | 82 DisplayManager* display_manager = window_server()->display_manager(); |
87 WindowManagerWindowTreeFactorySetTestApi( | 83 WindowManagerWindowTreeFactorySetTestApi( |
88 window_server_->window_manager_window_tree_factory_set()) | 84 window_server()->window_manager_window_tree_factory_set()) |
89 .Add(kTestId1); | 85 .Add(kTestId1); |
90 // The first register should trigger creation of the default | 86 // The first register should trigger creation of the default |
91 // Displays. There should be kNumHostsToCreate Displays. | 87 // Displays. There should be kNumHostsToCreate Displays. |
92 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate), | 88 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate), |
93 display_manager->displays().size()); | 89 display_manager->displays().size()); |
94 | 90 |
95 // Each host should have a WindowManagerState for kTestId1. | 91 // Each host should have a WindowManagerState for kTestId1. |
96 for (Display* display : display_manager->displays()) { | 92 for (Display* display : display_manager->displays()) { |
97 EXPECT_EQ(1u, display->num_window_manger_states()); | 93 EXPECT_EQ(1u, display->num_window_manger_states()); |
98 EXPECT_TRUE(GetWindowManagerStateForUser(display, kTestId1)); | 94 EXPECT_TRUE(GetWindowManagerStateForUser(display, kTestId1)); |
99 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId2)); | 95 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId2)); |
100 } | 96 } |
101 | 97 |
102 // Add another registry, should trigger creation of another wm. | 98 // Add another registry, should trigger creation of another wm. |
103 WindowManagerWindowTreeFactorySetTestApi( | 99 WindowManagerWindowTreeFactorySetTestApi( |
104 window_server_->window_manager_window_tree_factory_set()) | 100 window_server()->window_manager_window_tree_factory_set()) |
105 .Add(kTestId2); | 101 .Add(kTestId2); |
106 for (Display* display : display_manager->displays()) { | 102 for (Display* display : display_manager->displays()) { |
107 ASSERT_EQ(2u, display->num_window_manger_states()); | 103 ASSERT_EQ(2u, display->num_window_manger_states()); |
108 WindowManagerDisplayRoot* root1 = | 104 WindowManagerDisplayRoot* root1 = |
109 display->GetWindowManagerDisplayRootForUser(kTestId1); | 105 display->GetWindowManagerDisplayRootForUser(kTestId1); |
110 ASSERT_TRUE(root1); | 106 ASSERT_TRUE(root1); |
111 WindowManagerDisplayRoot* root2 = | 107 WindowManagerDisplayRoot* root2 = |
112 display->GetWindowManagerDisplayRootForUser(kTestId2); | 108 display->GetWindowManagerDisplayRootForUser(kTestId2); |
113 ASSERT_TRUE(root2); | 109 ASSERT_TRUE(root2); |
114 // Verify the two states have different roots. | 110 // Verify the two states have different roots. |
115 EXPECT_NE(root1, root2); | 111 EXPECT_NE(root1, root2); |
116 EXPECT_NE(root1->root(), root2->root()); | 112 EXPECT_NE(root1->root(), root2->root()); |
117 } | 113 } |
118 } | 114 } |
119 | 115 |
120 TEST_F(DisplayTest, Destruction) { | 116 TEST_F(DisplayTest, Destruction) { |
121 window_server_delegate_.set_num_displays_to_create(1); | 117 window_server_delegate()->set_num_displays_to_create(1); |
122 | 118 |
123 WindowManagerWindowTreeFactorySetTestApi( | 119 WindowManagerWindowTreeFactorySetTestApi( |
124 window_server_->window_manager_window_tree_factory_set()) | 120 window_server()->window_manager_window_tree_factory_set()) |
125 .Add(kTestId1); | 121 .Add(kTestId1); |
126 | 122 |
127 // Add another registry, should trigger creation of another wm. | 123 // Add another registry, should trigger creation of another wm. |
128 DisplayManager* display_manager = window_server_->display_manager(); | 124 DisplayManager* display_manager = window_server()->display_manager(); |
129 WindowManagerWindowTreeFactorySetTestApi( | 125 WindowManagerWindowTreeFactorySetTestApi( |
130 window_server_->window_manager_window_tree_factory_set()) | 126 window_server()->window_manager_window_tree_factory_set()) |
131 .Add(kTestId2); | 127 .Add(kTestId2); |
132 ASSERT_EQ(1u, display_manager->displays().size()); | 128 ASSERT_EQ(1u, display_manager->displays().size()); |
133 Display* display = *display_manager->displays().begin(); | 129 Display* display = *display_manager->displays().begin(); |
134 ASSERT_EQ(2u, display->num_window_manger_states()); | 130 ASSERT_EQ(2u, display->num_window_manger_states()); |
135 // There should be two trees, one for each windowmanager. | 131 // There should be two trees, one for each windowmanager. |
136 EXPECT_EQ(2u, window_server_->num_trees()); | 132 EXPECT_EQ(2u, window_server()->num_trees()); |
137 | 133 |
138 { | 134 { |
139 WindowManagerState* state = GetWindowManagerStateForUser(display, kTestId1); | 135 WindowManagerState* state = GetWindowManagerStateForUser(display, kTestId1); |
140 // Destroy the tree associated with |state|. Should result in deleting | 136 // Destroy the tree associated with |state|. Should result in deleting |
141 // |state|. | 137 // |state|. |
142 window_server_->DestroyTree(state->window_tree()); | 138 window_server()->DestroyTree(state->window_tree()); |
143 ASSERT_EQ(1u, display->num_window_manger_states()); | 139 ASSERT_EQ(1u, display->num_window_manger_states()); |
144 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId1)); | 140 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId1)); |
145 EXPECT_EQ(1u, display_manager->displays().size()); | 141 EXPECT_EQ(1u, display_manager->displays().size()); |
146 EXPECT_EQ(1u, window_server_->num_trees()); | 142 EXPECT_EQ(1u, window_server()->num_trees()); |
147 } | 143 } |
148 | 144 |
149 EXPECT_FALSE(window_server_delegate_.got_on_no_more_displays()); | 145 EXPECT_FALSE(window_server_delegate()->got_on_no_more_displays()); |
150 window_server_->display_manager()->DestroyDisplay(display); | 146 window_server()->display_manager()->DestroyDisplay(display); |
151 // There is still one tree left. | 147 // There is still one tree left. |
152 EXPECT_EQ(1u, window_server_->num_trees()); | 148 EXPECT_EQ(1u, window_server()->num_trees()); |
153 EXPECT_TRUE(window_server_delegate_.got_on_no_more_displays()); | 149 EXPECT_TRUE(window_server_delegate()->got_on_no_more_displays()); |
154 } | 150 } |
155 | 151 |
156 TEST_F(DisplayTest, EventStateResetOnUserSwitch) { | 152 TEST_F(DisplayTest, EventStateResetOnUserSwitch) { |
157 window_server_delegate_.set_num_displays_to_create(1); | 153 window_server_delegate()->set_num_displays_to_create(1); |
158 | 154 |
159 WindowManagerWindowTreeFactorySetTestApi( | 155 WindowManagerWindowTreeFactorySetTestApi( |
160 window_server_->window_manager_window_tree_factory_set()) | 156 window_server()->window_manager_window_tree_factory_set()) |
161 .Add(kTestId1); | 157 .Add(kTestId1); |
162 WindowManagerWindowTreeFactorySetTestApi( | 158 WindowManagerWindowTreeFactorySetTestApi( |
163 window_server_->window_manager_window_tree_factory_set()) | 159 window_server()->window_manager_window_tree_factory_set()) |
164 .Add(kTestId2); | 160 .Add(kTestId2); |
165 | 161 |
166 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); | 162 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); |
167 | 163 |
168 DisplayManager* display_manager = window_server_->display_manager(); | 164 DisplayManager* display_manager = window_server()->display_manager(); |
169 ASSERT_EQ(1u, display_manager->displays().size()); | 165 ASSERT_EQ(1u, display_manager->displays().size()); |
170 Display* display = *display_manager->displays().begin(); | 166 Display* display = *display_manager->displays().begin(); |
171 WindowManagerState* active_wms = | 167 WindowManagerState* active_wms = |
172 display->GetActiveWindowManagerDisplayRoot()->window_manager_state(); | 168 display->GetActiveWindowManagerDisplayRoot()->window_manager_state(); |
173 ASSERT_TRUE(active_wms); | 169 ASSERT_TRUE(active_wms); |
174 EXPECT_EQ(kTestId1, active_wms->user_id()); | 170 EXPECT_EQ(kTestId1, active_wms->user_id()); |
175 | 171 |
176 static_cast<PlatformDisplayDelegate*>(display)->OnEvent(ui::PointerEvent( | 172 static_cast<PlatformDisplayDelegate*>(display)->OnEvent(ui::PointerEvent( |
177 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(20, 25), | 173 ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(20, 25), |
178 gfx::Point(20, 25), base::TimeTicks(), | 174 gfx::Point(20, 25), base::TimeTicks(), |
179 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON))); | 175 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON))); |
180 | 176 |
181 EXPECT_TRUE(EventDispatcherTestApi(active_wms->event_dispatcher()) | 177 EXPECT_TRUE(EventDispatcherTestApi(active_wms->event_dispatcher()) |
182 .AreAnyPointersDown()); | 178 .AreAnyPointersDown()); |
183 EXPECT_EQ(gfx::Point(20, 25), | 179 EXPECT_EQ(gfx::Point(20, 25), |
184 active_wms->event_dispatcher()->mouse_pointer_last_location()); | 180 active_wms->event_dispatcher()->mouse_pointer_last_location()); |
185 | 181 |
186 // Switch the user. Should trigger resetting state in old event dispatcher | 182 // Switch the user. Should trigger resetting state in old event dispatcher |
187 // and update state in new event dispatcher. | 183 // and update state in new event dispatcher. |
188 window_server_->user_id_tracker()->SetActiveUserId(kTestId2); | 184 window_server()->user_id_tracker()->SetActiveUserId(kTestId2); |
189 EXPECT_NE( | 185 EXPECT_NE( |
190 active_wms, | 186 active_wms, |
191 display->GetActiveWindowManagerDisplayRoot()->window_manager_state()); | 187 display->GetActiveWindowManagerDisplayRoot()->window_manager_state()); |
192 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) | 188 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) |
193 .AreAnyPointersDown()); | 189 .AreAnyPointersDown()); |
194 active_wms = | 190 active_wms = |
195 display->GetActiveWindowManagerDisplayRoot()->window_manager_state(); | 191 display->GetActiveWindowManagerDisplayRoot()->window_manager_state(); |
196 EXPECT_EQ(kTestId2, active_wms->user_id()); | 192 EXPECT_EQ(kTestId2, active_wms->user_id()); |
197 EXPECT_EQ(gfx::Point(20, 25), | 193 EXPECT_EQ(gfx::Point(20, 25), |
198 active_wms->event_dispatcher()->mouse_pointer_last_location()); | 194 active_wms->event_dispatcher()->mouse_pointer_last_location()); |
199 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) | 195 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) |
200 .AreAnyPointersDown()); | 196 .AreAnyPointersDown()); |
201 } | 197 } |
202 | 198 |
203 // Verifies capture fails when wm is inactive and succeeds when wm is active. | 199 // Verifies capture fails when wm is inactive and succeeds when wm is active. |
204 TEST_F(DisplayTest, SetCaptureFromWindowManager) { | 200 TEST_F(DisplayTest, SetCaptureFromWindowManager) { |
205 window_server_delegate_.set_num_displays_to_create(1); | 201 window_server_delegate()->set_num_displays_to_create(1); |
206 WindowManagerWindowTreeFactorySetTestApi( | 202 WindowManagerWindowTreeFactorySetTestApi( |
207 window_server_->window_manager_window_tree_factory_set()) | 203 window_server()->window_manager_window_tree_factory_set()) |
208 .Add(kTestId1); | 204 .Add(kTestId1); |
209 WindowManagerWindowTreeFactorySetTestApi( | 205 WindowManagerWindowTreeFactorySetTestApi( |
210 window_server_->window_manager_window_tree_factory_set()) | 206 window_server()->window_manager_window_tree_factory_set()) |
211 .Add(kTestId2); | 207 .Add(kTestId2); |
212 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); | 208 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); |
213 DisplayManager* display_manager = window_server_->display_manager(); | 209 DisplayManager* display_manager = window_server()->display_manager(); |
214 ASSERT_EQ(1u, display_manager->displays().size()); | 210 ASSERT_EQ(1u, display_manager->displays().size()); |
215 Display* display = *display_manager->displays().begin(); | 211 Display* display = *display_manager->displays().begin(); |
216 WindowManagerState* wms_for_id2 = | 212 WindowManagerState* wms_for_id2 = |
217 GetWindowManagerStateForUser(display, kTestId2); | 213 GetWindowManagerStateForUser(display, kTestId2); |
218 ASSERT_TRUE(wms_for_id2); | 214 ASSERT_TRUE(wms_for_id2); |
219 EXPECT_FALSE(wms_for_id2->IsActive()); | 215 EXPECT_FALSE(wms_for_id2->IsActive()); |
220 | 216 |
221 // Create a child of the root that we can set capture on. | 217 // Create a child of the root that we can set capture on. |
222 WindowTree* tree = wms_for_id2->window_tree(); | 218 WindowTree* tree = wms_for_id2->window_tree(); |
223 ClientWindowId child_window_id; | 219 ClientWindowId child_window_id; |
224 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id)); | 220 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id)); |
225 | 221 |
226 WindowTreeTestApi(tree).EnableCapture(); | 222 WindowTreeTestApi(tree).EnableCapture(); |
227 | 223 |
228 // SetCapture() should fail for user id2 as it is inactive. | 224 // SetCapture() should fail for user id2 as it is inactive. |
229 EXPECT_FALSE(tree->SetCapture(child_window_id)); | 225 EXPECT_FALSE(tree->SetCapture(child_window_id)); |
230 | 226 |
231 // Make the second user active and verify capture works. | 227 // Make the second user active and verify capture works. |
232 window_server_->user_id_tracker()->SetActiveUserId(kTestId2); | 228 window_server()->user_id_tracker()->SetActiveUserId(kTestId2); |
233 EXPECT_TRUE(wms_for_id2->IsActive()); | 229 EXPECT_TRUE(wms_for_id2->IsActive()); |
234 EXPECT_TRUE(tree->SetCapture(child_window_id)); | 230 EXPECT_TRUE(tree->SetCapture(child_window_id)); |
235 } | 231 } |
236 | 232 |
237 TEST_F(DisplayTest, FocusFailsForInactiveUser) { | 233 TEST_F(DisplayTest, FocusFailsForInactiveUser) { |
238 window_server_delegate_.set_num_displays_to_create(1); | 234 window_server_delegate()->set_num_displays_to_create(1); |
239 WindowManagerWindowTreeFactorySetTestApi( | 235 WindowManagerWindowTreeFactorySetTestApi( |
240 window_server_->window_manager_window_tree_factory_set()) | 236 window_server()->window_manager_window_tree_factory_set()) |
241 .Add(kTestId1); | 237 .Add(kTestId1); |
242 TestWindowTreeClient* window_tree_client1 = | 238 TestWindowTreeClient* window_tree_client1 = |
243 window_server_delegate_.last_client(); | 239 window_server_delegate()->last_client(); |
244 ASSERT_TRUE(window_tree_client1); | 240 ASSERT_TRUE(window_tree_client1); |
245 WindowManagerWindowTreeFactorySetTestApi( | 241 WindowManagerWindowTreeFactorySetTestApi( |
246 window_server_->window_manager_window_tree_factory_set()) | 242 window_server()->window_manager_window_tree_factory_set()) |
247 .Add(kTestId2); | 243 .Add(kTestId2); |
248 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); | 244 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); |
249 DisplayManager* display_manager = window_server_->display_manager(); | 245 DisplayManager* display_manager = window_server()->display_manager(); |
250 ASSERT_EQ(1u, display_manager->displays().size()); | 246 ASSERT_EQ(1u, display_manager->displays().size()); |
251 Display* display = *display_manager->displays().begin(); | 247 Display* display = *display_manager->displays().begin(); |
252 WindowManagerState* wms_for_id2 = | 248 WindowManagerState* wms_for_id2 = |
253 GetWindowManagerStateForUser(display, kTestId2); | 249 GetWindowManagerStateForUser(display, kTestId2); |
254 wms_for_id2->window_tree()->AddActivationParent( | 250 wms_for_id2->window_tree()->AddActivationParent( |
255 ClientWindowIdForFirstRoot(wms_for_id2->window_tree())); | 251 ClientWindowIdForFirstRoot(wms_for_id2->window_tree())); |
256 ASSERT_TRUE(wms_for_id2); | 252 ASSERT_TRUE(wms_for_id2); |
257 EXPECT_FALSE(wms_for_id2->IsActive()); | 253 EXPECT_FALSE(wms_for_id2->IsActive()); |
258 ClientWindowId child2_id; | 254 ClientWindowId child2_id; |
259 NewWindowInTree(wms_for_id2->window_tree(), &child2_id); | 255 NewWindowInTree(wms_for_id2->window_tree(), &child2_id); |
260 | 256 |
261 // Focus should fail for windows in inactive window managers. | 257 // Focus should fail for windows in inactive window managers. |
262 EXPECT_FALSE(wms_for_id2->window_tree()->SetFocus(child2_id)); | 258 EXPECT_FALSE(wms_for_id2->window_tree()->SetFocus(child2_id)); |
263 | 259 |
264 // Focus should succeed for the active window manager. | 260 // Focus should succeed for the active window manager. |
265 WindowManagerState* wms_for_id1 = | 261 WindowManagerState* wms_for_id1 = |
266 GetWindowManagerStateForUser(display, kTestId1); | 262 GetWindowManagerStateForUser(display, kTestId1); |
267 ASSERT_TRUE(wms_for_id1); | 263 ASSERT_TRUE(wms_for_id1); |
268 wms_for_id1->window_tree()->AddActivationParent( | 264 wms_for_id1->window_tree()->AddActivationParent( |
269 ClientWindowIdForFirstRoot(wms_for_id1->window_tree())); | 265 ClientWindowIdForFirstRoot(wms_for_id1->window_tree())); |
270 ClientWindowId child1_id; | 266 ClientWindowId child1_id; |
271 NewWindowInTree(wms_for_id1->window_tree(), &child1_id); | 267 NewWindowInTree(wms_for_id1->window_tree(), &child1_id); |
272 EXPECT_TRUE(wms_for_id1->IsActive()); | 268 EXPECT_TRUE(wms_for_id1->IsActive()); |
273 EXPECT_TRUE(wms_for_id1->window_tree()->SetFocus(child1_id)); | 269 EXPECT_TRUE(wms_for_id1->window_tree()->SetFocus(child1_id)); |
274 } | 270 } |
275 | 271 |
276 // Verifies a single tree is used for multiple displays. | 272 // Verifies a single tree is used for multiple displays. |
277 TEST_F(DisplayTest, MultipleDisplays) { | 273 TEST_F(DisplayTest, MultipleDisplays) { |
278 window_server_delegate_.set_num_displays_to_create(2); | 274 window_server_delegate()->set_num_displays_to_create(2); |
279 WindowManagerWindowTreeFactorySetTestApi( | 275 WindowManagerWindowTreeFactorySetTestApi( |
280 window_server_->window_manager_window_tree_factory_set()) | 276 window_server()->window_manager_window_tree_factory_set()) |
281 .Add(kTestId1); | 277 .Add(kTestId1); |
282 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); | 278 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); |
283 ASSERT_EQ(1u, window_server_delegate_.bindings()->size()); | 279 ASSERT_EQ(1u, window_server_delegate()->bindings()->size()); |
284 TestWindowTreeBinding* window_tree_binding = | 280 TestWindowTreeBinding* window_tree_binding = |
285 (*window_server_delegate_.bindings())[0]; | 281 (*window_server_delegate()->bindings())[0]; |
286 WindowTree* tree = window_tree_binding->tree(); | 282 WindowTree* tree = window_tree_binding->tree(); |
287 ASSERT_EQ(2u, tree->roots().size()); | 283 ASSERT_EQ(2u, tree->roots().size()); |
288 std::set<const ServerWindow*> roots = tree->roots(); | 284 std::set<const ServerWindow*> roots = tree->roots(); |
289 auto it = roots.begin(); | 285 auto it = roots.begin(); |
290 ServerWindow* root1 = tree->GetWindow((*it)->id()); | 286 ServerWindow* root1 = tree->GetWindow((*it)->id()); |
291 ++it; | 287 ++it; |
292 ServerWindow* root2 = tree->GetWindow((*it)->id()); | 288 ServerWindow* root2 = tree->GetWindow((*it)->id()); |
293 ASSERT_NE(root1, root2); | 289 ASSERT_NE(root1, root2); |
294 Display* display1 = tree->GetDisplay(root1); | 290 Display* display1 = tree->GetDisplay(root1); |
295 WindowManagerState* display1_wms = | 291 WindowManagerState* display1_wms = |
296 display1->GetWindowManagerDisplayRootForUser(kTestId1) | 292 display1->GetWindowManagerDisplayRootForUser(kTestId1) |
297 ->window_manager_state(); | 293 ->window_manager_state(); |
298 Display* display2 = tree->GetDisplay(root2); | 294 Display* display2 = tree->GetDisplay(root2); |
299 WindowManagerState* display2_wms = | 295 WindowManagerState* display2_wms = |
300 display2->GetWindowManagerDisplayRootForUser(kTestId1) | 296 display2->GetWindowManagerDisplayRootForUser(kTestId1) |
301 ->window_manager_state(); | 297 ->window_manager_state(); |
302 EXPECT_EQ(display1_wms->window_tree(), display2_wms->window_tree()); | 298 EXPECT_EQ(display1_wms->window_tree(), display2_wms->window_tree()); |
303 } | 299 } |
304 | 300 |
305 } // namespace test | 301 } // namespace test |
306 } // namespace ws | 302 } // namespace ws |
307 } // namespace ui | 303 } // namespace ui |
OLD | NEW |