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

Side by Side Diff: ash/root_window_controller_unittest.cc

Issue 224113005: Eliminate ash::internal namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « ash/root_window_controller.cc ('k') | ash/root_window_settings.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/root_window_controller.h" 5 #include "ash/root_window_controller.h"
6 6
7 #include "ash/session_state_delegate.h" 7 #include "ash/session_state_delegate.h"
8 #include "ash/shelf/shelf_layout_manager.h" 8 #include "ash/shelf/shelf_layout_manager.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 gfx::NativeWindow parent) { 111 gfx::NativeWindow parent) {
112 views::Widget* widget = 112 views::Widget* widget =
113 views::Widget::CreateWindowWithParentAndBounds(new TestDelegate(true), 113 views::Widget::CreateWindowWithParentAndBounds(new TestDelegate(true),
114 parent, 114 parent,
115 bounds); 115 bounds);
116 widget->Show(); 116 widget->Show();
117 return widget; 117 return widget;
118 } 118 }
119 119
120 aura::Window* GetModalContainer(aura::Window* root_window) { 120 aura::Window* GetModalContainer(aura::Window* root_window) {
121 return Shell::GetContainer( 121 return Shell::GetContainer(root_window,
122 root_window, 122 ash::kShellWindowId_SystemModalContainer);
123 ash::internal::kShellWindowId_SystemModalContainer);
124 } 123 }
125 }; 124 };
126 125
127 TEST_F(RootWindowControllerTest, MoveWindows_Basic) { 126 TEST_F(RootWindowControllerTest, MoveWindows_Basic) {
128 if (!SupportsMultipleDisplays()) 127 if (!SupportsMultipleDisplays())
129 return; 128 return;
130 // Windows origin should be doubled when moved to the 1st display. 129 // Windows origin should be doubled when moved to the 1st display.
131 UpdateDisplay("600x600,300x300"); 130 UpdateDisplay("600x600,300x300");
132 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 131 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
133 internal::RootWindowController* controller = 132 RootWindowController* controller = Shell::GetPrimaryRootWindowController();
134 Shell::GetPrimaryRootWindowController(); 133 ShelfLayoutManager* shelf_layout_manager =
135 internal::ShelfLayoutManager* shelf_layout_manager =
136 controller->GetShelfLayoutManager(); 134 controller->GetShelfLayoutManager();
137 shelf_layout_manager->SetAutoHideBehavior( 135 shelf_layout_manager->SetAutoHideBehavior(
138 ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); 136 ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
139 137
140 views::Widget* normal = CreateTestWidget(gfx::Rect(650, 10, 100, 100)); 138 views::Widget* normal = CreateTestWidget(gfx::Rect(650, 10, 100, 100));
141 EXPECT_EQ(root_windows[1], normal->GetNativeView()->GetRootWindow()); 139 EXPECT_EQ(root_windows[1], normal->GetNativeView()->GetRootWindow());
142 EXPECT_EQ("650,10 100x100", normal->GetWindowBoundsInScreen().ToString()); 140 EXPECT_EQ("650,10 100x100", normal->GetWindowBoundsInScreen().ToString());
143 EXPECT_EQ("50,10 100x100", 141 EXPECT_EQ("50,10 100x100",
144 normal->GetNativeView()->GetBoundsInRootWindow().ToString()); 142 normal->GetNativeView()->GetBoundsInRootWindow().ToString());
145 143
(...skipping 20 matching lines...) Expand all
166 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString()); 164 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString());
167 165
168 views::Widget* unparented_control = new Widget; 166 views::Widget* unparented_control = new Widget;
169 Widget::InitParams params; 167 Widget::InitParams params;
170 params.bounds = gfx::Rect(650, 10, 100, 100); 168 params.bounds = gfx::Rect(650, 10, 100, 100);
171 params.context = CurrentContext(); 169 params.context = CurrentContext();
172 params.type = Widget::InitParams::TYPE_CONTROL; 170 params.type = Widget::InitParams::TYPE_CONTROL;
173 unparented_control->Init(params); 171 unparented_control->Init(params);
174 EXPECT_EQ(root_windows[1], 172 EXPECT_EQ(root_windows[1],
175 unparented_control->GetNativeView()->GetRootWindow()); 173 unparented_control->GetNativeView()->GetRootWindow());
176 EXPECT_EQ(internal::kShellWindowId_UnparentedControlContainer, 174 EXPECT_EQ(kShellWindowId_UnparentedControlContainer,
177 unparented_control->GetNativeView()->parent()->id()); 175 unparented_control->GetNativeView()->parent()->id());
178 176
179 aura::Window* panel = CreateTestWindowInShellWithDelegateAndType( 177 aura::Window* panel = CreateTestWindowInShellWithDelegateAndType(
180 NULL, ui::wm::WINDOW_TYPE_PANEL, 0, gfx::Rect(700, 100, 100, 100)); 178 NULL, ui::wm::WINDOW_TYPE_PANEL, 0, gfx::Rect(700, 100, 100, 100));
181 EXPECT_EQ(root_windows[1], panel->GetRootWindow()); 179 EXPECT_EQ(root_windows[1], panel->GetRootWindow());
182 EXPECT_EQ(internal::kShellWindowId_PanelContainer, panel->parent()->id()); 180 EXPECT_EQ(kShellWindowId_PanelContainer, panel->parent()->id());
183 181
184 // Make sure a window that will delete itself when losing focus 182 // Make sure a window that will delete itself when losing focus
185 // will not crash. 183 // will not crash.
186 aura::WindowTracker tracker; 184 aura::WindowTracker tracker;
187 DeleteOnBlurDelegate delete_on_blur_delegate; 185 DeleteOnBlurDelegate delete_on_blur_delegate;
188 aura::Window* d2 = CreateTestWindowInShellWithDelegate( 186 aura::Window* d2 = CreateTestWindowInShellWithDelegate(
189 &delete_on_blur_delegate, 0, gfx::Rect(50, 50, 100, 100)); 187 &delete_on_blur_delegate, 0, gfx::Rect(50, 50, 100, 100));
190 delete_on_blur_delegate.SetWindow(d2); 188 delete_on_blur_delegate.SetWindow(d2);
191 aura::client::GetFocusClient(root_windows[0])->FocusWindow(d2); 189 aura::client::GetFocusClient(root_windows[0])->FocusWindow(d2);
192 tracker.Add(d2); 190 tracker.Add(d2);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 239
242 fullscreen->SetFullscreen(false); 240 fullscreen->SetFullscreen(false);
243 EXPECT_EQ("500,20 100x100", 241 EXPECT_EQ("500,20 100x100",
244 fullscreen->GetWindowBoundsInScreen().ToString()); 242 fullscreen->GetWindowBoundsInScreen().ToString());
245 EXPECT_EQ("500,20 100x100", 243 EXPECT_EQ("500,20 100x100",
246 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString()); 244 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString());
247 245
248 // Test if the unparented widget has moved. 246 // Test if the unparented widget has moved.
249 EXPECT_EQ(root_windows[0], 247 EXPECT_EQ(root_windows[0],
250 unparented_control->GetNativeView()->GetRootWindow()); 248 unparented_control->GetNativeView()->GetRootWindow());
251 EXPECT_EQ(internal::kShellWindowId_UnparentedControlContainer, 249 EXPECT_EQ(kShellWindowId_UnparentedControlContainer,
252 unparented_control->GetNativeView()->parent()->id()); 250 unparented_control->GetNativeView()->parent()->id());
253 251
254 // Test if the panel has moved. 252 // Test if the panel has moved.
255 EXPECT_EQ(root_windows[0], panel->GetRootWindow()); 253 EXPECT_EQ(root_windows[0], panel->GetRootWindow());
256 EXPECT_EQ(internal::kShellWindowId_PanelContainer, panel->parent()->id()); 254 EXPECT_EQ(kShellWindowId_PanelContainer, panel->parent()->id());
257 } 255 }
258 256
259 TEST_F(RootWindowControllerTest, MoveWindows_Modal) { 257 TEST_F(RootWindowControllerTest, MoveWindows_Modal) {
260 if (!SupportsMultipleDisplays()) 258 if (!SupportsMultipleDisplays())
261 return; 259 return;
262 260
263 UpdateDisplay("500x500,500x500"); 261 UpdateDisplay("500x500,500x500");
264 262
265 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 263 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
266 // Emulate virtual screen coordinate system. 264 // Emulate virtual screen coordinate system.
(...skipping 17 matching lines...) Expand all
284 UpdateDisplay("500x500"); 282 UpdateDisplay("500x500");
285 EXPECT_EQ(root_windows[0], modal->GetNativeView()->GetRootWindow()); 283 EXPECT_EQ(root_windows[0], modal->GetNativeView()->GetRootWindow());
286 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView())); 284 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView()));
287 generator_1st.ClickLeftButton(); 285 generator_1st.ClickLeftButton();
288 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView())); 286 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView()));
289 } 287 }
290 288
291 TEST_F(RootWindowControllerTest, ModalContainer) { 289 TEST_F(RootWindowControllerTest, ModalContainer) {
292 UpdateDisplay("600x600"); 290 UpdateDisplay("600x600");
293 Shell* shell = Shell::GetInstance(); 291 Shell* shell = Shell::GetInstance();
294 internal::RootWindowController* controller = 292 RootWindowController* controller = shell->GetPrimaryRootWindowController();
295 shell->GetPrimaryRootWindowController();
296 EXPECT_EQ(user::LOGGED_IN_USER, 293 EXPECT_EQ(user::LOGGED_IN_USER,
297 shell->system_tray_delegate()->GetUserLoginStatus()); 294 shell->system_tray_delegate()->GetUserLoginStatus());
298 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 295 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
299 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 296 kShellWindowId_SystemModalContainer)
300 controller->GetSystemModalLayoutManager(NULL)); 297 ->layout_manager(),
298 controller->GetSystemModalLayoutManager(NULL));
301 299
302 views::Widget* session_modal_widget = 300 views::Widget* session_modal_widget =
303 CreateModalWidget(gfx::Rect(300, 10, 100, 100)); 301 CreateModalWidget(gfx::Rect(300, 10, 100, 100));
304 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 302 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
305 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 303 kShellWindowId_SystemModalContainer)
306 controller->GetSystemModalLayoutManager( 304 ->layout_manager(),
307 session_modal_widget->GetNativeView())); 305 controller->GetSystemModalLayoutManager(
306 session_modal_widget->GetNativeView()));
308 307
309 shell->session_state_delegate()->LockScreen(); 308 shell->session_state_delegate()->LockScreen();
310 EXPECT_EQ(user::LOGGED_IN_LOCKED, 309 EXPECT_EQ(user::LOGGED_IN_LOCKED,
311 shell->system_tray_delegate()->GetUserLoginStatus()); 310 shell->system_tray_delegate()->GetUserLoginStatus());
312 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 311 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
313 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 312 kShellWindowId_LockSystemModalContainer)
314 controller->GetSystemModalLayoutManager(NULL)); 313 ->layout_manager(),
314 controller->GetSystemModalLayoutManager(NULL));
315 315
316 aura::Window* lock_container = 316 aura::Window* lock_container = Shell::GetContainer(
317 Shell::GetContainer(controller->root_window(), 317 controller->root_window(), kShellWindowId_LockScreenContainer);
318 internal::kShellWindowId_LockScreenContainer);
319 views::Widget* lock_modal_widget = 318 views::Widget* lock_modal_widget =
320 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100), lock_container); 319 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100), lock_container);
321 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 320 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
322 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 321 kShellWindowId_LockSystemModalContainer)
323 controller->GetSystemModalLayoutManager( 322 ->layout_manager(),
324 lock_modal_widget->GetNativeView())); 323 controller->GetSystemModalLayoutManager(
324 lock_modal_widget->GetNativeView()));
325 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 325 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
326 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 326 kShellWindowId_SystemModalContainer)
327 ->layout_manager(),
327 controller->GetSystemModalLayoutManager( 328 controller->GetSystemModalLayoutManager(
328 session_modal_widget->GetNativeView())); 329 session_modal_widget->GetNativeView()));
329 330
330 shell->session_state_delegate()->UnlockScreen(); 331 shell->session_state_delegate()->UnlockScreen();
331 } 332 }
332 333
333 TEST_F(RootWindowControllerTest, ModalContainerNotLoggedInLoggedIn) { 334 TEST_F(RootWindowControllerTest, ModalContainerNotLoggedInLoggedIn) {
334 UpdateDisplay("600x600"); 335 UpdateDisplay("600x600");
335 Shell* shell = Shell::GetInstance(); 336 Shell* shell = Shell::GetInstance();
336 337
337 // Configure login screen environment. 338 // Configure login screen environment.
338 SetUserLoggedIn(false); 339 SetUserLoggedIn(false);
339 EXPECT_EQ(user::LOGGED_IN_NONE, 340 EXPECT_EQ(user::LOGGED_IN_NONE,
340 shell->system_tray_delegate()->GetUserLoginStatus()); 341 shell->system_tray_delegate()->GetUserLoginStatus());
341 EXPECT_EQ(0, shell->session_state_delegate()->NumberOfLoggedInUsers()); 342 EXPECT_EQ(0, shell->session_state_delegate()->NumberOfLoggedInUsers());
342 EXPECT_FALSE(shell->session_state_delegate()->IsActiveUserSessionStarted()); 343 EXPECT_FALSE(shell->session_state_delegate()->IsActiveUserSessionStarted());
343 344
344 internal::RootWindowController* controller = 345 RootWindowController* controller = shell->GetPrimaryRootWindowController();
345 shell->GetPrimaryRootWindowController();
346 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 346 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
347 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 347 kShellWindowId_LockSystemModalContainer)
348 controller->GetSystemModalLayoutManager(NULL)); 348 ->layout_manager(),
349 controller->GetSystemModalLayoutManager(NULL));
349 350
350 aura::Window* lock_container = 351 aura::Window* lock_container = Shell::GetContainer(
351 Shell::GetContainer(controller->root_window(), 352 controller->root_window(), kShellWindowId_LockScreenContainer);
352 internal::kShellWindowId_LockScreenContainer);
353 views::Widget* login_modal_widget = 353 views::Widget* login_modal_widget =
354 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100), lock_container); 354 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100), lock_container);
355 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 355 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
356 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 356 kShellWindowId_LockSystemModalContainer)
357 controller->GetSystemModalLayoutManager( 357 ->layout_manager(),
358 login_modal_widget->GetNativeView())); 358 controller->GetSystemModalLayoutManager(
359 login_modal_widget->GetNativeView()));
359 login_modal_widget->Close(); 360 login_modal_widget->Close();
360 361
361 // Configure user session environment. 362 // Configure user session environment.
362 SetUserLoggedIn(true); 363 SetUserLoggedIn(true);
363 SetSessionStarted(true); 364 SetSessionStarted(true);
364 EXPECT_EQ(user::LOGGED_IN_USER, 365 EXPECT_EQ(user::LOGGED_IN_USER,
365 shell->system_tray_delegate()->GetUserLoginStatus()); 366 shell->system_tray_delegate()->GetUserLoginStatus());
366 EXPECT_EQ(1, shell->session_state_delegate()->NumberOfLoggedInUsers()); 367 EXPECT_EQ(1, shell->session_state_delegate()->NumberOfLoggedInUsers());
367 EXPECT_TRUE(shell->session_state_delegate()->IsActiveUserSessionStarted()); 368 EXPECT_TRUE(shell->session_state_delegate()->IsActiveUserSessionStarted());
368 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 369 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
369 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 370 kShellWindowId_SystemModalContainer)
370 controller->GetSystemModalLayoutManager(NULL)); 371 ->layout_manager(),
372 controller->GetSystemModalLayoutManager(NULL));
371 373
372 views::Widget* session_modal_widget = 374 views::Widget* session_modal_widget =
373 CreateModalWidget(gfx::Rect(300, 10, 100, 100)); 375 CreateModalWidget(gfx::Rect(300, 10, 100, 100));
374 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 376 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
375 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 377 kShellWindowId_SystemModalContainer)
376 controller->GetSystemModalLayoutManager( 378 ->layout_manager(),
377 session_modal_widget->GetNativeView())); 379 controller->GetSystemModalLayoutManager(
380 session_modal_widget->GetNativeView()));
378 } 381 }
379 382
380 TEST_F(RootWindowControllerTest, ModalContainerBlockedSession) { 383 TEST_F(RootWindowControllerTest, ModalContainerBlockedSession) {
381 UpdateDisplay("600x600"); 384 UpdateDisplay("600x600");
382 Shell* shell = Shell::GetInstance(); 385 Shell* shell = Shell::GetInstance();
383 internal::RootWindowController* controller = 386 RootWindowController* controller = shell->GetPrimaryRootWindowController();
384 shell->GetPrimaryRootWindowController(); 387 aura::Window* lock_container = Shell::GetContainer(
385 aura::Window* lock_container = 388 controller->root_window(), kShellWindowId_LockScreenContainer);
386 Shell::GetContainer(controller->root_window(),
387 internal::kShellWindowId_LockScreenContainer);
388 for (int block_reason = FIRST_BLOCK_REASON; 389 for (int block_reason = FIRST_BLOCK_REASON;
389 block_reason < NUMBER_OF_BLOCK_REASONS; 390 block_reason < NUMBER_OF_BLOCK_REASONS;
390 ++block_reason) { 391 ++block_reason) {
391 views::Widget* session_modal_widget = 392 views::Widget* session_modal_widget =
392 CreateModalWidget(gfx::Rect(300, 10, 100, 100)); 393 CreateModalWidget(gfx::Rect(300, 10, 100, 100));
393 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 394 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
394 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 395 kShellWindowId_SystemModalContainer)
395 controller->GetSystemModalLayoutManager( 396 ->layout_manager(),
396 session_modal_widget->GetNativeView())); 397 controller->GetSystemModalLayoutManager(
398 session_modal_widget->GetNativeView()));
397 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 399 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
398 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 400 kShellWindowId_SystemModalContainer)
399 controller->GetSystemModalLayoutManager(NULL)); 401 ->layout_manager(),
402 controller->GetSystemModalLayoutManager(NULL));
400 session_modal_widget->Close(); 403 session_modal_widget->Close();
401 404
402 BlockUserSession(static_cast<UserSessionBlockReason>(block_reason)); 405 BlockUserSession(static_cast<UserSessionBlockReason>(block_reason));
403 406
404 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 407 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
405 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 408 kShellWindowId_LockSystemModalContainer)
406 controller->GetSystemModalLayoutManager(NULL)); 409 ->layout_manager(),
410 controller->GetSystemModalLayoutManager(NULL));
407 411
408 views::Widget* lock_modal_widget = 412 views::Widget* lock_modal_widget =
409 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100), 413 CreateModalWidgetWithParent(gfx::Rect(300, 10, 100, 100),
410 lock_container); 414 lock_container);
411 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 415 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
412 internal::kShellWindowId_LockSystemModalContainer)->layout_manager(), 416 kShellWindowId_LockSystemModalContainer)
417 ->layout_manager(),
413 controller->GetSystemModalLayoutManager( 418 controller->GetSystemModalLayoutManager(
414 lock_modal_widget->GetNativeView())); 419 lock_modal_widget->GetNativeView()));
415 420
416 session_modal_widget = 421 session_modal_widget =
417 CreateModalWidget(gfx::Rect(300, 10, 100, 100)); 422 CreateModalWidget(gfx::Rect(300, 10, 100, 100));
418 EXPECT_EQ(Shell::GetContainer(controller->root_window(), 423 EXPECT_EQ(Shell::GetContainer(controller->root_window(),
419 internal::kShellWindowId_SystemModalContainer)->layout_manager(), 424 kShellWindowId_SystemModalContainer)
420 controller->GetSystemModalLayoutManager( 425 ->layout_manager(),
421 session_modal_widget->GetNativeView())); 426 controller->GetSystemModalLayoutManager(
427 session_modal_widget->GetNativeView()));
422 session_modal_widget->Close(); 428 session_modal_widget->Close();
423 429
424 lock_modal_widget->Close(); 430 lock_modal_widget->Close();
425 UnblockUserSession(); 431 UnblockUserSession();
426 } 432 }
427 } 433 }
428 434
429 TEST_F(RootWindowControllerTest, GetWindowForFullscreenMode) { 435 TEST_F(RootWindowControllerTest, GetWindowForFullscreenMode) {
430 UpdateDisplay("600x600"); 436 UpdateDisplay("600x600");
431 internal::RootWindowController* controller = 437 RootWindowController* controller =
432 Shell::GetInstance()->GetPrimaryRootWindowController(); 438 Shell::GetInstance()->GetPrimaryRootWindowController();
433 439
434 Widget* w1 = CreateTestWidget(gfx::Rect(0, 0, 100, 100)); 440 Widget* w1 = CreateTestWidget(gfx::Rect(0, 0, 100, 100));
435 w1->Maximize(); 441 w1->Maximize();
436 Widget* w2 = CreateTestWidget(gfx::Rect(0, 0, 100, 100)); 442 Widget* w2 = CreateTestWidget(gfx::Rect(0, 0, 100, 100));
437 w2->SetFullscreen(true); 443 w2->SetFullscreen(true);
438 // |w3| is a transient child of |w2|. 444 // |w3| is a transient child of |w2|.
439 Widget* w3 = Widget::CreateWindowWithParentAndBounds(NULL, 445 Widget* w3 = Widget::CreateWindowWithParentAndBounds(NULL,
440 w2->GetNativeWindow(), gfx::Rect(0, 0, 100, 100)); 446 w2->GetNativeWindow(), gfx::Rect(0, 0, 100, 100));
441 447
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 w3->Activate(); 499 w3->Activate();
494 EXPECT_EQ(w2->GetNativeWindow(), 500 EXPECT_EQ(w2->GetNativeWindow(),
495 controllers[0]->GetWindowForFullscreenMode()); 501 controllers[0]->GetWindowForFullscreenMode());
496 EXPECT_EQ(NULL, controllers[1]->GetWindowForFullscreenMode()); 502 EXPECT_EQ(NULL, controllers[1]->GetWindowForFullscreenMode());
497 } 503 }
498 504
499 // Test that user session window can't be focused if user session blocked by 505 // Test that user session window can't be focused if user session blocked by
500 // some overlapping UI. 506 // some overlapping UI.
501 TEST_F(RootWindowControllerTest, FocusBlockedWindow) { 507 TEST_F(RootWindowControllerTest, FocusBlockedWindow) {
502 UpdateDisplay("600x600"); 508 UpdateDisplay("600x600");
503 internal::RootWindowController* controller = 509 RootWindowController* controller =
504 Shell::GetInstance()->GetPrimaryRootWindowController(); 510 Shell::GetInstance()->GetPrimaryRootWindowController();
505 aura::Window* lock_container = 511 aura::Window* lock_container = Shell::GetContainer(
506 Shell::GetContainer(controller->root_window(), 512 controller->root_window(), kShellWindowId_LockScreenContainer);
507 internal::kShellWindowId_LockScreenContainer);
508 aura::Window* lock_window = Widget::CreateWindowWithParentAndBounds(NULL, 513 aura::Window* lock_window = Widget::CreateWindowWithParentAndBounds(NULL,
509 lock_container, gfx::Rect(0, 0, 100, 100))->GetNativeView(); 514 lock_container, gfx::Rect(0, 0, 100, 100))->GetNativeView();
510 lock_window->Show(); 515 lock_window->Show();
511 aura::Window* session_window = 516 aura::Window* session_window =
512 CreateTestWidget(gfx::Rect(0, 0, 100, 100))->GetNativeView(); 517 CreateTestWidget(gfx::Rect(0, 0, 100, 100))->GetNativeView();
513 session_window->Show(); 518 session_window->Show();
514 519
515 for (int block_reason = FIRST_BLOCK_REASON; 520 for (int block_reason = FIRST_BLOCK_REASON;
516 block_reason < NUMBER_OF_BLOCK_REASONS; 521 block_reason < NUMBER_OF_BLOCK_REASONS;
517 ++block_reason) { 522 ++block_reason) {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 return; 637 return;
633 638
634 UpdateDisplay("500x500,500x500"); 639 UpdateDisplay("500x500,500x500");
635 640
636 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 641 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
637 aura::Window* primary_root_window = Shell::GetPrimaryRootWindow(); 642 aura::Window* primary_root_window = Shell::GetPrimaryRootWindow();
638 aura::Window* secondary_root_window = 643 aura::Window* secondary_root_window =
639 root_windows[0] == primary_root_window ? 644 root_windows[0] == primary_root_window ?
640 root_windows[1] : root_windows[0]; 645 root_windows[1] : root_windows[0];
641 646
642 ASSERT_TRUE(Shell::GetContainer( 647 ASSERT_TRUE(Shell::GetContainer(primary_root_window,
643 primary_root_window, 648 kShellWindowId_VirtualKeyboardContainer));
644 internal::kShellWindowId_VirtualKeyboardContainer)); 649 ASSERT_FALSE(Shell::GetContainer(secondary_root_window,
645 ASSERT_FALSE(Shell::GetContainer( 650 kShellWindowId_VirtualKeyboardContainer));
646 secondary_root_window,
647 internal::kShellWindowId_VirtualKeyboardContainer));
648 } 651 }
649 652
650 // Test for http://crbug.com/263599. Virtual keyboard should be able to receive 653 // Test for http://crbug.com/263599. Virtual keyboard should be able to receive
651 // events at blocked user session. 654 // events at blocked user session.
652 TEST_F(VirtualKeyboardRootWindowControllerTest, 655 TEST_F(VirtualKeyboardRootWindowControllerTest,
653 ClickVirtualKeyboardInBlockedWindow) { 656 ClickVirtualKeyboardInBlockedWindow) {
654 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 657 aura::Window* root_window = Shell::GetPrimaryRootWindow();
655 aura::Window* keyboard_container = Shell::GetContainer(root_window, 658 aura::Window* keyboard_container =
656 internal::kShellWindowId_VirtualKeyboardContainer); 659 Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
657 ASSERT_TRUE(keyboard_container); 660 ASSERT_TRUE(keyboard_container);
658 keyboard_container->Show(); 661 keyboard_container->Show();
659 662
660 aura::Window* keyboard_window = Shell::GetInstance()->keyboard_controller()-> 663 aura::Window* keyboard_window = Shell::GetInstance()->keyboard_controller()->
661 proxy()->GetKeyboardWindow(); 664 proxy()->GetKeyboardWindow();
662 keyboard_container->AddChild(keyboard_window); 665 keyboard_container->AddChild(keyboard_window);
663 keyboard_window->set_owned_by_parent(false); 666 keyboard_window->set_owned_by_parent(false);
664 keyboard_window->SetBounds(gfx::Rect()); 667 keyboard_window->SetBounds(gfx::Rect());
665 keyboard_window->Show(); 668 keyboard_window->Show();
666 669
(...skipping 15 matching lines...) Expand all
682 UnblockUserSession(); 685 UnblockUserSession();
683 } 686 }
684 } 687 }
685 688
686 // Test for http://crbug.com/299787. RootWindowController should delete 689 // Test for http://crbug.com/299787. RootWindowController should delete
687 // the old container since the keyboard controller creates a new window in 690 // the old container since the keyboard controller creates a new window in
688 // GetWindowContainer(). 691 // GetWindowContainer().
689 TEST_F(VirtualKeyboardRootWindowControllerTest, 692 TEST_F(VirtualKeyboardRootWindowControllerTest,
690 DeleteOldContainerOnVirtualKeyboardInit) { 693 DeleteOldContainerOnVirtualKeyboardInit) {
691 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 694 aura::Window* root_window = Shell::GetPrimaryRootWindow();
692 aura::Window* keyboard_container = Shell::GetContainer(root_window, 695 aura::Window* keyboard_container =
693 internal::kShellWindowId_VirtualKeyboardContainer); 696 Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
694 ASSERT_TRUE(keyboard_container); 697 ASSERT_TRUE(keyboard_container);
695 // Track the keyboard container window. 698 // Track the keyboard container window.
696 aura::WindowTracker tracker; 699 aura::WindowTracker tracker;
697 tracker.Add(keyboard_container); 700 tracker.Add(keyboard_container);
698 // Mock a login user profile change to reinitialize the keyboard. 701 // Mock a login user profile change to reinitialize the keyboard.
699 ash::Shell::GetInstance()->OnLoginUserProfilePrepared(); 702 ash::Shell::GetInstance()->OnLoginUserProfilePrepared();
700 // keyboard_container should no longer be present. 703 // keyboard_container should no longer be present.
701 EXPECT_FALSE(tracker.Contains(keyboard_container)); 704 EXPECT_FALSE(tracker.Contains(keyboard_container));
702 } 705 }
703 706
704 // Test for crbug.com/342524. After user login, the work space should restore to 707 // Test for crbug.com/342524. After user login, the work space should restore to
705 // full screen. 708 // full screen.
706 TEST_F(VirtualKeyboardRootWindowControllerTest, RestoreWorkspaceAfterLogin) { 709 TEST_F(VirtualKeyboardRootWindowControllerTest, RestoreWorkspaceAfterLogin) {
707 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 710 aura::Window* root_window = Shell::GetPrimaryRootWindow();
708 aura::Window* keyboard_container = Shell::GetContainer(root_window, 711 aura::Window* keyboard_container =
709 internal::kShellWindowId_VirtualKeyboardContainer); 712 Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
710 keyboard_container->Show(); 713 keyboard_container->Show();
711 keyboard::KeyboardController* controller = 714 keyboard::KeyboardController* controller =
712 Shell::GetInstance()->keyboard_controller(); 715 Shell::GetInstance()->keyboard_controller();
713 aura::Window* keyboard_window = controller->proxy()->GetKeyboardWindow(); 716 aura::Window* keyboard_window = controller->proxy()->GetKeyboardWindow();
714 keyboard_container->AddChild(keyboard_window); 717 keyboard_container->AddChild(keyboard_window);
715 keyboard_window->set_owned_by_parent(false); 718 keyboard_window->set_owned_by_parent(false);
716 keyboard_window->Show(); 719 keyboard_window->Show();
717 720
718 gfx::Rect before = ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 721 gfx::Rect before = ash::Shell::GetScreen()->GetPrimaryDisplay().work_area();
719 722
720 // Notify keyboard bounds changing. 723 // Notify keyboard bounds changing.
721 controller->NotifyKeyboardBoundsChanging( 724 controller->NotifyKeyboardBoundsChanging(
722 controller->proxy()->GetKeyboardWindow()->bounds()); 725 controller->proxy()->GetKeyboardWindow()->bounds());
723 726
724 gfx::Rect after = ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 727 gfx::Rect after = ash::Shell::GetScreen()->GetPrimaryDisplay().work_area();
725 EXPECT_LT(after, before); 728 EXPECT_LT(after, before);
726 729
727 // Mock a login user profile change to reinitialize the keyboard. 730 // Mock a login user profile change to reinitialize the keyboard.
728 ash::Shell::GetInstance()->OnLoginUserProfilePrepared(); 731 ash::Shell::GetInstance()->OnLoginUserProfilePrepared();
729 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(), before); 732 EXPECT_EQ(ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(), before);
730 } 733 }
731 734
732 // Ensure that system modal dialogs do not block events targeted at the virtual 735 // Ensure that system modal dialogs do not block events targeted at the virtual
733 // keyboard. 736 // keyboard.
734 TEST_F(VirtualKeyboardRootWindowControllerTest, ClickWithActiveModalDialog) { 737 TEST_F(VirtualKeyboardRootWindowControllerTest, ClickWithActiveModalDialog) {
735 aura::Window* root_window = Shell::GetPrimaryRootWindow(); 738 aura::Window* root_window = Shell::GetPrimaryRootWindow();
736 aura::Window* keyboard_container = Shell::GetContainer(root_window, 739 aura::Window* keyboard_container =
737 internal::kShellWindowId_VirtualKeyboardContainer); 740 Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
738 ASSERT_TRUE(keyboard_container); 741 ASSERT_TRUE(keyboard_container);
739 keyboard_container->Show(); 742 keyboard_container->Show();
740 743
741 aura::Window* keyboard_window = Shell::GetInstance()->keyboard_controller()-> 744 aura::Window* keyboard_window = Shell::GetInstance()->keyboard_controller()->
742 proxy()->GetKeyboardWindow(); 745 proxy()->GetKeyboardWindow();
743 keyboard_container->AddChild(keyboard_window); 746 keyboard_container->AddChild(keyboard_window);
744 keyboard_window->set_owned_by_parent(false); 747 keyboard_window->set_owned_by_parent(false);
745 keyboard_window->SetBounds(gfx::Rect()); 748 keyboard_window->SetBounds(gfx::Rect());
746 keyboard_window->Show(); 749 keyboard_window->Show();
747 750
(...skipping 17 matching lines...) Expand all
765 768
766 modal_widget->Close(); 769 modal_widget->Close();
767 770
768 // Verify that mouse events are now unblocked to the root window. 771 // Verify that mouse events are now unblocked to the root window.
769 root_window_event_generator.ClickLeftButton(); 772 root_window_event_generator.ClickLeftButton();
770 EXPECT_EQ(2, handler->num_mouse_events() / 2); 773 EXPECT_EQ(2, handler->num_mouse_events() / 2);
771 } 774 }
772 775
773 } // namespace test 776 } // namespace test
774 } // namespace ash 777 } // namespace ash
OLDNEW
« no previous file with comments | « ash/root_window_controller.cc ('k') | ash/root_window_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698