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

Side by Side Diff: chrome/browser/extensions/extension_action_unittest.cc

Issue 11588004: Move ScriptBadge, ActionInfo out of Extension; preparation for BrowserAction (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest master for CQ Created 7 years, 11 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 unified diff | Download patch
OLDNEW
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.h" 5 #include "base/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 "googleurl/src/gurl.h" 8 #include "googleurl/src/gurl.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 10
10 namespace { 11 namespace {
11 12
12 using extensions::Extension; 13 using extensions::ActionInfo;
13 14
14 TEST(ExtensionActionTest, Title) { 15 TEST(ExtensionActionTest, Title) {
15 Extension::ActionInfo action_info; 16 ActionInfo action_info;
16 action_info.default_title = "Initial Title"; 17 action_info.default_title = "Initial Title";
17 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, action_info); 18 ExtensionAction action("", ActionInfo::TYPE_PAGE, action_info);
18 19
19 ASSERT_EQ("Initial Title", action.GetTitle(1)); 20 ASSERT_EQ("Initial Title", action.GetTitle(1));
20 action.SetTitle(ExtensionAction::kDefaultTabId, "foo"); 21 action.SetTitle(ExtensionAction::kDefaultTabId, "foo");
21 ASSERT_EQ("foo", action.GetTitle(1)); 22 ASSERT_EQ("foo", action.GetTitle(1));
22 ASSERT_EQ("foo", action.GetTitle(100)); 23 ASSERT_EQ("foo", action.GetTitle(100));
23 action.SetTitle(100, "bar"); 24 action.SetTitle(100, "bar");
24 ASSERT_EQ("foo", action.GetTitle(1)); 25 ASSERT_EQ("foo", action.GetTitle(1));
25 ASSERT_EQ("bar", action.GetTitle(100)); 26 ASSERT_EQ("bar", action.GetTitle(100));
26 action.SetTitle(ExtensionAction::kDefaultTabId, "baz"); 27 action.SetTitle(ExtensionAction::kDefaultTabId, "baz");
27 ASSERT_EQ("baz", action.GetTitle(1)); 28 ASSERT_EQ("baz", action.GetTitle(1));
28 action.ClearAllValuesForTab(100); 29 action.ClearAllValuesForTab(100);
29 ASSERT_EQ("baz", action.GetTitle(100)); 30 ASSERT_EQ("baz", action.GetTitle(100));
30 } 31 }
31 32
32 TEST(ExtensionActionTest, Visibility) { 33 TEST(ExtensionActionTest, Visibility) {
33 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, 34 ExtensionAction action("", ActionInfo::TYPE_PAGE,
34 Extension::ActionInfo()); 35 ActionInfo());
35 36
36 ASSERT_FALSE(action.GetIsVisible(1)); 37 ASSERT_FALSE(action.GetIsVisible(1));
37 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE); 38 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE);
38 ASSERT_TRUE(action.GetIsVisible(1)); 39 ASSERT_TRUE(action.GetIsVisible(1));
39 ASSERT_TRUE(action.GetIsVisible(100)); 40 ASSERT_TRUE(action.GetIsVisible(100));
40 41
41 action.SetAppearance(ExtensionAction::kDefaultTabId, 42 action.SetAppearance(ExtensionAction::kDefaultTabId,
42 ExtensionAction::INVISIBLE); 43 ExtensionAction::INVISIBLE);
43 ASSERT_FALSE(action.GetIsVisible(1)); 44 ASSERT_FALSE(action.GetIsVisible(1));
44 ASSERT_FALSE(action.GetIsVisible(100)); 45 ASSERT_FALSE(action.GetIsVisible(100));
45 action.SetAppearance(100, ExtensionAction::ACTIVE); 46 action.SetAppearance(100, ExtensionAction::ACTIVE);
46 ASSERT_FALSE(action.GetIsVisible(1)); 47 ASSERT_FALSE(action.GetIsVisible(1));
47 ASSERT_TRUE(action.GetIsVisible(100)); 48 ASSERT_TRUE(action.GetIsVisible(100));
48 EXPECT_FALSE(action.GetIconAnimation(100)) 49 EXPECT_FALSE(action.GetIconAnimation(100))
49 << "Page actions should not animate."; 50 << "Page actions should not animate.";
50 51
51 action.ClearAllValuesForTab(100); 52 action.ClearAllValuesForTab(100);
52 ASSERT_FALSE(action.GetIsVisible(1)); 53 ASSERT_FALSE(action.GetIsVisible(1));
53 ASSERT_FALSE(action.GetIsVisible(100)); 54 ASSERT_FALSE(action.GetIsVisible(100));
54 55
55 ExtensionAction browser_action("", Extension::ActionInfo::TYPE_BROWSER, 56 ExtensionAction browser_action("", ActionInfo::TYPE_BROWSER,
56 Extension::ActionInfo()); 57 ActionInfo());
57 ASSERT_TRUE(browser_action.GetIsVisible(1)); 58 ASSERT_TRUE(browser_action.GetIsVisible(1));
58 } 59 }
59 60
60 TEST(ExtensionActionTest, ScriptBadgeAnimation) { 61 TEST(ExtensionActionTest, ScriptBadgeAnimation) {
61 // Supports the icon animation. 62 // Supports the icon animation.
62 MessageLoop message_loop; 63 MessageLoop message_loop;
63 64
64 ExtensionAction script_badge("", Extension::ActionInfo::TYPE_SCRIPT_BADGE, 65 ExtensionAction script_badge("", ActionInfo::TYPE_SCRIPT_BADGE,
65 Extension::ActionInfo()); 66 ActionInfo());
66 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)); 67 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId));
67 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, 68 script_badge.SetAppearance(ExtensionAction::kDefaultTabId,
68 ExtensionAction::ACTIVE); 69 ExtensionAction::ACTIVE);
69 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)) 70 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId))
70 << "Showing the default tab should not animate script badges."; 71 << "Showing the default tab should not animate script badges.";
71 72
72 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, 73 script_badge.SetAppearance(ExtensionAction::kDefaultTabId,
73 ExtensionAction::INVISIBLE); 74 ExtensionAction::INVISIBLE);
74 EXPECT_FALSE(script_badge.GetIconAnimation(1)) 75 EXPECT_FALSE(script_badge.GetIconAnimation(1))
75 << "Making a script badge invisible should not show its animation."; 76 << "Making a script badge invisible should not show its animation.";
76 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); 77 script_badge.SetAppearance(1, ExtensionAction::ACTIVE);
77 EXPECT_TRUE(script_badge.GetIconAnimation(1)) 78 EXPECT_TRUE(script_badge.GetIconAnimation(1))
78 << "Making a script badge visible should show its animation."; 79 << "Making a script badge visible should show its animation.";
79 80
80 script_badge.ClearAllValuesForTab(1); 81 script_badge.ClearAllValuesForTab(1);
81 EXPECT_FALSE(script_badge.GetIconAnimation(100)); 82 EXPECT_FALSE(script_badge.GetIconAnimation(100));
82 } 83 }
83 84
84 TEST(ExtensionActionTest, GetAttention) { 85 TEST(ExtensionActionTest, GetAttention) {
85 // Supports the icon animation. 86 // Supports the icon animation.
86 scoped_ptr<MessageLoop> message_loop(new MessageLoop); 87 scoped_ptr<MessageLoop> message_loop(new MessageLoop);
87 88
88 ExtensionAction script_badge("", Extension::ActionInfo::TYPE_SCRIPT_BADGE, 89 ExtensionAction script_badge("", ActionInfo::TYPE_SCRIPT_BADGE,
89 Extension::ActionInfo()); 90 ActionInfo());
90 EXPECT_FALSE(script_badge.GetIsVisible(1)); 91 EXPECT_FALSE(script_badge.GetIsVisible(1));
91 EXPECT_FALSE(script_badge.GetIconAnimation(1)); 92 EXPECT_FALSE(script_badge.GetIconAnimation(1));
92 script_badge.SetAppearance(1, ExtensionAction::WANTS_ATTENTION); 93 script_badge.SetAppearance(1, ExtensionAction::WANTS_ATTENTION);
93 EXPECT_TRUE(script_badge.GetIsVisible(1)); 94 EXPECT_TRUE(script_badge.GetIsVisible(1));
94 EXPECT_TRUE(script_badge.GetIconAnimation(1)); 95 EXPECT_TRUE(script_badge.GetIconAnimation(1));
95 96
96 // Simulate waiting long enough for the animation to end. 97 // Simulate waiting long enough for the animation to end.
97 message_loop.reset(); // Can't have 2 MessageLoops alive at once. 98 message_loop.reset(); // Can't have 2 MessageLoops alive at once.
98 message_loop.reset(new MessageLoop); 99 message_loop.reset(new MessageLoop);
99 EXPECT_FALSE(script_badge.GetIconAnimation(1)); // Sanity check. 100 EXPECT_FALSE(script_badge.GetIconAnimation(1)); // Sanity check.
100 101
101 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); 102 script_badge.SetAppearance(1, ExtensionAction::ACTIVE);
102 EXPECT_FALSE(script_badge.GetIconAnimation(1)) 103 EXPECT_FALSE(script_badge.GetIconAnimation(1))
103 << "The animation should not play again if the icon was already visible."; 104 << "The animation should not play again if the icon was already visible.";
104 } 105 }
105 106
106 TEST(ExtensionActionTest, Icon) { 107 TEST(ExtensionActionTest, Icon) {
107 Extension::ActionInfo action_info; 108 ActionInfo action_info;
108 action_info.default_icon.Add(16, "icon16.png"); 109 action_info.default_icon.Add(16, "icon16.png");
109 ExtensionAction page_action("", Extension::ActionInfo::TYPE_PAGE, 110 ExtensionAction page_action("", ActionInfo::TYPE_PAGE,
110 action_info); 111 action_info);
111 ASSERT_TRUE(page_action.default_icon()); 112 ASSERT_TRUE(page_action.default_icon());
112 EXPECT_EQ("icon16.png", 113 EXPECT_EQ("icon16.png",
113 page_action.default_icon()->Get( 114 page_action.default_icon()->Get(
114 16, ExtensionIconSet::MATCH_EXACTLY)); 115 16, ExtensionIconSet::MATCH_EXACTLY));
115 EXPECT_EQ("", 116 EXPECT_EQ("",
116 page_action.default_icon()->Get( 117 page_action.default_icon()->Get(
117 17, ExtensionIconSet::MATCH_BIGGER)); 118 17, ExtensionIconSet::MATCH_BIGGER));
118 } 119 }
119 120
120 TEST(ExtensionActionTest, Badge) { 121 TEST(ExtensionActionTest, Badge) {
121 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, 122 ExtensionAction action("", ActionInfo::TYPE_PAGE,
122 Extension::ActionInfo()); 123 ActionInfo());
123 ASSERT_EQ("", action.GetBadgeText(1)); 124 ASSERT_EQ("", action.GetBadgeText(1));
124 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); 125 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo");
125 ASSERT_EQ("foo", action.GetBadgeText(1)); 126 ASSERT_EQ("foo", action.GetBadgeText(1));
126 ASSERT_EQ("foo", action.GetBadgeText(100)); 127 ASSERT_EQ("foo", action.GetBadgeText(100));
127 action.SetBadgeText(100, "bar"); 128 action.SetBadgeText(100, "bar");
128 ASSERT_EQ("foo", action.GetBadgeText(1)); 129 ASSERT_EQ("foo", action.GetBadgeText(1));
129 ASSERT_EQ("bar", action.GetBadgeText(100)); 130 ASSERT_EQ("bar", action.GetBadgeText(100));
130 action.SetBadgeText(ExtensionAction::kDefaultTabId, "baz"); 131 action.SetBadgeText(ExtensionAction::kDefaultTabId, "baz");
131 ASSERT_EQ("baz", action.GetBadgeText(1)); 132 ASSERT_EQ("baz", action.GetBadgeText(1));
132 action.ClearAllValuesForTab(100); 133 action.ClearAllValuesForTab(100);
133 ASSERT_EQ("baz", action.GetBadgeText(100)); 134 ASSERT_EQ("baz", action.GetBadgeText(100));
134 } 135 }
135 136
136 TEST(ExtensionActionTest, BadgeTextColor) { 137 TEST(ExtensionActionTest, BadgeTextColor) {
137 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, 138 ExtensionAction action("", ActionInfo::TYPE_PAGE,
138 Extension::ActionInfo()); 139 ActionInfo());
139 ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1)); 140 ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1));
140 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u); 141 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u);
141 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); 142 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1));
142 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(100)); 143 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(100));
143 action.SetBadgeTextColor(100, 0xFF00FF00); 144 action.SetBadgeTextColor(100, 0xFF00FF00);
144 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); 145 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1));
145 ASSERT_EQ(0xFF00FF00u, action.GetBadgeTextColor(100)); 146 ASSERT_EQ(0xFF00FF00u, action.GetBadgeTextColor(100));
146 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu); 147 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu);
147 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1)); 148 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1));
148 action.ClearAllValuesForTab(100); 149 action.ClearAllValuesForTab(100);
149 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100)); 150 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100));
150 } 151 }
151 152
152 TEST(ExtensionActionTest, BadgeBackgroundColor) { 153 TEST(ExtensionActionTest, BadgeBackgroundColor) {
153 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, 154 ExtensionAction action("", ActionInfo::TYPE_PAGE,
154 Extension::ActionInfo()); 155 ActionInfo());
155 ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1)); 156 ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1));
156 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, 157 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId,
157 0xFFFF0000u); 158 0xFFFF0000u);
158 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); 159 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1));
159 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(100)); 160 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(100));
160 action.SetBadgeBackgroundColor(100, 0xFF00FF00); 161 action.SetBadgeBackgroundColor(100, 0xFF00FF00);
161 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); 162 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1));
162 ASSERT_EQ(0xFF00FF00u, action.GetBadgeBackgroundColor(100)); 163 ASSERT_EQ(0xFF00FF00u, action.GetBadgeBackgroundColor(100));
163 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, 164 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId,
164 0xFF0000FFu); 165 0xFF0000FFu);
165 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1)); 166 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1));
166 action.ClearAllValuesForTab(100); 167 action.ClearAllValuesForTab(100);
167 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100)); 168 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100));
168 } 169 }
169 170
170 TEST(ExtensionActionTest, PopupUrl) { 171 TEST(ExtensionActionTest, PopupUrl) {
171 GURL url_unset; 172 GURL url_unset;
172 GURL url_foo("http://www.example.com/foo.html"); 173 GURL url_foo("http://www.example.com/foo.html");
173 GURL url_bar("http://www.example.com/bar.html"); 174 GURL url_bar("http://www.example.com/bar.html");
174 GURL url_baz("http://www.example.com/baz.html"); 175 GURL url_baz("http://www.example.com/baz.html");
175 176
176 Extension::ActionInfo action_info; 177 ActionInfo action_info;
177 action_info.default_popup_url = url_foo; 178 action_info.default_popup_url = url_foo;
178 ExtensionAction action("", Extension::ActionInfo::TYPE_PAGE, action_info); 179 ExtensionAction action("", ActionInfo::TYPE_PAGE, action_info);
179 180
180 ASSERT_EQ(url_foo, action.GetPopupUrl(1)); 181 ASSERT_EQ(url_foo, action.GetPopupUrl(1));
181 ASSERT_EQ(url_foo, action.GetPopupUrl(100)); 182 ASSERT_EQ(url_foo, action.GetPopupUrl(100));
182 ASSERT_TRUE(action.HasPopup(1)); 183 ASSERT_TRUE(action.HasPopup(1));
183 ASSERT_TRUE(action.HasPopup(100)); 184 ASSERT_TRUE(action.HasPopup(100));
184 185
185 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset); 186 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset);
186 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); 187 ASSERT_EQ(url_unset, action.GetPopupUrl(1));
187 ASSERT_EQ(url_unset, action.GetPopupUrl(100)); 188 ASSERT_EQ(url_unset, action.GetPopupUrl(100));
188 ASSERT_FALSE(action.HasPopup(1)); 189 ASSERT_FALSE(action.HasPopup(1));
189 ASSERT_FALSE(action.HasPopup(100)); 190 ASSERT_FALSE(action.HasPopup(100));
190 191
191 action.SetPopupUrl(100, url_bar); 192 action.SetPopupUrl(100, url_bar);
192 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); 193 ASSERT_EQ(url_unset, action.GetPopupUrl(1));
193 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); 194 ASSERT_EQ(url_bar, action.GetPopupUrl(100));
194 195
195 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); 196 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz);
196 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); 197 ASSERT_EQ(url_baz, action.GetPopupUrl(1));
197 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); 198 ASSERT_EQ(url_bar, action.GetPopupUrl(100));
198 199
199 action.ClearAllValuesForTab(100); 200 action.ClearAllValuesForTab(100);
200 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); 201 ASSERT_EQ(url_baz, action.GetPopupUrl(1));
201 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); 202 ASSERT_EQ(url_baz, action.GetPopupUrl(100));
202 } 203 }
203 204
204 } // namespace 205 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_action_manager.cc ('k') | chrome/browser/extensions/extension_function_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698