Chromium Code Reviews| 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/common/shelf/shelf_layout_manager.h" | 5 #include "ash/common/shelf/shelf_layout_manager.h" |
| 6 | 6 |
| 7 #include "ash/aura/wm_shelf_aura.h" | 7 #include "ash/aura/wm_shelf_aura.h" |
| 8 #include "ash/aura/wm_window_aura.h" | 8 #include "ash/aura/wm_window_aura.h" |
| 9 #include "ash/common/accelerators/accelerator_controller.h" | 9 #include "ash/common/accelerators/accelerator_controller.h" |
| 10 #include "ash/common/accelerators/accelerator_table.h" | 10 #include "ash/common/accelerators/accelerator_table.h" |
| (...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1125 // Makes sure shelf will be visible when app list opens as shelf is in | 1125 // Makes sure shelf will be visible when app list opens as shelf is in |
| 1126 // SHELF_VISIBLE state,and toggling app list won't change shelf | 1126 // SHELF_VISIBLE state,and toggling app list won't change shelf |
| 1127 // visibility state. | 1127 // visibility state. |
| 1128 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { | 1128 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfVisibleState) { |
| 1129 WmShell* shell = WmShell::Get(); | 1129 WmShell* shell = WmShell::Get(); |
| 1130 WmShelf* shelf = GetPrimaryShelf(); | 1130 WmShelf* shelf = GetPrimaryShelf(); |
| 1131 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 1131 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
| 1132 layout_manager->LayoutShelf(); | 1132 layout_manager->LayoutShelf(); |
| 1133 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); | 1133 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_NEVER); |
| 1134 | 1134 |
| 1135 // Create a normal unmaximized windowm shelf should be visible. | 1135 // Create a normal unmaximized window, shelf should be visible. |
| 1136 aura::Window* window = CreateTestWindow(); | 1136 aura::Window* window = CreateTestWindow(); |
| 1137 window->SetBounds(gfx::Rect(0, 0, 100, 100)); | 1137 window->SetBounds(gfx::Rect(0, 0, 100, 100)); |
| 1138 window->Show(); | 1138 window->Show(); |
| 1139 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1139 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
| 1140 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1140 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 1141 | 1141 |
| 1142 // Show app list and the shelf stays visible. | 1142 // Show app list and the shelf stays visible. |
| 1143 shell->ShowAppList(); | 1143 shell->ShowAppList(); |
| 1144 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1144 EXPECT_TRUE(shell->GetAppListTargetVisibility()); |
| 1145 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1145 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 1146 | 1146 |
| 1147 // Hide app list and the shelf stays visible. | 1147 // Hide app list and the shelf stays visible. |
| 1148 shell->DismissAppList(); | 1148 shell->DismissAppList(); |
| 1149 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1149 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
| 1150 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); | 1150 EXPECT_EQ(SHELF_VISIBLE, shelf->GetVisibilityState()); |
| 1151 } | 1151 } |
| 1152 | 1152 |
| 1153 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state | 1153 // Makes sure shelf will be shown with SHELF_AUTO_HIDE_SHOWN state |
| 1154 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and | 1154 // when app list opens as shelf is in SHELF_AUTO_HIDE state, and |
| 1155 // toggling app list won't change shelf visibility state. | 1155 // toggling app list won't change shelf visibility state. |
| 1156 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { | 1156 TEST_F(ShelfLayoutManagerTest, OpenAppListWithShelfAutoHideState) { |
| 1157 WmShell* shell = WmShell::Get(); | 1157 WmShell* shell = WmShell::Get(); |
| 1158 WmShelf* shelf = GetPrimaryShelf(); | 1158 WmShelf* shelf = GetPrimaryShelf(); |
| 1159 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); | 1159 ShelfLayoutManager* layout_manager = GetShelfLayoutManager(); |
| 1160 layout_manager->LayoutShelf(); | 1160 layout_manager->LayoutShelf(); |
| 1161 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); | 1161 shelf->SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
| 1162 | 1162 |
| 1163 // Create a window and show it in maximized state. | |
| 1164 aura::Window* window = CreateTestWindow(); | |
| 1165 window->SetBounds(gfx::Rect(0, 0, 100, 100)); | |
| 1166 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); | |
| 1167 window->Show(); | |
| 1168 wm::ActivateWindow(window); | |
| 1169 | |
| 1170 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1163 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
| 1171 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1164 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 1165 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | |
|
James Cook
2016/11/30 23:27:19
Thanks for checking this case.
| |
| 1172 | 1166 |
| 1173 // Show app list. | 1167 // Show app list. |
| 1174 shell->ShowAppList(); | 1168 shell->ShowAppList(); |
| 1175 // The shelf's auto hide state won't be changed until the timer fires, so | 1169 // The shelf's auto hide state won't be changed until the timer fires, so |
| 1176 // force it to update now. | 1170 // force it to update now. |
| 1177 layout_manager->UpdateVisibilityState(); | 1171 layout_manager->UpdateVisibilityState(); |
| 1178 EXPECT_TRUE(shell->GetAppListTargetVisibility()); | 1172 EXPECT_TRUE(shell->GetAppListTargetVisibility()); |
| 1179 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1173 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 1180 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | 1174 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); |
| 1181 | 1175 |
| 1182 // Hide app list. | 1176 // Hide app list. |
| 1183 shell->DismissAppList(); | 1177 shell->DismissAppList(); |
| 1184 EXPECT_FALSE(shell->GetAppListTargetVisibility()); | 1178 EXPECT_FALSE(shell->GetAppListTargetVisibility()); |
| 1185 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); | 1179 EXPECT_EQ(SHELF_AUTO_HIDE, shelf->GetVisibilityState()); |
| 1180 EXPECT_EQ(SHELF_AUTO_HIDE_SHOWN, shelf->GetAutoHideState()); | |
| 1186 } | 1181 } |
| 1187 | 1182 |
| 1188 // Makes sure that when we have dual displays, with one or both shelves are set | 1183 // Makes sure that when we have dual displays, with one or both shelves are set |
| 1189 // to AutoHide, viewing the AppList on one of them doesn't unhide the other | 1184 // to AutoHide, viewing the AppList on one of them doesn't unhide the other |
| 1190 // hidden shelf. | 1185 // hidden shelf. |
| 1191 TEST_F(ShelfLayoutManagerTest, DualDisplayOpenAppListWithShelfAutoHideState) { | 1186 TEST_F(ShelfLayoutManagerTest, DualDisplayOpenAppListWithShelfAutoHideState) { |
| 1192 if (!SupportsMultipleDisplays()) | 1187 if (!SupportsMultipleDisplays()) |
| 1193 return; | 1188 return; |
| 1194 | 1189 |
| 1195 // Create two displays. | 1190 // Create two displays. |
| (...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2060 // Open keyboard in sticky mode. | 2055 // Open keyboard in sticky mode. |
| 2061 kb_controller->ShowKeyboard(true); | 2056 kb_controller->ShowKeyboard(true); |
| 2062 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); | 2057 layout_manager->OnKeyboardBoundsChanging(keyboard_bounds()); |
| 2063 | 2058 |
| 2064 // Work area should be changed. | 2059 // Work area should be changed. |
| 2065 EXPECT_NE(orig_work_area, | 2060 EXPECT_NE(orig_work_area, |
| 2066 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); | 2061 display::Screen::GetScreen()->GetPrimaryDisplay().work_area()); |
| 2067 } | 2062 } |
| 2068 | 2063 |
| 2069 } // namespace ash | 2064 } // namespace ash |
| OLD | NEW |