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

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

Issue 495923002: Fix stale keyboard bounds on login screen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cl Created 6 years, 4 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 | « no previous file | ash/wm/lock_window_state.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/display/display_manager.h"
5 #include "ash/root_window_controller.h" 6 #include "ash/root_window_controller.h"
6 #include "ash/screen_util.h" 7 #include "ash/screen_util.h"
7 #include "ash/shell.h" 8 #include "ash/shell.h"
8 #include "ash/shell_window_ids.h" 9 #include "ash/shell_window_ids.h"
9 #include "ash/test/ash_test_base.h" 10 #include "ash/test/ash_test_base.h"
10 #include "ash/wm/window_state.h" 11 #include "ash/wm/window_state.h"
11 #include "base/basictypes.h" 12 #include "base/basictypes.h"
12 #include "base/command_line.h" 13 #include "base/command_line.h"
13 #include "ui/aura/client/aura_constants.h" 14 #include "ui/aura/client/aura_constants.h"
14 #include "ui/aura/window.h" 15 #include "ui/aura/window.h"
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 const gfx::Rect bounds2 = gfx::Rect(100, 100, 200, 200); 181 const gfx::Rect bounds2 = gfx::Rect(100, 100, 200, 200);
181 maximized_window->SetBounds(bounds2); 182 maximized_window->SetBounds(bounds2);
182 fullscreen_window->SetBounds(bounds2); 183 fullscreen_window->SetBounds(bounds2);
183 EXPECT_EQ(screen_bounds.ToString(), 184 EXPECT_EQ(screen_bounds.ToString(),
184 maximized_window->GetBoundsInScreen().ToString()); 185 maximized_window->GetBoundsInScreen().ToString());
185 EXPECT_EQ(screen_bounds.ToString(), 186 EXPECT_EQ(screen_bounds.ToString(),
186 fullscreen_window->GetBoundsInScreen().ToString()); 187 fullscreen_window->GetBoundsInScreen().ToString());
187 } 188 }
188 189
189 TEST_F(LockLayoutManagerTest, KeyboardBounds) { 190 TEST_F(LockLayoutManagerTest, KeyboardBounds) {
190 gfx::Rect screen_bounds = Shell::GetScreen()->GetPrimaryDisplay().bounds(); 191 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay();
192 gfx::Rect screen_bounds = primary_display.bounds();
191 193
192 views::Widget::InitParams widget_params( 194 views::Widget::InitParams widget_params(
193 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 195 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
194 widget_params.show_state = ui::SHOW_STATE_FULLSCREEN; 196 widget_params.show_state = ui::SHOW_STATE_FULLSCREEN;
195 scoped_ptr<aura::Window> window( 197 scoped_ptr<aura::Window> window(
196 CreateTestLoginWindow(widget_params, false /* use_delegate */)); 198 CreateTestLoginWindow(widget_params, false /* use_delegate */));
197 199
198 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString()); 200 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString());
199 201
200 // When virtual keyboard overscroll is enabled keyboard bounds should not 202 // When virtual keyboard overscroll is enabled keyboard bounds should not
201 // affect window bounds. 203 // affect window bounds.
202 keyboard::SetKeyboardOverscrollOverride( 204 keyboard::SetKeyboardOverscrollOverride(
203 keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_ENABLED); 205 keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_ENABLED);
204 ShowKeyboard(true); 206 ShowKeyboard(true);
205 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString()); 207 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString());
208 gfx::Rect keyboard_bounds =
209 keyboard::KeyboardController::GetInstance()->current_keyboard_bounds();
210 EXPECT_NE(keyboard_bounds, gfx::Rect());
206 ShowKeyboard(false); 211 ShowKeyboard(false);
207 212
213 // When keyboard is hidden make sure that rotating the screen gives 100% of
214 // screen size to window.
215 keyboard::SetKeyboardOverscrollOverride(
216 keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_DISABLED);
217 ShowKeyboard(true);
218 ShowKeyboard(false);
oshima 2014/08/21 15:32:50 why turning on and off?
Nikita (slow) 2014/08/21 16:00:41 This is the way to reproduce this bug before the f
oshima 2014/08/21 16:32:39 Can you mention that this is to repro a bug (with
Nikita (slow) 2014/08/21 16:38:27 Done.
219 ash::DisplayManager* display_manager =
220 Shell::GetInstance()->display_manager();
221 display_manager->SetDisplayRotation(primary_display.id(),
222 gfx::Display::ROTATE_90);
223 screen_bounds = primary_display.bounds();
oshima 2014/08/21 16:32:39 screen_bounds = Shell::GetScreen()->GetPrimaryDisp
Nikita (slow) 2014/08/21 16:38:27 Done.
224
225 // We can't rely on screen_bounds.ToString() here since rotation doesn't
226 // affect how bounds are stored.
oshima 2014/08/21 15:32:50 rotation should update the display bounds. Have yo
Nikita (slow) 2014/08/21 16:00:41 I'm getting updated screen bounds: screen_bounds =
227 EXPECT_EQ(screen_bounds.origin(), window->GetBoundsInScreen().origin());
228 EXPECT_EQ(screen_bounds.width(), window->GetBoundsInScreen().height());
229 EXPECT_EQ(screen_bounds.height(), window->GetBoundsInScreen().width());
230 display_manager->SetDisplayRotation(primary_display.id(),
231 gfx::Display::ROTATE_0);
232
208 // When virtual keyboard overscroll is disabled keyboard bounds do 233 // When virtual keyboard overscroll is disabled keyboard bounds do
209 // affect window bounds. 234 // affect window bounds.
210 keyboard::SetKeyboardOverscrollOverride( 235 keyboard::SetKeyboardOverscrollOverride(
211 keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_DISABLED); 236 keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_DISABLED);
212 ShowKeyboard(true); 237 ShowKeyboard(true);
213 keyboard::KeyboardController* keyboard = 238 keyboard::KeyboardController* keyboard =
214 keyboard::KeyboardController::GetInstance(); 239 keyboard::KeyboardController::GetInstance();
215 gfx::Rect target_bounds(screen_bounds); 240 gfx::Rect target_bounds(screen_bounds);
216 target_bounds.set_height(target_bounds.height() - 241 target_bounds.set_height(target_bounds.height() -
217 keyboard->proxy()->GetKeyboardWindow()->bounds().height()); 242 keyboard->proxy()->GetKeyboardWindow()->bounds().height());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 ScreenUtil::GetDisplayWorkAreaBoundsInParent(window.get()); 292 ScreenUtil::GetDisplayWorkAreaBoundsInParent(window.get());
268 window->SetBounds(work_area); 293 window->SetBounds(work_area);
269 // Usually work_area takes Shelf into account but that doesn't affect 294 // Usually work_area takes Shelf into account but that doesn't affect
270 // LockScreen container windows. 295 // LockScreen container windows.
271 EXPECT_NE(work_area.ToString(), window->GetBoundsInScreen().ToString()); 296 EXPECT_NE(work_area.ToString(), window->GetBoundsInScreen().ToString());
272 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString()); 297 EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString());
273 } 298 }
274 299
275 } // namespace test 300 } // namespace test
276 } // namespace ash 301 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | ash/wm/lock_window_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698