OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/shelf/shelf_layout_manager.h" | 5 #include "ash/shelf/shelf_layout_manager.h" |
6 | 6 |
7 #include "ash/accelerators/accelerator_controller.h" | 7 #include "ash/accelerators/accelerator_controller.h" |
8 #include "ash/accelerators/accelerator_table.h" | 8 #include "ash/accelerators/accelerator_table.h" |
9 #include "ash/aura/wm_window_aura.h" | 9 #include "ash/aura/wm_window_aura.h" |
10 #include "ash/common/ash_switches.h" | 10 #include "ash/common/ash_switches.h" |
(...skipping 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1313 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); | 1313 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); |
1314 | 1314 |
1315 GetShelfWidget()->GetFocusCycler()->RotateFocus(FocusCycler::FORWARD); | 1315 GetShelfWidget()->GetFocusCycler()->RotateFocus(FocusCycler::FORWARD); |
1316 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 1316 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
1317 } | 1317 } |
1318 | 1318 |
1319 // Makes sure shelf will be visible when app list opens as shelf is in | 1319 // Makes sure shelf will be visible when app list opens as shelf is in |
1320 // SHELF_VISIBLE state,and toggling app list won't change shelf | 1320 // SHELF_VISIBLE state,and toggling app list won't change shelf |
1321 // visibility state. | 1321 // visibility state. |
1322 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { | 1322 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { |
1323 Shell* shell = Shell::GetInstance(); | 1323 WmShell* shell = WmShell::Get(); |
1324 Shelf* shelf = GetShelf(); | 1324 Shelf* shelf = GetShelf(); |
1325 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 1325 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
1326 layout_manager->LayoutShelf(); | 1326 layout_manager->LayoutShelf(); |
1327 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1327 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1328 | 1328 |
1329 // Create a normal unmaximized windowm shelf should be visible. | 1329 // Create a normal unmaximized windowm shelf should be visible. |
1330 aura::Window* window = CreateTestWindow(); | 1330 aura::Window* window = CreateTestWindow(); |
1331 window->SetBounds(gfx::Rect(0, 0, 100, 100)); | 1331 window->SetBounds(gfx::Rect(0, 0, 100, 100)); |
1332 window->Show(); | 1332 window->Show(); |
1333 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1333 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1334 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1334 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
1335 | 1335 |
1336 // Show app list and the shelf stays visible. | 1336 // Show app list and the shelf stays visible. |
1337 shell->ShowAppList(nullptr); | 1337 shell->ShowAppList(); |
1338 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1338 EXPECT_TRUE(shell->GetAppListTargetVisibility()); |
1339 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1339 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
1340 | 1340 |
1341 // Hide app list and the shelf stays visible. | 1341 // Hide app list and the shelf stays visible. |
1342 shell->DismissAppList(); | 1342 shell->DismissAppList(); |
1343 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1343 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1344 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1344 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
1345 } | 1345 } |
1346 | 1346 |
1347 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state | 1347 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state |
1348 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and | 1348 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and |
1349 // toggling app list won't change shelf visibility state. | 1349 // toggling app list won't change shelf visibility state. |
1350 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { | 1350 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { |
1351 Shell* shell = Shell::GetInstance(); | 1351 WmShell* shell = WmShell::Get(); |
1352 Shelf* shelf = GetShelf(); | 1352 Shelf* shelf = GetShelf(); |
1353 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 1353 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
1354 layout_manager->LayoutShelf(); | 1354 layout_manager->LayoutShelf(); |
1355 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1355 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
1356 | 1356 |
1357 // Create a window and show it in maximized state. | 1357 // Create a window and show it in maximized state. |
1358 aura::Window* window = CreateTestWindow(); | 1358 aura::Window* window = CreateTestWindow(); |
1359 window->SetBounds(gfx::Rect(0, 0, 100, 100)); | 1359 window->SetBounds(gfx::Rect(0, 0, 100, 100)); |
1360 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | 1360 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
1361 window->Show(); | 1361 window->Show(); |
1362 wm::ActivateWindow(window); | 1362 wm::ActivateWindow(window); |
1363 | 1363 |
1364 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1364 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1365 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1365 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
1366 | 1366 |
1367 // Show app list. | 1367 // Show app list. |
1368 shell->ShowAppList(nullptr); | 1368 shell->ShowAppList(); |
1369 // The shelf's auto hide state won't be changed until the timer fires, so | 1369 // The shelf's auto hide state won't be changed until the timer fires, so |
1370 // calling shell->UpdateShelfVisibility() is kind of manually helping it to | 1370 // force it to update now. |
1371 // update the state. | 1371 layout_manager->UpdateVisibilityState(); |
1372 shell->UpdateShelfVisibility(); | |
1373 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1372 EXPECT_TRUE(shell->GetAppListTargetVisibility()); |
1374 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1373 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
1375 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 1374 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
1376 | 1375 |
1377 // Hide app list. | 1376 // Hide app list. |
1378 shell->DismissAppList(); | 1377 shell->DismissAppList(); |
1379 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1378 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1380 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1379 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
1381 } | 1380 } |
1382 | 1381 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1424 EXPECT_EQ(shelf_1->shelf_widget()->GetNativeWindow()->GetRootWindow(), | 1423 EXPECT_EQ(shelf_1->shelf_widget()->GetNativeWindow()->GetRootWindow(), |
1425 window_1->GetRootWindow()); | 1424 window_1->GetRootWindow()); |
1426 EXPECT_EQ(shelf_2->shelf_widget()->GetNativeWindow()->GetRootWindow(), | 1425 EXPECT_EQ(shelf_2->shelf_widget()->GetNativeWindow()->GetRootWindow(), |
1427 window_2->GetRootWindow()); | 1426 window_2->GetRootWindow()); |
1428 | 1427 |
1429 // Activate one window in one display and manually trigger the update of shelf | 1428 // Activate one window in one display and manually trigger the update of shelf |
1430 // visibility. | 1429 // visibility. |
1431 wm::ActivateWindow(window_1); | 1430 wm::ActivateWindow(window_1); |
1432 shell->UpdateShelfVisibility(); | 1431 shell->UpdateShelfVisibility(); |
1433 | 1432 |
1434 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1433 EXPECT_FALSE(WmShell::Get()->GetAppListTargetVisibility()); |
1435 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); | 1434 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); |
1436 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); | 1435 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); |
1437 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_1->GetAutoHideState()); | 1436 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_1->GetAutoHideState()); |
1438 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); | 1437 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); |
1439 | 1438 |
1440 // Show app list. | 1439 // Show app list. |
1441 shell->ShowAppList(nullptr); | 1440 WmShell::Get()->ShowAppList(); |
1442 shell->UpdateShelfVisibility(); | 1441 shell->UpdateShelfVisibility(); |
1443 | 1442 |
1444 // Only the shelf in the active display should be shown, the other is hidden. | 1443 // Only the shelf in the active display should be shown, the other is hidden. |
1445 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1444 EXPECT_TRUE(WmShell::Get()->GetAppListTargetVisibility()); |
1446 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); | 1445 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); |
1447 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf_1->GetAutoHideState()); | 1446 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf_1->GetAutoHideState()); |
1448 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); | 1447 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); |
1449 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); | 1448 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); |
1450 | 1449 |
1451 // Hide app list, both shelves should be hidden. | 1450 // Hide app list, both shelves should be hidden. |
1452 shell->DismissAppList(); | 1451 WmShell::Get()->DismissAppList(); |
1453 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1452 EXPECT_FALSE(WmShell::Get()->GetAppListTargetVisibility()); |
1454 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); | 1453 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_1->GetVisibilityState()); |
1455 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); | 1454 EXPECT_EQ(SHELF_AUTO_HIDE, shelf_2->GetVisibilityState()); |
1456 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_1->GetAutoHideState()); | 1455 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_1->GetAutoHideState()); |
1457 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); | 1456 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf_2->GetAutoHideState()); |
1458 } | 1457 } |
1459 | 1458 |
1460 // Makes sure the shelf will be hidden when we have a fullscreen window, and it | 1459 // Makes sure the shelf will be hidden when we have a fullscreen window, and it |
1461 // will unhide when we open the app list. | 1460 // will unhide when we open the app list. |
1462 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) { | 1461 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfHiddenState) { |
1463 Shell* shell = Shell::GetInstance(); | 1462 WmShell* shell = WmShell::Get(); |
1464 Shelf* shelf = GetShelf(); | 1463 Shelf* shelf = GetShelf(); |
1465 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 1464 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
1466 // For shelf to be visible, app list is not open in initial state. | 1465 // For shelf to be visible, app list is not open in initial state. |
1467 layout_manager->LayoutShelf(); | 1466 layout_manager->LayoutShelf(); |
1468 | 1467 |
1469 // Create a window and make it full screen. | 1468 // Create a window and make it full screen. |
1470 aura::Window* window = CreateTestWindow(); | 1469 aura::Window* window = CreateTestWindow(); |
1471 window->SetBounds(gfx::Rect(0, 0, 100, 100)); | 1470 window->SetBounds(gfx::Rect(0, 0, 100, 100)); |
1472 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); | 1471 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); |
1473 window->Show(); | 1472 window->Show(); |
1474 wm::ActivateWindow(window); | 1473 wm::ActivateWindow(window); |
1475 | 1474 |
1476 // App list and shelf is not shown. | 1475 // App list and shelf is not shown. |
1477 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1476 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1478 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); | 1477 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); |
1479 | 1478 |
1480 // Show app list. | 1479 // Show app list. |
1481 shell->ShowAppList(nullptr); | 1480 shell->ShowAppList(); |
1482 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1481 EXPECT_TRUE(shell->GetAppListTargetVisibility()); |
1483 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1482 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
1484 | 1483 |
1485 // Hide app list. | 1484 // Hide app list. |
1486 shell->DismissAppList(); | 1485 shell->DismissAppList(); |
1487 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1486 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
1488 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); | 1487 EXPECT_EQ(SHELF_HIDDEN, shelf->GetVisibilityState()); |
1489 } | 1488 } |
1490 | 1489 |
1491 // Tests the correct behavior of the shelf when there is a system modal window | 1490 // Tests the correct behavior of the shelf when there is a system modal window |
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2282 ->shelf_widget() | 2281 ->shelf_widget() |
2283 ->status_area_widget(); | 2282 ->status_area_widget(); |
2284 EXPECT_TRUE(status_area_widget->IsVisible()); | 2283 EXPECT_TRUE(status_area_widget->IsVisible()); |
2285 // Shelf should be in the first display's area. | 2284 // Shelf should be in the first display's area. |
2286 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); | 2285 gfx::Rect status_area_bounds(status_area_widget->GetWindowBoundsInScreen()); |
2287 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); | 2286 EXPECT_TRUE(gfx::Rect(0, 0, 500, 400).Contains(status_area_bounds)); |
2288 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); | 2287 EXPECT_EQ(gfx::Point(500, 400), status_area_bounds.bottom_right()); |
2289 } | 2288 } |
2290 | 2289 |
2291 } // namespace ash | 2290 } // namespace ash |
OLD | NEW |