diff options
Diffstat (limited to 'ui/aura_shell/shell_unittest.cc')
-rw-r--r-- | ui/aura_shell/shell_unittest.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/ui/aura_shell/shell_unittest.cc b/ui/aura_shell/shell_unittest.cc index 1be14e7..f00a3df 100644 --- a/ui/aura_shell/shell_unittest.cc +++ b/ui/aura_shell/shell_unittest.cc @@ -203,5 +203,49 @@ TEST_F(ShellTest, CreateLockScreenModalWindow) { widget->Close(); } +TEST_F(ShellTest, IsScreenLocked) { + views::Widget::InitParams widget_params( + views::Widget::InitParams::TYPE_WINDOW); + + // A normal window does not lock the screen. + views::Widget* widget = CreateTestWindow(widget_params); + widget->Show(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + widget->Hide(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + + // A modal window with a normal window as parent does not locks the screen. + views::Widget* modal_widget = views::Widget::CreateWindowWithParent( + new ModalWindow(), widget->GetNativeView()); + modal_widget->Show(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + modal_widget->Close(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + widget->Close(); + + // A lock screen window locks the screen. + views::Widget* lock_widget = CreateTestWindow(widget_params); + aura_shell::Shell::GetInstance()->GetContainer( + aura_shell::internal::kShellWindowId_LockScreenContainer)-> + AddChild(lock_widget->GetNativeView()); + lock_widget->Show(); + EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked()); + lock_widget->Hide(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + + // A modal window with a lock window as parent does not lock the screen. The + // screen is locked only when a lock windown is visible. + views::Widget* lock_modal_widget = views::Widget::CreateWindowWithParent( + new ModalWindow(), lock_widget->GetNativeView()); + lock_modal_widget->Show(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); + lock_widget->Show(); + EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked()); + lock_modal_widget->Close(); + EXPECT_TRUE(Shell::GetInstance()->IsScreenLocked()); + lock_widget->Close(); + EXPECT_FALSE(Shell::GetInstance()->IsScreenLocked()); +} + } // namespace test } // namespace aura_shell |