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

Side by Side Diff: ash/wm/workspace/workspace_layout_manager_unittest.cc

Issue 2871243003: Enable new-virtual-keyboard-behavior flag by default. (Closed)
Patch Set: rebase Created 3 years, 7 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
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/workspace/workspace_layout_manager.h" 5 #include "ash/wm/workspace/workspace_layout_manager.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "ash/public/cpp/config.h" 10 #include "ash/public/cpp/config.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 int call_count_; 96 int call_count_;
97 bool is_fullscreen_; 97 bool is_fullscreen_;
98 98
99 DISALLOW_COPY_AND_ASSIGN(TestShellObserver); 99 DISALLOW_COPY_AND_ASSIGN(TestShellObserver);
100 }; 100 };
101 101
102 display::Display GetDisplayNearestWindow(aura::Window* window) { 102 display::Display GetDisplayNearestWindow(aura::Window* window) {
103 return display::Screen::GetScreen()->GetDisplayNearestWindow(window); 103 return display::Screen::GetScreen()->GetDisplayNearestWindow(window);
104 } 104 }
105 105
106 void DisableNewVKMode() {
107 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
108 if (!command_line->HasSwitch(::switches::kDisableNewVirtualKeyboardBehavior))
oshima 2017/05/16 12:31:30 you can just add it
yhanada 2017/05/17 01:33:37 Done.
109 command_line->AppendSwitch(::switches::kDisableNewVirtualKeyboardBehavior);
110 }
111
106 } // namespace 112 } // namespace
107 113
108 using WorkspaceLayoutManagerTest = test::AshTestBase; 114 using WorkspaceLayoutManagerTest = test::AshTestBase;
109 115
110 // Verifies that a window containing a restore coordinate will be restored to 116 // Verifies that a window containing a restore coordinate will be restored to
111 // to the size prior to minimize, keeping the restore rectangle in tact (if 117 // to the size prior to minimize, keeping the restore rectangle in tact (if
112 // there is one). 118 // there is one).
113 TEST_F(WorkspaceLayoutManagerTest, RestoreFromMinimizeKeepsRestore) { 119 TEST_F(WorkspaceLayoutManagerTest, RestoreFromMinimizeKeepsRestore) {
114 // See comment at top of file for why this is needed. 120 // See comment at top of file for why this is needed.
115 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock; 121 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock;
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 1155
1150 // Initializes the keyboard bounds using the bottom half of the work area. 1156 // Initializes the keyboard bounds using the bottom half of the work area.
1151 void InitKeyboardBounds() { 1157 void InitKeyboardBounds() {
1152 gfx::Rect work_area( 1158 gfx::Rect work_area(
1153 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); 1159 display::Screen::GetScreen()->GetPrimaryDisplay().work_area());
1154 keyboard_bounds_.SetRect(work_area.x(), 1160 keyboard_bounds_.SetRect(work_area.x(),
1155 work_area.y() + work_area.height() / 2, 1161 work_area.y() + work_area.height() / 2,
1156 work_area.width(), work_area.height() / 2); 1162 work_area.width(), work_area.height() / 2);
1157 } 1163 }
1158 1164
1159 void EnableNewVKMode() {
1160 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
1161 if (!command_line->HasSwitch(::switches::kUseNewVirtualKeyboardBehavior))
1162 command_line->AppendSwitch(::switches::kUseNewVirtualKeyboardBehavior);
1163 }
1164
1165 const gfx::Rect& keyboard_bounds() const { return keyboard_bounds_; } 1165 const gfx::Rect& keyboard_bounds() const { return keyboard_bounds_; }
1166 1166
1167 private: 1167 private:
1168 gfx::Insets restore_work_area_insets_; 1168 gfx::Insets restore_work_area_insets_;
1169 gfx::Rect keyboard_bounds_; 1169 gfx::Rect keyboard_bounds_;
1170 WorkspaceLayoutManager* layout_manager_; 1170 WorkspaceLayoutManager* layout_manager_;
1171 1171
1172 DISALLOW_COPY_AND_ASSIGN(WorkspaceLayoutManagerKeyboardTest); 1172 DISALLOW_COPY_AND_ASSIGN(WorkspaceLayoutManagerKeyboardTest);
1173 }; 1173 };
1174 1174
1175 // Tests that when a child window gains focus the top level window containing it 1175 // Tests that when a child window gains focus the top level window containing it
1176 // is resized to fit the remaining workspace area. 1176 // is resized to fit the remaining workspace area.
1177 TEST_F(WorkspaceLayoutManagerKeyboardTest, ChildWindowFocused) { 1177 TEST_F(WorkspaceLayoutManagerKeyboardTest, ChildWindowFocused) {
1178 // Append the flag to cause work area change in non-sticky mode.
1179 DisableNewVKMode();
1180
1178 // See comment at top of file for why this is needed. 1181 // See comment at top of file for why this is needed.
1179 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock; 1182 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock;
1180 1183
1181 InitKeyboardBounds(); 1184 InitKeyboardBounds();
1182 1185
1183 gfx::Rect work_area( 1186 gfx::Rect work_area(
1184 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); 1187 display::Screen::GetScreen()->GetPrimaryDisplay().work_area());
1185 1188
1186 std::unique_ptr<aura::Window> parent_window( 1189 std::unique_ptr<aura::Window> parent_window(
1187 CreateToplevelTestWindow(work_area)); 1190 CreateToplevelTestWindow(work_area));
(...skipping 12 matching lines...) Expand all
1200 parent_window->bounds().ToString()); 1203 parent_window->bounds().ToString());
1201 ShowKeyboard(); 1204 ShowKeyboard();
1202 EXPECT_EQ(gfx::Rect(50, 0, 100, available_height).ToString(), 1205 EXPECT_EQ(gfx::Rect(50, 0, 100, available_height).ToString(),
1203 parent_window->bounds().ToString()); 1206 parent_window->bounds().ToString());
1204 HideKeyboard(); 1207 HideKeyboard();
1205 EXPECT_EQ(initial_window_bounds.ToString(), 1208 EXPECT_EQ(initial_window_bounds.ToString(),
1206 parent_window->bounds().ToString()); 1209 parent_window->bounds().ToString());
1207 } 1210 }
1208 1211
1209 TEST_F(WorkspaceLayoutManagerKeyboardTest, AdjustWindowForA11yKeyboard) { 1212 TEST_F(WorkspaceLayoutManagerKeyboardTest, AdjustWindowForA11yKeyboard) {
1213 // Append the flag to cause work area change in non-sticky mode.
1214 DisableNewVKMode();
1215
1210 // See comment at top of file for why this is needed. 1216 // See comment at top of file for why this is needed.
1211 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock; 1217 WmWindowTestApi::GlobalMinimumSizeLock min_size_lock;
1212 InitKeyboardBounds(); 1218 InitKeyboardBounds();
1213 gfx::Rect work_area( 1219 gfx::Rect work_area(
1214 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); 1220 display::Screen::GetScreen()->GetPrimaryDisplay().work_area());
1215 1221
1216 std::unique_ptr<aura::Window> window(CreateToplevelTestWindow(work_area)); 1222 std::unique_ptr<aura::Window> window(CreateToplevelTestWindow(work_area));
1217 // The additional SetBounds() is needed as the aura-mus case uses Widget, 1223 // The additional SetBounds() is needed as the aura-mus case uses Widget,
1218 // which alters the supplied bounds. 1224 // which alters the supplied bounds.
1219 window->SetBounds(work_area); 1225 window->SetBounds(work_area);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 EXPECT_EQ( 1258 EXPECT_EQ(
1253 gfx::Rect(50, keyboard_bounds().y() - keyboard_bounds().height() / 2, 1259 gfx::Rect(50, keyboard_bounds().y() - keyboard_bounds().height() / 2,
1254 occluded_window_bounds.width(), occluded_window_bounds.height()) 1260 occluded_window_bounds.width(), occluded_window_bounds.height())
1255 .ToString(), 1261 .ToString(),
1256 window->bounds().ToString()); 1262 window->bounds().ToString());
1257 HideKeyboard(); 1263 HideKeyboard();
1258 EXPECT_EQ(occluded_window_bounds.ToString(), window->bounds().ToString()); 1264 EXPECT_EQ(occluded_window_bounds.ToString(), window->bounds().ToString());
1259 } 1265 }
1260 1266
1261 TEST_F(WorkspaceLayoutManagerKeyboardTest, IgnoreKeyboardBoundsChange) { 1267 TEST_F(WorkspaceLayoutManagerKeyboardTest, IgnoreKeyboardBoundsChange) {
1268 // Append the flag to cause work area change in non-sticky mode.
1269 DisableNewVKMode();
1262 InitKeyboardBounds(); 1270 InitKeyboardBounds();
1263 1271
1264 std::unique_ptr<aura::Window> window(CreateTestWindow(keyboard_bounds())); 1272 std::unique_ptr<aura::Window> window(CreateTestWindow(keyboard_bounds()));
1265 // The additional SetBounds() is needed as the aura-mus case uses Widget, 1273 // The additional SetBounds() is needed as the aura-mus case uses Widget,
1266 // which alters the supplied bounds. 1274 // which alters the supplied bounds.
1267 window->SetBounds(keyboard_bounds()); 1275 window->SetBounds(keyboard_bounds());
1268 wm::GetWindowState(window.get())->set_ignore_keyboard_bounds_change(true); 1276 wm::GetWindowState(window.get())->set_ignore_keyboard_bounds_change(true);
1269 wm::ActivateWindow(window.get()); 1277 wm::ActivateWindow(window.get());
1270 1278
1271 EXPECT_EQ(keyboard_bounds(), window->bounds()); 1279 EXPECT_EQ(keyboard_bounds(), window->bounds());
1272 ShowKeyboard(); 1280 ShowKeyboard();
1273 EXPECT_EQ(keyboard_bounds(), window->bounds()); 1281 EXPECT_EQ(keyboard_bounds(), window->bounds());
1274 } 1282 }
1275 1283
1276 } // namespace ash 1284 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698