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

Side by Side Diff: ash/wm/system_modal_container_layout_manager_unittest.cc

Issue 14295008: Add ash SessionStateDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 7 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
« no previous file with comments | « ash/wm/system_modal_container_layout_manager.cc ('k') | ash/wm/window_cycle_controller.cc » ('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/wm/system_modal_container_layout_manager.h" 5 #include "ash/wm/system_modal_container_layout_manager.h"
6 6
7 #include "ash/root_window_controller.h" 7 #include "ash/root_window_controller.h"
8 #include "ash/session_state_delegate.h"
8 #include "ash/shell.h" 9 #include "ash/shell.h"
9 #include "ash/shell_delegate.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
11 #include "ash/test/ash_test_base.h" 11 #include "ash/test/ash_test_base.h"
12 #include "ash/wm/window_util.h" 12 #include "ash/wm/window_util.h"
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/run_loop.h" 14 #include "base/run_loop.h"
15 #include "ui/aura/root_window.h" 15 #include "ui/aura/root_window.h"
16 #include "ui/aura/test/event_generator.h" 16 #include "ui/aura/test/event_generator.h"
17 #include "ui/aura/window.h" 17 #include "ui/aura/window.h"
18 #include "ui/compositor/layer.h" 18 #include "ui/compositor/layer.h"
19 #include "ui/gfx/screen.h" 19 #include "ui/gfx/screen.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 // no longer receives mouse events. 306 // no longer receives mouse events.
307 EventTestWindow* transient_delegate = new EventTestWindow(true); 307 EventTestWindow* transient_delegate = new EventTestWindow(true);
308 aura::Window* transient = 308 aura::Window* transient =
309 transient_delegate->OpenTestWindowWithParent(main.get()); 309 transient_delegate->OpenTestWindowWithParent(main.get());
310 EXPECT_TRUE(wm::IsActiveWindow(transient)); 310 EXPECT_TRUE(wm::IsActiveWindow(transient));
311 e1.ClickLeftButton(); 311 e1.ClickLeftButton();
312 EXPECT_EQ(1, transient_delegate->mouse_presses()); 312 EXPECT_EQ(1, transient_delegate->mouse_presses());
313 313
314 // Create a window in the lock screen container and ensure that it receives 314 // Create a window in the lock screen container and ensure that it receives
315 // the mouse event instead of the modal window (crbug.com/110920). 315 // the mouse event instead of the modal window (crbug.com/110920).
316 Shell::GetInstance()->delegate()->LockScreen(); 316 Shell::GetInstance()->session_state_delegate()->LockScreen();
317 EventTestWindow* lock_delegate = new EventTestWindow(false); 317 EventTestWindow* lock_delegate = new EventTestWindow(false);
318 scoped_ptr<aura::Window> lock(lock_delegate->OpenTestWindowWithParent( 318 scoped_ptr<aura::Window> lock(lock_delegate->OpenTestWindowWithParent(
319 Shell::GetPrimaryRootWindowController()->GetContainer( 319 Shell::GetPrimaryRootWindowController()->GetContainer(
320 ash::internal::kShellWindowId_LockScreenContainer))); 320 ash::internal::kShellWindowId_LockScreenContainer)));
321 EXPECT_TRUE(wm::IsActiveWindow(lock.get())); 321 EXPECT_TRUE(wm::IsActiveWindow(lock.get()));
322 e1.ClickLeftButton(); 322 e1.ClickLeftButton();
323 EXPECT_EQ(1, lock_delegate->mouse_presses()); 323 EXPECT_EQ(1, lock_delegate->mouse_presses());
324 324
325 // Make sure that a modal container created by the lock screen can still 325 // Make sure that a modal container created by the lock screen can still
326 // receive mouse events. 326 // receive mouse events.
327 EventTestWindow* lock_modal_delegate = new EventTestWindow(true); 327 EventTestWindow* lock_modal_delegate = new EventTestWindow(true);
328 aura::Window* lock_modal = 328 aura::Window* lock_modal =
329 lock_modal_delegate->OpenTestWindowWithParent(lock.get()); 329 lock_modal_delegate->OpenTestWindowWithParent(lock.get());
330 EXPECT_TRUE(wm::IsActiveWindow(lock_modal)); 330 EXPECT_TRUE(wm::IsActiveWindow(lock_modal));
331 e1.ClickLeftButton(); 331 e1.ClickLeftButton();
332 EXPECT_EQ(1, lock_modal_delegate->mouse_presses()); 332 EXPECT_EQ(1, lock_modal_delegate->mouse_presses());
333 333
334 // Verify that none of the other containers received any more mouse presses. 334 // Verify that none of the other containers received any more mouse presses.
335 EXPECT_EQ(1, main_delegate->mouse_presses()); 335 EXPECT_EQ(1, main_delegate->mouse_presses());
336 EXPECT_EQ(1, transient_delegate->mouse_presses()); 336 EXPECT_EQ(1, transient_delegate->mouse_presses());
337 EXPECT_EQ(1, lock_delegate->mouse_presses()); 337 EXPECT_EQ(1, lock_delegate->mouse_presses());
338 EXPECT_EQ(1, lock_modal_delegate->mouse_presses()); 338 EXPECT_EQ(1, lock_modal_delegate->mouse_presses());
339 339
340 Shell::GetInstance()->delegate()->UnlockScreen(); 340 Shell::GetInstance()->session_state_delegate()->UnlockScreen();
341 } 341 }
342 342
343 // Makes sure we don't crash if a modal window is shown while the parent window 343 // Makes sure we don't crash if a modal window is shown while the parent window
344 // is hidden. 344 // is hidden.
345 TEST_F(SystemModalContainerLayoutManagerTest, ShowModalWhileHidden) { 345 TEST_F(SystemModalContainerLayoutManagerTest, ShowModalWhileHidden) {
346 // Hide the lock screen. 346 // Hide the lock screen.
347 Shell::GetPrimaryRootWindowController()->GetContainer( 347 Shell::GetPrimaryRootWindowController()->GetContainer(
348 internal::kShellWindowId_SystemModalContainer)->layer()->SetOpacity(0); 348 internal::kShellWindowId_SystemModalContainer)->layer()->SetOpacity(0);
349 349
350 // Create a modal window. 350 // Create a modal window.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 // locked. 402 // locked.
403 EXPECT_TRUE(AllRootWindowsHaveModalBackgrounds()); 403 EXPECT_TRUE(AllRootWindowsHaveModalBackgrounds());
404 EXPECT_FALSE(AllRootWindowsHaveLockedModalBackgrounds()); 404 EXPECT_FALSE(AllRootWindowsHaveLockedModalBackgrounds());
405 405
406 TestWindow::CloseTestWindow(modal_window.release()); 406 TestWindow::CloseTestWindow(modal_window.release());
407 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds()); 407 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds());
408 EXPECT_FALSE(AllRootWindowsHaveLockedModalBackgrounds()); 408 EXPECT_FALSE(AllRootWindowsHaveLockedModalBackgrounds());
409 409
410 // Normal system modal window while locked. Shows locked system modal 410 // Normal system modal window while locked. Shows locked system modal
411 // background. 411 // background.
412 Shell::GetInstance()->delegate()->LockScreen(); 412 Shell::GetInstance()->session_state_delegate()->LockScreen();
413 scoped_ptr<aura::Window> lock_parent(OpenTestWindowWithParent( 413 scoped_ptr<aura::Window> lock_parent(OpenTestWindowWithParent(
414 Shell::GetPrimaryRootWindowController()->GetContainer( 414 Shell::GetPrimaryRootWindowController()->GetContainer(
415 ash::internal::kShellWindowId_LockScreenContainer), 415 ash::internal::kShellWindowId_LockScreenContainer),
416 false)); 416 false));
417 scoped_ptr<aura::Window> lock_modal_window(OpenTestWindowWithParent( 417 scoped_ptr<aura::Window> lock_modal_window(OpenTestWindowWithParent(
418 lock_parent.get(), true)); 418 lock_parent.get(), true));
419 lock_parent->Show(); 419 lock_parent->Show();
420 lock_modal_window->Show(); 420 lock_modal_window->Show();
421 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds()); 421 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds());
422 EXPECT_TRUE(AllRootWindowsHaveLockedModalBackgrounds()); 422 EXPECT_TRUE(AllRootWindowsHaveLockedModalBackgrounds());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 493
494 // No more modal screen. 494 // No more modal screen.
495 modal1->Hide(); 495 modal1->Hide();
496 TestWindow::CloseTestWindow(modal1.release()); 496 TestWindow::CloseTestWindow(modal1.release());
497 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds()); 497 EXPECT_FALSE(AllRootWindowsHaveModalBackgrounds());
498 EXPECT_TRUE(wm::IsActiveWindow(normal.get())); 498 EXPECT_TRUE(wm::IsActiveWindow(normal.get()));
499 } 499 }
500 500
501 } // namespace test 501 } // namespace test
502 } // namespace ash 502 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/system_modal_container_layout_manager.cc ('k') | ash/wm/window_cycle_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698