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

Unified Diff: chrome/common/extensions/extension_action_unittest.cc

Issue 10905005: Change browser/page action default icon defined in manifest to support hidpi. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 3 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/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 c36492a26d0e656e23cbedd63ea431746c829f08..7b8fbebfce457d8a1f465119c3fb8ca5c7a6d035 100644
--- a/chrome/common/extensions/extension_action_unittest.cc
+++ b/chrome/common/extensions/extension_action_unittest.cc
@@ -8,8 +8,10 @@
#include "base/path_service.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/extension_action.h"
+#include "chrome/common/extensions/extension_icon_factory_delegate.h"
#include "googleurl/src/gurl.h"
#include "grit/theme_resources.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/resource/resource_bundle.h"
@@ -17,6 +19,8 @@
#include "ui/gfx/skia_util.h"
#include "webkit/glue/image_decoder.h"
+using ::testing::Return;
+
namespace {
bool ImagesAreEqual(const gfx::Image& i1, const gfx::Image& i2) {
@@ -49,6 +53,14 @@ class ExtensionActionTest : public testing::Test {
ExtensionAction action;
};
+class MockActionIconFactory : public ExtensionIconFactoryDelegate {
+ public:
+ virtual ~MockActionIconFactory() {}
+
+ MOCK_METHOD2(GetIcon, gfx::ImageSkia(const ExtensionIconSet* icon_set,
+ int desired_size));
+};
+
TEST_F(ExtensionActionTest, Title) {
ASSERT_EQ("", action.GetTitle(1));
action.SetTitle(ExtensionAction::kDefaultTabId, "foo");
@@ -69,21 +81,26 @@ TEST_F(ExtensionActionTest, Icon) {
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)));
+ scoped_ptr<ExtensionIconSet> default_icon_set(new ExtensionIconSet());
+ MockActionIconFactory icon_factory_mock;
+
+ EXPECT_CALL(icon_factory_mock, GetIcon(default_icon_set.get(), 19))
+ .WillOnce(Return(*icon2.ToImageSkia()));
+
+ ASSERT_TRUE(ImagesAreEqual(puzzle_piece,
+ action.GetIcon(1, &icon_factory_mock)));
+
+ action.set_default_icon(default_icon_set.Pass());
+ ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(1, &icon_factory_mock)));
action.SetIcon(ExtensionAction::kDefaultTabId, icon1);
- ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100)))
+ ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100, &icon_factory_mock)))
<< "SetIcon(kDefaultTabId) overrides the default_icon_path.";
action.SetIcon(100, icon2);
- ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(1)));
- ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(100)));
+ ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(1, &icon_factory_mock)));
+ ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(100, &icon_factory_mock)));
}
TEST_F(ExtensionActionTest, IconIndex) {
@@ -94,15 +111,25 @@ TEST_F(ExtensionActionTest, IconIndex) {
IDR_EXTENSIONS_FAVICON);
ASSERT_EQ(-1, action.GetIconIndex(1));
- action.icon_paths()->push_back("foo.png");
- action.icon_paths()->push_back("bar.png");
+
+ scoped_ptr<ExtensionIconSet> icon1_set(new ExtensionIconSet());
+ action.AddPageActionIcon(icon1_set.Pass());
+
+ scoped_ptr<ExtensionIconSet> icon2_set(new ExtensionIconSet());
+ // Remember the icon set pointer since we will need it later, and |action|
+ // will take |icon2_set|.
+ const ExtensionIconSet* icon2_set_ptr = icon2_set.get();
+ action.AddPageActionIcon(icon2_set.Pass());
+
+ MockActionIconFactory icon_factory_mock;
+
+ EXPECT_CALL(icon_factory_mock, GetIcon(icon2_set_ptr, 19))
+ .WillOnce(Return(*icon2.ToImageSkia()));
+
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)));
+ ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(100, &icon_factory_mock)));
action.SetIconIndex(100, 0);
ASSERT_EQ(0, action.GetIconIndex(100));

Powered by Google App Engine
This is Rietveld 408576698