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

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

Issue 1608053002: Remove now-unnecessary wrappers around gfx::Screen::GetScreen() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@metro-mode-5
Patch Set: cros Created 4 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
« no previous file with comments | « ash/wm/window_resizer.cc ('k') | ash/wm/workspace/multi_window_resize_controller.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/wm/window_state.h" 5 #include "ash/wm/window_state.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/screen_util.h" 9 #include "ash/screen_util.h"
10 #include "ash/shell.h"
11 #include "ash/test/ash_test_base.h" 10 #include "ash/test/ash_test_base.h"
12 #include "ash/wm/window_state.h" 11 #include "ash/wm/window_state.h"
13 #include "ash/wm/wm_event.h" 12 #include "ash/wm/wm_event.h"
14 #include "ui/aura/client/aura_constants.h" 13 #include "ui/aura/client/aura_constants.h"
15 #include "ui/aura/test/test_window_delegate.h" 14 #include "ui/aura/test/test_window_delegate.h"
16 #include "ui/aura/window.h" 15 #include "ui/aura/window.h"
16 #include "ui/gfx/screen.h"
17 17
18 namespace ash { 18 namespace ash {
19 namespace wm { 19 namespace wm {
20 namespace { 20 namespace {
21 21
22 class AlwaysMaximizeTestState : public WindowState::State { 22 class AlwaysMaximizeTestState : public WindowState::State {
23 public: 23 public:
24 explicit AlwaysMaximizeTestState(WindowStateType initial_state_type) 24 explicit AlwaysMaximizeTestState(WindowStateType initial_state_type)
25 : state_type_(initial_state_type) {} 25 : state_type_(initial_state_type) {}
26 ~AlwaysMaximizeTestState() override {} 26 ~AlwaysMaximizeTestState() override {}
(...skipping 24 matching lines...) Expand all
51 typedef test::AshTestBase WindowStateTest; 51 typedef test::AshTestBase WindowStateTest;
52 52
53 // Test that a window gets properly snapped to the display's edges in a 53 // Test that a window gets properly snapped to the display's edges in a
54 // multi monitor environment. 54 // multi monitor environment.
55 TEST_F(WindowStateTest, SnapWindowBasic) { 55 TEST_F(WindowStateTest, SnapWindowBasic) {
56 if (!SupportsMultipleDisplays()) 56 if (!SupportsMultipleDisplays())
57 return; 57 return;
58 58
59 UpdateDisplay("0+0-500x400, 0+500-600x400"); 59 UpdateDisplay("0+0-500x400, 0+500-600x400");
60 const gfx::Rect kPrimaryDisplayWorkAreaBounds = 60 const gfx::Rect kPrimaryDisplayWorkAreaBounds =
61 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 61 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area();
62 const gfx::Rect kSecondaryDisplayWorkAreaBounds = 62 const gfx::Rect kSecondaryDisplayWorkAreaBounds =
63 ScreenUtil::GetSecondaryDisplay().work_area(); 63 ScreenUtil::GetSecondaryDisplay().work_area();
64 64
65 scoped_ptr<aura::Window> window( 65 scoped_ptr<aura::Window> window(
66 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100))); 66 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100)));
67 WindowState* window_state = GetWindowState(window.get()); 67 WindowState* window_state = GetWindowState(window.get());
68 const WMEvent snap_left(WM_EVENT_SNAP_LEFT); 68 const WMEvent snap_left(WM_EVENT_SNAP_LEFT);
69 window_state->OnWMEvent(&snap_left); 69 window_state->OnWMEvent(&snap_left);
70 gfx::Rect expected = gfx::Rect( 70 gfx::Rect expected = gfx::Rect(
71 kPrimaryDisplayWorkAreaBounds.x(), 71 kPrimaryDisplayWorkAreaBounds.x(),
(...skipping 26 matching lines...) Expand all
98 } 98 }
99 99
100 // Test how the minimum and maximum size specified by the aura::WindowDelegate 100 // Test how the minimum and maximum size specified by the aura::WindowDelegate
101 // affect snapping. 101 // affect snapping.
102 TEST_F(WindowStateTest, SnapWindowMinimumSize) { 102 TEST_F(WindowStateTest, SnapWindowMinimumSize) {
103 if (!SupportsHostWindowResize()) 103 if (!SupportsHostWindowResize())
104 return; 104 return;
105 105
106 UpdateDisplay("0+0-600x900"); 106 UpdateDisplay("0+0-600x900");
107 const gfx::Rect kWorkAreaBounds = 107 const gfx::Rect kWorkAreaBounds =
108 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 108 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area();
109 109
110 aura::test::TestWindowDelegate delegate; 110 aura::test::TestWindowDelegate delegate;
111 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate( 111 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate(
112 &delegate, -1, gfx::Rect(0, 100, kWorkAreaBounds.width() - 1, 100))); 112 &delegate, -1, gfx::Rect(0, 100, kWorkAreaBounds.width() - 1, 100)));
113 113
114 // It should be possible to snap a window with a minimum size. 114 // It should be possible to snap a window with a minimum size.
115 delegate.set_minimum_size(gfx::Size(kWorkAreaBounds.width() - 1, 0)); 115 delegate.set_minimum_size(gfx::Size(kWorkAreaBounds.width() - 1, 0));
116 WindowState* window_state = GetWindowState(window.get()); 116 WindowState* window_state = GetWindowState(window.get());
117 EXPECT_TRUE(window_state->CanSnap()); 117 EXPECT_TRUE(window_state->CanSnap());
118 const WMEvent snap_right(WM_EVENT_SNAP_RIGHT); 118 const WMEvent snap_right(WM_EVENT_SNAP_RIGHT);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 } 164 }
165 165
166 // Test that the minimum window size specified by aura::WindowDelegate does not 166 // Test that the minimum window size specified by aura::WindowDelegate does not
167 // exceed the screen size. 167 // exceed the screen size.
168 TEST_F(WindowStateTest, TestIgnoreTooBigMinimumSize) { 168 TEST_F(WindowStateTest, TestIgnoreTooBigMinimumSize) {
169 if (!SupportsHostWindowResize()) 169 if (!SupportsHostWindowResize())
170 return; 170 return;
171 171
172 UpdateDisplay("0+0-1024x768"); 172 UpdateDisplay("0+0-1024x768");
173 const gfx::Size work_area_size = 173 const gfx::Size work_area_size =
174 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area().size(); 174 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area().size();
175 const gfx::Size illegal_size(1280, 960); 175 const gfx::Size illegal_size(1280, 960);
176 const gfx::Rect illegal_bounds(gfx::Point(0, 0), illegal_size); 176 const gfx::Rect illegal_bounds(gfx::Point(0, 0), illegal_size);
177 177
178 aura::test::TestWindowDelegate delegate; 178 aura::test::TestWindowDelegate delegate;
179 const gfx::Size minimum_size(illegal_size); 179 const gfx::Size minimum_size(illegal_size);
180 delegate.set_minimum_size(minimum_size); 180 delegate.set_minimum_size(minimum_size);
181 181
182 // The creation should force the window to respect the screen size. 182 // The creation should force the window to respect the screen size.
183 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate( 183 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate(
184 &delegate, -1, illegal_bounds)); 184 &delegate, -1, illegal_bounds));
(...skipping 10 matching lines...) Expand all
195 EXPECT_EQ(work_area_size.ToString(), window->bounds().size().ToString()); 195 EXPECT_EQ(work_area_size.ToString(), window->bounds().size().ToString());
196 } 196 }
197 197
198 // Test that setting the bounds of a snapped window keeps its snapped. 198 // Test that setting the bounds of a snapped window keeps its snapped.
199 TEST_F(WindowStateTest, SnapWindowSetBounds) { 199 TEST_F(WindowStateTest, SnapWindowSetBounds) {
200 if (!SupportsHostWindowResize()) 200 if (!SupportsHostWindowResize())
201 return; 201 return;
202 202
203 UpdateDisplay("0+0-900x600"); 203 UpdateDisplay("0+0-900x600");
204 const gfx::Rect kWorkAreaBounds = 204 const gfx::Rect kWorkAreaBounds =
205 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 205 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area();
206 206
207 scoped_ptr<aura::Window> window( 207 scoped_ptr<aura::Window> window(
208 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100))); 208 CreateTestWindowInShellWithBounds(gfx::Rect(100, 100, 100, 100)));
209 WindowState* window_state = GetWindowState(window.get()); 209 WindowState* window_state = GetWindowState(window.get());
210 const WMEvent snap_left(WM_EVENT_SNAP_LEFT); 210 const WMEvent snap_left(WM_EVENT_SNAP_LEFT);
211 window_state->OnWMEvent(&snap_left); 211 window_state->OnWMEvent(&snap_left);
212 EXPECT_EQ(WINDOW_STATE_TYPE_LEFT_SNAPPED, window_state->GetStateType()); 212 EXPECT_EQ(WINDOW_STATE_TYPE_LEFT_SNAPPED, window_state->GetStateType());
213 gfx::Rect expected = gfx::Rect(kWorkAreaBounds.x(), 213 gfx::Rect expected = gfx::Rect(kWorkAreaBounds.x(),
214 kWorkAreaBounds.y(), 214 kWorkAreaBounds.y(),
215 kWorkAreaBounds.width() / 2, 215 kWorkAreaBounds.width() / 2,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 window_state->set_window_position_managed(true); 271 window_state->set_window_position_managed(true);
272 window->Hide(); 272 window->Hide();
273 window->SetBounds(gfx::Rect(100, 100, 100, 100)); 273 window->SetBounds(gfx::Rect(100, 100, 100, 100));
274 window->Show(); 274 window->Show();
275 275
276 window_state->Maximize(); 276 window_state->Maximize();
277 const WMEvent snap_right(WM_EVENT_SNAP_RIGHT); 277 const WMEvent snap_right(WM_EVENT_SNAP_RIGHT);
278 window_state->OnWMEvent(&snap_right); 278 window_state->OnWMEvent(&snap_right);
279 279
280 const gfx::Rect kWorkAreaBounds = 280 const gfx::Rect kWorkAreaBounds =
281 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 281 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area();
282 gfx::Rect expected_snapped_bounds( 282 gfx::Rect expected_snapped_bounds(
283 kWorkAreaBounds.x() + kWorkAreaBounds.width() / 2, 283 kWorkAreaBounds.x() + kWorkAreaBounds.width() / 2,
284 kWorkAreaBounds.y(), 284 kWorkAreaBounds.y(),
285 kWorkAreaBounds.width() / 2, 285 kWorkAreaBounds.width() / 2,
286 kWorkAreaBounds.height()); 286 kWorkAreaBounds.height());
287 EXPECT_EQ(expected_snapped_bounds.ToString(), 287 EXPECT_EQ(expected_snapped_bounds.ToString(),
288 window->GetBoundsInScreen().ToString()); 288 window->GetBoundsInScreen().ToString());
289 289
290 // The window should still be auto managed despite being right maximized. 290 // The window should still be auto managed despite being right maximized.
291 EXPECT_TRUE(window_state->window_position_managed()); 291 EXPECT_TRUE(window_state->window_position_managed());
(...skipping 24 matching lines...) Expand all
316 EXPECT_FALSE(window_state->IsMaximized()); 316 EXPECT_FALSE(window_state->IsMaximized());
317 } 317 }
318 318
319 // Tests that a window that had same bounds as the work area shrinks after the 319 // Tests that a window that had same bounds as the work area shrinks after the
320 // window is maximized and then restored. 320 // window is maximized and then restored.
321 TEST_F(WindowStateTest, RestoredWindowBoundsShrink) { 321 TEST_F(WindowStateTest, RestoredWindowBoundsShrink) {
322 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithId(0)); 322 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
323 WindowState* window_state = GetWindowState(window.get()); 323 WindowState* window_state = GetWindowState(window.get());
324 EXPECT_FALSE(window_state->IsMaximized()); 324 EXPECT_FALSE(window_state->IsMaximized());
325 gfx::Rect work_area = 325 gfx::Rect work_area =
326 ash::Shell::GetScreen()->GetPrimaryDisplay().work_area(); 326 gfx::Screen::GetScreen()->GetPrimaryDisplay().work_area();
327 327
328 window->SetBounds(work_area); 328 window->SetBounds(work_area);
329 window_state->Maximize(); 329 window_state->Maximize();
330 EXPECT_TRUE(window_state->IsMaximized()); 330 EXPECT_TRUE(window_state->IsMaximized());
331 EXPECT_EQ(work_area.ToString(), window->bounds().ToString()); 331 EXPECT_EQ(work_area.ToString(), window->bounds().ToString());
332 332
333 window_state->Restore(); 333 window_state->Restore();
334 EXPECT_FALSE(window_state->IsMaximized()); 334 EXPECT_FALSE(window_state->IsMaximized());
335 EXPECT_NE(work_area.ToString(), window->bounds().ToString()); 335 EXPECT_NE(work_area.ToString(), window->bounds().ToString());
336 EXPECT_TRUE(work_area.Contains(window->bounds())); 336 EXPECT_TRUE(work_area.Contains(window->bounds()));
(...skipping 26 matching lines...) Expand all
363 363
364 // Exitting fullscreen will update the maximized widnow to the work area. 364 // Exitting fullscreen will update the maximized widnow to the work area.
365 EXPECT_EQ("0,0 900x653", maximized->GetBoundsInScreen().ToString()); 365 EXPECT_EQ("0,0 900x653", maximized->GetBoundsInScreen().ToString());
366 } 366 }
367 367
368 // TODO(skuhne): Add more unit test to verify the correctness for the restore 368 // TODO(skuhne): Add more unit test to verify the correctness for the restore
369 // operation. 369 // operation.
370 370
371 } // namespace wm 371 } // namespace wm
372 } // namespace ash 372 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/window_resizer.cc ('k') | ash/wm/workspace/multi_window_resize_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698