| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
|
| index 8cf80760f19d8658b95a25ce4f19d2487981e58d..69cf1dd17b75ed505214416755e3cf7fea7c501d 100644
|
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
|
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
|
| @@ -9,8 +9,10 @@
|
| #include <vector>
|
|
|
| #include "ash/ash_switches.h"
|
| +#include "ash/launcher/launcher_item_delegate_manager.h"
|
| #include "ash/launcher/launcher_model.h"
|
| #include "ash/launcher/launcher_model_observer.h"
|
| +#include "ash/shell.h"
|
| #include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/files/file_path.h"
|
| @@ -21,6 +23,7 @@
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/test_extension_system.h"
|
| #include "chrome/browser/ui/ash/chrome_launcher_prefs.h"
|
| +#include "chrome/browser/ui/ash/launcher/launcher_application_menu_item_model.h"
|
| #include "chrome/browser/ui/ash/launcher/launcher_item_controller.h"
|
| #include "chrome/browser/ui/ash/launcher/shell_window_launcher_item_controller.h"
|
| #include "chrome/browser/ui/browser.h"
|
| @@ -1099,7 +1102,8 @@ bool CheckMenuCreation(ChromeLauncherController* controller,
|
| }
|
|
|
| scoped_ptr<ash::LauncherMenuModel> menu(
|
| - controller->CreateApplicationMenu(item, 0));
|
| + new LauncherApplicationMenuItemModel(
|
| + controller->GetApplicationList(item, 0)));
|
| // The first element in the menu is a spacing separator. On some systems
|
| // (e.g. Windows) such things do not exist. As such we check the existence
|
| // and adjust dynamically.
|
| @@ -1263,7 +1267,8 @@ TEST_F(ChromeLauncherControllerTest, V1AppMenuExecution) {
|
| // item is per definition already the active tab).
|
| {
|
| scoped_ptr<ash::LauncherMenuModel> menu(
|
| - launcher_controller_->CreateApplicationMenu(item_gmail, 0));
|
| + new LauncherApplicationMenuItemModel(
|
| + launcher_controller_->GetApplicationList(item_gmail, 0)));
|
| // The first element in the menu is a spacing separator. On some systems
|
| // (e.g. Windows) such things do not exist. As such we check the existence
|
| // and adjust dynamically.
|
| @@ -1276,7 +1281,8 @@ TEST_F(ChromeLauncherControllerTest, V1AppMenuExecution) {
|
| // Execute the first item.
|
| {
|
| scoped_ptr<ash::LauncherMenuModel> menu(
|
| - launcher_controller_->CreateApplicationMenu(item_gmail, 0));
|
| + new LauncherApplicationMenuItemModel(
|
| + launcher_controller_->GetApplicationList(item_gmail, 0)));
|
| int first_item =
|
| (menu->GetTypeAt(0) == ui::MenuModel::TYPE_SEPARATOR) ? 1 : 0;
|
| menu->ActivatedAt(first_item + 2);
|
| @@ -1337,11 +1343,14 @@ TEST_F(ChromeLauncherControllerTest, AppPanels) {
|
|
|
| // Test adding an app panel
|
| std::string app_id = extension1_->id();
|
| - ShellWindowLauncherItemController app_panel_controller(
|
| - LauncherItemController::TYPE_APP_PANEL, "id", app_id,
|
| - launcher_controller_.get());
|
| + ShellWindowLauncherItemController* app_panel_controller =
|
| + new ShellWindowLauncherItemController(
|
| + LauncherItemController::TYPE_APP_PANEL,
|
| + "id",
|
| + app_id,
|
| + launcher_controller_.get());
|
| ash::LauncherID launcher_id1 = launcher_controller_->CreateAppLauncherItem(
|
| - &app_panel_controller, app_id, ash::STATUS_RUNNING);
|
| + app_panel_controller, app_id, ash::STATUS_RUNNING);
|
| int panel_index = model_observer_->last_index();
|
| EXPECT_EQ(2, model_observer_->added());
|
| EXPECT_EQ(0, model_observer_->changed());
|
| @@ -1352,7 +1361,7 @@ TEST_F(ChromeLauncherControllerTest, AppPanels) {
|
| EXPECT_EQ(0, launcher_controller_->GetLauncherIDForAppID(app_id));
|
|
|
| // Setting the app image image should not change the panel if it set its icon
|
| - app_panel_controller.set_image_set_by_controller(true);
|
| + app_panel_controller->set_image_set_by_controller(true);
|
| gfx::ImageSkia image;
|
| launcher_controller_->SetAppImage(app_id, image);
|
| EXPECT_EQ(0, model_observer_->changed());
|
| @@ -1360,8 +1369,15 @@ TEST_F(ChromeLauncherControllerTest, AppPanels) {
|
|
|
| // Add a second app panel and verify that it get the same index as the first
|
| // one had, being added to the left of the existing panel.
|
| + ShellWindowLauncherItemController* app_panel_controller2 =
|
| + new ShellWindowLauncherItemController(
|
| + LauncherItemController::TYPE_APP_PANEL,
|
| + "id",
|
| + app_id,
|
| + launcher_controller_.get());
|
| +
|
| ash::LauncherID launcher_id2 = launcher_controller_->CreateAppLauncherItem(
|
| - &app_panel_controller, app_id, ash::STATUS_RUNNING);
|
| + app_panel_controller2, app_id, ash::STATUS_RUNNING);
|
| EXPECT_EQ(panel_index, model_observer_->last_index());
|
| EXPECT_EQ(1, model_observer_->added());
|
| model_observer_->clear_counts();
|
| @@ -1369,6 +1385,11 @@ TEST_F(ChromeLauncherControllerTest, AppPanels) {
|
| launcher_controller_->CloseLauncherItem(launcher_id2);
|
| launcher_controller_->CloseLauncherItem(launcher_id1);
|
| EXPECT_EQ(2, model_observer_->removed());
|
| +
|
| + if (!ash::Shell::HasInstance()) {
|
| + delete app_panel_controller;
|
| + delete app_panel_controller2;
|
| + }
|
| }
|
|
|
| // Tests that the Gmail extension matches more then the app itself claims with
|
| @@ -1466,6 +1487,13 @@ TEST_F(ChromeLauncherControllerTest, PersistLauncherItemPositions) {
|
|
|
| launcher_controller_.reset();
|
| model_.reset(new ash::LauncherModel);
|
| +
|
| + // Clear already registered LauncherItemDelegate.
|
| + if (ash::Shell::HasInstance()) {
|
| + ash::Shell::GetInstance()->launcher_item_delegate_manager()->
|
| + UnregisterAllLauncherItemDelegateForTest();
|
| + }
|
| +
|
| launcher_controller_.reset(
|
| ChromeLauncherController::CreateInstance(profile(), model_.get()));
|
| app_tab_helper = new TestAppTabHelperImpl;
|
| @@ -1509,6 +1537,13 @@ TEST_F(ChromeLauncherControllerTest, PersistPinned) {
|
|
|
| launcher_controller_.reset();
|
| model_.reset(new ash::LauncherModel);
|
| +
|
| + // Clear already registered LauncherItemDelegate.
|
| + if (ash::Shell::HasInstance()) {
|
| + ash::Shell::GetInstance()->launcher_item_delegate_manager()->
|
| + UnregisterAllLauncherItemDelegateForTest();
|
| + }
|
| +
|
| launcher_controller_.reset(
|
| ChromeLauncherController::CreateInstance(profile(), model_.get()));
|
| app_tab_helper = new TestAppTabHelperImpl;
|
|
|