| Index: extensions/browser/app_window/app_window_browsertest.cc
|
| diff --git a/extensions/browser/app_window/app_window_browsertest.cc b/extensions/browser/app_window/app_window_browsertest.cc
|
| index 396c882e3d1d6630c8e3110337e562bc7649a91b..71f74542a4862100998f268ef3c06e1852d5ed97 100644
|
| --- a/extensions/browser/app_window/app_window_browsertest.cc
|
| +++ b/extensions/browser/app_window/app_window_browsertest.cc
|
| @@ -5,6 +5,12 @@
|
| #include "build/build_config.h"
|
| #include "chrome/browser/apps/app_browsertest_util.h"
|
| #include "extensions/browser/app_window/native_app_window.h"
|
| +#include "extensions/browser/test_image_loader.h"
|
| +#include "extensions/grit/extensions_browser_resources.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/gfx/image/image_skia_operations.h"
|
| +#include "ui/gfx/image/image_skia_source.h"
|
| +#include "ui/gfx/skia_util.h"
|
|
|
| namespace extensions {
|
|
|
| @@ -66,6 +72,70 @@ IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest, FrameInsetsForNoFrame) {
|
| CloseAppWindow(app_window);
|
| }
|
|
|
| +// Verifies that a window created with showInShelf set to true is properly
|
| +// enabled in AppWindow.
|
| +IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest,
|
| + ShowInShelfWindowWithWindowKeySet) {
|
| + AppWindow* app_window =
|
| + CreateTestAppWindow("{ \"id\": \"appwindow\", \"showInShelf\": true }");
|
| +
|
| + ASSERT_TRUE(app_window);
|
| +
|
| + // showInShelf must be true.
|
| + EXPECT_EQ(true, app_window->show_in_shelf());
|
| +
|
| + CloseAppWindow(app_window);
|
| +}
|
| +
|
| +// Verifies that a window created with showInShelf=true and an icon URL has
|
| +// the icon properly set in AppWindow.
|
| +IN_PROC_BROWSER_TEST_F(AppWindowBrowserTest, ShowInShelfWindowIcon) {
|
| + AppWindow* app_window = CreateTestAppWindow(
|
| + "{ \"id\": \"appwindow\", \"showInShelf\": true, "
|
| + "\"icon\":\"icon_128.png\" }");
|
| +
|
| + ASSERT_TRUE(app_window);
|
| +
|
| + // showInShelf must be true.
|
| + EXPECT_EQ(true, app_window->show_in_shelf());
|
| +
|
| + // Check for local window icon URL.
|
| + EXPECT_EQ(
|
| + "chrome-extension://" + app_window->extension_id() + "/icon_128.png",
|
| + app_window->window_icon_url().spec());
|
| +
|
| + // Get the window base image that is set using the icon URL property.
|
| + SkBitmap window_icon_bitmap = TestImageLoader::LoadAndGetExtensionBitmap(
|
| + app_window->GetExtension(), "icon_128.png", 128);
|
| + // Create the window icon using the window base image and the extension app
|
| + // icon badge.
|
| + gfx::Image window_icon_with_badge =
|
| + gfx::Image(gfx::ImageSkiaOperations::CreateIconWithBadge(
|
| + gfx::Image::CreateFrom1xBitmap(window_icon_bitmap).AsImageSkia(),
|
| + GetAppIconImage(app_window)));
|
| +
|
| + // Check app icon and window icon not empty.
|
| + EXPECT_EQ(false, app_window->app_icon().IsEmpty());
|
| + EXPECT_EQ(false, window_icon_bitmap.empty());
|
| + EXPECT_EQ(false, window_icon_with_badge.IsEmpty());
|
| +
|
| + // Check icons width.
|
| + EXPECT_EQ(128, app_window->app_icon().Width());
|
| + EXPECT_EQ(128, window_icon_bitmap.width());
|
| + EXPECT_EQ(128, window_icon_with_badge.Width());
|
| +
|
| + // Check icons height.
|
| + EXPECT_EQ(128, app_window->app_icon().Height());
|
| + EXPECT_EQ(128, window_icon_bitmap.height());
|
| + EXPECT_EQ(128, window_icon_with_badge.Height());
|
| +
|
| + // Check window icon is set properly.
|
| + EXPECT_EQ(true, gfx::BitmapsAreEqual(app_window->app_icon().AsBitmap(),
|
| + window_icon_with_badge.AsBitmap()));
|
| +
|
| + CloseAppWindow(app_window);
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace extensions
|
|
|