| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| index 4673e688f3fe6e7de1d79868259b30fa2fe51311..85cb1148178814d9ffe35ed929dabbca4cc93168 100644
|
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_impl_browsertest.cc
|
| @@ -876,33 +876,46 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, SetIcon) {
|
| int base_shelf_item_count = shelf_model()->item_count();
|
| ExtensionTestMessageListener completed_listener("Completed", false);
|
| LoadAndLaunchPlatformApp("app_icon", "Launched");
|
| +
|
| ASSERT_TRUE(completed_listener.WaitUntilSatisfied());
|
|
|
| // Now wait until the WebContent has decoded the icons and chrome has
|
| // processed it. This needs to be in a loop since the renderer runs in a
|
| // different process.
|
| - while (test_observer.icon_updates() < 3) {
|
| + while (test_observer.icon_updates() < 4) {
|
| base::RunLoop run_loop;
|
| run_loop.RunUntilIdle();
|
| }
|
|
|
| - // This test creates one app window and one panel window.
|
| + // This test creates one app window, one app window with custom icon and one
|
| + // panel window.
|
| int shelf_item_count = shelf_model()->item_count();
|
| - ASSERT_EQ(base_shelf_item_count + 2, shelf_item_count);
|
| + ASSERT_EQ(base_shelf_item_count + 3, shelf_item_count);
|
| // The Panel will be the last item, the app second-to-last.
|
| - const ash::ShelfItem& app_item =
|
| + const ash::ShelfItem& app_item = shelf_model()->items()[shelf_item_count - 3];
|
| + const ash::ShelfItem& app_custom_icon_item =
|
| shelf_model()->items()[shelf_item_count - 2];
|
| const ash::ShelfItem& panel_item =
|
| shelf_model()->items()[shelf_item_count - 1];
|
| +
|
| // Icons for Apps are set by the AppWindowLauncherController, so
|
| // image_set_by_controller() should be set.
|
| const ash::ShelfItemDelegate* app_item_delegate =
|
| GetShelfItemDelegate(app_item.id);
|
| - EXPECT_TRUE(app_item_delegate->image_set_by_controller());
|
| + ASSERT_TRUE(app_item_delegate);
|
| + EXPECT_FALSE(app_item_delegate->image_set_by_controller());
|
| +
|
| + const ash::ShelfItemDelegate* app_custom_icon_item_delegate =
|
| + GetShelfItemDelegate(app_custom_icon_item.id);
|
| + ASSERT_TRUE(app_custom_icon_item_delegate);
|
| + EXPECT_TRUE(app_custom_icon_item_delegate->image_set_by_controller());
|
| +
|
| // Panels are handled by ShelfWindowWatcher, not ChromeLauncherController.
|
| EXPECT_EQ(nullptr, GetShelfItemDelegate(panel_item.id));
|
| // Ensure icon heights are correct (see test.js in app_icon/ test directory)
|
| - EXPECT_EQ(ash::GetShelfConstant(ash::SHELF_SIZE), app_item.image.height());
|
| + EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALL, app_item.image.height());
|
| + EXPECT_EQ(extension_misc::EXTENSION_ICON_LARGE,
|
| + app_custom_icon_item.image.height());
|
| EXPECT_EQ(64, panel_item.image.height());
|
| }
|
|
|
|
|