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

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

Issue 138003007: [Cleanup] Screen cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: make sure screen_for_shutdown is reset everytime Created 6 years, 11 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 | « ash/wm/workspace/snap_sizer.cc ('k') | ash/wm/workspace/workspace_event_handler.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/wm/workspace/snap_sizer.h" 5 #include "ash/wm/workspace/snap_sizer.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/screen_ash.h" 8 #include "ash/screen_util.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/test/ash_test_base.h" 10 #include "ash/test/ash_test_base.h"
11 #include "ash/wm/window_state.h" 11 #include "ash/wm/window_state.h"
12 #include "ash/wm/window_util.h" 12 #include "ash/wm/window_util.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "ui/aura/root_window.h" 14 #include "ui/aura/root_window.h"
15 #include "ui/aura/test/test_window_delegate.h" 15 #include "ui/aura/test/test_window_delegate.h"
16 #include "ui/aura/window.h" 16 #include "ui/aura/window.h"
17 #include "ui/gfx/screen.h" 17 #include "ui/gfx/screen.h"
18 18
19 namespace ash { 19 namespace ash {
20 20
21 typedef test::AshTestBase SnapSizerTest; 21 typedef test::AshTestBase SnapSizerTest;
22 22
23 using internal::SnapSizer; 23 using internal::SnapSizer;
24 24
25 // Test that a window gets properly snapped to the display's edges in a 25 // Test that a window gets properly snapped to the display's edges in a
26 // multi monitor environment. 26 // multi monitor environment.
27 TEST_F(SnapSizerTest, MultipleDisplays) { 27 TEST_F(SnapSizerTest, MultipleDisplays) {
28 if (!SupportsMultipleDisplays()) 28 if (!SupportsMultipleDisplays())
29 return; 29 return;
30 30
31 UpdateDisplay("0+0-500x400, 0+500-600x400"); 31 UpdateDisplay("0+0-500x400, 0+500-600x400");
32 const gfx::Rect kPrimaryDisplayWorkAreaBounds = 32 const gfx::Rect kPrimaryDisplayWorkAreaBounds =
33 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 33 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area();
34 const gfx::Rect kSecondaryDisplayWorkAreaBounds = 34 const gfx::Rect kSecondaryDisplayWorkAreaBounds =
35 ScreenAsh::GetSecondaryDisplay().work_area(); 35 ScreenUtil::GetSecondaryDisplay().work_area();
36 36
37 scoped_ptr<aura::Window> window( 37 scoped_ptr<aura::Window> window(
38 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100))); 38 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100)));
39 wm::WindowState* window_state = wm::GetWindowState(window.get()); 39 wm::WindowState* window_state = wm::GetWindowState(window.get());
40 SnapSizer::SnapWindow(window_state, SnapSizer::LEFT_EDGE); 40 SnapSizer::SnapWindow(window_state, SnapSizer::LEFT_EDGE);
41 gfx::Rect expected = gfx::Rect( 41 gfx::Rect expected = gfx::Rect(
42 kPrimaryDisplayWorkAreaBounds.x(), 42 kPrimaryDisplayWorkAreaBounds.x(),
43 kPrimaryDisplayWorkAreaBounds.y(), 43 kPrimaryDisplayWorkAreaBounds.y(),
44 window->bounds().width(), // No expectation for the width. 44 window->bounds().width(), // No expectation for the width.
45 kPrimaryDisplayWorkAreaBounds.height()); 45 kPrimaryDisplayWorkAreaBounds.height());
46 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); 46 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString());
47 47
48 SnapSizer::SnapWindow(window_state, SnapSizer::RIGHT_EDGE); 48 SnapSizer::SnapWindow(window_state, SnapSizer::RIGHT_EDGE);
49 // The width should not change when a window switches from being snapped to 49 // The width should not change when a window switches from being snapped to
50 // the left edge to being snapped to the right edge. 50 // the left edge to being snapped to the right edge.
51 expected.set_x(kPrimaryDisplayWorkAreaBounds.right() - expected.width()); 51 expected.set_x(kPrimaryDisplayWorkAreaBounds.right() - expected.width());
52 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); 52 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString());
53 53
54 // Move the window to the secondary display. 54 // Move the window to the secondary display.
55 window->SetBoundsInScreen(gfx::Rect(600, 0, 100, 100), 55 window->SetBoundsInScreen(gfx::Rect(600, 0, 100, 100),
56 ScreenAsh::GetSecondaryDisplay()); 56 ScreenUtil::GetSecondaryDisplay());
57 57
58 SnapSizer::SnapWindow(window_state, SnapSizer::RIGHT_EDGE); 58 SnapSizer::SnapWindow(window_state, SnapSizer::RIGHT_EDGE);
59 expected = gfx::Rect( 59 expected = gfx::Rect(
60 kSecondaryDisplayWorkAreaBounds.right() - window->bounds().width(), 60 kSecondaryDisplayWorkAreaBounds.right() - window->bounds().width(),
61 kSecondaryDisplayWorkAreaBounds.y(), 61 kSecondaryDisplayWorkAreaBounds.y(),
62 window->bounds().width(), // No expectation for the width. 62 window->bounds().width(), // No expectation for the width.
63 kSecondaryDisplayWorkAreaBounds.height()); 63 kSecondaryDisplayWorkAreaBounds.height());
64 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString()); 64 EXPECT_EQ(expected.ToString(), window->GetBoundsInScreen().ToString());
65 65
66 SnapSizer::SnapWindow(window_state, SnapSizer::LEFT_EDGE); 66 SnapSizer::SnapWindow(window_state, SnapSizer::LEFT_EDGE);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 // For small workspace widths, we should snap to 90% of the workspace width 247 // For small workspace widths, we should snap to 90% of the workspace width
248 // because it is the largest width the window can snap to. 248 // because it is the largest width the window can snap to.
249 UpdateDisplay("0+0-800x600"); 249 UpdateDisplay("0+0-800x600");
250 sizer.SelectDefaultSizeAndDisableResize(); 250 sizer.SelectDefaultSizeAndDisableResize();
251 251
252 gfx::Rect work_area = 252 gfx::Rect work_area =
253 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 253 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area();
254 gfx::Rect expected(work_area); 254 gfx::Rect expected(work_area);
255 expected.set_width(work_area.width() * 0.9); 255 expected.set_width(work_area.width() * 0.9);
256 EXPECT_EQ(expected.ToString(), 256 EXPECT_EQ(expected.ToString(),
257 ScreenAsh::ConvertRectToScreen(window->parent(), 257 ScreenUtil::ConvertRectToScreen(window->parent(),
258 sizer.target_bounds()).ToString()); 258 sizer.target_bounds()).ToString());
259 259
260 // If the largest width the window can snap to is between 1024 and 1280, we 260 // If the largest width the window can snap to is between 1024 and 1280, we
261 // should snap to 1024. 261 // should snap to 1024.
262 UpdateDisplay("0+0-1280x800"); 262 UpdateDisplay("0+0-1280x800");
263 sizer.SelectDefaultSizeAndDisableResize(); 263 sizer.SelectDefaultSizeAndDisableResize();
264 sizer.SnapWindowToTargetBounds(); 264 sizer.SnapWindowToTargetBounds();
265 EXPECT_EQ(1024, window->bounds().width()); 265 EXPECT_EQ(1024, window->bounds().width());
266 266
267 // We should snap to a width of 50% of the work area if it is the largest 267 // We should snap to a width of 50% of the work area if it is the largest
268 // width the window can snap to. 268 // width the window can snap to.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 window->bounds().width(), // No expectation for the width. 384 window->bounds().width(), // No expectation for the width.
385 kWorkAreaBounds.height()); 385 kWorkAreaBounds.height());
386 EXPECT_EQ(expected_snapped_bounds.ToString(), 386 EXPECT_EQ(expected_snapped_bounds.ToString(),
387 window->GetBoundsInScreen().ToString()); 387 window->GetBoundsInScreen().ToString());
388 388
389 // The window should still be auto managed despite being right maximized. 389 // The window should still be auto managed despite being right maximized.
390 EXPECT_TRUE(window_state->window_position_managed()); 390 EXPECT_TRUE(window_state->window_position_managed());
391 } 391 }
392 392
393 } // namespace ash 393 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/workspace/snap_sizer.cc ('k') | ash/wm/workspace/workspace_event_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698