OLD | NEW |
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/maximize_mode/maximize_mode_window_manager.h" | 5 #include "ash/wm/maximize_mode/maximize_mode_window_manager.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/switchable_windows.h" | 8 #include "ash/switchable_windows.h" |
9 #include "ash/test/ash_test_base.h" | 9 #include "ash/test/ash_test_base.h" |
10 #include "ash/test/shell_test_api.h" | 10 #include "ash/test/shell_test_api.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 return CreateWindowInWatchedContainer(type, bounds, false); | 38 return CreateWindowInWatchedContainer(type, bounds, false); |
39 } | 39 } |
40 | 40 |
41 // Creates a window. | 41 // Creates a window. |
42 aura::Window* CreateWindow(ui::wm::WindowType type, | 42 aura::Window* CreateWindow(ui::wm::WindowType type, |
43 const gfx::Rect bounds) { | 43 const gfx::Rect bounds) { |
44 return CreateWindowInWatchedContainer(type, bounds, true); | 44 return CreateWindowInWatchedContainer(type, bounds, true); |
45 } | 45 } |
46 | 46 |
47 // Create the Maximized mode window manager. | 47 // Create the Maximized mode window manager. |
48 ash::internal::MaximizeModeWindowManager* CreateMaximizeModeWindowManager() { | 48 ash::MaximizeModeWindowManager* CreateMaximizeModeWindowManager() { |
49 EXPECT_FALSE(maximize_mode_window_manager()); | 49 EXPECT_FALSE(maximize_mode_window_manager()); |
50 Shell::GetInstance()->EnableMaximizeModeWindowManager(true); | 50 Shell::GetInstance()->EnableMaximizeModeWindowManager(true); |
51 return maximize_mode_window_manager(); | 51 return maximize_mode_window_manager(); |
52 } | 52 } |
53 | 53 |
54 // Destroy the maximized mode window manager. | 54 // Destroy the maximized mode window manager. |
55 void DestroyMaximizeModeWindowManager() { | 55 void DestroyMaximizeModeWindowManager() { |
56 Shell::GetInstance()->EnableMaximizeModeWindowManager(false); | 56 Shell::GetInstance()->EnableMaximizeModeWindowManager(false); |
57 EXPECT_FALSE(maximize_mode_window_manager()); | 57 EXPECT_FALSE(maximize_mode_window_manager()); |
58 } | 58 } |
59 | 59 |
60 // Get the maximze window manager. | 60 // Get the maximze window manager. |
61 ash::internal::MaximizeModeWindowManager* maximize_mode_window_manager() { | 61 ash::MaximizeModeWindowManager* maximize_mode_window_manager() { |
62 test::ShellTestApi test_api(Shell::GetInstance()); | 62 test::ShellTestApi test_api(Shell::GetInstance()); |
63 return test_api.maximize_mode_window_manager(); | 63 return test_api.maximize_mode_window_manager(); |
64 } | 64 } |
65 | 65 |
66 // Resize our desktop. | 66 // Resize our desktop. |
67 void ResizeDesktop(int width_delta) { | 67 void ResizeDesktop(int width_delta) { |
68 gfx::Size size = Shell::GetScreen()->GetDisplayNearestWindow( | 68 gfx::Size size = Shell::GetScreen()->GetDisplayNearestWindow( |
69 Shell::GetPrimaryRootWindow()).size(); | 69 Shell::GetPrimaryRootWindow()).size(); |
70 size.Enlarge(0, width_delta); | 70 size.Enlarge(0, width_delta); |
71 UpdateDisplay(size.ToString()); | 71 UpdateDisplay(size.ToString()); |
(...skipping 19 matching lines...) Expand all Loading... |
91 container->AddChild(window); | 91 container->AddChild(window); |
92 return window; | 92 return window; |
93 } | 93 } |
94 | 94 |
95 DISALLOW_COPY_AND_ASSIGN(MaximizeModeWindowManagerTest); | 95 DISALLOW_COPY_AND_ASSIGN(MaximizeModeWindowManagerTest); |
96 }; | 96 }; |
97 | 97 |
98 // Test that creating the object and destroying it without any windows should | 98 // Test that creating the object and destroying it without any windows should |
99 // not cause any problems. | 99 // not cause any problems. |
100 TEST_F(MaximizeModeWindowManagerTest, SimpleStart) { | 100 TEST_F(MaximizeModeWindowManagerTest, SimpleStart) { |
101 ash::internal::MaximizeModeWindowManager* manager = | 101 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
102 CreateMaximizeModeWindowManager(); | |
103 ASSERT_TRUE(manager); | 102 ASSERT_TRUE(manager); |
104 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); | 103 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); |
105 DestroyMaximizeModeWindowManager(); | 104 DestroyMaximizeModeWindowManager(); |
106 } | 105 } |
107 | 106 |
108 // Test that existing windows will handled properly when going into maximized | 107 // Test that existing windows will handled properly when going into maximized |
109 // mode. | 108 // mode. |
110 TEST_F(MaximizeModeWindowManagerTest, PreCreateWindows) { | 109 TEST_F(MaximizeModeWindowManagerTest, PreCreateWindows) { |
111 // Bounds for windows we know can be controlled. | 110 // Bounds for windows we know can be controlled. |
112 gfx::Rect rect1(10, 10, 200, 50); | 111 gfx::Rect rect1(10, 10, 200, 50); |
(...skipping 12 matching lines...) Expand all Loading... |
125 scoped_ptr<aura::Window> w8(CreateWindow(ui::wm::WINDOW_TYPE_TOOLTIP, rect)); | 124 scoped_ptr<aura::Window> w8(CreateWindow(ui::wm::WINDOW_TYPE_TOOLTIP, rect)); |
126 EXPECT_FALSE(wm::GetWindowState(w1.get())->IsMaximized()); | 125 EXPECT_FALSE(wm::GetWindowState(w1.get())->IsMaximized()); |
127 EXPECT_FALSE(wm::GetWindowState(w2.get())->IsMaximized()); | 126 EXPECT_FALSE(wm::GetWindowState(w2.get())->IsMaximized()); |
128 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); | 127 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); |
129 EXPECT_EQ(rect1.ToString(), w1->bounds().ToString()); | 128 EXPECT_EQ(rect1.ToString(), w1->bounds().ToString()); |
130 EXPECT_EQ(rect2.ToString(), w2->bounds().ToString()); | 129 EXPECT_EQ(rect2.ToString(), w2->bounds().ToString()); |
131 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); | 130 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); |
132 | 131 |
133 // Create the manager and make sure that all qualifying windows were detected | 132 // Create the manager and make sure that all qualifying windows were detected |
134 // and changed. | 133 // and changed. |
135 ash::internal::MaximizeModeWindowManager* manager = | 134 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
136 CreateMaximizeModeWindowManager(); | |
137 ASSERT_TRUE(manager); | 135 ASSERT_TRUE(manager); |
138 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); | 136 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); |
139 EXPECT_TRUE(wm::GetWindowState(w1.get())->IsMaximized()); | 137 EXPECT_TRUE(wm::GetWindowState(w1.get())->IsMaximized()); |
140 EXPECT_TRUE(wm::GetWindowState(w2.get())->IsMaximized()); | 138 EXPECT_TRUE(wm::GetWindowState(w2.get())->IsMaximized()); |
141 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); | 139 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); |
142 EXPECT_NE(rect3.origin().ToString(), w3->bounds().origin().ToString()); | 140 EXPECT_NE(rect3.origin().ToString(), w3->bounds().origin().ToString()); |
143 EXPECT_EQ(rect3.size().ToString(), w3->bounds().size().ToString()); | 141 EXPECT_EQ(rect3.size().ToString(), w3->bounds().size().ToString()); |
144 | 142 |
145 // All other windows should not have been touched. | 143 // All other windows should not have been touched. |
146 EXPECT_FALSE(wm::GetWindowState(w4.get())->IsMaximized()); | 144 EXPECT_FALSE(wm::GetWindowState(w4.get())->IsMaximized()); |
(...skipping 18 matching lines...) Expand all Loading... |
165 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); | 163 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); |
166 EXPECT_EQ(rect.ToString(), w4->bounds().ToString()); | 164 EXPECT_EQ(rect.ToString(), w4->bounds().ToString()); |
167 EXPECT_EQ(rect.ToString(), w5->bounds().ToString()); | 165 EXPECT_EQ(rect.ToString(), w5->bounds().ToString()); |
168 EXPECT_EQ(rect.ToString(), w6->bounds().ToString()); | 166 EXPECT_EQ(rect.ToString(), w6->bounds().ToString()); |
169 EXPECT_EQ(rect.ToString(), w7->bounds().ToString()); | 167 EXPECT_EQ(rect.ToString(), w7->bounds().ToString()); |
170 EXPECT_EQ(rect.ToString(), w8->bounds().ToString()); | 168 EXPECT_EQ(rect.ToString(), w8->bounds().ToString()); |
171 } | 169 } |
172 | 170 |
173 // Test that creating windows while a maximizer exists picks them properly up. | 171 // Test that creating windows while a maximizer exists picks them properly up. |
174 TEST_F(MaximizeModeWindowManagerTest, CreateWindows) { | 172 TEST_F(MaximizeModeWindowManagerTest, CreateWindows) { |
175 ash::internal::MaximizeModeWindowManager* manager = | 173 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
176 CreateMaximizeModeWindowManager(); | |
177 ASSERT_TRUE(manager); | 174 ASSERT_TRUE(manager); |
178 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); | 175 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); |
179 | 176 |
180 // Create the windows and see that the window manager picks them up. | 177 // Create the windows and see that the window manager picks them up. |
181 // Rects for windows we know can be controlled. | 178 // Rects for windows we know can be controlled. |
182 gfx::Rect rect1(10, 10, 200, 50); | 179 gfx::Rect rect1(10, 10, 200, 50); |
183 gfx::Rect rect2(10, 60, 200, 50); | 180 gfx::Rect rect2(10, 60, 200, 50); |
184 gfx::Rect rect3(20, 140, 100, 100); | 181 gfx::Rect rect3(20, 140, 100, 100); |
185 // One rect for anything else. | 182 // One rect for anything else. |
186 gfx::Rect rect(80, 90, 100, 110); | 183 gfx::Rect rect(80, 90, 100, 110); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 EXPECT_EQ(rect.ToString(), w4->bounds().ToString()); | 220 EXPECT_EQ(rect.ToString(), w4->bounds().ToString()); |
224 EXPECT_EQ(rect.ToString(), w5->bounds().ToString()); | 221 EXPECT_EQ(rect.ToString(), w5->bounds().ToString()); |
225 EXPECT_EQ(rect.ToString(), w6->bounds().ToString()); | 222 EXPECT_EQ(rect.ToString(), w6->bounds().ToString()); |
226 EXPECT_EQ(rect.ToString(), w7->bounds().ToString()); | 223 EXPECT_EQ(rect.ToString(), w7->bounds().ToString()); |
227 EXPECT_EQ(rect.ToString(), w8->bounds().ToString()); | 224 EXPECT_EQ(rect.ToString(), w8->bounds().ToString()); |
228 } | 225 } |
229 | 226 |
230 // Test that windows which got created before the maximizer was created can be | 227 // Test that windows which got created before the maximizer was created can be |
231 // destroyed while the maximizer is still running. | 228 // destroyed while the maximizer is still running. |
232 TEST_F(MaximizeModeWindowManagerTest, PreCreateWindowsDeleteWhileActive) { | 229 TEST_F(MaximizeModeWindowManagerTest, PreCreateWindowsDeleteWhileActive) { |
233 ash::internal::MaximizeModeWindowManager* manager = NULL; | 230 ash::MaximizeModeWindowManager* manager = NULL; |
234 { | 231 { |
235 // Bounds for windows we know can be controlled. | 232 // Bounds for windows we know can be controlled. |
236 gfx::Rect rect1(10, 10, 200, 50); | 233 gfx::Rect rect1(10, 10, 200, 50); |
237 gfx::Rect rect2(10, 60, 200, 50); | 234 gfx::Rect rect2(10, 60, 200, 50); |
238 gfx::Rect rect3(20, 140, 100, 100); | 235 gfx::Rect rect3(20, 140, 100, 100); |
239 // Bounds for anything else. | 236 // Bounds for anything else. |
240 gfx::Rect rect(80, 90, 100, 110); | 237 gfx::Rect rect(80, 90, 100, 110); |
241 scoped_ptr<aura::Window> w1( | 238 scoped_ptr<aura::Window> w1( |
242 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect1)); | 239 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect1)); |
243 scoped_ptr<aura::Window> w2( | 240 scoped_ptr<aura::Window> w2( |
244 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect2)); | 241 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect2)); |
245 scoped_ptr<aura::Window> w3( | 242 scoped_ptr<aura::Window> w3( |
246 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect3)); | 243 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect3)); |
247 | 244 |
248 // Create the manager and make sure that all qualifying windows were | 245 // Create the manager and make sure that all qualifying windows were |
249 // detected and changed. | 246 // detected and changed. |
250 manager = CreateMaximizeModeWindowManager(); | 247 manager = CreateMaximizeModeWindowManager(); |
251 ASSERT_TRUE(manager); | 248 ASSERT_TRUE(manager); |
252 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); | 249 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); |
253 } | 250 } |
254 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); | 251 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); |
255 DestroyMaximizeModeWindowManager(); | 252 DestroyMaximizeModeWindowManager(); |
256 } | 253 } |
257 | 254 |
258 // Test that windows which got created while the maximizer was running can get | 255 // Test that windows which got created while the maximizer was running can get |
259 // destroyed before the maximizer gets destroyed. | 256 // destroyed before the maximizer gets destroyed. |
260 TEST_F(MaximizeModeWindowManagerTest, CreateWindowsAndDeleteWhileActive) { | 257 TEST_F(MaximizeModeWindowManagerTest, CreateWindowsAndDeleteWhileActive) { |
261 ash::internal::MaximizeModeWindowManager* manager = | 258 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
262 CreateMaximizeModeWindowManager(); | |
263 ASSERT_TRUE(manager); | 259 ASSERT_TRUE(manager); |
264 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); | 260 EXPECT_EQ(0, manager->GetNumberOfManagedWindows()); |
265 { | 261 { |
266 // Bounds for windows we know can be controlled. | 262 // Bounds for windows we know can be controlled. |
267 gfx::Rect rect1(10, 10, 200, 50); | 263 gfx::Rect rect1(10, 10, 200, 50); |
268 gfx::Rect rect2(10, 60, 200, 50); | 264 gfx::Rect rect2(10, 60, 200, 50); |
269 gfx::Rect rect3(20, 140, 100, 100); | 265 gfx::Rect rect3(20, 140, 100, 100); |
270 scoped_ptr<aura::Window> w1( | 266 scoped_ptr<aura::Window> w1( |
271 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, gfx::Rect(10, 10, 200, 50))); | 267 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, gfx::Rect(10, 10, 200, 50))); |
272 scoped_ptr<aura::Window> w2( | 268 scoped_ptr<aura::Window> w2( |
(...skipping 13 matching lines...) Expand all Loading... |
286 | 282 |
287 // Test that windows which were maximized stay maximized. | 283 // Test that windows which were maximized stay maximized. |
288 TEST_F(MaximizeModeWindowManagerTest, MaximizedShouldRemainMaximized) { | 284 TEST_F(MaximizeModeWindowManagerTest, MaximizedShouldRemainMaximized) { |
289 // Bounds for windows we know can be controlled. | 285 // Bounds for windows we know can be controlled. |
290 gfx::Rect rect(10, 10, 200, 50); | 286 gfx::Rect rect(10, 10, 200, 50); |
291 scoped_ptr<aura::Window> window( | 287 scoped_ptr<aura::Window> window( |
292 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 288 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
293 wm::GetWindowState(window.get())->Maximize(); | 289 wm::GetWindowState(window.get())->Maximize(); |
294 | 290 |
295 // Create the manager and make sure that the window gets detected. | 291 // Create the manager and make sure that the window gets detected. |
296 ash::internal::MaximizeModeWindowManager* manager = | 292 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
297 CreateMaximizeModeWindowManager(); | |
298 ASSERT_TRUE(manager); | 293 ASSERT_TRUE(manager); |
299 EXPECT_EQ(1, manager->GetNumberOfManagedWindows()); | 294 EXPECT_EQ(1, manager->GetNumberOfManagedWindows()); |
300 EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); | 295 EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); |
301 | 296 |
302 // Destroy the manager again and check that the window will remain maximized. | 297 // Destroy the manager again and check that the window will remain maximized. |
303 DestroyMaximizeModeWindowManager(); | 298 DestroyMaximizeModeWindowManager(); |
304 EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); | 299 EXPECT_TRUE(wm::GetWindowState(window.get())->IsMaximized()); |
305 wm::GetWindowState(window.get())->Restore(); | 300 wm::GetWindowState(window.get())->Restore(); |
306 EXPECT_EQ(rect.ToString(), window->bounds().ToString()); | 301 EXPECT_EQ(rect.ToString(), window->bounds().ToString()); |
307 } | 302 } |
308 | 303 |
309 // Test that minimized windows do neither get maximized nor restored upon | 304 // Test that minimized windows do neither get maximized nor restored upon |
310 // entering maximized mode and get restored to their previous state after | 305 // entering maximized mode and get restored to their previous state after |
311 // leaving. | 306 // leaving. |
312 TEST_F(MaximizeModeWindowManagerTest, MinimizedWindowBehavior) { | 307 TEST_F(MaximizeModeWindowManagerTest, MinimizedWindowBehavior) { |
313 // Bounds for windows we know can be controlled. | 308 // Bounds for windows we know can be controlled. |
314 gfx::Rect rect(10, 10, 200, 50); | 309 gfx::Rect rect(10, 10, 200, 50); |
315 scoped_ptr<aura::Window> initially_minimized_window( | 310 scoped_ptr<aura::Window> initially_minimized_window( |
316 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 311 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
317 scoped_ptr<aura::Window> initially_normal_window( | 312 scoped_ptr<aura::Window> initially_normal_window( |
318 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 313 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
319 scoped_ptr<aura::Window> initially_maximized_window( | 314 scoped_ptr<aura::Window> initially_maximized_window( |
320 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 315 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
321 wm::GetWindowState(initially_minimized_window.get())->Minimize(); | 316 wm::GetWindowState(initially_minimized_window.get())->Minimize(); |
322 wm::GetWindowState(initially_maximized_window.get())->Maximize(); | 317 wm::GetWindowState(initially_maximized_window.get())->Maximize(); |
323 | 318 |
324 // Create the manager and make sure that the window gets detected. | 319 // Create the manager and make sure that the window gets detected. |
325 ash::internal::MaximizeModeWindowManager* manager = | 320 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
326 CreateMaximizeModeWindowManager(); | |
327 ASSERT_TRUE(manager); | 321 ASSERT_TRUE(manager); |
328 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); | 322 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); |
329 EXPECT_TRUE(wm::GetWindowState( | 323 EXPECT_TRUE(wm::GetWindowState( |
330 initially_minimized_window.get())->IsMinimized()); | 324 initially_minimized_window.get())->IsMinimized()); |
331 EXPECT_TRUE(wm::GetWindowState(initially_normal_window.get())->IsMaximized()); | 325 EXPECT_TRUE(wm::GetWindowState(initially_normal_window.get())->IsMaximized()); |
332 EXPECT_TRUE(wm::GetWindowState( | 326 EXPECT_TRUE(wm::GetWindowState( |
333 initially_maximized_window.get())->IsMaximized()); | 327 initially_maximized_window.get())->IsMaximized()); |
334 // Now minimize the second window to check that upon leaving the window | 328 // Now minimize the second window to check that upon leaving the window |
335 // will get restored to its minimized state. | 329 // will get restored to its minimized state. |
336 wm::GetWindowState(initially_normal_window.get())->Minimize(); | 330 wm::GetWindowState(initially_normal_window.get())->Minimize(); |
(...skipping 24 matching lines...) Expand all Loading... |
361 scoped_ptr<aura::Window> window1( | 355 scoped_ptr<aura::Window> window1( |
362 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 356 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
363 EXPECT_EQ(rect.ToString(), window1->bounds().ToString()); | 357 EXPECT_EQ(rect.ToString(), window1->bounds().ToString()); |
364 | 358 |
365 // This window will not move because it does fit the new bounds. | 359 // This window will not move because it does fit the new bounds. |
366 gfx::Rect rect2(20, 140, 100, 100); | 360 gfx::Rect rect2(20, 140, 100, 100); |
367 scoped_ptr<aura::Window> window2( | 361 scoped_ptr<aura::Window> window2( |
368 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect2)); | 362 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect2)); |
369 | 363 |
370 // Turning on the manager will reposition (but not resize) the window. | 364 // Turning on the manager will reposition (but not resize) the window. |
371 ash::internal::MaximizeModeWindowManager* manager = | 365 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
372 CreateMaximizeModeWindowManager(); | |
373 ASSERT_TRUE(manager); | 366 ASSERT_TRUE(manager); |
374 EXPECT_EQ(2, manager->GetNumberOfManagedWindows()); | 367 EXPECT_EQ(2, manager->GetNumberOfManagedWindows()); |
375 gfx::Rect moved_bounds(window1->bounds()); | 368 gfx::Rect moved_bounds(window1->bounds()); |
376 EXPECT_NE(rect.origin().ToString(), moved_bounds.origin().ToString()); | 369 EXPECT_NE(rect.origin().ToString(), moved_bounds.origin().ToString()); |
377 EXPECT_EQ(rect.size().ToString(), moved_bounds.size().ToString()); | 370 EXPECT_EQ(rect.size().ToString(), moved_bounds.size().ToString()); |
378 | 371 |
379 // Simulating a desktop resize should move the window again. | 372 // Simulating a desktop resize should move the window again. |
380 UpdateDisplay("300x300"); | 373 UpdateDisplay("300x300"); |
381 gfx::Rect new_moved_bounds(window1->bounds()); | 374 gfx::Rect new_moved_bounds(window1->bounds()); |
382 EXPECT_NE(rect.origin().ToString(), new_moved_bounds.origin().ToString()); | 375 EXPECT_NE(rect.origin().ToString(), new_moved_bounds.origin().ToString()); |
383 EXPECT_EQ(rect.size().ToString(), new_moved_bounds.size().ToString()); | 376 EXPECT_EQ(rect.size().ToString(), new_moved_bounds.size().ToString()); |
384 EXPECT_NE(moved_bounds.origin().ToString(), new_moved_bounds.ToString()); | 377 EXPECT_NE(moved_bounds.origin().ToString(), new_moved_bounds.ToString()); |
385 | 378 |
386 // Turning off the mode should not restore to the initial coordinates since | 379 // Turning off the mode should not restore to the initial coordinates since |
387 // the new resolution is smaller and the window was on the edge. | 380 // the new resolution is smaller and the window was on the edge. |
388 DestroyMaximizeModeWindowManager(); | 381 DestroyMaximizeModeWindowManager(); |
389 EXPECT_NE(rect.ToString(), window1->bounds().ToString()); | 382 EXPECT_NE(rect.ToString(), window1->bounds().ToString()); |
390 EXPECT_EQ(rect2.ToString(), window2->bounds().ToString()); | 383 EXPECT_EQ(rect2.ToString(), window2->bounds().ToString()); |
391 } | 384 } |
392 | 385 |
393 // Check that windows return to original location if desktop size changes to | 386 // Check that windows return to original location if desktop size changes to |
394 // something else and back while in maximize mode. | 387 // something else and back while in maximize mode. |
395 TEST_F(MaximizeModeWindowManagerTest, SizeChangeReturnWindowToOriginalPos) { | 388 TEST_F(MaximizeModeWindowManagerTest, SizeChangeReturnWindowToOriginalPos) { |
396 gfx::Rect rect(20, 140, 100, 100); | 389 gfx::Rect rect(20, 140, 100, 100); |
397 scoped_ptr<aura::Window> window( | 390 scoped_ptr<aura::Window> window( |
398 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 391 CreateNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
399 | 392 |
400 // Turning on the manager will reposition (but not resize) the window. | 393 // Turning on the manager will reposition (but not resize) the window. |
401 ash::internal::MaximizeModeWindowManager* manager = | 394 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
402 CreateMaximizeModeWindowManager(); | |
403 ASSERT_TRUE(manager); | 395 ASSERT_TRUE(manager); |
404 EXPECT_EQ(1, manager->GetNumberOfManagedWindows()); | 396 EXPECT_EQ(1, manager->GetNumberOfManagedWindows()); |
405 gfx::Rect moved_bounds(window->bounds()); | 397 gfx::Rect moved_bounds(window->bounds()); |
406 EXPECT_NE(rect.origin().ToString(), moved_bounds.origin().ToString()); | 398 EXPECT_NE(rect.origin().ToString(), moved_bounds.origin().ToString()); |
407 EXPECT_EQ(rect.size().ToString(), moved_bounds.size().ToString()); | 399 EXPECT_EQ(rect.size().ToString(), moved_bounds.size().ToString()); |
408 | 400 |
409 // Simulating a desktop resize should move the window again. | 401 // Simulating a desktop resize should move the window again. |
410 ResizeDesktop(-10); | 402 ResizeDesktop(-10); |
411 gfx::Rect new_moved_bounds(window->bounds()); | 403 gfx::Rect new_moved_bounds(window->bounds()); |
412 EXPECT_NE(rect.origin().ToString(), new_moved_bounds.origin().ToString()); | 404 EXPECT_NE(rect.origin().ToString(), new_moved_bounds.origin().ToString()); |
(...skipping 24 matching lines...) Expand all Loading... |
437 MruWindowTracker::WindowList windows = | 429 MruWindowTracker::WindowList windows = |
438 MruWindowTracker::BuildWindowList(false); | 430 MruWindowTracker::BuildWindowList(false); |
439 EXPECT_EQ(w1.get(), windows[4]); | 431 EXPECT_EQ(w1.get(), windows[4]); |
440 EXPECT_EQ(w2.get(), windows[3]); | 432 EXPECT_EQ(w2.get(), windows[3]); |
441 EXPECT_EQ(w3.get(), windows[2]); | 433 EXPECT_EQ(w3.get(), windows[2]); |
442 EXPECT_EQ(w4.get(), windows[1]); | 434 EXPECT_EQ(w4.get(), windows[1]); |
443 EXPECT_EQ(w5.get(), windows[0]); | 435 EXPECT_EQ(w5.get(), windows[0]); |
444 } | 436 } |
445 | 437 |
446 // Activating the window manager should keep the order. | 438 // Activating the window manager should keep the order. |
447 ash::internal::MaximizeModeWindowManager* manager = | 439 ash::MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
448 CreateMaximizeModeWindowManager(); | |
449 ASSERT_TRUE(manager); | 440 ASSERT_TRUE(manager); |
450 EXPECT_EQ(5, manager->GetNumberOfManagedWindows()); | 441 EXPECT_EQ(5, manager->GetNumberOfManagedWindows()); |
451 { | 442 { |
452 MruWindowTracker::WindowList windows = | 443 MruWindowTracker::WindowList windows = |
453 MruWindowTracker::BuildWindowList(false); | 444 MruWindowTracker::BuildWindowList(false); |
454 // We do not test maximization here again since that was done already. | 445 // We do not test maximization here again since that was done already. |
455 EXPECT_EQ(w1.get(), windows[4]); | 446 EXPECT_EQ(w1.get(), windows[4]); |
456 EXPECT_EQ(w2.get(), windows[3]); | 447 EXPECT_EQ(w2.get(), windows[3]); |
457 EXPECT_EQ(w3.get(), windows[2]); | 448 EXPECT_EQ(w3.get(), windows[2]); |
458 EXPECT_EQ(w4.get(), windows[1]); | 449 EXPECT_EQ(w4.get(), windows[1]); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 generator.MoveMouseBy(10, 5); | 574 generator.MoveMouseBy(10, 5); |
584 RunAllPendingInMessageLoop(); | 575 RunAllPendingInMessageLoop(); |
585 generator.ReleaseLeftButton(); | 576 generator.ReleaseLeftButton(); |
586 EXPECT_EQ(first_dragged_origin.x() + 10, window->bounds().x()); | 577 EXPECT_EQ(first_dragged_origin.x() + 10, window->bounds().x()); |
587 EXPECT_EQ(first_dragged_origin.y() + 5, window->bounds().y()); | 578 EXPECT_EQ(first_dragged_origin.y() + 5, window->bounds().y()); |
588 } | 579 } |
589 | 580 |
590 #endif // OS_WIN | 581 #endif // OS_WIN |
591 | 582 |
592 } // namespace ash | 583 } // namespace ash |
OLD | NEW |