blob: 53bc3631b416817540956504edc515cfddacbdcd [file] [log] [blame]
[email protected]3349b592012-04-26 12:35:281// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]4a3dab22009-11-11 17:36:502// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]b19fe572013-07-18 04:54:265#include "base/message_loop/message_loop.h"
[email protected]8ddcc922012-10-13 05:13:036#include "chrome/browser/extensions/extension_action.h"
[email protected]23b3c0a2013-01-16 23:36:367#include "chrome/common/extensions/api/extension_action/action_info.h"
[email protected]92c6f9b92009-10-24 04:35:088#include "testing/gtest/include/gtest/gtest.h"
[email protected]a6483d22013-07-03 22:11:009#include "url/gurl.h"
[email protected]92c6f9b92009-10-24 04:35:0810
[email protected]39eae2b72012-08-01 07:22:3211namespace {
[email protected]18539ee2010-09-16 21:39:2912
[email protected]23b3c0a2013-01-16 23:36:3613using extensions::ActionInfo;
[email protected]92c6f9b92009-10-24 04:35:0814
[email protected]0f34d9082012-10-08 19:16:4415TEST(ExtensionActionTest, Title) {
[email protected]23b3c0a2013-01-16 23:36:3616 ActionInfo action_info;
[email protected]0f34d9082012-10-08 19:16:4417 action_info.default_title = "Initial Title";
[email protected]007b3f82013-04-09 08:46:4518 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info);
[email protected]39eae2b72012-08-01 07:22:3219
[email protected]0f34d9082012-10-08 19:16:4420 ASSERT_EQ("Initial Title", action.GetTitle(1));
[email protected]5d246db22009-10-27 06:17:5721 action.SetTitle(ExtensionAction::kDefaultTabId, "foo");
[email protected]92c6f9b92009-10-24 04:35:0822 ASSERT_EQ("foo", action.GetTitle(1));
23 ASSERT_EQ("foo", action.GetTitle(100));
24 action.SetTitle(100, "bar");
25 ASSERT_EQ("foo", action.GetTitle(1));
26 ASSERT_EQ("bar", action.GetTitle(100));
[email protected]5d246db22009-10-27 06:17:5727 action.SetTitle(ExtensionAction::kDefaultTabId, "baz");
[email protected]92c6f9b92009-10-24 04:35:0828 ASSERT_EQ("baz", action.GetTitle(1));
29 action.ClearAllValuesForTab(100);
30 ASSERT_EQ("baz", action.GetTitle(100));
[email protected]39eae2b72012-08-01 07:22:3231}
[email protected]92c6f9b92009-10-24 04:35:0832
[email protected]0f34d9082012-10-08 19:16:4433TEST(ExtensionActionTest, Visibility) {
[email protected]007b3f82013-04-09 08:46:4534 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo());
[email protected]0f34d9082012-10-08 19:16:4435
[email protected]e3a8a922010-10-02 02:04:3036 ASSERT_FALSE(action.GetIsVisible(1));
[email protected]82bf7782014-02-05 09:41:3137 action.SetIsVisible(ExtensionAction::kDefaultTabId, true);
[email protected]e3a8a922010-10-02 02:04:3038 ASSERT_TRUE(action.GetIsVisible(1));
39 ASSERT_TRUE(action.GetIsVisible(100));
[email protected]48a7a425b2012-08-03 12:52:5840
[email protected]82bf7782014-02-05 09:41:3141 action.SetIsVisible(ExtensionAction::kDefaultTabId, false);
[email protected]e3a8a922010-10-02 02:04:3042 ASSERT_FALSE(action.GetIsVisible(1));
43 ASSERT_FALSE(action.GetIsVisible(100));
[email protected]82bf7782014-02-05 09:41:3144 action.SetIsVisible(100, true);
[email protected]e3a8a922010-10-02 02:04:3045 ASSERT_FALSE(action.GetIsVisible(1));
46 ASSERT_TRUE(action.GetIsVisible(100));
[email protected]48a7a425b2012-08-03 12:52:5847
[email protected]56ce6e52009-10-27 00:10:5248 action.ClearAllValuesForTab(100);
[email protected]e3a8a922010-10-02 02:04:3049 ASSERT_FALSE(action.GetIsVisible(1));
50 ASSERT_FALSE(action.GetIsVisible(100));
[email protected]0f34d9082012-10-08 19:16:4451
[email protected]007b3f82013-04-09 08:46:4552 ExtensionAction browser_action(
53 std::string(), ActionInfo::TYPE_BROWSER, ActionInfo());
[email protected]0f34d9082012-10-08 19:16:4454 ASSERT_TRUE(browser_action.GetIsVisible(1));
[email protected]a048c092012-09-21 02:33:2655}
56
[email protected]0f34d9082012-10-08 19:16:4457TEST(ExtensionActionTest, Icon) {
[email protected]23b3c0a2013-01-16 23:36:3658 ActionInfo action_info;
[email protected]0f34d9082012-10-08 19:16:4459 action_info.default_icon.Add(16, "icon16.png");
[email protected]007b3f82013-04-09 08:46:4560 ExtensionAction page_action(
61 std::string(), ActionInfo::TYPE_PAGE, action_info);
[email protected]0f34d9082012-10-08 19:16:4462 ASSERT_TRUE(page_action.default_icon());
63 EXPECT_EQ("icon16.png",
64 page_action.default_icon()->Get(
65 16, ExtensionIconSet::MATCH_EXACTLY));
66 EXPECT_EQ("",
67 page_action.default_icon()->Get(
68 17, ExtensionIconSet::MATCH_BIGGER));
69}
70
71TEST(ExtensionActionTest, Badge) {
[email protected]007b3f82013-04-09 08:46:4572 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo());
[email protected]92c6f9b92009-10-24 04:35:0873 ASSERT_EQ("", action.GetBadgeText(1));
[email protected]5d246db22009-10-27 06:17:5774 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo");
[email protected]92c6f9b92009-10-24 04:35:0875 ASSERT_EQ("foo", action.GetBadgeText(1));
76 ASSERT_EQ("foo", action.GetBadgeText(100));
77 action.SetBadgeText(100, "bar");
78 ASSERT_EQ("foo", action.GetBadgeText(1));
79 ASSERT_EQ("bar", action.GetBadgeText(100));
[email protected]5d246db22009-10-27 06:17:5780 action.SetBadgeText(ExtensionAction::kDefaultTabId, "baz");
[email protected]92c6f9b92009-10-24 04:35:0881 ASSERT_EQ("baz", action.GetBadgeText(1));
82 action.ClearAllValuesForTab(100);
83 ASSERT_EQ("baz", action.GetBadgeText(100));
[email protected]39eae2b72012-08-01 07:22:3284}
[email protected]92c6f9b92009-10-24 04:35:0885
[email protected]0f34d9082012-10-08 19:16:4486TEST(ExtensionActionTest, BadgeTextColor) {
[email protected]007b3f82013-04-09 08:46:4587 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo());
[email protected]92c6f9b92009-10-24 04:35:0888 ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1));
[email protected]5d246db22009-10-27 06:17:5789 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u);
[email protected]92c6f9b92009-10-24 04:35:0890 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1));
91 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(100));
92 action.SetBadgeTextColor(100, 0xFF00FF00);
93 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1));
94 ASSERT_EQ(0xFF00FF00u, action.GetBadgeTextColor(100));
[email protected]5d246db22009-10-27 06:17:5795 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu);
[email protected]92c6f9b92009-10-24 04:35:0896 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1));
97 action.ClearAllValuesForTab(100);
98 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100));
[email protected]39eae2b72012-08-01 07:22:3299}
[email protected]92c6f9b92009-10-24 04:35:08100
[email protected]0f34d9082012-10-08 19:16:44101TEST(ExtensionActionTest, BadgeBackgroundColor) {
[email protected]007b3f82013-04-09 08:46:45102 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo());
[email protected]92c6f9b92009-10-24 04:35:08103 ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1));
[email protected]5d246db22009-10-27 06:17:57104 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId,
[email protected]56ce6e52009-10-27 00:10:52105 0xFFFF0000u);
[email protected]92c6f9b92009-10-24 04:35:08106 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1));
107 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(100));
108 action.SetBadgeBackgroundColor(100, 0xFF00FF00);
109 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1));
110 ASSERT_EQ(0xFF00FF00u, action.GetBadgeBackgroundColor(100));
[email protected]5d246db22009-10-27 06:17:57111 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId,
[email protected]56ce6e52009-10-27 00:10:52112 0xFF0000FFu);
[email protected]92c6f9b92009-10-24 04:35:08113 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1));
114 action.ClearAllValuesForTab(100);
115 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100));
[email protected]39eae2b72012-08-01 07:22:32116}
[email protected]a388c4842010-01-27 17:13:15117
[email protected]0f34d9082012-10-08 19:16:44118TEST(ExtensionActionTest, PopupUrl) {
[email protected]a388c4842010-01-27 17:13:15119 GURL url_unset;
120 GURL url_foo("http://www.example.com/foo.html");
121 GURL url_bar("http://www.example.com/bar.html");
122 GURL url_baz("http://www.example.com/baz.html");
123
[email protected]23b3c0a2013-01-16 23:36:36124 ActionInfo action_info;
[email protected]0f34d9082012-10-08 19:16:44125 action_info.default_popup_url = url_foo;
[email protected]007b3f82013-04-09 08:46:45126 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info);
[email protected]0f34d9082012-10-08 19:16:44127
128 ASSERT_EQ(url_foo, action.GetPopupUrl(1));
129 ASSERT_EQ(url_foo, action.GetPopupUrl(100));
130 ASSERT_TRUE(action.HasPopup(1));
131 ASSERT_TRUE(action.HasPopup(100));
132
133 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset);
[email protected]a388c4842010-01-27 17:13:15134 ASSERT_EQ(url_unset, action.GetPopupUrl(1));
135 ASSERT_EQ(url_unset, action.GetPopupUrl(100));
136 ASSERT_FALSE(action.HasPopup(1));
137 ASSERT_FALSE(action.HasPopup(100));
138
[email protected]a388c4842010-01-27 17:13:15139 action.SetPopupUrl(100, url_bar);
[email protected]0f34d9082012-10-08 19:16:44140 ASSERT_EQ(url_unset, action.GetPopupUrl(1));
[email protected]a388c4842010-01-27 17:13:15141 ASSERT_EQ(url_bar, action.GetPopupUrl(100));
142
143 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz);
144 ASSERT_EQ(url_baz, action.GetPopupUrl(1));
145 ASSERT_EQ(url_bar, action.GetPopupUrl(100));
146
147 action.ClearAllValuesForTab(100);
148 ASSERT_EQ(url_baz, action.GetPopupUrl(1));
149 ASSERT_EQ(url_baz, action.GetPopupUrl(100));
[email protected]92c6f9b92009-10-24 04:35:08150}
[email protected]39eae2b72012-08-01 07:22:32151
152} // namespace