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..976167cd8231ad16a2d226b5c1a4a17568b904a0 100644 |
--- a/chrome/common/extensions/extension_action_unittest.cc |
+++ b/chrome/common/extensions/extension_action_unittest.cc |
@@ -8,14 +8,19 @@ |
#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; |
+static bool ImagesAreEqual(const gfx::Image& i1, const gfx::Image& i2) { |
not at google - send to devlin
2012/07/26 02:29:44
ditto anonymous namespace, and next function.
In
Jeffrey Yasskin
2012/07/26 21:11:47
Done.
|
+ return gfx::BitmapsAreEqual(*i1.ToSkBitmap(), *i2.ToSkBitmap()); |
+} |
-static SkBitmap LoadIcon(const std::string& filename) { |
+static gfx::Image LoadIcon(const std::string& filename) { |
FilePath path; |
PathService::Get(chrome::DIR_TEST_DATA, &path); |
path = path.AppendASCII("extensions").AppendASCII(filename); |
@@ -29,13 +34,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) { |
+ } |
+ |
+ ExtensionAction action; |
Jeffrey Yasskin
2012/07/25 19:45:26
Breaks the naming rule in order to keep the diff s
|
+}; |
- // title |
+TEST_F(ExtensionActionTest, Title) { |
ASSERT_EQ("", action.GetTitle(1)); |
action.SetTitle(ExtensionAction::kDefaultTabId, "foo"); |
ASSERT_EQ("foo", action.GetTitle(1)); |
@@ -47,32 +58,61 @@ TEST(ExtensionActionTest, TabSpecificState) { |
ASSERT_EQ("baz", action.GetTitle(1)); |
action.ClearAllValuesForTab(100); |
ASSERT_EQ("baz", action.GetTitle(100)); |
+} |
+ |
+TEST_F(ExtensionActionTest, Icon) { |
+ ExtensionAction::PathToIconCache cache; |
+ |
+ 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, cache))); |
+ |
+ action.set_default_icon_path("the_default.png"); |
+ ASSERT_TRUE(ImagesAreEqual(puzzle_piece, action.GetIcon(1, cache))) |
+ << "Still returns the puzzle piece because the image isn't loaded yet."; |
+ cache["the_default.png"] = icon2; |
+ ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(1, cache))); |
+ |
+ action.SetIcon(ExtensionAction::kDefaultTabId, *icon1.ToSkBitmap()); |
+ ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100, cache))) |
+ << "SetIcon(kDefaultTabId) overrides the default_icon_path."; |
+ |
+ action.SetIcon(100, *icon2.ToSkBitmap()); |
+ ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(1, cache))); |
+ ASSERT_TRUE(ImagesAreEqual(icon2, action.GetIcon(100, cache))); |
+} |
+ |
+TEST_F(ExtensionActionTest, IconIndex) { |
+ ExtensionAction::PathToIconCache cache; |
+ 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, cache))) |
+ << "Non-loaded icon gets the puzzle piece."; |
+ cache["bar.png"] = icon1; |
+ ASSERT_TRUE(ImagesAreEqual(icon1, action.GetIcon(100, cache))); |
+ |
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 +126,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 +140,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 +154,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 +170,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"); |