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/ash_switches.h" | 9 #include "ash/ash_switches.h" |
10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), | 174 EXPECT_EQ(GetShelfWidget()->GetWindowBoundsInScreen(), |
175 GetShelfWidget()->GetDimmerBoundsForTest()); | 175 GetShelfWidget()->GetDimmerBoundsForTest()); |
176 | 176 |
177 // The shelf should never be smaller than the hidden state. | 177 // The shelf should never be smaller than the hidden state. |
178 EXPECT_GE(shelf_bounds.height(), not_visible_bounds_.height()); | 178 EXPECT_GE(shelf_bounds.height(), not_visible_bounds_.height()); |
179 float scroll_delta = GetShelfLayoutManager()->PrimaryAxisValue( | 179 float scroll_delta = GetShelfLayoutManager()->PrimaryAxisValue( |
180 scroll_.y(), | 180 scroll_.y(), |
181 scroll_.x()); | 181 scroll_.x()); |
182 bool increasing_drag = | 182 bool increasing_drag = |
183 GetShelfWidget()->shelf()->SelectValueForShelfAlignment( | 183 GetShelfWidget()->shelf()->SelectValueForShelfAlignment( |
184 scroll_delta < 0, scroll_delta > 0, | 184 scroll_delta < 0, scroll_delta > 0, scroll_delta < 0); |
185 scroll_delta < 0, scroll_delta > 0); | |
186 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue( | 185 int shelf_size = GetShelfLayoutManager()->PrimaryAxisValue( |
187 shelf_bounds.height(), | 186 shelf_bounds.height(), |
188 shelf_bounds.width()); | 187 shelf_bounds.width()); |
189 int visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( | 188 int visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( |
190 visible_bounds_.height(), | 189 visible_bounds_.height(), |
191 visible_bounds_.width()); | 190 visible_bounds_.width()); |
192 int not_visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( | 191 int not_visible_bounds_size = GetShelfLayoutManager()->PrimaryAxisValue( |
193 not_visible_bounds_.height(), | 192 not_visible_bounds_.height(), |
194 not_visible_bounds_.width()); | 193 not_visible_bounds_.width()); |
195 if (was_visible_on_drag_start_) { | 194 if (was_visible_on_drag_start_) { |
(...skipping 1504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1700 } | 1699 } |
1701 | 1700 |
1702 | 1701 |
1703 #if defined(OS_WIN) | 1702 #if defined(OS_WIN) |
1704 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962 | 1703 // RootWindow and Display can't resize on Windows Ash. http://crbug.com/165962 |
1705 #define MAYBE_SetAlignment DISABLED_SetAlignment | 1704 #define MAYBE_SetAlignment DISABLED_SetAlignment |
1706 #else | 1705 #else |
1707 #define MAYBE_SetAlignment SetAlignment | 1706 #define MAYBE_SetAlignment SetAlignment |
1708 #endif | 1707 #endif |
1709 | 1708 |
1710 // Tests SHELF_ALIGNMENT_(LEFT, RIGHT, TOP). | 1709 // Tests SHELF_ALIGNMENT_(LEFT, RIGHT). |
1711 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) { | 1710 TEST_F(ShelfLayoutManagerTest, MAYBE_SetAlignment) { |
1712 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 1711 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
1713 // Force an initial layout. | 1712 // Force an initial layout. |
1714 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1713 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1715 shelf->LayoutShelf(); | 1714 shelf->LayoutShelf(); |
1716 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); | 1715 EXPECT_EQ(SHELF_VISIBLE, shelf->visibility_state()); |
1717 | 1716 |
1718 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); | 1717 shelf->SetAlignment(SHELF_ALIGNMENT_LEFT); |
1719 gfx::Rect shelf_bounds( | 1718 gfx::Rect shelf_bounds( |
1720 GetShelfWidget()->GetWindowBoundsInScreen()); | 1719 GetShelfWidget()->GetWindowBoundsInScreen()); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1767 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); | 1766 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); |
1768 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); | 1767 EXPECT_EQ(display.work_area().right(), shelf_bounds.x()); |
1769 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); | 1768 EXPECT_EQ(display.bounds().y(), shelf_bounds.y()); |
1770 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); | 1769 EXPECT_EQ(display.bounds().height(), shelf_bounds.height()); |
1771 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1770 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
1772 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | 1771 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); |
1773 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, | 1772 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, |
1774 display.GetWorkAreaInsets().right()); | 1773 display.GetWorkAreaInsets().right()); |
1775 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, | 1774 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, |
1776 display.bounds().right() - display.work_area().right()); | 1775 display.bounds().right() - display.work_area().right()); |
1777 | |
1778 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | |
1779 shelf->SetAlignment(SHELF_ALIGNMENT_TOP); | |
1780 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | |
1781 shelf_bounds = GetShelfWidget()->GetWindowBoundsInScreen(); | |
1782 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | |
1783 ASSERT_NE(-1, display.id()); | |
1784 EXPECT_EQ(shelf->GetIdealBounds().height(), | |
1785 display.GetWorkAreaInsets().top()); | |
1786 EXPECT_GE(shelf_bounds.height(), | |
1787 GetShelfWidget()->GetContentsView()->GetPreferredSize().height()); | |
1788 EXPECT_EQ(SHELF_ALIGNMENT_TOP, GetSystemTray()->shelf_alignment()); | |
1789 status_bounds = gfx::Rect(status_area_widget->GetWindowBoundsInScreen()); | |
1790 EXPECT_GE(status_bounds.height(), | |
1791 status_area_widget->GetContentsView()->GetPreferredSize().height()); | |
1792 EXPECT_EQ(shelf->GetIdealBounds().height(), | |
1793 display.GetWorkAreaInsets().top()); | |
1794 EXPECT_EQ(0, display.GetWorkAreaInsets().right()); | |
1795 EXPECT_EQ(0, display.GetWorkAreaInsets().bottom()); | |
1796 EXPECT_EQ(0, display.GetWorkAreaInsets().left()); | |
1797 EXPECT_EQ(display.work_area().y(), shelf_bounds.bottom()); | |
1798 EXPECT_EQ(display.bounds().x(), shelf_bounds.x()); | |
1799 EXPECT_EQ(display.bounds().width(), shelf_bounds.width()); | |
1800 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | |
1801 display = screen->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()); | |
1802 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, | |
1803 display.GetWorkAreaInsets().top()); | |
1804 EXPECT_EQ(ShelfLayoutManager::kAutoHideSize, | |
1805 display.work_area().y() - display.bounds().y()); | |
1806 } | 1776 } |
1807 | 1777 |
1808 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) { | 1778 TEST_F(ShelfLayoutManagerTest, GestureEdgeSwipe) { |
1809 ShelfLayoutManager* shelf = GetShelfLayoutManager(); | 1779 ShelfLayoutManager* shelf = GetShelfLayoutManager(); |
1810 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1780 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
1811 views::Widget* widget = new views::Widget; | 1781 views::Widget* widget = new views::Widget; |
1812 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); | 1782 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
1813 params.bounds = gfx::Rect(0, 0, 200, 200); | 1783 params.bounds = gfx::Rect(0, 0, 200, 200); |
1814 params.context = CurrentContext(); | 1784 params.context = CurrentContext(); |
1815 widget->Init(params); | 1785 widget->Init(params); |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2360 StatusAreaWidget* status_area_widget = | 2330 StatusAreaWidget* status_area_widget = |
2361 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); | 2331 Shell::GetPrimaryRootWindowController()->shelf()->status_area_widget(); |
2362 EXPECT_TRUE(status_area_widget->IsVisible()); | 2332 EXPECT_TRUE(status_area_widget->IsVisible()); |
2363 // Shelf should be in the first display's area. | 2333 // Shelf should be in the first display's area. |
2364 // TODO: make this test more robust against changes in font, font size. | 2334 // TODO: make this test more robust against changes in font, font size. |
2365 EXPECT_EQ("353,453 147x47", | 2335 EXPECT_EQ("353,453 147x47", |
2366 status_area_widget->GetWindowBoundsInScreen().ToString()); | 2336 status_area_widget->GetWindowBoundsInScreen().ToString()); |
2367 } | 2337 } |
2368 | 2338 |
2369 } // namespace ash | 2339 } // namespace ash |
OLD | NEW |