Index: ash/wm/lock_layout_manager_unittest.cc |
diff --git a/ash/wm/lock_layout_manager_unittest.cc b/ash/wm/lock_layout_manager_unittest.cc |
index 70984c49f9f1990b787b3b26c5e3ab01644fe36b..b680ba21a9718b90be2d2ac460415b33f5b40134 100644 |
--- a/ash/wm/lock_layout_manager_unittest.cc |
+++ b/ash/wm/lock_layout_manager_unittest.cc |
@@ -2,6 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "ash/display/display_manager.h" |
#include "ash/root_window_controller.h" |
#include "ash/screen_util.h" |
#include "ash/shell.h" |
@@ -187,7 +188,8 @@ TEST_F(LockLayoutManagerTest, MaximizedFullscreenWindowBoundsAreEqualToScreen) { |
} |
TEST_F(LockLayoutManagerTest, KeyboardBounds) { |
- gfx::Rect screen_bounds = Shell::GetScreen()->GetPrimaryDisplay().bounds(); |
+ gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
+ gfx::Rect screen_bounds = primary_display.bounds(); |
views::Widget::InitParams widget_params( |
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
@@ -203,8 +205,30 @@ TEST_F(LockLayoutManagerTest, KeyboardBounds) { |
keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_ENABLED); |
ShowKeyboard(true); |
EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString()); |
+ gfx::Rect keyboard_bounds = |
+ keyboard::KeyboardController::GetInstance()->current_keyboard_bounds(); |
+ EXPECT_NE(keyboard_bounds, gfx::Rect()); |
ShowKeyboard(false); |
+ // When keyboard is hidden make sure that rotating the screen gives 100% of |
+ // screen size to window. |
+ // Repro steps for http://crbug.com/401667: |
+ // 1. Set up login screen defaults: VK override disabled |
+ // 2. Show/hide keyboard, make sure that no stale keyboard bounds are cached. |
+ keyboard::SetKeyboardOverscrollOverride( |
+ keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_DISABLED); |
+ ShowKeyboard(true); |
+ ShowKeyboard(false); |
+ ash::DisplayManager* display_manager = |
+ Shell::GetInstance()->display_manager(); |
+ display_manager->SetDisplayRotation(primary_display.id(), |
+ gfx::Display::ROTATE_90); |
+ primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
+ screen_bounds = primary_display.bounds(); |
+ EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString()); |
+ display_manager->SetDisplayRotation(primary_display.id(), |
+ gfx::Display::ROTATE_0); |
+ |
// When virtual keyboard overscroll is disabled keyboard bounds do |
// affect window bounds. |
keyboard::SetKeyboardOverscrollOverride( |
@@ -212,6 +236,8 @@ TEST_F(LockLayoutManagerTest, KeyboardBounds) { |
ShowKeyboard(true); |
keyboard::KeyboardController* keyboard = |
keyboard::KeyboardController::GetInstance(); |
+ primary_display = Shell::GetScreen()->GetPrimaryDisplay(); |
+ screen_bounds = primary_display.bounds(); |
gfx::Rect target_bounds(screen_bounds); |
target_bounds.set_height(target_bounds.height() - |
keyboard->proxy()->GetKeyboardWindow()->bounds().height()); |