OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/browser/ui/ash/launcher/launcher_context_menu.h" | 5 #include "chrome/browser/ui/ash/launcher/launcher_context_menu.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "ash/common/shelf/shelf_item_types.h" | 9 #include "ash/common/shelf/shelf_item_types.h" |
10 #include "ash/common/wm_lookup.h" | 10 #include "ash/common/wm_lookup.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 item.type = shelf_item_type; | 72 item.type = shelf_item_type; |
73 return LauncherContextMenu::Create(controller_.get(), &item, wm_shelf); | 73 return LauncherContextMenu::Create(controller_.get(), &item, wm_shelf); |
74 } | 74 } |
75 | 75 |
76 LauncherContextMenu* CreateLauncherContextMenuForDesktopShell( | 76 LauncherContextMenu* CreateLauncherContextMenuForDesktopShell( |
77 ash::WmShelf* wm_shelf) { | 77 ash::WmShelf* wm_shelf) { |
78 ash::ShelfItem* item = nullptr; | 78 ash::ShelfItem* item = nullptr; |
79 return LauncherContextMenu::Create(controller_.get(), item, wm_shelf); | 79 return LauncherContextMenu::Create(controller_.get(), item, wm_shelf); |
80 } | 80 } |
81 | 81 |
82 // Creates app window and set optional Arc application id. | 82 // Creates app window and set optional ARC application id. |
83 views::Widget* CreateArcWindow(std::string& window_app_id) { | 83 views::Widget* CreateArcWindow(std::string& window_app_id) { |
84 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); | 84 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
85 views::Widget* widget = new views::Widget(); | 85 views::Widget* widget = new views::Widget(); |
86 widget->Init(params); | 86 widget->Init(params); |
87 widget->Show(); | 87 widget->Show(); |
88 widget->Activate(); | 88 widget->Activate(); |
89 exo::ShellSurface::SetApplicationId(widget->GetNativeWindow(), | 89 exo::ShellSurface::SetApplicationId(widget->GetNativeWindow(), |
90 window_app_id); | 90 window_app_id); |
91 return widget; | 91 return widget; |
92 } | 92 } |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 // opened. | 180 // opened. |
181 TEST_F(LauncherContextMenuTest, | 181 TEST_F(LauncherContextMenuTest, |
182 DesktopShellLauncherContextMenuVerifyCloseItem) { | 182 DesktopShellLauncherContextMenuVerifyCloseItem) { |
183 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 183 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
184 std::unique_ptr<LauncherContextMenu> menu(CreateLauncherContextMenu( | 184 std::unique_ptr<LauncherContextMenu> menu(CreateLauncherContextMenu( |
185 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(primary_id))); | 185 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(primary_id))); |
186 ASSERT_FALSE( | 186 ASSERT_FALSE( |
187 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); | 187 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); |
188 } | 188 } |
189 | 189 |
190 // Verifies contextmenu items for Arc app | 190 // Verifies contextmenu items for ARC app |
191 TEST_F(LauncherContextMenuTest, ArcLauncherContextMenuItemCheck) { | 191 TEST_F(LauncherContextMenuTest, ArcLauncherContextMenuItemCheck) { |
192 arc_test().app_instance()->RefreshAppList(); | 192 arc_test().app_instance()->RefreshAppList(); |
193 arc_test().app_instance()->SendRefreshAppList( | 193 arc_test().app_instance()->SendRefreshAppList( |
194 std::vector<arc::mojom::AppInfo>(arc_test().fake_apps().begin(), | 194 std::vector<arc::mojom::AppInfo>(arc_test().fake_apps().begin(), |
195 arc_test().fake_apps().begin() + 1)); | 195 arc_test().fake_apps().begin() + 1)); |
196 const std::string app_id = ArcAppTest::GetAppId(arc_test().fake_apps()[0]); | 196 const std::string app_id = ArcAppTest::GetAppId(arc_test().fake_apps()[0]); |
197 | 197 |
198 controller()->PinAppWithID(app_id); | 198 controller()->PinAppWithID(app_id); |
199 | 199 |
200 const ash::ShelfID item_id = controller()->GetShelfIDForAppID(app_id); | 200 const ash::ShelfID item_id = controller()->GetShelfIDForAppID(app_id); |
201 const ash::ShelfItem* item = controller()->GetItem(item_id); | 201 const ash::ShelfItem* item = controller()->GetItem(item_id); |
202 ASSERT_TRUE(item); | 202 ASSERT_TRUE(item); |
203 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 203 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
204 ash::WmShelf* wm_shelf = GetWmShelf(primary_id); | 204 ash::WmShelf* wm_shelf = GetWmShelf(primary_id); |
205 | 205 |
206 std::unique_ptr<LauncherContextMenu> menu( | 206 std::unique_ptr<LauncherContextMenu> menu( |
207 new ArcLauncherContextMenu(controller(), item, wm_shelf)); | 207 new ArcLauncherContextMenu(controller(), item, wm_shelf)); |
208 | 208 |
209 // Arc app is pinned but not running. | 209 // ARC app is pinned but not running. |
210 EXPECT_TRUE( | 210 EXPECT_TRUE( |
211 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_OPEN_NEW)); | 211 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_OPEN_NEW)); |
212 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_OPEN_NEW)); | 212 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_OPEN_NEW)); |
213 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_PIN)); | 213 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_PIN)); |
214 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_PIN)); | 214 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_PIN)); |
215 EXPECT_FALSE( | 215 EXPECT_FALSE( |
216 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); | 216 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); |
217 | 217 |
218 EXPECT_TRUE( | 218 EXPECT_TRUE( |
219 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_AUTO_HIDE)); | 219 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_AUTO_HIDE)); |
220 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_AUTO_HIDE)); | 220 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_AUTO_HIDE)); |
221 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), | 221 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), |
222 LauncherContextMenu::MENU_ALIGNMENT_MENU)); | 222 LauncherContextMenu::MENU_ALIGNMENT_MENU)); |
223 EXPECT_TRUE( | 223 EXPECT_TRUE( |
224 menu->IsCommandIdEnabled(LauncherContextMenu::MENU_ALIGNMENT_MENU)); | 224 menu->IsCommandIdEnabled(LauncherContextMenu::MENU_ALIGNMENT_MENU)); |
225 // By default, screen is not locked and ChangeWallPaper item is added in | 225 // By default, screen is not locked and ChangeWallPaper item is added in |
226 // menu. ChangeWallPaper item is not enabled in default mode. | 226 // menu. ChangeWallPaper item is not enabled in default mode. |
227 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), | 227 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), |
228 LauncherContextMenu::MENU_CHANGE_WALLPAPER)); | 228 LauncherContextMenu::MENU_CHANGE_WALLPAPER)); |
229 EXPECT_FALSE( | 229 EXPECT_FALSE( |
230 menu->IsCommandIdEnabled(LauncherContextMenu::MENU_CHANGE_WALLPAPER)); | 230 menu->IsCommandIdEnabled(LauncherContextMenu::MENU_CHANGE_WALLPAPER)); |
231 | 231 |
232 // Arc app is running. | 232 // ARC app is running. |
233 std::string window_app_id1("org.chromium.arc.1"); | 233 std::string window_app_id1("org.chromium.arc.1"); |
234 CreateArcWindow(window_app_id1); | 234 CreateArcWindow(window_app_id1); |
235 arc_test().app_instance()->SendTaskCreated(1, arc_test().fake_apps()[0], | 235 arc_test().app_instance()->SendTaskCreated(1, arc_test().fake_apps()[0], |
236 std::string()); | 236 std::string()); |
237 menu.reset(new ArcLauncherContextMenu(controller(), item, wm_shelf)); | 237 menu.reset(new ArcLauncherContextMenu(controller(), item, wm_shelf)); |
238 | 238 |
239 EXPECT_FALSE( | 239 EXPECT_FALSE( |
240 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_OPEN_NEW)); | 240 IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_OPEN_NEW)); |
241 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_PIN)); | 241 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_PIN)); |
242 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_PIN)); | 242 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_PIN)); |
243 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); | 243 EXPECT_TRUE(IsItemPresentInMenu(menu.get(), LauncherContextMenu::MENU_CLOSE)); |
244 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_CLOSE)); | 244 EXPECT_TRUE(menu->IsCommandIdEnabled(LauncherContextMenu::MENU_CLOSE)); |
245 | 245 |
246 // Arc non-launchable app is running. | 246 // ARC non-launchable app is running. |
247 const std::string app_id2 = ArcAppTest::GetAppId(arc_test().fake_apps()[1]); | 247 const std::string app_id2 = ArcAppTest::GetAppId(arc_test().fake_apps()[1]); |
248 std::string window_app_id2("org.chromium.arc.2"); | 248 std::string window_app_id2("org.chromium.arc.2"); |
249 CreateArcWindow(window_app_id2); | 249 CreateArcWindow(window_app_id2); |
250 arc_test().app_instance()->SendTaskCreated(2, arc_test().fake_apps()[1], | 250 arc_test().app_instance()->SendTaskCreated(2, arc_test().fake_apps()[1], |
251 std::string()); | 251 std::string()); |
252 const ash::ShelfID item_id2 = controller()->GetShelfIDForAppID(app_id2); | 252 const ash::ShelfID item_id2 = controller()->GetShelfIDForAppID(app_id2); |
253 const ash::ShelfItem* item2 = controller()->GetItem(item_id2); | 253 const ash::ShelfItem* item2 = controller()->GetItem(item_id2); |
254 ASSERT_TRUE(item2); | 254 ASSERT_TRUE(item2); |
255 menu.reset(new ArcLauncherContextMenu(controller(), item2, wm_shelf)); | 255 menu.reset(new ArcLauncherContextMenu(controller(), item2, wm_shelf)); |
256 | 256 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 widget->SetFullscreen(true); | 302 widget->SetFullscreen(true); |
303 std::unique_ptr<LauncherContextMenu> primary_menu(CreateLauncherContextMenu( | 303 std::unique_ptr<LauncherContextMenu> primary_menu(CreateLauncherContextMenu( |
304 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(primary_id))); | 304 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(primary_id))); |
305 std::unique_ptr<LauncherContextMenu> secondary_menu(CreateLauncherContextMenu( | 305 std::unique_ptr<LauncherContextMenu> secondary_menu(CreateLauncherContextMenu( |
306 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(secondary_id))); | 306 ash::TYPE_BROWSER_SHORTCUT, GetWmShelf(secondary_id))); |
307 EXPECT_FALSE(IsItemPresentInMenu(primary_menu.get(), | 307 EXPECT_FALSE(IsItemPresentInMenu(primary_menu.get(), |
308 LauncherContextMenu::MENU_AUTO_HIDE)); | 308 LauncherContextMenu::MENU_AUTO_HIDE)); |
309 EXPECT_TRUE(IsItemPresentInMenu(secondary_menu.get(), | 309 EXPECT_TRUE(IsItemPresentInMenu(secondary_menu.get(), |
310 LauncherContextMenu::MENU_AUTO_HIDE)); | 310 LauncherContextMenu::MENU_AUTO_HIDE)); |
311 } | 311 } |
OLD | NEW |