| Index: chrome/common/extensions/extension_action_unittest.cc
|
| diff --git a/chrome/common/extensions/extension_action_unittest.cc b/chrome/common/extensions/extension_action_unittest.cc
|
| index 23696f0f1c33fced8b68586fc80d463de09edea5..ad4db52a622320cb60a1e5c9127052b3035ca141 100644
|
| --- a/chrome/common/extensions/extension_action_unittest.cc
|
| +++ b/chrome/common/extensions/extension_action_unittest.cc
|
| @@ -8,14 +8,21 @@
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/extensions/extension_action.h"
|
| #include "googleurl/src/gurl.h"
|
| +#include "grit/theme_resources.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/gfx/image/image.h"
|
| #include "ui/gfx/skia_util.h"
|
| #include "webkit/glue/image_decoder.h"
|
|
|
| -using gfx::BitmapsAreEqual;
|
| +namespace {
|
|
|
| -static SkBitmap LoadIcon(const std::string& filename) {
|
| +bool ImagesAreEqual(const gfx::Image& i1, const gfx::Image& i2) {
|
| + return gfx::BitmapsAreEqual(*i1.ToSkBitmap(), *i2.ToSkBitmap());
|
| +}
|
| +
|
| +gfx::Image LoadIcon(const std::string& filename) {
|
| FilePath path;
|
| PathService::Get(chrome::DIR_TEST_DATA, &path);
|
| path = path.AppendASCII("extensions").AppendASCII(filename);
|
| @@ -29,13 +36,19 @@ static SkBitmap LoadIcon(const std::string& filename) {
|
| webkit_glue::ImageDecoder decoder;
|
| bitmap = decoder.Decode(data, file_contents.length());
|
|
|
| - return bitmap;
|
| + return gfx::Image(bitmap);
|
| }
|
|
|
| -TEST(ExtensionActionTest, TabSpecificState) {
|
| - ExtensionAction action("", ExtensionAction::TYPE_PAGE);
|
| +class ExtensionActionTest : public testing::Test {
|
| + public:
|
| + ExtensionActionTest()
|
| + : action("", ExtensionAction::TYPE_PAGE) {
|
| + }
|
|
|
| - // title
|
| + ExtensionAction action;
|
| +};
|
| +
|
| +TEST_F(ExtensionActionTest, Title) {
|
| ASSERT_EQ("", action.GetTitle(1));
|
| action.SetTitle(ExtensionAction::kDefaultTabId, "foo");
|
| ASSERT_EQ("foo", action.GetTitle(1));
|
| @@ -47,32 +60,58 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| ASSERT_EQ("baz", action.GetTitle(1));
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_EQ("baz", action.GetTitle(100));
|
| +}
|
| +
|
| +TEST_F(ExtensionActionTest, Icon) {
|
| + gfx::Image puzzle_piece =
|
| + ui::ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + IDR_EXTENSIONS_FAVICON);
|
| + gfx::Image icon1 = LoadIcon("icon1.png");
|
| + gfx::Image icon2 = LoadIcon("icon2.png");
|
| + ASSERT_TRUE(ImagesAreEqual(puzzle_piece, action.GetIcon(1)));
|
| +
|
| + action.set_default_icon_path("the_default.png");
|
| + ASSERT_TRUE(ImagesAreEqual(puzzle_piece, action.GetIcon(1)))
|
| + << "Still returns the puzzle piece because the image isn't loaded yet.";
|
| + action.CacheIcon("the_default.png", icon2);
|
| + ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(1)));
|
| +
|
| + action.SetIcon(ExtensionAction::kDefaultTabId, *icon1.ToSkBitmap());
|
| + ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100)))
|
| + << "SetIcon(kDefaultTabId) overrides the default_icon_path.";
|
| +
|
| + action.SetIcon(100, *icon2.ToSkBitmap());
|
| + ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(1)));
|
| + ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(100)));
|
| +}
|
| +
|
| +TEST_F(ExtensionActionTest, IconIndex) {
|
| + gfx::Image icon1 = LoadIcon("icon1.png");
|
| + gfx::Image icon2 = LoadIcon("icon2.png");
|
| + gfx::Image puzzle_piece =
|
| + ui::ResourceBundle::GetSharedInstance().GetImageNamed(
|
| + IDR_EXTENSIONS_FAVICON);
|
|
|
| - // icon
|
| - SkBitmap icon1 = LoadIcon("icon1.png");
|
| - SkBitmap icon2 = LoadIcon("icon2.png");
|
| - ASSERT_TRUE(action.GetIcon(1).isNull());
|
| - action.SetIcon(ExtensionAction::kDefaultTabId, icon1);
|
| - ASSERT_TRUE(BitmapsAreEqual(icon1, action.GetIcon(100)));
|
| - action.SetIcon(100, icon2);
|
| - ASSERT_TRUE(BitmapsAreEqual(icon1, action.GetIcon(1)));
|
| - ASSERT_TRUE(BitmapsAreEqual(icon2, action.GetIcon(100)));
|
| -
|
| - // icon index
|
| ASSERT_EQ(-1, action.GetIconIndex(1));
|
| action.icon_paths()->push_back("foo.png");
|
| action.icon_paths()->push_back("bar.png");
|
| action.SetIconIndex(ExtensionAction::kDefaultTabId, 1);
|
| ASSERT_EQ(1, action.GetIconIndex(1));
|
| ASSERT_EQ(1, action.GetIconIndex(100));
|
| + ASSERT_TRUE(ImagesAreEqual(puzzle_piece, action.GetIcon(100)))
|
| + << "Non-loaded icon gets the puzzle piece.";
|
| + action.CacheIcon("bar.png", icon1);
|
| + ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100)));
|
| +
|
| action.SetIconIndex(100, 0);
|
| ASSERT_EQ(0, action.GetIconIndex(100));
|
| ASSERT_EQ(1, action.GetIconIndex(1));
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_EQ(1, action.GetIconIndex(100));
|
| ASSERT_EQ(1, action.GetIconIndex(1));
|
| +}
|
|
|
| - // visibility
|
| +TEST_F(ExtensionActionTest, Visibility) {
|
| ASSERT_FALSE(action.GetIsVisible(1));
|
| action.SetIsVisible(ExtensionAction::kDefaultTabId, true);
|
| ASSERT_TRUE(action.GetIsVisible(1));
|
| @@ -86,8 +125,9 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_FALSE(action.GetIsVisible(1));
|
| ASSERT_FALSE(action.GetIsVisible(100));
|
| +}
|
|
|
| - // badge text
|
| +TEST_F(ExtensionActionTest, Badge) {
|
| ASSERT_EQ("", action.GetBadgeText(1));
|
| action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo");
|
| ASSERT_EQ("foo", action.GetBadgeText(1));
|
| @@ -99,8 +139,9 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| ASSERT_EQ("baz", action.GetBadgeText(1));
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_EQ("baz", action.GetBadgeText(100));
|
| +}
|
|
|
| - // badge text color
|
| +TEST_F(ExtensionActionTest, BadgeTextColor) {
|
| ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1));
|
| action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u);
|
| ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1));
|
| @@ -112,8 +153,9 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1));
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100));
|
| +}
|
|
|
| - // badge background color
|
| +TEST_F(ExtensionActionTest, BadgeBackgroundColor) {
|
| ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1));
|
| action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId,
|
| 0xFFFF0000u);
|
| @@ -127,8 +169,9 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1));
|
| action.ClearAllValuesForTab(100);
|
| ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100));
|
| +}
|
|
|
| - // popup url
|
| +TEST_F(ExtensionActionTest, PopupUrl) {
|
| GURL url_unset;
|
| GURL url_foo("http://www.example.com/foo.html");
|
| GURL url_bar("http://www.example.com/bar.html");
|
| @@ -155,3 +198,5 @@ TEST(ExtensionActionTest, TabSpecificState) {
|
| ASSERT_EQ(url_baz, action.GetPopupUrl(1));
|
| ASSERT_EQ(url_baz, action.GetPopupUrl(100));
|
| }
|
| +
|
| +} // namespace
|
|
|