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

Side by Side Diff: services/ui/ws/display_unittest.cc

Issue 2481013008: Delete WindowManagerWindowTreeFactorySetTestApi. (Closed)
Patch Set: Make const ref. Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « services/ui/ws/cursor_unittest.cc ('k') | services/ui/ws/test_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 private: 73 private:
74 WindowServerTestHelper ws_test_helper_; 74 WindowServerTestHelper ws_test_helper_;
75 DISALLOW_COPY_AND_ASSIGN(DisplayTest); 75 DISALLOW_COPY_AND_ASSIGN(DisplayTest);
76 }; 76 };
77 77
78 TEST_F(DisplayTest, CallsCreateDefaultDisplays) { 78 TEST_F(DisplayTest, CallsCreateDefaultDisplays) {
79 const int kNumHostsToCreate = 2; 79 const int kNumHostsToCreate = 2;
80 window_server_delegate()->CreateDisplays(kNumHostsToCreate); 80 window_server_delegate()->CreateDisplays(kNumHostsToCreate);
81 81
82 DisplayManager* display_manager = window_server()->display_manager(); 82 DisplayManager* display_manager = window_server()->display_manager();
83 WindowManagerWindowTreeFactorySetTestApi( 83 AddWindowManager(window_server(), kTestId1);
84 window_server()->window_manager_window_tree_factory_set())
85 .Add(kTestId1);
86 // The first register should trigger creation of the default 84 // The first register should trigger creation of the default
87 // Displays. There should be kNumHostsToCreate Displays. 85 // Displays. There should be kNumHostsToCreate Displays.
88 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate), 86 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate),
89 display_manager->displays().size()); 87 display_manager->displays().size());
90 88
91 // Each host should have a WindowManagerState for kTestId1. 89 // Each host should have a WindowManagerState for kTestId1.
92 for (Display* display : display_manager->displays()) { 90 for (Display* display : display_manager->displays()) {
93 EXPECT_EQ(1u, display->num_window_manger_states()); 91 EXPECT_EQ(1u, display->num_window_manger_states());
94 EXPECT_TRUE(GetWindowManagerStateForUser(display, kTestId1)); 92 EXPECT_TRUE(GetWindowManagerStateForUser(display, kTestId1));
95 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId2)); 93 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId2));
96 } 94 }
97 95
98 // Add another registry, should trigger creation of another wm. 96 // Add another registry, should trigger creation of another wm.
99 WindowManagerWindowTreeFactorySetTestApi( 97 AddWindowManager(window_server(), kTestId2);
100 window_server()->window_manager_window_tree_factory_set())
101 .Add(kTestId2);
102 for (Display* display : display_manager->displays()) { 98 for (Display* display : display_manager->displays()) {
103 ASSERT_EQ(2u, display->num_window_manger_states()); 99 ASSERT_EQ(2u, display->num_window_manger_states());
104 WindowManagerDisplayRoot* root1 = 100 WindowManagerDisplayRoot* root1 =
105 display->GetWindowManagerDisplayRootForUser(kTestId1); 101 display->GetWindowManagerDisplayRootForUser(kTestId1);
106 ASSERT_TRUE(root1); 102 ASSERT_TRUE(root1);
107 WindowManagerDisplayRoot* root2 = 103 WindowManagerDisplayRoot* root2 =
108 display->GetWindowManagerDisplayRootForUser(kTestId2); 104 display->GetWindowManagerDisplayRootForUser(kTestId2);
109 ASSERT_TRUE(root2); 105 ASSERT_TRUE(root2);
110 // Verify the two states have different roots. 106 // Verify the two states have different roots.
111 EXPECT_NE(root1, root2); 107 EXPECT_NE(root1, root2);
112 EXPECT_NE(root1->root(), root2->root()); 108 EXPECT_NE(root1->root(), root2->root());
113 } 109 }
114 } 110 }
115 111
116 TEST_F(DisplayTest, Destruction) { 112 TEST_F(DisplayTest, Destruction) {
117 window_server_delegate()->CreateDisplays(1); 113 window_server_delegate()->CreateDisplays(1);
118 114
119 WindowManagerWindowTreeFactorySetTestApi( 115 AddWindowManager(window_server(), kTestId1);
120 window_server()->window_manager_window_tree_factory_set())
121 .Add(kTestId1);
122 116
123 // Add another registry, should trigger creation of another wm. 117 // Add another registry, should trigger creation of another wm.
124 DisplayManager* display_manager = window_server()->display_manager(); 118 DisplayManager* display_manager = window_server()->display_manager();
125 WindowManagerWindowTreeFactorySetTestApi( 119 AddWindowManager(window_server(), kTestId2);
126 window_server()->window_manager_window_tree_factory_set())
127 .Add(kTestId2);
128 ASSERT_EQ(1u, display_manager->displays().size()); 120 ASSERT_EQ(1u, display_manager->displays().size());
129 Display* display = *display_manager->displays().begin(); 121 Display* display = *display_manager->displays().begin();
130 ASSERT_EQ(2u, display->num_window_manger_states()); 122 ASSERT_EQ(2u, display->num_window_manger_states());
131 // There should be two trees, one for each windowmanager. 123 // There should be two trees, one for each windowmanager.
132 EXPECT_EQ(2u, window_server()->num_trees()); 124 EXPECT_EQ(2u, window_server()->num_trees());
133 125
134 { 126 {
135 WindowManagerState* state = GetWindowManagerStateForUser(display, kTestId1); 127 WindowManagerState* state = GetWindowManagerStateForUser(display, kTestId1);
136 // Destroy the tree associated with |state|. Should result in deleting 128 // Destroy the tree associated with |state|. Should result in deleting
137 // |state|. 129 // |state|.
138 window_server()->DestroyTree(state->window_tree()); 130 window_server()->DestroyTree(state->window_tree());
139 ASSERT_EQ(1u, display->num_window_manger_states()); 131 ASSERT_EQ(1u, display->num_window_manger_states());
140 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId1)); 132 EXPECT_FALSE(GetWindowManagerStateForUser(display, kTestId1));
141 EXPECT_EQ(1u, display_manager->displays().size()); 133 EXPECT_EQ(1u, display_manager->displays().size());
142 EXPECT_EQ(1u, window_server()->num_trees()); 134 EXPECT_EQ(1u, window_server()->num_trees());
143 } 135 }
144 136
145 EXPECT_FALSE(window_server_delegate()->got_on_no_more_displays()); 137 EXPECT_FALSE(window_server_delegate()->got_on_no_more_displays());
146 window_server()->display_manager()->DestroyDisplay(display); 138 window_server()->display_manager()->DestroyDisplay(display);
147 // There is still one tree left. 139 // There is still one tree left.
148 EXPECT_EQ(1u, window_server()->num_trees()); 140 EXPECT_EQ(1u, window_server()->num_trees());
149 EXPECT_TRUE(window_server_delegate()->got_on_no_more_displays()); 141 EXPECT_TRUE(window_server_delegate()->got_on_no_more_displays());
150 } 142 }
151 143
152 TEST_F(DisplayTest, EventStateResetOnUserSwitch) { 144 TEST_F(DisplayTest, EventStateResetOnUserSwitch) {
153 window_server_delegate()->CreateDisplays(1); 145 window_server_delegate()->CreateDisplays(1);
154 146
155 WindowManagerWindowTreeFactorySetTestApi( 147 AddWindowManager(window_server(), kTestId1);
156 window_server()->window_manager_window_tree_factory_set()) 148 AddWindowManager(window_server(), kTestId2);
157 .Add(kTestId1);
158 WindowManagerWindowTreeFactorySetTestApi(
159 window_server()->window_manager_window_tree_factory_set())
160 .Add(kTestId2);
161 149
162 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); 150 window_server()->user_id_tracker()->SetActiveUserId(kTestId1);
163 151
164 DisplayManager* display_manager = window_server()->display_manager(); 152 DisplayManager* display_manager = window_server()->display_manager();
165 ASSERT_EQ(1u, display_manager->displays().size()); 153 ASSERT_EQ(1u, display_manager->displays().size());
166 Display* display = *display_manager->displays().begin(); 154 Display* display = *display_manager->displays().begin();
167 WindowManagerState* active_wms = 155 WindowManagerState* active_wms =
168 display->GetActiveWindowManagerDisplayRoot()->window_manager_state(); 156 display->GetActiveWindowManagerDisplayRoot()->window_manager_state();
169 ASSERT_TRUE(active_wms); 157 ASSERT_TRUE(active_wms);
170 EXPECT_EQ(kTestId1, active_wms->user_id()); 158 EXPECT_EQ(kTestId1, active_wms->user_id());
(...skipping 21 matching lines...) Expand all
192 EXPECT_EQ(kTestId2, active_wms->user_id()); 180 EXPECT_EQ(kTestId2, active_wms->user_id());
193 EXPECT_EQ(gfx::Point(20, 25), 181 EXPECT_EQ(gfx::Point(20, 25),
194 active_wms->event_dispatcher()->mouse_pointer_last_location()); 182 active_wms->event_dispatcher()->mouse_pointer_last_location());
195 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) 183 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher())
196 .AreAnyPointersDown()); 184 .AreAnyPointersDown());
197 } 185 }
198 186
199 // Verifies capture fails when wm is inactive and succeeds when wm is active. 187 // Verifies capture fails when wm is inactive and succeeds when wm is active.
200 TEST_F(DisplayTest, SetCaptureFromWindowManager) { 188 TEST_F(DisplayTest, SetCaptureFromWindowManager) {
201 window_server_delegate()->CreateDisplays(1); 189 window_server_delegate()->CreateDisplays(1);
202 WindowManagerWindowTreeFactorySetTestApi( 190 AddWindowManager(window_server(), kTestId1);
203 window_server()->window_manager_window_tree_factory_set()) 191 AddWindowManager(window_server(), kTestId2);
204 .Add(kTestId1);
205 WindowManagerWindowTreeFactorySetTestApi(
206 window_server()->window_manager_window_tree_factory_set())
207 .Add(kTestId2);
208 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); 192 window_server()->user_id_tracker()->SetActiveUserId(kTestId1);
209 DisplayManager* display_manager = window_server()->display_manager(); 193 DisplayManager* display_manager = window_server()->display_manager();
210 ASSERT_EQ(1u, display_manager->displays().size()); 194 ASSERT_EQ(1u, display_manager->displays().size());
211 Display* display = *display_manager->displays().begin(); 195 Display* display = *display_manager->displays().begin();
212 WindowManagerState* wms_for_id2 = 196 WindowManagerState* wms_for_id2 =
213 GetWindowManagerStateForUser(display, kTestId2); 197 GetWindowManagerStateForUser(display, kTestId2);
214 ASSERT_TRUE(wms_for_id2); 198 ASSERT_TRUE(wms_for_id2);
215 EXPECT_FALSE(wms_for_id2->IsActive()); 199 EXPECT_FALSE(wms_for_id2->IsActive());
216 200
217 // Create a child of the root that we can set capture on. 201 // Create a child of the root that we can set capture on.
218 WindowTree* tree = wms_for_id2->window_tree(); 202 WindowTree* tree = wms_for_id2->window_tree();
219 ClientWindowId child_window_id; 203 ClientWindowId child_window_id;
220 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id)); 204 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id));
221 205
222 WindowTreeTestApi(tree).EnableCapture(); 206 WindowTreeTestApi(tree).EnableCapture();
223 207
224 // SetCapture() should fail for user id2 as it is inactive. 208 // SetCapture() should fail for user id2 as it is inactive.
225 EXPECT_FALSE(tree->SetCapture(child_window_id)); 209 EXPECT_FALSE(tree->SetCapture(child_window_id));
226 210
227 // Make the second user active and verify capture works. 211 // Make the second user active and verify capture works.
228 window_server()->user_id_tracker()->SetActiveUserId(kTestId2); 212 window_server()->user_id_tracker()->SetActiveUserId(kTestId2);
229 EXPECT_TRUE(wms_for_id2->IsActive()); 213 EXPECT_TRUE(wms_for_id2->IsActive());
230 EXPECT_TRUE(tree->SetCapture(child_window_id)); 214 EXPECT_TRUE(tree->SetCapture(child_window_id));
231 } 215 }
232 216
233 TEST_F(DisplayTest, FocusFailsForInactiveUser) { 217 TEST_F(DisplayTest, FocusFailsForInactiveUser) {
234 window_server_delegate()->CreateDisplays(1); 218 window_server_delegate()->CreateDisplays(1);
235 WindowManagerWindowTreeFactorySetTestApi( 219 AddWindowManager(window_server(), kTestId1);
236 window_server()->window_manager_window_tree_factory_set())
237 .Add(kTestId1);
238 TestWindowTreeClient* window_tree_client1 = 220 TestWindowTreeClient* window_tree_client1 =
239 window_server_delegate()->last_client(); 221 window_server_delegate()->last_client();
240 ASSERT_TRUE(window_tree_client1); 222 ASSERT_TRUE(window_tree_client1);
241 WindowManagerWindowTreeFactorySetTestApi( 223 AddWindowManager(window_server(), kTestId2);
242 window_server()->window_manager_window_tree_factory_set())
243 .Add(kTestId2);
244 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); 224 window_server()->user_id_tracker()->SetActiveUserId(kTestId1);
245 DisplayManager* display_manager = window_server()->display_manager(); 225 DisplayManager* display_manager = window_server()->display_manager();
246 ASSERT_EQ(1u, display_manager->displays().size()); 226 ASSERT_EQ(1u, display_manager->displays().size());
247 Display* display = *display_manager->displays().begin(); 227 Display* display = *display_manager->displays().begin();
248 WindowManagerState* wms_for_id2 = 228 WindowManagerState* wms_for_id2 =
249 GetWindowManagerStateForUser(display, kTestId2); 229 GetWindowManagerStateForUser(display, kTestId2);
250 wms_for_id2->window_tree()->AddActivationParent( 230 wms_for_id2->window_tree()->AddActivationParent(
251 ClientWindowIdForFirstRoot(wms_for_id2->window_tree())); 231 ClientWindowIdForFirstRoot(wms_for_id2->window_tree()));
252 ASSERT_TRUE(wms_for_id2); 232 ASSERT_TRUE(wms_for_id2);
253 EXPECT_FALSE(wms_for_id2->IsActive()); 233 EXPECT_FALSE(wms_for_id2->IsActive());
(...skipping 11 matching lines...) Expand all
265 ClientWindowIdForFirstRoot(wms_for_id1->window_tree())); 245 ClientWindowIdForFirstRoot(wms_for_id1->window_tree()));
266 ClientWindowId child1_id; 246 ClientWindowId child1_id;
267 NewWindowInTree(wms_for_id1->window_tree(), &child1_id); 247 NewWindowInTree(wms_for_id1->window_tree(), &child1_id);
268 EXPECT_TRUE(wms_for_id1->IsActive()); 248 EXPECT_TRUE(wms_for_id1->IsActive());
269 EXPECT_TRUE(wms_for_id1->window_tree()->SetFocus(child1_id)); 249 EXPECT_TRUE(wms_for_id1->window_tree()->SetFocus(child1_id));
270 } 250 }
271 251
272 // Verifies a single tree is used for multiple displays. 252 // Verifies a single tree is used for multiple displays.
273 TEST_F(DisplayTest, MultipleDisplays) { 253 TEST_F(DisplayTest, MultipleDisplays) {
274 window_server_delegate()->CreateDisplays(2); 254 window_server_delegate()->CreateDisplays(2);
275 WindowManagerWindowTreeFactorySetTestApi( 255 AddWindowManager(window_server(), kTestId1);
276 window_server()->window_manager_window_tree_factory_set())
277 .Add(kTestId1);
278 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); 256 window_server()->user_id_tracker()->SetActiveUserId(kTestId1);
279 ASSERT_EQ(1u, window_server_delegate()->bindings()->size()); 257 ASSERT_EQ(1u, window_server_delegate()->bindings()->size());
280 TestWindowTreeBinding* window_tree_binding = 258 TestWindowTreeBinding* window_tree_binding =
281 (*window_server_delegate()->bindings())[0]; 259 (*window_server_delegate()->bindings())[0];
282 WindowTree* tree = window_tree_binding->tree(); 260 WindowTree* tree = window_tree_binding->tree();
283 ASSERT_EQ(2u, tree->roots().size()); 261 ASSERT_EQ(2u, tree->roots().size());
284 std::set<const ServerWindow*> roots = tree->roots(); 262 std::set<const ServerWindow*> roots = tree->roots();
285 auto it = roots.begin(); 263 auto it = roots.begin();
286 ServerWindow* root1 = tree->GetWindow((*it)->id()); 264 ServerWindow* root1 = tree->GetWindow((*it)->id());
287 ++it; 265 ++it;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 bool* destroyed_; 321 bool* destroyed_;
344 322
345 DISALLOW_COPY_AND_ASSIGN(ServerWindowDestructionObserver); 323 DISALLOW_COPY_AND_ASSIGN(ServerWindowDestructionObserver);
346 }; 324 };
347 325
348 } // namespace 326 } // namespace
349 327
350 // Assertions around destroying a secondary display. 328 // Assertions around destroying a secondary display.
351 TEST_F(DisplayTest, DestroyingDisplayDoesntDelete) { 329 TEST_F(DisplayTest, DestroyingDisplayDoesntDelete) {
352 window_server_delegate()->CreateDisplays(2); 330 window_server_delegate()->CreateDisplays(2);
353 WindowManagerWindowTreeFactorySetTestApi( 331 AddWindowManager(window_server(), kTestId1);
354 window_server()->window_manager_window_tree_factory_set())
355 .Add(kTestId1);
356 window_server()->user_id_tracker()->SetActiveUserId(kTestId1); 332 window_server()->user_id_tracker()->SetActiveUserId(kTestId1);
357 ASSERT_EQ(1u, window_server_delegate()->bindings()->size()); 333 ASSERT_EQ(1u, window_server_delegate()->bindings()->size());
358 WindowTree* tree = (*window_server_delegate()->bindings())[0]->tree(); 334 WindowTree* tree = (*window_server_delegate()->bindings())[0]->tree();
359 ASSERT_EQ(2u, tree->roots().size()); 335 ASSERT_EQ(2u, tree->roots().size());
360 Display* secondary_display = 336 Display* secondary_display =
361 GetSecondaryDisplay(window_server()->display_manager()); 337 GetSecondaryDisplay(window_server()->display_manager());
362 ASSERT_TRUE(secondary_display); 338 ASSERT_TRUE(secondary_display);
363 bool secondary_root_destroyed = false; 339 bool secondary_root_destroyed = false;
364 ServerWindow* secondary_root = GetRootOnDisplay(tree, secondary_display); 340 ServerWindow* secondary_root = GetRootOnDisplay(tree, secondary_display);
365 ASSERT_TRUE(secondary_root); 341 ASSERT_TRUE(secondary_root);
(...skipping 21 matching lines...) Expand all
387 ASSERT_EQ(0u, tree_client->tracker()->changes()->size()); 363 ASSERT_EQ(0u, tree_client->tracker()->changes()->size());
388 364
389 // The window should be destroyed when the client says so. 365 // The window should be destroyed when the client says so.
390 ASSERT_TRUE(tree->DeleteWindow(secondary_root_id)); 366 ASSERT_TRUE(tree->DeleteWindow(secondary_root_id));
391 EXPECT_TRUE(secondary_root_destroyed); 367 EXPECT_TRUE(secondary_root_destroyed);
392 } 368 }
393 369
394 } // namespace test 370 } // namespace test
395 } // namespace ws 371 } // namespace ws
396 } // namespace ui 372 } // namespace ui
OLDNEW
« no previous file with comments | « services/ui/ws/cursor_unittest.cc ('k') | services/ui/ws/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698