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

Side by Side Diff: components/mus/ws/display_unittest.cc

Issue 2072343002: Changes how window manager obtains WindowTree from mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: include Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « components/mus/ws/display.cc ('k') | components/mus/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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 scoped_refptr<SurfacesState>())); 55 scoped_refptr<SurfacesState>()));
56 window_server_delegate_.set_window_server(window_server_.get()); 56 window_server_delegate_.set_window_server(window_server_.get());
57 } 57 }
58 58
59 protected: 59 protected:
60 int32_t cursor_id_; 60 int32_t cursor_id_;
61 TestPlatformDisplayFactory platform_display_factory_; 61 TestPlatformDisplayFactory platform_display_factory_;
62 TestWindowServerDelegate window_server_delegate_; 62 TestWindowServerDelegate window_server_delegate_;
63 std::unique_ptr<WindowServer> window_server_; 63 std::unique_ptr<WindowServer> window_server_;
64 base::MessageLoop message_loop_; 64 base::MessageLoop message_loop_;
65 TestWindowManagerFactory test_window_manager_factory_;
66 65
67 private: 66 private:
68 DISALLOW_COPY_AND_ASSIGN(DisplayTest); 67 DISALLOW_COPY_AND_ASSIGN(DisplayTest);
69 }; 68 };
70 69
71 TEST_F(DisplayTest, CallsCreateDefaultDisplays) { 70 TEST_F(DisplayTest, CallsCreateDefaultDisplays) {
72 const int kNumHostsToCreate = 2; 71 const int kNumHostsToCreate = 2;
73 window_server_delegate_.set_num_displays_to_create(kNumHostsToCreate); 72 window_server_delegate_.set_num_displays_to_create(kNumHostsToCreate);
74 73
75 const UserId kTestId1 = "2"; 74 const UserId kTestId1 = "2";
76 const UserId kTestId2 = "21"; 75 const UserId kTestId2 = "21";
77 DisplayManager* display_manager = window_server_->display_manager(); 76 DisplayManager* display_manager = window_server_->display_manager();
78 WindowManagerFactoryRegistryTestApi( 77 WindowManagerWindowTreeFactorySetTestApi(
79 window_server_->window_manager_factory_registry()) 78 window_server_->window_manager_window_tree_factory_set())
80 .AddService(kTestId1, &test_window_manager_factory_); 79 .Add(kTestId1);
81 // The first register should trigger creation of the default 80 // The first register should trigger creation of the default
82 // Displays. There should be kNumHostsToCreate Displays. 81 // Displays. There should be kNumHostsToCreate Displays.
83 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate), 82 EXPECT_EQ(static_cast<size_t>(kNumHostsToCreate),
84 display_manager->displays().size()); 83 display_manager->displays().size());
85 84
86 // Each host should have a WindowManagerState for kTestId1. 85 // Each host should have a WindowManagerState for kTestId1.
87 for (Display* display : display_manager->displays()) { 86 for (Display* display : display_manager->displays()) {
88 EXPECT_EQ(1u, display->num_window_manger_states()); 87 EXPECT_EQ(1u, display->num_window_manger_states());
89 EXPECT_TRUE(display->GetWindowManagerStateForUser(kTestId1)); 88 EXPECT_TRUE(display->GetWindowManagerStateForUser(kTestId1));
90 EXPECT_FALSE(display->GetWindowManagerStateForUser(kTestId2)); 89 EXPECT_FALSE(display->GetWindowManagerStateForUser(kTestId2));
91 } 90 }
92 91
93 // Add another registry, should trigger creation of another wm. 92 // Add another registry, should trigger creation of another wm.
94 WindowManagerFactoryRegistryTestApi( 93 WindowManagerWindowTreeFactorySetTestApi(
95 window_server_->window_manager_factory_registry()) 94 window_server_->window_manager_window_tree_factory_set())
96 .AddService(kTestId2, &test_window_manager_factory_); 95 .Add(kTestId2);
97 for (Display* display : display_manager->displays()) { 96 for (Display* display : display_manager->displays()) {
98 ASSERT_EQ(2u, display->num_window_manger_states()); 97 ASSERT_EQ(2u, display->num_window_manger_states());
99 WindowManagerState* state1 = 98 WindowManagerState* state1 =
100 display->GetWindowManagerStateForUser(kTestId1); 99 display->GetWindowManagerStateForUser(kTestId1);
101 ASSERT_TRUE(state1); 100 ASSERT_TRUE(state1);
102 WindowManagerState* state2 = 101 WindowManagerState* state2 =
103 display->GetWindowManagerStateForUser(kTestId2); 102 display->GetWindowManagerStateForUser(kTestId2);
104 ASSERT_TRUE(state2); 103 ASSERT_TRUE(state2);
105 // Verify the two states have different roots. 104 // Verify the two states have different roots.
106 EXPECT_NE(state1, state2); 105 EXPECT_NE(state1, state2);
107 EXPECT_NE(state1->root(), state2->root()); 106 EXPECT_NE(state1->root(), state2->root());
108 } 107 }
109 } 108 }
110 109
111 TEST_F(DisplayTest, Destruction) { 110 TEST_F(DisplayTest, Destruction) {
112 window_server_delegate_.set_num_displays_to_create(1); 111 window_server_delegate_.set_num_displays_to_create(1);
113 112
114 const UserId kTestId1 = "2"; 113 const UserId kTestId1 = "2";
115 const UserId kTestId2 = "21"; 114 const UserId kTestId2 = "21";
116 WindowManagerFactoryRegistryTestApi( 115 WindowManagerWindowTreeFactorySetTestApi(
117 window_server_->window_manager_factory_registry()) 116 window_server_->window_manager_window_tree_factory_set())
118 .AddService(kTestId1, &test_window_manager_factory_); 117 .Add(kTestId1);
119 118
120 // Add another registry, should trigger creation of another wm. 119 // Add another registry, should trigger creation of another wm.
121 DisplayManager* display_manager = window_server_->display_manager(); 120 DisplayManager* display_manager = window_server_->display_manager();
122 WindowManagerFactoryRegistryTestApi( 121 WindowManagerWindowTreeFactorySetTestApi(
123 window_server_->window_manager_factory_registry()) 122 window_server_->window_manager_window_tree_factory_set())
124 .AddService(kTestId2, &test_window_manager_factory_); 123 .Add(kTestId2);
125 ASSERT_EQ(1u, display_manager->displays().size()); 124 ASSERT_EQ(1u, display_manager->displays().size());
126 Display* display = *display_manager->displays().begin(); 125 Display* display = *display_manager->displays().begin();
127 ASSERT_EQ(2u, display->num_window_manger_states()); 126 ASSERT_EQ(2u, display->num_window_manger_states());
128 // There should be two trees, one for each windowmanager. 127 // There should be two trees, one for each windowmanager.
129 EXPECT_EQ(2u, window_server_->num_trees()); 128 EXPECT_EQ(2u, window_server_->num_trees());
130 129
131 { 130 {
132 WindowManagerState* state = display->GetWindowManagerStateForUser(kTestId1); 131 WindowManagerState* state = display->GetWindowManagerStateForUser(kTestId1);
133 // Destroy the tree associated with |state|. Should result in deleting 132 // Destroy the tree associated with |state|. Should result in deleting
134 // |state|. 133 // |state|.
135 window_server_->DestroyTree(state->tree()); 134 window_server_->DestroyTree(state->tree());
136 ASSERT_EQ(1u, display->num_window_manger_states()); 135 ASSERT_EQ(1u, display->num_window_manger_states());
137 EXPECT_FALSE(display->GetWindowManagerStateForUser(kTestId1)); 136 EXPECT_FALSE(display->GetWindowManagerStateForUser(kTestId1));
138 EXPECT_EQ(1u, display_manager->displays().size()); 137 EXPECT_EQ(1u, display_manager->displays().size());
139 EXPECT_EQ(1u, window_server_->num_trees()); 138 EXPECT_EQ(1u, window_server_->num_trees());
140 } 139 }
141 140
142 EXPECT_FALSE(window_server_delegate_.got_on_no_more_displays()); 141 EXPECT_FALSE(window_server_delegate_.got_on_no_more_displays());
143 // Destroy the Display, which should shutdown the trees. 142 // Destroy the Display, which should shutdown the trees.
144 window_server_->display_manager()->DestroyDisplay(display); 143 window_server_->display_manager()->DestroyDisplay(display);
145 EXPECT_EQ(0u, window_server_->num_trees()); 144 EXPECT_EQ(0u, window_server_->num_trees());
146 EXPECT_TRUE(window_server_delegate_.got_on_no_more_displays()); 145 EXPECT_TRUE(window_server_delegate_.got_on_no_more_displays());
147 } 146 }
148 147
149 TEST_F(DisplayTest, EventStateResetOnUserSwitch) { 148 TEST_F(DisplayTest, EventStateResetOnUserSwitch) {
150 window_server_delegate_.set_num_displays_to_create(1); 149 window_server_delegate_.set_num_displays_to_create(1);
151 150
152 const UserId kTestId1 = "20"; 151 const UserId kTestId1 = "20";
153 const UserId kTestId2 = "201"; 152 const UserId kTestId2 = "201";
154 WindowManagerFactoryRegistryTestApi( 153 WindowManagerWindowTreeFactorySetTestApi(
155 window_server_->window_manager_factory_registry()) 154 window_server_->window_manager_window_tree_factory_set())
156 .AddService(kTestId1, &test_window_manager_factory_); 155 .Add(kTestId1);
157 WindowManagerFactoryRegistryTestApi( 156 WindowManagerWindowTreeFactorySetTestApi(
158 window_server_->window_manager_factory_registry()) 157 window_server_->window_manager_window_tree_factory_set())
159 .AddService(kTestId2, &test_window_manager_factory_); 158 .Add(kTestId2);
160 159
161 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); 160 window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
162 161
163 DisplayManager* display_manager = window_server_->display_manager(); 162 DisplayManager* display_manager = window_server_->display_manager();
164 ASSERT_EQ(1u, display_manager->displays().size()); 163 ASSERT_EQ(1u, display_manager->displays().size());
165 Display* display = *display_manager->displays().begin(); 164 Display* display = *display_manager->displays().begin();
166 WindowManagerState* active_wms = display->GetActiveWindowManagerState(); 165 WindowManagerState* active_wms = display->GetActiveWindowManagerState();
167 ASSERT_TRUE(active_wms); 166 ASSERT_TRUE(active_wms);
168 EXPECT_EQ(kTestId1, active_wms->user_id()); 167 EXPECT_EQ(kTestId1, active_wms->user_id());
169 168
(...skipping 19 matching lines...) Expand all
189 active_wms->event_dispatcher()->mouse_pointer_last_location()); 188 active_wms->event_dispatcher()->mouse_pointer_last_location());
190 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher()) 189 EXPECT_FALSE(EventDispatcherTestApi(active_wms->event_dispatcher())
191 .AreAnyPointersDown()); 190 .AreAnyPointersDown());
192 } 191 }
193 192
194 // Verifies capture fails when wm is inactive and succeeds when wm is active. 193 // Verifies capture fails when wm is inactive and succeeds when wm is active.
195 TEST_F(DisplayTest, SetCaptureFromWindowManager) { 194 TEST_F(DisplayTest, SetCaptureFromWindowManager) {
196 window_server_delegate_.set_num_displays_to_create(1); 195 window_server_delegate_.set_num_displays_to_create(1);
197 const UserId kTestId1 = "20"; 196 const UserId kTestId1 = "20";
198 const UserId kTestId2 = "201"; 197 const UserId kTestId2 = "201";
199 WindowManagerFactoryRegistryTestApi( 198 WindowManagerWindowTreeFactorySetTestApi(
200 window_server_->window_manager_factory_registry()) 199 window_server_->window_manager_window_tree_factory_set())
201 .AddService(kTestId1, &test_window_manager_factory_); 200 .Add(kTestId1);
202 WindowManagerFactoryRegistryTestApi( 201 WindowManagerWindowTreeFactorySetTestApi(
203 window_server_->window_manager_factory_registry()) 202 window_server_->window_manager_window_tree_factory_set())
204 .AddService(kTestId2, &test_window_manager_factory_); 203 .Add(kTestId2);
205 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); 204 window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
206 DisplayManager* display_manager = window_server_->display_manager(); 205 DisplayManager* display_manager = window_server_->display_manager();
207 ASSERT_EQ(1u, display_manager->displays().size()); 206 ASSERT_EQ(1u, display_manager->displays().size());
208 Display* display = *display_manager->displays().begin(); 207 Display* display = *display_manager->displays().begin();
209 WindowManagerState* wms_for_id2 = 208 WindowManagerState* wms_for_id2 =
210 display->GetWindowManagerStateForUser(kTestId2); 209 display->GetWindowManagerStateForUser(kTestId2);
211 ASSERT_TRUE(wms_for_id2); 210 ASSERT_TRUE(wms_for_id2);
212 EXPECT_FALSE(wms_for_id2->IsActive()); 211 EXPECT_FALSE(wms_for_id2->IsActive());
213 212
214 // Create a child of the root that we can set capture on. 213 // Create a child of the root that we can set capture on.
215 WindowTree* tree = wms_for_id2->tree(); 214 WindowTree* tree = wms_for_id2->tree();
216 ClientWindowId child_window_id; 215 ClientWindowId child_window_id;
217 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id)); 216 ASSERT_TRUE(NewWindowInTree(tree, &child_window_id));
218 217
219 WindowTreeTestApi(tree).EnableCapture(); 218 WindowTreeTestApi(tree).EnableCapture();
220 219
221 // SetCapture() should fail for user id2 as it is inactive. 220 // SetCapture() should fail for user id2 as it is inactive.
222 EXPECT_FALSE(tree->SetCapture(child_window_id)); 221 EXPECT_FALSE(tree->SetCapture(child_window_id));
223 222
224 // Make the second user active and verify capture works. 223 // Make the second user active and verify capture works.
225 window_server_->user_id_tracker()->SetActiveUserId(kTestId2); 224 window_server_->user_id_tracker()->SetActiveUserId(kTestId2);
226 EXPECT_TRUE(wms_for_id2->IsActive()); 225 EXPECT_TRUE(wms_for_id2->IsActive());
227 EXPECT_TRUE(tree->SetCapture(child_window_id)); 226 EXPECT_TRUE(tree->SetCapture(child_window_id));
228 } 227 }
229 228
230 TEST_F(DisplayTest, FocusFailsForInactiveUser) { 229 TEST_F(DisplayTest, FocusFailsForInactiveUser) {
231 window_server_delegate_.set_num_displays_to_create(1); 230 window_server_delegate_.set_num_displays_to_create(1);
232 const UserId kTestId1 = "20"; 231 const UserId kTestId1 = "20";
233 const UserId kTestId2 = "201"; 232 const UserId kTestId2 = "201";
234 WindowManagerFactoryRegistryTestApi( 233 WindowManagerWindowTreeFactorySetTestApi(
235 window_server_->window_manager_factory_registry()) 234 window_server_->window_manager_window_tree_factory_set())
236 .AddService(kTestId1, &test_window_manager_factory_); 235 .Add(kTestId1);
237 TestWindowTreeClient* window_tree_client1 = 236 TestWindowTreeClient* window_tree_client1 =
238 window_server_delegate_.last_client(); 237 window_server_delegate_.last_client();
239 ASSERT_TRUE(window_tree_client1); 238 ASSERT_TRUE(window_tree_client1);
240 WindowManagerFactoryRegistryTestApi( 239 WindowManagerWindowTreeFactorySetTestApi(
241 window_server_->window_manager_factory_registry()) 240 window_server_->window_manager_window_tree_factory_set())
242 .AddService(kTestId2, &test_window_manager_factory_); 241 .Add(kTestId2);
243 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); 242 window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
244 DisplayManager* display_manager = window_server_->display_manager(); 243 DisplayManager* display_manager = window_server_->display_manager();
245 ASSERT_EQ(1u, display_manager->displays().size()); 244 ASSERT_EQ(1u, display_manager->displays().size());
246 Display* display = *display_manager->displays().begin(); 245 Display* display = *display_manager->displays().begin();
247 WindowManagerState* wms_for_id2 = 246 WindowManagerState* wms_for_id2 =
248 display->GetWindowManagerStateForUser(kTestId2); 247 display->GetWindowManagerStateForUser(kTestId2);
249 wms_for_id2->tree()->AddActivationParent( 248 wms_for_id2->tree()->AddActivationParent(
250 ClientWindowIdForFirstRoot(wms_for_id2->tree())); 249 ClientWindowIdForFirstRoot(wms_for_id2->tree()));
251 ASSERT_TRUE(wms_for_id2); 250 ASSERT_TRUE(wms_for_id2);
252 EXPECT_FALSE(wms_for_id2->IsActive()); 251 EXPECT_FALSE(wms_for_id2->IsActive());
253 ClientWindowId child2_id; 252 ClientWindowId child2_id;
254 NewWindowInTree(wms_for_id2->tree(), &child2_id); 253 NewWindowInTree(wms_for_id2->tree(), &child2_id);
255 254
256 // Focus should fail for windows in inactive window managers. 255 // Focus should fail for windows in inactive window managers.
257 EXPECT_FALSE(wms_for_id2->tree()->SetFocus(child2_id)); 256 EXPECT_FALSE(wms_for_id2->tree()->SetFocus(child2_id));
258 257
259 // Focus should succeed for the active window manager. 258 // Focus should succeed for the active window manager.
260 WindowManagerState* wms_for_id1 = 259 WindowManagerState* wms_for_id1 =
261 display->GetWindowManagerStateForUser(kTestId1); 260 display->GetWindowManagerStateForUser(kTestId1);
262 ASSERT_TRUE(wms_for_id1); 261 ASSERT_TRUE(wms_for_id1);
263 wms_for_id1->tree()->AddActivationParent( 262 wms_for_id1->tree()->AddActivationParent(
264 ClientWindowIdForFirstRoot(wms_for_id1->tree())); 263 ClientWindowIdForFirstRoot(wms_for_id1->tree()));
265 ClientWindowId child1_id; 264 ClientWindowId child1_id;
266 NewWindowInTree(wms_for_id1->tree(), &child1_id); 265 NewWindowInTree(wms_for_id1->tree(), &child1_id);
267 EXPECT_TRUE(wms_for_id1->IsActive()); 266 EXPECT_TRUE(wms_for_id1->IsActive());
268 EXPECT_TRUE(wms_for_id1->tree()->SetFocus(child1_id)); 267 EXPECT_TRUE(wms_for_id1->tree()->SetFocus(child1_id));
269 } 268 }
270 269
271 // Verifies clients are notified of focus changes in different displays. 270 // Verifies a single tree is used for multiple displays.
272 TEST_F(DisplayTest, CrossDisplayFocus) { 271 TEST_F(DisplayTest, MultipleDisplays) {
273 window_server_delegate_.set_num_displays_to_create(2); 272 window_server_delegate_.set_num_displays_to_create(2);
274 const UserId kTestId1 = "20"; 273 const UserId kTestId1 = "20";
275 WindowManagerFactoryRegistryTestApi( 274 WindowManagerWindowTreeFactorySetTestApi(
276 window_server_->window_manager_factory_registry()) 275 window_server_->window_manager_window_tree_factory_set())
277 .AddService(kTestId1, &test_window_manager_factory_); 276 .Add(kTestId1);
278 window_server_->user_id_tracker()->SetActiveUserId(kTestId1); 277 window_server_->user_id_tracker()->SetActiveUserId(kTestId1);
279 ASSERT_EQ(2u, window_server_delegate_.bindings()->size()); 278 ASSERT_EQ(1u, window_server_delegate_.bindings()->size());
280 TestWindowTreeBinding* window_tree_binding1 = 279 TestWindowTreeBinding* window_tree_binding =
281 (*window_server_delegate_.bindings())[0]; 280 (*window_server_delegate_.bindings())[0];
282 Display* display1 = window_tree_binding1->tree()->GetDisplay( 281 WindowTree* tree = window_tree_binding->tree();
283 FirstRoot(window_tree_binding1->tree())); 282 ASSERT_EQ(2u, tree->roots().size());
283 std::set<const ServerWindow*> roots = tree->roots();
284 auto it = roots.begin();
285 ServerWindow* root1 = tree->GetWindow((*it)->id());
286 ++it;
287 ServerWindow* root2 = tree->GetWindow((*it)->id());
288 ASSERT_NE(root1, root2);
289 Display* display1 = tree->GetDisplay(root1);
284 WindowManagerState* display1_wms = 290 WindowManagerState* display1_wms =
285 display1->GetWindowManagerStateForUser(kTestId1); 291 display1->GetWindowManagerStateForUser(kTestId1);
286 TestWindowTreeBinding* window_tree_binding2 = 292 Display* display2 = tree->GetDisplay(root2);
287 (*window_server_delegate_.bindings())[1];
288 Display* display2 = window_tree_binding2->tree()->GetDisplay(
289 FirstRoot(window_tree_binding2->tree()));
290 WindowManagerState* display2_wms = 293 WindowManagerState* display2_wms =
291 display2->GetWindowManagerStateForUser(kTestId1); 294 display2->GetWindowManagerStateForUser(kTestId1);
292 295 EXPECT_EQ(display1_wms->tree(), display2_wms->tree());
293 // Create children in both displays.
294 ClientWindowId child1_id;
295 ServerWindow* child1 = NewWindowInTree(display1_wms->tree(), &child1_id);
296 ASSERT_TRUE(child1);
297 child1->set_can_focus(true);
298 ClientWindowId child2_id;
299 ServerWindow* child2 = NewWindowInTree(display2_wms->tree(), &child2_id);
300 ASSERT_TRUE(child2);
301 child2->set_can_focus(true);
302
303 display1->AddActivationParent(FirstRoot(display1_wms->tree()));
304 display2->AddActivationParent(FirstRoot(display2_wms->tree()));
305 FirstRoot(display1_wms->tree())->set_can_focus(true);
306 FirstRoot(display2_wms->tree())->set_can_focus(true);
307 EXPECT_TRUE(display1_wms->tree()->SetFocus(child1_id));
308 EXPECT_EQ(child1, display1->GetFocusedWindow());
309 EXPECT_FALSE(display2->GetFocusedWindow());
310 window_tree_binding1->client()->tracker()->changes()->clear();
311 window_tree_binding2->client()->tracker()->changes()->clear();
312 // Moving focus to display2 should result in notifying display1.
313 EXPECT_TRUE(display2_wms->tree()->SetFocus(child2_id));
314 EXPECT_EQ("Focused id=null",
315 SingleChangeToDescription(
316 *window_tree_binding1->client()->tracker()->changes()));
317 EXPECT_EQ("", SingleChangeToDescription(
318 *window_tree_binding2->client()->tracker()->changes()));
319 EXPECT_TRUE(window_tree_binding2->client()->tracker()->changes()->empty());
320 window_tree_binding1->client()->tracker()->changes()->clear();
321 window_tree_binding2->client()->tracker()->changes()->clear();
322 EXPECT_FALSE(display1->GetFocusedWindow());
323 EXPECT_EQ(child2, display2->GetFocusedWindow());
324 } 296 }
325 297
326 } // namespace test 298 } // namespace test
327 } // namespace ws 299 } // namespace ws
328 } // namespace mus 300 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/ws/display.cc ('k') | components/mus/ws/test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698