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/focus_cycler.h" | 9 #include "ash/focus_cycler.h" |
10 #include "ash/public/cpp/config.h" | 10 #include "ash/public/cpp/config.h" |
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 695 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
696 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 696 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
697 views::Widget* widget = CreateTestWidget(); | 697 views::Widget* widget = CreateTestWidget(); |
698 widget->Maximize(); | 698 widget->Maximize(); |
699 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 699 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
700 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); | 700 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); |
701 | 701 |
702 // LayoutShelf() forces the animation to completion, at which point the | 702 // LayoutShelf() forces the animation to completion, at which point the |
703 // shelf should go off the screen. | 703 // shelf should go off the screen. |
704 layout_manager->LayoutShelf(); | 704 layout_manager->LayoutShelf(); |
705 const int shelf_insets = GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE); | |
706 | 705 |
707 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 706 display::Display display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
708 const int display_bottom = display.bounds().bottom(); | 707 const int display_bottom = display.bounds().bottom(); |
709 EXPECT_EQ(display_bottom - kShelfAutoHideSize, | 708 EXPECT_EQ(display_bottom - kShelfAutoHideSize, |
710 GetShelfWidget()->GetWindowBoundsInScreen().y()); | 709 GetShelfWidget()->GetWindowBoundsInScreen().y()); |
711 EXPECT_EQ(display_bottom - shelf_insets, display.work_area().bottom()); | 710 EXPECT_EQ(display_bottom, display.work_area().bottom()); |
712 | 711 |
713 // Move the mouse to the bottom of the screen. | 712 // Move the mouse to the bottom of the screen. |
714 generator.MoveMouseTo(0, display_bottom - 1); | 713 generator.MoveMouseTo(0, display_bottom - 1); |
715 | 714 |
716 // Shelf should be shown again (but it shouldn't have changed the work area). | 715 // Shelf should be shown again (but it shouldn't have changed the work area). |
717 SetState(layout_manager, SHELF_AUTO_HIDE); | 716 SetState(layout_manager, SHELF_AUTO_HIDE); |
718 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 717 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
719 layout_manager->LayoutShelf(); | 718 layout_manager->LayoutShelf(); |
720 EXPECT_EQ(display_bottom - layout_manager->GetIdealBounds().height(), | 719 EXPECT_EQ(display_bottom - layout_manager->GetIdealBounds().height(), |
721 GetShelfWidget()->GetWindowBoundsInScreen().y()); | 720 GetShelfWidget()->GetWindowBoundsInScreen().y()); |
722 EXPECT_EQ(display_bottom - shelf_insets, display.work_area().bottom()); | 721 EXPECT_EQ(display_bottom, display.work_area().bottom()); |
723 | 722 |
724 // Move mouse back up. | 723 // Move mouse back up. |
725 generator.MoveMouseTo(0, 0); | 724 generator.MoveMouseTo(0, 0); |
726 SetState(layout_manager, SHELF_AUTO_HIDE); | 725 SetState(layout_manager, SHELF_AUTO_HIDE); |
727 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); | 726 EXPECT_EQ(SHELF_AUTO_HIDE_HIDDEN, shelf->GetAutoHideState()); |
728 layout_manager->LayoutShelf(); | 727 layout_manager->LayoutShelf(); |
729 EXPECT_EQ(display_bottom - kShelfAutoHideSize, | 728 EXPECT_EQ(display_bottom - kShelfAutoHideSize, |
730 GetShelfWidget()->GetWindowBoundsInScreen().y()); | 729 GetShelfWidget()->GetWindowBoundsInScreen().y()); |
731 | 730 |
732 // Drag mouse to bottom of screen. | 731 // Drag mouse to bottom of screen. |
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1290 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1289 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
1291 display.GetWorkAreaInsets().left()); | 1290 display.GetWorkAreaInsets().left()); |
1292 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1291 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
1293 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1292 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
1294 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); | 1293 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); |
1295 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); | 1294 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); |
1296 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); | 1295 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); |
1297 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); | 1296 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); |
1298 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1297 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
1299 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1298 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
1300 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE), | 1299 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); |
1301 display.GetWorkAreaInsets().left()); | 1300 EXPECT_EQ(0, display.work_area().x()); |
1302 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE), | |
1303 display.work_area().x()); | |
1304 | 1301 |
1305 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1302 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1306 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); | 1303 shelf->SetAlignment(SHELF_ALIGNMENT_RIGHT); |
1307 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | 1304 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); |
1308 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1305 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
1309 ASSERT_NE(-1, display.id()); | 1306 ASSERT_NE(-1, display.id()); |
1310 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1307 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
1311 display.GetWorkAreaInsets().right()); | 1308 display.GetWorkAreaInsets().right()); |
1312 EXPECT_GE(shelf_bounds.width(), | 1309 EXPECT_GE(shelf_bounds.width(), |
1313 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); | 1310 GetShelfWidget()->GetContentsView()->GetPreferredSize().width()); |
1314 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetPrimarySystemTray()->shelf_alignment()); | 1311 EXPECT_EQ(SHELF_ALIGNMENT_RIGHT, GetPrimarySystemTray()->shelf_alignment()); |
1315 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); | 1312 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); |
1316 // TODO(estade): Re-enable this check. See crbug.com/660928. | 1313 // TODO(estade): Re-enable this check. See crbug.com/660928. |
1317 // EXPECT_GE( | 1314 // EXPECT_GE( |
1318 // status_bounds.width(), | 1315 // status_bounds.width(), |
1319 // status_area_widget->GetContentsView()->GetPreferredSize().width()); | 1316 // status_area_widget->GetContentsView()->GetPreferredSize().width()); |
1320 EXPECT_EQ(layout_manager->GetIdealBounds().width(), | 1317 EXPECT_EQ(layout_manager->GetIdealBounds().width(), |
1321 display.GetWorkAreaInsets().right()); | 1318 display.GetWorkAreaInsets().right()); |
1322 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); | 1319 EXPECT_EQ(0, display.GetWorkAreaInsets().top()); |
1323 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | 1320 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); |
1324 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); | 1321 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); |
1325 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); | 1322 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); |
1326 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); | 1323 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); |
1327 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); | 1324 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); |
1328 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1325 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
1329 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1326 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
1330 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE), | 1327 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); |
1331 display.GetWorkAreaInsets().right()); | 1328 EXPECT_EQ(0, display.bounds().right() - display.work_area().right()); |
1332 EXPECT_EQ(GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE), | |
1333 display.bounds().right() - display.work_area().right()); | |
1334 } | 1329 } |
1335 | 1330 |
1336 TEST_F(ShelfLayoutManagerTest, GestureDrag) { | 1331 TEST_F(ShelfLayoutManagerTest, GestureDrag) { |
1337 // TODO: investigate failure in mash, http://crbug.com/695686. | 1332 // TODO: investigate failure in mash, http://crbug.com/695686. |
1338 if (Shell::GetAshConfig() == Config::MASH) | 1333 if (Shell::GetAshConfig() == Config::MASH) |
1339 return; | 1334 return; |
1340 | 1335 |
1341 // Slop is an implementation detail of gesture recognition, and complicates | 1336 // Slop is an implementation detail of gesture recognition, and complicates |
1342 // these tests. Ignore it. | 1337 // these tests. Ignore it. |
1343 ui::GestureConfiguration::GetInstance() | 1338 ui::GestureConfiguration::GetInstance() |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1840 // Open keyboard in sticky mode. | 1835 // Open keyboard in sticky mode. |
1841 kb_controller->ShowKeyboard(true); | 1836 kb_controller->ShowKeyboard(true); |
1842 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); | 1837 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); |
1843 | 1838 |
1844 // Work area should be changed. | 1839 // Work area should be changed. |
1845 EXPECT_NE(orig_work_area, | 1840 EXPECT_NE(orig_work_area, |
1846 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); | 1841 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); |
1847 } | 1842 } |
1848 | 1843 |
1849 } // namespace ash | 1844 } // namespace ash |
OLD | NEW |