Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1331)

Unified Diff: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc

Issue 2791803002: mash: Move LauncherItemController to ash, rename ShelfItemDelegate. (Closed)
Patch Set: Move shelf_item_delegate to ash/public/cpp, cleanup. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
index 0ed295f97d6c81054c847ce96435f9299e6ca1f8..e7467c251e32fc9863393947832eb2e667daea3e 100644
--- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
+++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_unittest.cc
@@ -24,6 +24,7 @@
#include "ash/display/screen_orientation_controller_chromeos.h"
#include "ash/public/cpp/app_launch_id.h"
#include "ash/public/cpp/shelf_item.h"
+#include "ash/public/cpp/shelf_item_delegate.h"
#include "ash/shell.h"
#include "ash/test/ash_test_helper.h"
#include "ash/test/shell_test_api.h"
@@ -63,7 +64,6 @@
#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h"
#include "chrome/browser/ui/ash/launcher/extension_app_window_launcher_item_controller.h"
#include "chrome/browser/ui/ash/launcher/launcher_controller_helper.h"
-#include "chrome/browser/ui/ash/launcher/launcher_item_controller.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
@@ -160,9 +160,8 @@ class TestShelfModelObserver : public ash::ShelfModelObserver {
last_index_ = target_index;
}
- void OnSetShelfItemDelegate(
- ash::ShelfID id,
- ash::mojom::ShelfItemDelegate* item_delegate) override {}
+ void OnSetShelfItemDelegate(ash::ShelfID id,
+ ash::ShelfItemDelegate* item_delegate) override {}
void clear_counts() {
added_ = 0;
@@ -256,15 +255,14 @@ class TestLauncherControllerHelper : public LauncherControllerHelper {
};
// Test implementation of a V2 app launcher item controller.
-class TestV2AppLauncherItemController : public LauncherItemController {
+class TestV2AppLauncherItemController : public ash::ShelfItemDelegate {
public:
- TestV2AppLauncherItemController(const std::string& app_id,
- ChromeLauncherController* controller)
- : LauncherItemController(ash::AppLaunchId(app_id), controller) {}
+ explicit TestV2AppLauncherItemController(const std::string& app_id)
+ : ash::ShelfItemDelegate(ash::AppLaunchId(app_id)) {}
~TestV2AppLauncherItemController() override {}
- // Override for LauncherItemController:
+ // Override for ash::ShelfItemDelegate:
void ItemSelected(std::unique_ptr<ui::Event> event,
int64_t display_id,
ash::ShelfLaunchSource source,
@@ -321,10 +319,10 @@ class ProxyShelfDelegate : public ash::ShelfDelegate {
};
// A callback that does nothing after shelf item selection handling.
-void NoopCallback(ash::ShelfAction action, base::Optional<MenuItemList>) {}
+void NoopCallback(ash::ShelfAction action, base::Optional<ash::MenuItemList>) {}
// Simulates selection of the shelf item.
-void SelectItem(ash::mojom::ShelfItemDelegate* delegate) {
+void SelectItem(ash::ShelfItemDelegate* delegate) {
std::unique_ptr<ui::Event> event = base::MakeUnique<ui::MouseEvent>(
ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(),
ui::EF_NONE, 0);
@@ -455,8 +453,7 @@ class ChromeLauncherControllerImplTest : public BrowserWithTestWindowTest {
virtual void CreateRunningV2App(const std::string& app_id) {
DCHECK(!test_controller_);
// Change the created launcher controller into a V2 app controller.
- test_controller_ = new TestV2AppLauncherItemController(app_id,
- launcher_controller_.get());
+ test_controller_ = new TestV2AppLauncherItemController(app_id);
ash::ShelfID id = launcher_controller_->InsertAppLauncherItem(
test_controller_, ash::STATUS_RUNNING, model_->item_count(),
ash::TYPE_APP);
@@ -977,7 +974,7 @@ class ChromeLauncherControllerImplTest : public BrowserWithTestWindowTest {
std::unique_ptr<TestingProfileManager> profile_manager_;
// |item_delegate_manager_| owns |test_controller_|.
- LauncherItemController* test_controller_ = nullptr;
+ ash::ShelfItemDelegate* test_controller_ = nullptr;
ExtensionService* extension_service_ = nullptr;
@@ -1048,15 +1045,6 @@ class WebContentsDestroyedWatcher : public content::WebContentsObserver {
class V1App : public TestBrowserWindow {
public:
V1App(Profile* profile, const std::string& app_name) {
- // Create a window.
- native_window_.reset(new aura::Window(NULL));
- native_window_->set_id(0);
- native_window_->SetType(ui::wm::WINDOW_TYPE_POPUP);
- native_window_->Init(ui::LAYER_TEXTURED);
- native_window_->Show();
- aura::client::ParentWindowWithContext(native_window_.get(),
- ash::Shell::GetPrimaryRootWindow(),
- gfx::Rect(10, 10, 20, 30));
Browser::CreateParams params = Browser::CreateParams::CreateForApp(
kCrxAppPrefix + app_name, true /* trusted_source */, gfx::Rect(),
profile, true);
@@ -1072,18 +1060,10 @@ class V1App : public TestBrowserWindow {
Browser* browser() { return browser_.get(); }
- // TestBrowserWindow override:
- gfx::NativeWindow GetNativeWindow() const override {
- return native_window_.get();
- }
-
private:
// The associated browser with this app.
std::unique_ptr<Browser> browser_;
- // The native window we use.
- std::unique_ptr<aura::Window> native_window_;
-
DISALLOW_COPY_AND_ASSIGN(V1App);
};
@@ -1241,15 +1221,6 @@ class MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest
const std::string& app_name,
const std::string& url) {
V1App* v1_app = new V1App(profile, app_name);
- // Create a new launcher controller helper and assign it to the launcher so
- // that this app gets properly detected.
- // TODO(skuhne): Create a more intelligent launcher controller helper that
- // is able to detect all running apps properly.
- TestLauncherControllerHelper* helper = new TestLauncherControllerHelper;
- helper->SetAppID(v1_app->browser()->tab_strip_model()->GetWebContentsAt(0),
- app_name);
- SetLauncherControllerHelper(helper);
-
NavigateAndCommitActiveTabWithTitle(v1_app->browser(), GURL(url),
base::string16());
return v1_app;
@@ -1916,7 +1887,7 @@ TEST_P(ChromeLauncherControllerImplWithArcTest, ArcDeferredLaunch) {
// We activated arc_app_id1 twice but expect one close for item controller
// stops launching request.
- LauncherItemController* item_controller =
+ ash::ShelfItemDelegate* item_controller =
launcher_controller_->GetLauncherItemController(shelf_id_app_1);
ASSERT_NE(nullptr, item_controller);
item_controller->Close();
@@ -1977,8 +1948,7 @@ TEST_P(ChromeLauncherControllerImplWithArcTest, ArcDeferredLaunchForActiveApp) {
// Play Store app is ARC app that might be represented by native Chrome
// platform app.
AppWindowLauncherItemController* app_controller =
- new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id),
- launcher_controller_.get());
+ new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id));
launcher_controller_->SetItemController(shelf_id, app_controller);
launcher_controller_->SetItemStatus(shelf_id, ash::STATUS_RUNNING);
@@ -2294,8 +2264,6 @@ TEST_F(MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest,
V1AppUpdateOnUserSwitch) {
// Create a browser item in the LauncherController.
InitLauncherController();
- // TODO(crbug.com/654622): This test breaks with a non-null static instance.
James Cook 2017/04/04 15:34:45 Woo hoo, these are going away!
msw 2017/04/04 18:53:09 Acknowledged. (there is one left for an ARC test..
- ChromeLauncherControllerImpl::set_instance_for_test(nullptr);
EXPECT_EQ(2, model_->item_count());
{
@@ -2327,8 +2295,6 @@ TEST_F(MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest,
V1AppUpdateOnUserSwitchEdgecases) {
// Create a browser item in the LauncherController.
InitLauncherController();
- // TODO(crbug.com/654622): This test breaks with a non-null static instance.
- ChromeLauncherControllerImpl::set_instance_for_test(nullptr);
// First test: Create an app when the user is not active.
std::string user2 = "user2";
@@ -2365,8 +2331,6 @@ TEST_F(MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest,
V1CloseOnVisitingDesktop) {
// Create a browser item in the LauncherController.
InitLauncherController();
- // TODO(crbug.com/654622): This test breaks with a non-null static instance.
- ChromeLauncherControllerImpl::set_instance_for_test(nullptr);
chrome::MultiUserWindowManager* manager =
chrome::MultiUserWindowManager::GetInstance();
@@ -2411,10 +2375,6 @@ TEST_F(MultiProfileMultiBrowserShelfLayoutChromeLauncherControllerImplTest,
V1AppUpdateOnUserSwitchEdgecases2) {
// Create a browser item in the LauncherController.
InitLauncherController();
- // TODO(crbug.com/654622): This test breaks with a non-null static instance.
- ChromeLauncherControllerImpl::set_instance_for_test(nullptr);
-
- SetLauncherControllerHelper(new TestLauncherControllerHelper);
// First test: Create an app when the user is not active.
std::string user2 = "user2";
@@ -2878,7 +2838,7 @@ void CheckAppMenu(ChromeLauncherControllerImpl* controller,
const ash::ShelfItem& item,
size_t expected_item_count,
base::string16 expected_item_titles[]) {
- MenuItemList items = controller->GetAppMenuItemsForTesting(item);
+ ash::MenuItemList items = controller->GetAppMenuItemsForTesting(item);
ASSERT_EQ(expected_item_count, items.size());
for (size_t i = 0; i < expected_item_count; i++)
EXPECT_EQ(expected_item_titles[i], items[i]->label);
@@ -3329,7 +3289,7 @@ TEST_F(ChromeLauncherControllerImplTest, V1AppMenuExecution) {
item_gmail.id = gmail_id;
base::string16 two_menu_items[] = {title1, title2};
CheckAppMenu(launcher_controller_.get(), item_gmail, 2, two_menu_items);
- LauncherItemController* item_controller =
+ ash::ShelfItemDelegate* item_controller =
launcher_controller_->GetLauncherItemController(gmail_id);
ASSERT_TRUE(item_controller);
EXPECT_EQ(1, browser()->tab_strip_model()->active_index());
@@ -3378,13 +3338,13 @@ TEST_F(ChromeLauncherControllerImplTest, V1AppMenuDeletionExecution) {
base::string16 two_menu_items[] = {title1, title2};
CheckAppMenu(launcher_controller_.get(), item_gmail, 2, two_menu_items);
- LauncherItemController* item_controller =
+ ash::ShelfItemDelegate* item_controller =
launcher_controller_->GetLauncherItemController(gmail_id);
ASSERT_TRUE(item_controller);
int tabs = browser()->tab_strip_model()->count();
// Activate the proper tab through the menu item.
{
- MenuItemList items =
+ ash::MenuItemList items =
launcher_controller_->GetAppMenuItemsForTesting(item_gmail);
item_controller->ExecuteCommand(items[1]->command_id, ui::EF_NONE);
EXPECT_EQ(tabs, browser()->tab_strip_model()->count());
@@ -3392,7 +3352,7 @@ TEST_F(ChromeLauncherControllerImplTest, V1AppMenuDeletionExecution) {
// Delete one tab through the menu item.
{
- MenuItemList items =
+ ash::MenuItemList items =
launcher_controller_->GetAppMenuItemsForTesting(item_gmail);
item_controller->ExecuteCommand(items[1]->command_id, ui::EF_SHIFT_DOWN);
EXPECT_EQ(--tabs, browser()->tab_strip_model()->count());
@@ -3625,8 +3585,7 @@ TEST_F(ChromeLauncherControllerImplTest, MultipleAppIconLoaders) {
std::unique_ptr<AppIconLoader>(app_icon_loader2));
AppWindowLauncherItemController* app_controller3 =
- new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id3),
- launcher_controller_.get());
+ new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id3));
const ash::ShelfID shelfId3 = launcher_controller_->CreateAppLauncherItem(
app_controller3, ash::STATUS_RUNNING);
EXPECT_EQ(0, app_icon_loader1->fetch_count());
@@ -3635,8 +3594,7 @@ TEST_F(ChromeLauncherControllerImplTest, MultipleAppIconLoaders) {
EXPECT_EQ(0, app_icon_loader2->clear_count());
AppWindowLauncherItemController* app_controller2 =
- new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id2),
- launcher_controller_.get());
+ new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id2));
const ash::ShelfID shelfId2 = launcher_controller_->CreateAppLauncherItem(
app_controller2, ash::STATUS_RUNNING);
EXPECT_EQ(0, app_icon_loader1->fetch_count());
@@ -3645,8 +3603,7 @@ TEST_F(ChromeLauncherControllerImplTest, MultipleAppIconLoaders) {
EXPECT_EQ(0, app_icon_loader2->clear_count());
AppWindowLauncherItemController* app_controller1 =
- new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id1),
- launcher_controller_.get());
+ new ExtensionAppWindowLauncherItemController(ash::AppLaunchId(app_id1));
const ash::ShelfID shelfId1 = launcher_controller_->CreateAppLauncherItem(
app_controller1, ash::STATUS_RUNNING);
@@ -3783,7 +3740,7 @@ TEST_P(ChromeLauncherControllerImplWithArcTest, ShelfItemWithMultipleWindows) {
const ash::ShelfID shelf_id =
launcher_controller_->GetShelfIDForAppID(app_id);
- LauncherItemController* item_controller =
+ ash::ShelfItemDelegate* item_controller =
launcher_controller_->GetLauncherItemController(shelf_id);
ASSERT_TRUE(item_controller);
@@ -3795,7 +3752,7 @@ TEST_P(ChromeLauncherControllerImplWithArcTest, ShelfItemWithMultipleWindows) {
// Command ids are just app window indices. Note, apps are registered in
// opposite order. Last created goes in front.
- MenuItemList items = item_controller->GetAppMenuItems(0);
+ ash::MenuItemList items = item_controller->GetAppMenuItems(0);
ASSERT_EQ(items.size(), 2U);
EXPECT_EQ(items[0]->command_id, 0U);
EXPECT_EQ(items[1]->command_id, 1U);

Powered by Google App Engine
This is Rietveld 408576698