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

Side by Side Diff: ash/wm/dock/docked_window_layout_manager_unittest.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/cursor_manager_chromeos.cc ('k') | ash/wm/dock/docked_window_resizer_unittest.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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/common/wm/dock/docked_window_layout_manager.h" 5 #include "ash/common/wm/dock/docked_window_layout_manager.h"
6 6
7 #include "ash/aura/wm_window_aura.h" 7 #include "ash/aura/wm_window_aura.h"
8 #include "ash/common/ash_switches.h" 8 #include "ash/common/ash_switches.h"
9 #include "ash/common/shelf/shelf_model.h" 9 #include "ash/common/shelf/shelf_model.h"
10 #include "ash/common/shelf/shelf_types.h" 10 #include "ash/common/shelf/shelf_types.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 return CreateWindowResizer(WmWindowAura::Get(window), point_in_parent, 107 return CreateWindowResizer(WmWindowAura::Get(window), point_in_parent,
108 window_component, 108 window_component,
109 aura::client::WINDOW_MOVE_SOURCE_MOUSE) 109 aura::client::WINDOW_MOVE_SOURCE_MOUSE)
110 .release(); 110 .release();
111 } 111 }
112 112
113 void DragStart(aura::Window* window) { 113 void DragStart(aura::Window* window) {
114 DragStartAtOffsetFromwindowOrigin(window, 0, 0); 114 DragStartAtOffsetFromwindowOrigin(window, 0, 0);
115 } 115 }
116 116
117 void DragStartAtOffsetFromwindowOrigin(aura::Window* window, 117 void DragStartAtOffsetFromwindowOrigin(aura::Window* window, int dx, int dy) {
118 int dx, int dy) {
119 initial_location_in_parent_ = 118 initial_location_in_parent_ =
120 window->bounds().origin() + gfx::Vector2d(dx, dy); 119 window->bounds().origin() + gfx::Vector2d(dx, dy);
121 resizer_.reset(CreateSomeWindowResizer(window, 120 resizer_.reset(CreateSomeWindowResizer(window, initial_location_in_parent_,
122 initial_location_in_parent_,
123 HTCAPTION)); 121 HTCAPTION));
124 ASSERT_TRUE(resizer_.get()); 122 ASSERT_TRUE(resizer_.get());
125 } 123 }
126 124
127 void DragMove(int dx, int dy) { 125 void DragMove(int dx, int dy) {
128 resizer_->Drag(initial_location_in_parent_ + gfx::Vector2d(dx, dy), 0); 126 resizer_->Drag(initial_location_in_parent_ + gfx::Vector2d(dx, dy), 0);
129 } 127 }
130 128
131 void DragEnd() { 129 void DragEnd() {
132 resizer_->CompleteDrag(); 130 resizer_->CompleteDrag();
(...skipping 12 matching lines...) Expand all
145 int CorrectContainerIdDuringDrag() { 143 int CorrectContainerIdDuringDrag() {
146 if (window_type_ == ui::wm::WINDOW_TYPE_PANEL) 144 if (window_type_ == ui::wm::WINDOW_TYPE_PANEL)
147 return kShellWindowId_PanelContainer; 145 return kShellWindowId_PanelContainer;
148 return kShellWindowId_DockedContainer; 146 return kShellWindowId_DockedContainer;
149 } 147 }
150 148
151 // Test dragging the window vertically (to detach if it is a panel) and then 149 // Test dragging the window vertically (to detach if it is a panel) and then
152 // horizontally to the edge with an added offset from the edge of |dx|. 150 // horizontally to the edge with an added offset from the edge of |dx|.
153 void DragRelativeToEdge(DockedEdge edge, aura::Window* window, int dx) { 151 void DragRelativeToEdge(DockedEdge edge, aura::Window* window, int dx) {
154 DragVerticallyAndRelativeToEdge( 152 DragVerticallyAndRelativeToEdge(
155 edge, 153 edge, window, dx,
156 window,
157 dx,
158 window_type_ == ui::wm::WINDOW_TYPE_PANEL ? -100 : 20); 154 window_type_ == ui::wm::WINDOW_TYPE_PANEL ? -100 : 20);
159 } 155 }
160 156
161 void DragToVerticalPositionAndToEdge(DockedEdge edge, 157 void DragToVerticalPositionAndToEdge(DockedEdge edge,
162 aura::Window* window, 158 aura::Window* window,
163 int y) { 159 int y) {
164 DragToVerticalPositionRelativeToEdge(edge, window, 0, y); 160 DragToVerticalPositionRelativeToEdge(edge, window, 0, y);
165 } 161 }
166 162
167 void DragToVerticalPositionRelativeToEdge(DockedEdge edge, 163 void DragToVerticalPositionRelativeToEdge(DockedEdge edge,
168 aura::Window* window, 164 aura::Window* window,
169 int dx, 165 int dx,
170 int y) { 166 int y) {
171 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 167 gfx::Rect initial_bounds = window->GetBoundsInScreen();
172 DragVerticallyAndRelativeToEdge(edge, window, dx, y - initial_bounds.y()); 168 DragVerticallyAndRelativeToEdge(edge, window, dx, y - initial_bounds.y());
173 } 169 }
174 170
175 // Detach if our window is a panel, then drag it vertically by |dy| and 171 // Detach if our window is a panel, then drag it vertically by |dy| and
176 // horizontally to the edge with an added offset from the edge of |dx|. 172 // horizontally to the edge with an added offset from the edge of |dx|.
177 void DragVerticallyAndRelativeToEdge(DockedEdge edge, 173 void DragVerticallyAndRelativeToEdge(DockedEdge edge,
178 aura::Window* window, 174 aura::Window* window,
179 int dx, int dy) { 175 int dx,
176 int dy) {
180 gfx::Rect initial_bounds = window->GetBoundsInScreen(); 177 gfx::Rect initial_bounds = window->GetBoundsInScreen();
181 // avoid snap by clicking away from the border 178 // avoid snap by clicking away from the border
182 ASSERT_NO_FATAL_FAILURE(DragStartAtOffsetFromwindowOrigin(window, 25, 5)); 179 ASSERT_NO_FATAL_FAILURE(DragStartAtOffsetFromwindowOrigin(window, 25, 5));
183 180
184 gfx::Rect work_area = display::Screen::GetScreen() 181 gfx::Rect work_area = display::Screen::GetScreen()
185 ->GetDisplayNearestWindow(window) 182 ->GetDisplayNearestWindow(window)
186 .work_area(); 183 .work_area();
187 gfx::Point initial_location_in_screen = initial_location_in_parent_; 184 gfx::Point initial_location_in_screen = initial_location_in_parent_;
188 ::wm::ConvertPointToScreen(window->parent(), &initial_location_in_screen); 185 ::wm::ConvertPointToScreen(window->parent(), &initial_location_in_screen);
189 // Drag the window left or right to the edge (or almost to it). 186 // Drag the window left or right to the edge (or almost to it).
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 DockedWindowLayoutManager::Get(WmWindowAura::Get(window.get())); 266 DockedWindowLayoutManager::Get(WmWindowAura::Get(window.get()));
270 267
271 // Create two additional windows and test their auto-placement 268 // Create two additional windows and test their auto-placement
272 std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1)); 269 std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1));
273 gfx::Rect desktop_area = window1->parent()->bounds(); 270 gfx::Rect desktop_area = window1->parent()->bounds();
274 wm::GetWindowState(window1.get())->set_window_position_managed(true); 271 wm::GetWindowState(window1.get())->set_window_position_managed(true);
275 window1->Hide(); 272 window1->Hide();
276 window1->SetBounds(gfx::Rect(250, 32, 231, 320)); 273 window1->SetBounds(gfx::Rect(250, 32, 231, 320));
277 window1->Show(); 274 window1->Show();
278 // |window1| should be centered in work area. 275 // |window1| should be centered in work area.
279 EXPECT_EQ(base::IntToString( 276 EXPECT_EQ(base::IntToString(docked_width(manager) + min_dock_gap() +
280 docked_width(manager) + min_dock_gap() + 277 (desktop_area.width() - docked_width(manager) -
281 (desktop_area.width() - docked_width(manager) - 278 min_dock_gap() - window1->bounds().width()) /
282 min_dock_gap() - window1->bounds().width()) / 2) + 279 2) +
283 ",32 231x320", window1->bounds().ToString()); 280 ",32 231x320",
281 window1->bounds().ToString());
284 282
285 std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2)); 283 std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2));
286 wm::GetWindowState(window2.get())->set_window_position_managed(true); 284 wm::GetWindowState(window2.get())->set_window_position_managed(true);
287 // To avoid any auto window manager changes due to SetBounds, the window 285 // To avoid any auto window manager changes due to SetBounds, the window
288 // gets first hidden and then shown again. 286 // gets first hidden and then shown again.
289 window2->Hide(); 287 window2->Hide();
290 window2->SetBounds(gfx::Rect(250, 48, 150, 300)); 288 window2->SetBounds(gfx::Rect(250, 48, 150, 300));
291 window2->Show(); 289 window2->Show();
292 290
293 // |window1| should be flush left and |window2| flush right. 291 // |window1| should be flush left and |window2| flush right.
294 EXPECT_EQ( 292 EXPECT_EQ(
295 base::IntToString(docked_width(manager) + min_dock_gap()) + 293 base::IntToString(docked_width(manager) + min_dock_gap()) + ",32 231x320",
296 ",32 231x320", window1->bounds().ToString()); 294 window1->bounds().ToString());
297 EXPECT_EQ( 295 EXPECT_EQ(
298 base::IntToString( 296 base::IntToString(desktop_area.width() - window2->bounds().width()) +
299 desktop_area.width() - window2->bounds().width()) + 297 ",48 150x300",
300 ",48 150x300", window2->bounds().ToString()); 298 window2->bounds().ToString());
301 } 299 }
302 300
303 // Tests that with a window docked on the right the auto-placing logic in 301 // Tests that with a window docked on the right the auto-placing logic in
304 // RearrangeVisibleWindowOnShow places windows flush with work area edges. 302 // RearrangeVisibleWindowOnShow places windows flush with work area edges.
305 TEST_P(DockedWindowLayoutManagerTest, AutoPlacingRight) { 303 TEST_P(DockedWindowLayoutManagerTest, AutoPlacingRight) {
306 if (!SupportsHostWindowResize()) 304 if (!SupportsHostWindowResize())
307 return; 305 return;
308 306
309 gfx::Rect bounds(0, 0, 201, 201); 307 gfx::Rect bounds(0, 0, 201, 201);
310 std::unique_ptr<aura::Window> window(CreateTestWindow(bounds)); 308 std::unique_ptr<aura::Window> window(CreateTestWindow(bounds));
311 DragRelativeToEdge(DOCKED_EDGE_RIGHT, window.get(), 0); 309 DragRelativeToEdge(DOCKED_EDGE_RIGHT, window.get(), 0);
312 310
313 // The window should be attached and snapped to the right side of the screen. 311 // The window should be attached and snapped to the right side of the screen.
314 EXPECT_EQ(window->GetRootWindow()->bounds().right(), 312 EXPECT_EQ(window->GetRootWindow()->bounds().right(),
315 window->GetBoundsInScreen().right()); 313 window->GetBoundsInScreen().right());
316 EXPECT_EQ(kShellWindowId_DockedContainer, window->parent()->id()); 314 EXPECT_EQ(kShellWindowId_DockedContainer, window->parent()->id());
317 315
318 DockedWindowLayoutManager* manager = 316 DockedWindowLayoutManager* manager =
319 DockedWindowLayoutManager::Get(WmWindowAura::Get(window.get())); 317 DockedWindowLayoutManager::Get(WmWindowAura::Get(window.get()));
320 318
321 // Create two additional windows and test their auto-placement 319 // Create two additional windows and test their auto-placement
322 std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1)); 320 std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1));
323 gfx::Rect desktop_area = window1->parent()->bounds(); 321 gfx::Rect desktop_area = window1->parent()->bounds();
324 wm::GetWindowState(window1.get())->set_window_position_managed(true); 322 wm::GetWindowState(window1.get())->set_window_position_managed(true);
325 window1->Hide(); 323 window1->Hide();
326 window1->SetBounds(gfx::Rect(16, 32, 231, 320)); 324 window1->SetBounds(gfx::Rect(16, 32, 231, 320));
327 window1->Show(); 325 window1->Show();
328 326
329 // |window1| should be centered in work area. 327 // |window1| should be centered in work area.
330 EXPECT_EQ(base::IntToString( 328 EXPECT_EQ(base::IntToString((desktop_area.width() - docked_width(manager) -
331 (desktop_area.width() - docked_width(manager) - 329 min_dock_gap() - window1->bounds().width()) /
332 min_dock_gap() - window1->bounds().width()) / 2) + 330 2) +
333 ",32 231x320", window1->bounds().ToString()); 331 ",32 231x320",
332 window1->bounds().ToString());
334 333
335 std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2)); 334 std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2));
336 wm::GetWindowState(window2.get())->set_window_position_managed(true); 335 wm::GetWindowState(window2.get())->set_window_position_managed(true);
337 // To avoid any auto window manager changes due to SetBounds, the window 336 // To avoid any auto window manager changes due to SetBounds, the window
338 // gets first hidden and then shown again. 337 // gets first hidden and then shown again.
339 window2->Hide(); 338 window2->Hide();
340 window2->SetBounds(gfx::Rect(32, 48, 256, 512)); 339 window2->SetBounds(gfx::Rect(32, 48, 256, 512));
341 window2->Show(); 340 window2->Show();
342 341
343 // |window1| should be flush left and |window2| flush right. 342 // |window1| should be flush left and |window2| flush right.
344 EXPECT_EQ("0,32 231x320", window1->bounds().ToString()); 343 EXPECT_EQ("0,32 231x320", window1->bounds().ToString());
345 EXPECT_EQ( 344 EXPECT_EQ(base::IntToString(desktop_area.width() - window2->bounds().width() -
346 base::IntToString( 345 docked_width(manager) - min_dock_gap()) +
347 desktop_area.width() - window2->bounds().width() - 346 ",48 256x512",
348 docked_width(manager) - min_dock_gap()) + 347 window2->bounds().ToString());
349 ",48 256x512", window2->bounds().ToString());
350 } 348 }
351 349
352 // Tests that with a window docked on the right the auto-placing logic in 350 // Tests that with a window docked on the right the auto-placing logic in
353 // RearrangeVisibleWindowOnShow places windows flush with work area edges. 351 // RearrangeVisibleWindowOnShow places windows flush with work area edges.
354 // Test case for the secondary screen. 352 // Test case for the secondary screen.
355 TEST_P(DockedWindowLayoutManagerTest, AutoPlacingRightSecondScreen) { 353 TEST_P(DockedWindowLayoutManagerTest, AutoPlacingRightSecondScreen) {
356 if (!SupportsMultipleDisplays() || !SupportsHostWindowResize()) 354 if (!SupportsMultipleDisplays() || !SupportsHostWindowResize())
357 return; 355 return;
358 356
359 // Create a dual screen layout. 357 // Create a dual screen layout.
(...skipping 15 matching lines...) Expand all
375 // Create two additional windows and test their auto-placement 373 // Create two additional windows and test their auto-placement
376 bounds = gfx::Rect(616, 32, 231, 320); 374 bounds = gfx::Rect(616, 32, 231, 320);
377 std::unique_ptr<aura::Window> window1( 375 std::unique_ptr<aura::Window> window1(
378 CreateTestWindowInShellWithDelegate(nullptr, 1, bounds)); 376 CreateTestWindowInShellWithDelegate(nullptr, 1, bounds));
379 gfx::Rect desktop_area = window1->parent()->bounds(); 377 gfx::Rect desktop_area = window1->parent()->bounds();
380 wm::GetWindowState(window1.get())->set_window_position_managed(true); 378 wm::GetWindowState(window1.get())->set_window_position_managed(true);
381 window1->Hide(); 379 window1->Hide();
382 window1->Show(); 380 window1->Show();
383 381
384 // |window1| should be centered in work area. 382 // |window1| should be centered in work area.
385 EXPECT_EQ(base::IntToString( 383 EXPECT_EQ(base::IntToString(600 +
386 600 + (desktop_area.width() - docked_width(manager) - 384 (desktop_area.width() - docked_width(manager) -
387 min_dock_gap() - window1->bounds().width()) / 2) + 385 min_dock_gap() - window1->bounds().width()) /
388 ",32 231x320", window1->GetBoundsInScreen().ToString()); 386 2) +
387 ",32 231x320",
388 window1->GetBoundsInScreen().ToString());
389 389
390 bounds = gfx::Rect(632, 48, 256, 512); 390 bounds = gfx::Rect(632, 48, 256, 512);
391 std::unique_ptr<aura::Window> window2( 391 std::unique_ptr<aura::Window> window2(
392 CreateTestWindowInShellWithDelegate(nullptr, 2, bounds)); 392 CreateTestWindowInShellWithDelegate(nullptr, 2, bounds));
393 wm::GetWindowState(window2.get())->set_window_position_managed(true); 393 wm::GetWindowState(window2.get())->set_window_position_managed(true);
394 // To avoid any auto window manager changes due to SetBounds, the window 394 // To avoid any auto window manager changes due to SetBounds, the window
395 // gets first hidden and then shown again. 395 // gets first hidden and then shown again.
396 window2->Hide(); 396 window2->Hide();
397 window2->Show(); 397 window2->Show();
398 398
399 // |window1| should be flush left and |window2| flush right. 399 // |window1| should be flush left and |window2| flush right.
400 EXPECT_EQ("600,32 231x320", window1->GetBoundsInScreen().ToString()); 400 EXPECT_EQ("600,32 231x320", window1->GetBoundsInScreen().ToString());
401 EXPECT_EQ( 401 EXPECT_EQ(
402 base::IntToString( 402 base::IntToString(600 + desktop_area.width() - window2->bounds().width() -
403 600 + desktop_area.width() - window2->bounds().width() - 403 docked_width(manager) - min_dock_gap()) +
404 docked_width(manager) - min_dock_gap()) + 404 ",48 256x512",
405 ",48 256x512", window2->GetBoundsInScreen().ToString()); 405 window2->GetBoundsInScreen().ToString());
406 } 406 }
407 407
408 // Adds two windows and tests that the gaps are evenly distributed. 408 // Adds two windows and tests that the gaps are evenly distributed.
409 TEST_P(DockedWindowLayoutManagerTest, AddTwoWindows) { 409 TEST_P(DockedWindowLayoutManagerTest, AddTwoWindows) {
410 if (!SupportsHostWindowResize()) 410 if (!SupportsHostWindowResize())
411 return; 411 return;
412 412
413 std::unique_ptr<aura::Window> w1(CreateTestWindow(gfx::Rect(0, 0, 201, 201))); 413 std::unique_ptr<aura::Window> w1(CreateTestWindow(gfx::Rect(0, 0, 201, 201)));
414 std::unique_ptr<aura::Window> w2(CreateTestWindow(gfx::Rect(0, 0, 210, 202))); 414 std::unique_ptr<aura::Window> w2(CreateTestWindow(gfx::Rect(0, 0, 210, 202)));
415 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, w1.get(), 20); 415 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, w1.get(), 20);
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 return; 689 return;
690 690
691 aura::test::TestWindowDelegate delegate; 691 aura::test::TestWindowDelegate delegate;
692 delegate.set_minimum_size(gfx::Size(400, 0)); 692 delegate.set_minimum_size(gfx::Size(400, 0));
693 std::unique_ptr<aura::Window> window( 693 std::unique_ptr<aura::Window> window(
694 CreateTestWindowWithDelegate(gfx::Rect(0, 0, 400, 201), &delegate)); 694 CreateTestWindowWithDelegate(gfx::Rect(0, 0, 400, 201), &delegate));
695 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, window.get(), 20); 695 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, window.get(), 20);
696 696
697 // Secondary drag ensures that we are testing the minimum size restriction 697 // Secondary drag ensures that we are testing the minimum size restriction
698 // and not just failure to get past the tiling step in SnapSizer. 698 // and not just failure to get past the tiling step in SnapSizer.
699 ASSERT_NO_FATAL_FAILURE(DragStartAtOffsetFromwindowOrigin(window.get(), 699 ASSERT_NO_FATAL_FAILURE(
700 25, 5)); 700 DragStartAtOffsetFromwindowOrigin(window.get(), 25, 5));
701 DragMove(150,0); 701 DragMove(150, 0);
702 DragEnd(); 702 DragEnd();
703 703
704 // The window should not get docked even though it is dragged past the edge. 704 // The window should not get docked even though it is dragged past the edge.
705 EXPECT_NE(window->GetRootWindow()->bounds().right(), 705 EXPECT_NE(window->GetRootWindow()->bounds().right(),
706 window->GetBoundsInScreen().right()); 706 window->GetBoundsInScreen().right());
707 EXPECT_NE(kShellWindowId_DockedContainer, window->parent()->id()); 707 EXPECT_NE(kShellWindowId_DockedContainer, window->parent()->id());
708 } 708 }
709 709
710 // Docks three windows and tests that the very first window gets minimized. 710 // Docks three windows and tests that the very first window gets minimized.
711 TEST_P(DockedWindowLayoutManagerTest, ThreeWindowsMinimize) { 711 TEST_P(DockedWindowLayoutManagerTest, ThreeWindowsMinimize) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 EXPECT_EQ(kShellWindowId_DockedContainer, w1->parent()->id()); 760 EXPECT_EQ(kShellWindowId_DockedContainer, w1->parent()->id());
761 EXPECT_EQ(w2->GetRootWindow()->bounds().right(), 761 EXPECT_EQ(w2->GetRootWindow()->bounds().right(),
762 w2->GetBoundsInScreen().right()); 762 w2->GetBoundsInScreen().right());
763 EXPECT_EQ(kShellWindowId_DockedContainer, w2->parent()->id()); 763 EXPECT_EQ(kShellWindowId_DockedContainer, w2->parent()->id());
764 764
765 // The two windows should be same size vertically and almost 1/2 of work area. 765 // The two windows should be same size vertically and almost 1/2 of work area.
766 gfx::Rect work_area = display::Screen::GetScreen() 766 gfx::Rect work_area = display::Screen::GetScreen()
767 ->GetDisplayNearestWindow(w1.get()) 767 ->GetDisplayNearestWindow(w1.get())
768 .work_area(); 768 .work_area();
769 EXPECT_NEAR(w1->GetBoundsInScreen().height(), 769 EXPECT_NEAR(w1->GetBoundsInScreen().height(),
770 w2->GetBoundsInScreen().height(), 770 w2->GetBoundsInScreen().height(), 1);
771 1);
772 EXPECT_NEAR(work_area.height() / 2, w1->GetBoundsInScreen().height(), 771 EXPECT_NEAR(work_area.height() / 2, w1->GetBoundsInScreen().height(),
773 min_dock_gap() * 2); 772 min_dock_gap() * 2);
774 773
775 // Create and dock the third window. 774 // Create and dock the third window.
776 std::unique_ptr<aura::Window> w3(CreateTestWindow(gfx::Rect(0, 0, 220, 204))); 775 std::unique_ptr<aura::Window> w3(CreateTestWindow(gfx::Rect(0, 0, 220, 204)));
777 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, w3.get(), 300); 776 DragToVerticalPositionAndToEdge(DOCKED_EDGE_RIGHT, w3.get(), 300);
778 777
779 // All three windows should be docked and snapped to the right edge. 778 // All three windows should be docked and snapped to the right edge.
780 EXPECT_EQ(kShellWindowId_DockedContainer, w1->parent()->id()); 779 EXPECT_EQ(kShellWindowId_DockedContainer, w1->parent()->id());
781 EXPECT_EQ(kShellWindowId_DockedContainer, w2->parent()->id()); 780 EXPECT_EQ(kShellWindowId_DockedContainer, w2->parent()->id());
782 EXPECT_EQ(kShellWindowId_DockedContainer, w3->parent()->id()); 781 EXPECT_EQ(kShellWindowId_DockedContainer, w3->parent()->id());
783 782
784 // All windows should be near same size vertically and about 1/3 of work area. 783 // All windows should be near same size vertically and about 1/3 of work area.
785 EXPECT_NEAR(w1->GetBoundsInScreen().height(), 784 EXPECT_NEAR(w1->GetBoundsInScreen().height(),
786 w2->GetBoundsInScreen().height(), 785 w2->GetBoundsInScreen().height(), 1);
787 1);
788 EXPECT_NEAR(w2->GetBoundsInScreen().height(), 786 EXPECT_NEAR(w2->GetBoundsInScreen().height(),
789 w3->GetBoundsInScreen().height(), 787 w3->GetBoundsInScreen().height(), 1);
790 1);
791 EXPECT_NEAR(work_area.height() / 3, w1->GetBoundsInScreen().height(), 788 EXPECT_NEAR(work_area.height() / 3, w1->GetBoundsInScreen().height(),
792 min_dock_gap() * 2); 789 min_dock_gap() * 2);
793 } 790 }
794 791
795 // Docks two windows and tests that restrictions on vertical size are honored. 792 // Docks two windows and tests that restrictions on vertical size are honored.
796 TEST_P(DockedWindowLayoutManagerTest, TwoWindowsHeightRestrictions) { 793 TEST_P(DockedWindowLayoutManagerTest, TwoWindowsHeightRestrictions) {
797 if (!SupportsHostWindowResize()) 794 if (!SupportsHostWindowResize())
798 return; 795 return;
799 796
800 // The first window is fixed height. 797 // The first window is fixed height.
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 EXPECT_EQ(work_area.height(), window->GetBoundsInScreen().height()); 859 EXPECT_EQ(work_area.height(), window->GetBoundsInScreen().height());
863 } 860 }
864 861
865 // Tests run twice - on both panels and normal windows 862 // Tests run twice - on both panels and normal windows
866 INSTANTIATE_TEST_CASE_P(NormalOrPanel, 863 INSTANTIATE_TEST_CASE_P(NormalOrPanel,
867 DockedWindowLayoutManagerTest, 864 DockedWindowLayoutManagerTest,
868 testing::Values(ui::wm::WINDOW_TYPE_NORMAL, 865 testing::Values(ui::wm::WINDOW_TYPE_NORMAL,
869 ui::wm::WINDOW_TYPE_PANEL)); 866 ui::wm::WINDOW_TYPE_PANEL));
870 867
871 } // namespace ash 868 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/cursor_manager_chromeos.cc ('k') | ash/wm/dock/docked_window_resizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698