| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 #include "chrome/browser/extensions/extension_action.h" | 6 #include "chrome/browser/extensions/extension_action.h" |
| 7 #include "chrome/common/extensions/api/extension_action/action_info.h" | 7 #include "chrome/common/extensions/api/extension_action/action_info.h" |
| 8 #include "extensions/common/test_util.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "url/gurl.h" | 10 #include "url/gurl.h" |
| 10 | 11 |
| 12 namespace extensions { |
| 13 |
| 11 namespace { | 14 namespace { |
| 12 | 15 |
| 13 using extensions::ActionInfo; | 16 scoped_ptr<ExtensionAction> CreateAction(ActionInfo::Type type, |
| 17 const ActionInfo& action_info) { |
| 18 scoped_refptr<const Extension> extension = test_util::CreateEmptyExtension(); |
| 19 return make_scoped_ptr(new ExtensionAction(*extension, type, action_info)); |
| 20 } |
| 21 |
| 22 } // namespace |
| 14 | 23 |
| 15 TEST(ExtensionActionTest, Title) { | 24 TEST(ExtensionActionTest, Title) { |
| 16 ActionInfo action_info; | 25 ActionInfo action_info; |
| 17 action_info.default_title = "Initial Title"; | 26 action_info.default_title = "Initial Title"; |
| 18 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info); | 27 scoped_ptr<ExtensionAction> action = |
| 28 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
| 19 | 29 |
| 20 ASSERT_EQ("Initial Title", action.GetTitle(1)); | 30 ASSERT_EQ("Initial Title", action->GetTitle(1)); |
| 21 action.SetTitle(ExtensionAction::kDefaultTabId, "foo"); | 31 action->SetTitle(ExtensionAction::kDefaultTabId, "foo"); |
| 22 ASSERT_EQ("foo", action.GetTitle(1)); | 32 ASSERT_EQ("foo", action->GetTitle(1)); |
| 23 ASSERT_EQ("foo", action.GetTitle(100)); | 33 ASSERT_EQ("foo", action->GetTitle(100)); |
| 24 action.SetTitle(100, "bar"); | 34 action->SetTitle(100, "bar"); |
| 25 ASSERT_EQ("foo", action.GetTitle(1)); | 35 ASSERT_EQ("foo", action->GetTitle(1)); |
| 26 ASSERT_EQ("bar", action.GetTitle(100)); | 36 ASSERT_EQ("bar", action->GetTitle(100)); |
| 27 action.SetTitle(ExtensionAction::kDefaultTabId, "baz"); | 37 action->SetTitle(ExtensionAction::kDefaultTabId, "baz"); |
| 28 ASSERT_EQ("baz", action.GetTitle(1)); | 38 ASSERT_EQ("baz", action->GetTitle(1)); |
| 29 action.ClearAllValuesForTab(100); | 39 action->ClearAllValuesForTab(100); |
| 30 ASSERT_EQ("baz", action.GetTitle(100)); | 40 ASSERT_EQ("baz", action->GetTitle(100)); |
| 31 } | 41 } |
| 32 | 42 |
| 33 TEST(ExtensionActionTest, Visibility) { | 43 TEST(ExtensionActionTest, Visibility) { |
| 34 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 44 scoped_ptr<ExtensionAction> action = |
| 45 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
| 35 | 46 |
| 36 ASSERT_FALSE(action.GetIsVisible(1)); | 47 ASSERT_FALSE(action->GetIsVisible(1)); |
| 37 action.SetIsVisible(ExtensionAction::kDefaultTabId, true); | 48 action->SetIsVisible(ExtensionAction::kDefaultTabId, true); |
| 38 ASSERT_TRUE(action.GetIsVisible(1)); | 49 ASSERT_TRUE(action->GetIsVisible(1)); |
| 39 ASSERT_TRUE(action.GetIsVisible(100)); | 50 ASSERT_TRUE(action->GetIsVisible(100)); |
| 40 | 51 |
| 41 action.SetIsVisible(ExtensionAction::kDefaultTabId, false); | 52 action->SetIsVisible(ExtensionAction::kDefaultTabId, false); |
| 42 ASSERT_FALSE(action.GetIsVisible(1)); | 53 ASSERT_FALSE(action->GetIsVisible(1)); |
| 43 ASSERT_FALSE(action.GetIsVisible(100)); | 54 ASSERT_FALSE(action->GetIsVisible(100)); |
| 44 action.SetIsVisible(100, true); | 55 action->SetIsVisible(100, true); |
| 45 ASSERT_FALSE(action.GetIsVisible(1)); | 56 ASSERT_FALSE(action->GetIsVisible(1)); |
| 46 ASSERT_TRUE(action.GetIsVisible(100)); | 57 ASSERT_TRUE(action->GetIsVisible(100)); |
| 47 | 58 |
| 48 action.ClearAllValuesForTab(100); | 59 action->ClearAllValuesForTab(100); |
| 49 ASSERT_FALSE(action.GetIsVisible(1)); | 60 ASSERT_FALSE(action->GetIsVisible(1)); |
| 50 ASSERT_FALSE(action.GetIsVisible(100)); | 61 ASSERT_FALSE(action->GetIsVisible(100)); |
| 51 | 62 |
| 52 ExtensionAction browser_action( | 63 scoped_ptr<ExtensionAction> browser_action = |
| 53 std::string(), ActionInfo::TYPE_BROWSER, ActionInfo()); | 64 CreateAction(ActionInfo::TYPE_BROWSER, ActionInfo()); |
| 54 ASSERT_TRUE(browser_action.GetIsVisible(1)); | 65 ASSERT_TRUE(browser_action->GetIsVisible(1)); |
| 55 } | 66 } |
| 56 | 67 |
| 57 TEST(ExtensionActionTest, Icon) { | 68 TEST(ExtensionActionTest, Icon) { |
| 58 ActionInfo action_info; | 69 ActionInfo action_info; |
| 59 action_info.default_icon.Add(16, "icon16.png"); | 70 action_info.default_icon.Add(16, "icon16.png"); |
| 60 ExtensionAction page_action( | 71 scoped_ptr<ExtensionAction> page_action = |
| 61 std::string(), ActionInfo::TYPE_PAGE, action_info); | 72 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
| 62 ASSERT_TRUE(page_action.default_icon()); | 73 ASSERT_TRUE(page_action->default_icon()); |
| 63 EXPECT_EQ("icon16.png", | 74 EXPECT_EQ("icon16.png", |
| 64 page_action.default_icon()->Get( | 75 page_action->default_icon()->Get( |
| 65 16, ExtensionIconSet::MATCH_EXACTLY)); | 76 16, ExtensionIconSet::MATCH_EXACTLY)); |
| 66 EXPECT_EQ("", | 77 EXPECT_EQ("", |
| 67 page_action.default_icon()->Get( | 78 page_action->default_icon()->Get( |
| 68 17, ExtensionIconSet::MATCH_BIGGER)); | 79 17, ExtensionIconSet::MATCH_BIGGER)); |
| 69 } | 80 } |
| 70 | 81 |
| 71 TEST(ExtensionActionTest, Badge) { | 82 TEST(ExtensionActionTest, Badge) { |
| 72 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 83 scoped_ptr<ExtensionAction> action = |
| 73 ASSERT_EQ("", action.GetBadgeText(1)); | 84 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
| 74 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); | 85 ASSERT_EQ("", action->GetBadgeText(1)); |
| 75 ASSERT_EQ("foo", action.GetBadgeText(1)); | 86 action->SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); |
| 76 ASSERT_EQ("foo", action.GetBadgeText(100)); | 87 ASSERT_EQ("foo", action->GetBadgeText(1)); |
| 77 action.SetBadgeText(100, "bar"); | 88 ASSERT_EQ("foo", action->GetBadgeText(100)); |
| 78 ASSERT_EQ("foo", action.GetBadgeText(1)); | 89 action->SetBadgeText(100, "bar"); |
| 79 ASSERT_EQ("bar", action.GetBadgeText(100)); | 90 ASSERT_EQ("foo", action->GetBadgeText(1)); |
| 80 action.SetBadgeText(ExtensionAction::kDefaultTabId, "baz"); | 91 ASSERT_EQ("bar", action->GetBadgeText(100)); |
| 81 ASSERT_EQ("baz", action.GetBadgeText(1)); | 92 action->SetBadgeText(ExtensionAction::kDefaultTabId, "baz"); |
| 82 action.ClearAllValuesForTab(100); | 93 ASSERT_EQ("baz", action->GetBadgeText(1)); |
| 83 ASSERT_EQ("baz", action.GetBadgeText(100)); | 94 action->ClearAllValuesForTab(100); |
| 95 ASSERT_EQ("baz", action->GetBadgeText(100)); |
| 84 } | 96 } |
| 85 | 97 |
| 86 TEST(ExtensionActionTest, BadgeTextColor) { | 98 TEST(ExtensionActionTest, BadgeTextColor) { |
| 87 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 99 scoped_ptr<ExtensionAction> action = |
| 88 ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1)); | 100 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
| 89 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u); | 101 ASSERT_EQ(0x00000000u, action->GetBadgeTextColor(1)); |
| 90 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); | 102 action->SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u); |
| 91 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(100)); | 103 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(1)); |
| 92 action.SetBadgeTextColor(100, 0xFF00FF00); | 104 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(100)); |
| 93 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); | 105 action->SetBadgeTextColor(100, 0xFF00FF00); |
| 94 ASSERT_EQ(0xFF00FF00u, action.GetBadgeTextColor(100)); | 106 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(1)); |
| 95 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu); | 107 ASSERT_EQ(0xFF00FF00u, action->GetBadgeTextColor(100)); |
| 96 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1)); | 108 action->SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu); |
| 97 action.ClearAllValuesForTab(100); | 109 ASSERT_EQ(0xFF0000FFu, action->GetBadgeTextColor(1)); |
| 98 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100)); | 110 action->ClearAllValuesForTab(100); |
| 111 ASSERT_EQ(0xFF0000FFu, action->GetBadgeTextColor(100)); |
| 99 } | 112 } |
| 100 | 113 |
| 101 TEST(ExtensionActionTest, BadgeBackgroundColor) { | 114 TEST(ExtensionActionTest, BadgeBackgroundColor) { |
| 102 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 115 scoped_ptr<ExtensionAction> action = |
| 103 ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1)); | 116 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
| 104 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, | 117 ASSERT_EQ(0x00000000u, action->GetBadgeBackgroundColor(1)); |
| 118 action->SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, |
| 105 0xFFFF0000u); | 119 0xFFFF0000u); |
| 106 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); | 120 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(1)); |
| 107 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(100)); | 121 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(100)); |
| 108 action.SetBadgeBackgroundColor(100, 0xFF00FF00); | 122 action->SetBadgeBackgroundColor(100, 0xFF00FF00); |
| 109 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); | 123 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(1)); |
| 110 ASSERT_EQ(0xFF00FF00u, action.GetBadgeBackgroundColor(100)); | 124 ASSERT_EQ(0xFF00FF00u, action->GetBadgeBackgroundColor(100)); |
| 111 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, | 125 action->SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, |
| 112 0xFF0000FFu); | 126 0xFF0000FFu); |
| 113 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1)); | 127 ASSERT_EQ(0xFF0000FFu, action->GetBadgeBackgroundColor(1)); |
| 114 action.ClearAllValuesForTab(100); | 128 action->ClearAllValuesForTab(100); |
| 115 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100)); | 129 ASSERT_EQ(0xFF0000FFu, action->GetBadgeBackgroundColor(100)); |
| 116 } | 130 } |
| 117 | 131 |
| 118 TEST(ExtensionActionTest, PopupUrl) { | 132 TEST(ExtensionActionTest, PopupUrl) { |
| 119 GURL url_unset; | 133 GURL url_unset; |
| 120 GURL url_foo("http://www.example.com/foo.html"); | 134 GURL url_foo("http://www.example.com/foo.html"); |
| 121 GURL url_bar("http://www.example.com/bar.html"); | 135 GURL url_bar("http://www.example.com/bar.html"); |
| 122 GURL url_baz("http://www.example.com/baz.html"); | 136 GURL url_baz("http://www.example.com/baz.html"); |
| 123 | 137 |
| 124 ActionInfo action_info; | 138 ActionInfo action_info; |
| 125 action_info.default_popup_url = url_foo; | 139 action_info.default_popup_url = url_foo; |
| 126 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info); | 140 scoped_ptr<ExtensionAction> action = |
| 141 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
| 127 | 142 |
| 128 ASSERT_EQ(url_foo, action.GetPopupUrl(1)); | 143 ASSERT_EQ(url_foo, action->GetPopupUrl(1)); |
| 129 ASSERT_EQ(url_foo, action.GetPopupUrl(100)); | 144 ASSERT_EQ(url_foo, action->GetPopupUrl(100)); |
| 130 ASSERT_TRUE(action.HasPopup(1)); | 145 ASSERT_TRUE(action->HasPopup(1)); |
| 131 ASSERT_TRUE(action.HasPopup(100)); | 146 ASSERT_TRUE(action->HasPopup(100)); |
| 132 | 147 |
| 133 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset); | 148 action->SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset); |
| 134 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); | 149 ASSERT_EQ(url_unset, action->GetPopupUrl(1)); |
| 135 ASSERT_EQ(url_unset, action.GetPopupUrl(100)); | 150 ASSERT_EQ(url_unset, action->GetPopupUrl(100)); |
| 136 ASSERT_FALSE(action.HasPopup(1)); | 151 ASSERT_FALSE(action->HasPopup(1)); |
| 137 ASSERT_FALSE(action.HasPopup(100)); | 152 ASSERT_FALSE(action->HasPopup(100)); |
| 138 | 153 |
| 139 action.SetPopupUrl(100, url_bar); | 154 action->SetPopupUrl(100, url_bar); |
| 140 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); | 155 ASSERT_EQ(url_unset, action->GetPopupUrl(1)); |
| 141 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 156 ASSERT_EQ(url_bar, action->GetPopupUrl(100)); |
| 142 | 157 |
| 143 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); | 158 action->SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); |
| 144 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 159 ASSERT_EQ(url_baz, action->GetPopupUrl(1)); |
| 145 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 160 ASSERT_EQ(url_bar, action->GetPopupUrl(100)); |
| 146 | 161 |
| 147 action.ClearAllValuesForTab(100); | 162 action->ClearAllValuesForTab(100); |
| 148 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 163 ASSERT_EQ(url_baz, action->GetPopupUrl(1)); |
| 149 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); | 164 ASSERT_EQ(url_baz, action->GetPopupUrl(100)); |
| 150 } | 165 } |
| 151 | 166 |
| 152 } // namespace | 167 } // namespace extensions |
| OLD | NEW |