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 <string> | 7 #include <string> |
8 | 8 |
9 #include "ash/ash_switches.h" | 9 #include "ash/ash_switches.h" |
10 #include "ash/root_window_controller.h" | 10 #include "ash/root_window_controller.h" |
11 #include "ash/screen_util.h" | 11 #include "ash/screen_util.h" |
12 #include "ash/shelf/wm_shelf.h" | 12 #include "ash/shelf/wm_shelf.h" |
13 #include "ash/shell.h" | 13 #include "ash/shell.h" |
| 14 #include "ash/shell_port.h" |
14 #include "ash/test/ash_test_base.h" | 15 #include "ash/test/ash_test_base.h" |
15 #include "ash/test/shell_test_api.h" | 16 #include "ash/test/shell_test_api.h" |
16 #include "ash/wm/maximize_mode/maximize_mode_controller.h" | 17 #include "ash/wm/maximize_mode/maximize_mode_controller.h" |
17 #include "ash/wm/mru_window_tracker.h" | 18 #include "ash/wm/mru_window_tracker.h" |
18 #include "ash/wm/overview/window_selector_controller.h" | 19 #include "ash/wm/overview/window_selector_controller.h" |
19 #include "ash/wm/switchable_windows.h" | 20 #include "ash/wm/switchable_windows.h" |
20 #include "ash/wm/window_properties.h" | 21 #include "ash/wm/window_properties.h" |
21 #include "ash/wm/window_state.h" | 22 #include "ash/wm/window_state.h" |
22 #include "ash/wm/window_state_aura.h" | 23 #include "ash/wm/window_state_aura.h" |
23 #include "ash/wm/window_state_observer.h" | 24 #include "ash/wm/window_state_observer.h" |
24 #include "ash/wm/window_util.h" | 25 #include "ash/wm/window_util.h" |
25 #include "ash/wm/wm_event.h" | 26 #include "ash/wm/wm_event.h" |
26 #include "ash/wm_shell.h" | |
27 #include "ash/wm_window.h" | 27 #include "ash/wm_window.h" |
28 #include "base/command_line.h" | 28 #include "base/command_line.h" |
29 #include "base/strings/stringprintf.h" | 29 #include "base/strings/stringprintf.h" |
30 #include "base/strings/utf_string_conversions.h" | 30 #include "base/strings/utf_string_conversions.h" |
31 #include "base/values.h" | 31 #include "base/values.h" |
32 #include "services/ui/public/interfaces/window_manager_constants.mojom.h" | 32 #include "services/ui/public/interfaces/window_manager_constants.mojom.h" |
33 #include "ui/aura/client/aura_constants.h" | 33 #include "ui/aura/client/aura_constants.h" |
34 #include "ui/aura/test/test_window_delegate.h" | 34 #include "ui/aura/test/test_window_delegate.h" |
35 #include "ui/aura/test/test_windows.h" | 35 #include "ui/aura/test/test_windows.h" |
36 #include "ui/aura/window.h" | 36 #include "ui/aura/window.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 std::unique_ptr<aura::Window> w8( | 251 std::unique_ptr<aura::Window> w8( |
252 CreateWindow(ui::wm::WINDOW_TYPE_TOOLTIP, rect)); | 252 CreateWindow(ui::wm::WINDOW_TYPE_TOOLTIP, rect)); |
253 EXPECT_FALSE(wm::GetWindowState(w1.get())->IsMaximized()); | 253 EXPECT_FALSE(wm::GetWindowState(w1.get())->IsMaximized()); |
254 EXPECT_FALSE(wm::GetWindowState(w2.get())->IsMaximized()); | 254 EXPECT_FALSE(wm::GetWindowState(w2.get())->IsMaximized()); |
255 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); | 255 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); |
256 EXPECT_EQ(rect1.ToString(), w1->bounds().ToString()); | 256 EXPECT_EQ(rect1.ToString(), w1->bounds().ToString()); |
257 EXPECT_EQ(rect2.ToString(), w2->bounds().ToString()); | 257 EXPECT_EQ(rect2.ToString(), w2->bounds().ToString()); |
258 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); | 258 EXPECT_EQ(rect3.ToString(), w3->bounds().ToString()); |
259 | 259 |
260 // Enable system modal dialog, and make sure both shelves are still hidden. | 260 // Enable system modal dialog, and make sure both shelves are still hidden. |
261 WmShell::Get()->SimulateModalWindowOpenForTesting(true); | 261 ShellPort::Get()->SimulateModalWindowOpenForTesting(true); |
262 EXPECT_TRUE(WmShell::Get()->IsSystemModalWindowOpen()); | 262 EXPECT_TRUE(ShellPort::Get()->IsSystemModalWindowOpen()); |
263 | 263 |
264 // Create the manager and make sure that all qualifying windows were detected | 264 // Create the manager and make sure that all qualifying windows were detected |
265 // and changed. | 265 // and changed. |
266 MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); | 266 MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
267 ASSERT_TRUE(manager); | 267 ASSERT_TRUE(manager); |
268 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); | 268 EXPECT_EQ(3, manager->GetNumberOfManagedWindows()); |
269 EXPECT_TRUE(wm::GetWindowState(w1.get())->IsMaximized()); | 269 EXPECT_TRUE(wm::GetWindowState(w1.get())->IsMaximized()); |
270 EXPECT_TRUE(wm::GetWindowState(w2.get())->IsMaximized()); | 270 EXPECT_TRUE(wm::GetWindowState(w2.get())->IsMaximized()); |
271 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); | 271 EXPECT_FALSE(wm::GetWindowState(w3.get())->IsMaximized()); |
272 EXPECT_NE(rect3.origin().ToString(), w3->bounds().origin().ToString()); | 272 EXPECT_NE(rect3.origin().ToString(), w3->bounds().origin().ToString()); |
(...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1286 ASSERT_TRUE(window_selector_controller->IsSelecting()); | 1286 ASSERT_TRUE(window_selector_controller->IsSelecting()); |
1287 // Destroy the manager again and check that the windows return to their | 1287 // Destroy the manager again and check that the windows return to their |
1288 // previous state. | 1288 // previous state. |
1289 DestroyMaximizeModeWindowManager(); | 1289 DestroyMaximizeModeWindowManager(); |
1290 EXPECT_FALSE(window_selector_controller->IsSelecting()); | 1290 EXPECT_FALSE(window_selector_controller->IsSelecting()); |
1291 } | 1291 } |
1292 | 1292 |
1293 // Test that an edge swipe from the top will end full screen mode. | 1293 // Test that an edge swipe from the top will end full screen mode. |
1294 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromTop) { | 1294 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromTop) { |
1295 // TODO: investigate failure. http://crbug.com/698093. | 1295 // TODO: investigate failure. http://crbug.com/698093. |
1296 if (WmShell::Get()->IsRunningInMash()) | 1296 if (ShellPort::Get()->IsRunningInMash()) |
1297 return; | 1297 return; |
1298 | 1298 |
1299 gfx::Rect rect(10, 10, 200, 50); | 1299 gfx::Rect rect(10, 10, 200, 50); |
1300 std::unique_ptr<aura::Window> background_window( | 1300 std::unique_ptr<aura::Window> background_window( |
1301 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1301 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1302 std::unique_ptr<aura::Window> foreground_window( | 1302 std::unique_ptr<aura::Window> foreground_window( |
1303 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1303 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1304 wm::WindowState* background_window_state = | 1304 wm::WindowState* background_window_state = |
1305 wm::GetWindowState(background_window.get()); | 1305 wm::GetWindowState(background_window.get()); |
1306 wm::WindowState* foreground_window_state = | 1306 wm::WindowState* foreground_window_state = |
(...skipping 23 matching lines...) Expand all Loading... |
1330 | 1330 |
1331 EXPECT_FALSE(foreground_window_state->IsFullscreen()); | 1331 EXPECT_FALSE(foreground_window_state->IsFullscreen()); |
1332 EXPECT_TRUE(background_window_state->IsFullscreen()); | 1332 EXPECT_TRUE(background_window_state->IsFullscreen()); |
1333 | 1333 |
1334 DestroyMaximizeModeWindowManager(); | 1334 DestroyMaximizeModeWindowManager(); |
1335 } | 1335 } |
1336 | 1336 |
1337 // Test that an edge swipe from the bottom will end full screen mode. | 1337 // Test that an edge swipe from the bottom will end full screen mode. |
1338 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromBottom) { | 1338 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeSwipeFromBottom) { |
1339 // TODO: investigate failure. http://crbug.com/698093. | 1339 // TODO: investigate failure. http://crbug.com/698093. |
1340 if (WmShell::Get()->IsRunningInMash()) | 1340 if (ShellPort::Get()->IsRunningInMash()) |
1341 return; | 1341 return; |
1342 | 1342 |
1343 gfx::Rect rect(10, 10, 200, 50); | 1343 gfx::Rect rect(10, 10, 200, 50); |
1344 std::unique_ptr<aura::Window> background_window( | 1344 std::unique_ptr<aura::Window> background_window( |
1345 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1345 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1346 std::unique_ptr<aura::Window> foreground_window( | 1346 std::unique_ptr<aura::Window> foreground_window( |
1347 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1347 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1348 wm::WindowState* background_window_state = | 1348 wm::WindowState* background_window_state = |
1349 wm::GetWindowState(background_window.get()); | 1349 wm::GetWindowState(background_window.get()); |
1350 wm::WindowState* foreground_window_state = | 1350 wm::WindowState* foreground_window_state = |
(...skipping 17 matching lines...) Expand all Loading... |
1368 | 1368 |
1369 EXPECT_FALSE(foreground_window_state->IsFullscreen()); | 1369 EXPECT_FALSE(foreground_window_state->IsFullscreen()); |
1370 EXPECT_TRUE(background_window_state->IsFullscreen()); | 1370 EXPECT_TRUE(background_window_state->IsFullscreen()); |
1371 | 1371 |
1372 DestroyMaximizeModeWindowManager(); | 1372 DestroyMaximizeModeWindowManager(); |
1373 } | 1373 } |
1374 | 1374 |
1375 // Test that an edge touch press at the top will end full screen mode. | 1375 // Test that an edge touch press at the top will end full screen mode. |
1376 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtTop) { | 1376 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtTop) { |
1377 // TODO: investigate failure. http://crbug.com/698093. | 1377 // TODO: investigate failure. http://crbug.com/698093. |
1378 if (WmShell::Get()->IsRunningInMash()) | 1378 if (ShellPort::Get()->IsRunningInMash()) |
1379 return; | 1379 return; |
1380 | 1380 |
1381 gfx::Rect rect(10, 10, 200, 50); | 1381 gfx::Rect rect(10, 10, 200, 50); |
1382 std::unique_ptr<aura::Window> background_window( | 1382 std::unique_ptr<aura::Window> background_window( |
1383 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1383 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1384 std::unique_ptr<aura::Window> foreground_window( | 1384 std::unique_ptr<aura::Window> foreground_window( |
1385 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1385 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1386 wm::WindowState* background_window_state = | 1386 wm::WindowState* background_window_state = |
1387 wm::GetWindowState(background_window.get()); | 1387 wm::GetWindowState(background_window.get()); |
1388 wm::WindowState* foreground_window_state = | 1388 wm::WindowState* foreground_window_state = |
(...skipping 19 matching lines...) Expand all Loading... |
1408 generator.GestureTapAt(gfx::Point(100, 0)); | 1408 generator.GestureTapAt(gfx::Point(100, 0)); |
1409 EXPECT_FALSE(foreground_window_state->IsFullscreen()); | 1409 EXPECT_FALSE(foreground_window_state->IsFullscreen()); |
1410 EXPECT_TRUE(background_window_state->IsFullscreen()); | 1410 EXPECT_TRUE(background_window_state->IsFullscreen()); |
1411 | 1411 |
1412 DestroyMaximizeModeWindowManager(); | 1412 DestroyMaximizeModeWindowManager(); |
1413 } | 1413 } |
1414 | 1414 |
1415 // Test that an edge touch press at the bottom will end full screen mode. | 1415 // Test that an edge touch press at the bottom will end full screen mode. |
1416 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtBottom) { | 1416 TEST_F(MaximizeModeWindowManagerTest, ExitFullScreenWithEdgeTouchAtBottom) { |
1417 // TODO: investigate failure. http://crbug.com/698093. | 1417 // TODO: investigate failure. http://crbug.com/698093. |
1418 if (WmShell::Get()->IsRunningInMash()) | 1418 if (ShellPort::Get()->IsRunningInMash()) |
1419 return; | 1419 return; |
1420 | 1420 |
1421 gfx::Rect rect(10, 10, 200, 50); | 1421 gfx::Rect rect(10, 10, 200, 50); |
1422 std::unique_ptr<aura::Window> background_window( | 1422 std::unique_ptr<aura::Window> background_window( |
1423 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1423 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1424 std::unique_ptr<aura::Window> foreground_window( | 1424 std::unique_ptr<aura::Window> foreground_window( |
1425 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 1425 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
1426 wm::WindowState* background_window_state = | 1426 wm::WindowState* background_window_state = |
1427 wm::GetWindowState(background_window.get()); | 1427 wm::GetWindowState(background_window.get()); |
1428 wm::WindowState* foreground_window_state = | 1428 wm::WindowState* foreground_window_state = |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1697 EXPECT_EQ(1, observer.GetPostCountAndReset()); | 1697 EXPECT_EQ(1, observer.GetPostCountAndReset()); |
1698 EXPECT_EQ(wm::WINDOW_STATE_TYPE_MINIMIZED, | 1698 EXPECT_EQ(wm::WINDOW_STATE_TYPE_MINIMIZED, |
1699 observer.GetLastOldStateAndReset()); | 1699 observer.GetLastOldStateAndReset()); |
1700 | 1700 |
1701 window_state->RemoveObserver(&observer); | 1701 window_state->RemoveObserver(&observer); |
1702 | 1702 |
1703 DestroyMaximizeModeWindowManager(); | 1703 DestroyMaximizeModeWindowManager(); |
1704 } | 1704 } |
1705 | 1705 |
1706 } // namespace ash | 1706 } // namespace ash |
OLD | NEW |