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/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "chrome/common/chrome_paths.h" | 9 #include "chrome/common/chrome_paths.h" |
10 #include "chrome/common/extensions/extension_action.h" | 10 #include "chrome/common/extensions/extension_action.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 | 106 |
107 action.SetIconIndex(100, 0); | 107 action.SetIconIndex(100, 0); |
108 ASSERT_EQ(0, action.GetIconIndex(100)); | 108 ASSERT_EQ(0, action.GetIconIndex(100)); |
109 ASSERT_EQ(1, action.GetIconIndex(1)); | 109 ASSERT_EQ(1, action.GetIconIndex(1)); |
110 action.ClearAllValuesForTab(100); | 110 action.ClearAllValuesForTab(100); |
111 ASSERT_EQ(1, action.GetIconIndex(100)); | 111 ASSERT_EQ(1, action.GetIconIndex(100)); |
112 ASSERT_EQ(1, action.GetIconIndex(1)); | 112 ASSERT_EQ(1, action.GetIconIndex(1)); |
113 } | 113 } |
114 | 114 |
115 TEST_F(ExtensionActionTest, Visibility) { | 115 TEST_F(ExtensionActionTest, Visibility) { |
116 // Supports the icon animation. | |
117 MessageLoop message_loop; | |
118 | |
119 ASSERT_FALSE(action.GetIsVisible(1)); | 116 ASSERT_FALSE(action.GetIsVisible(1)); |
120 EXPECT_FALSE(action.GetIconAnimation(ExtensionAction::kDefaultTabId)); | |
121 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE); | 117 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE); |
122 ASSERT_TRUE(action.GetIsVisible(1)); | 118 ASSERT_TRUE(action.GetIsVisible(1)); |
123 ASSERT_TRUE(action.GetIsVisible(100)); | 119 ASSERT_TRUE(action.GetIsVisible(100)); |
124 EXPECT_FALSE(action.GetIconAnimation(ExtensionAction::kDefaultTabId)); | |
125 | 120 |
126 action.SetAppearance(ExtensionAction::kDefaultTabId, | 121 action.SetAppearance(ExtensionAction::kDefaultTabId, |
127 ExtensionAction::INVISIBLE); | 122 ExtensionAction::INVISIBLE); |
128 ASSERT_FALSE(action.GetIsVisible(1)); | 123 ASSERT_FALSE(action.GetIsVisible(1)); |
129 ASSERT_FALSE(action.GetIsVisible(100)); | 124 ASSERT_FALSE(action.GetIsVisible(100)); |
130 EXPECT_FALSE(action.GetIconAnimation(100)); | |
131 action.SetAppearance(100, ExtensionAction::ACTIVE); | 125 action.SetAppearance(100, ExtensionAction::ACTIVE); |
132 ASSERT_FALSE(action.GetIsVisible(1)); | 126 ASSERT_FALSE(action.GetIsVisible(1)); |
133 ASSERT_TRUE(action.GetIsVisible(100)); | 127 ASSERT_TRUE(action.GetIsVisible(100)); |
134 EXPECT_TRUE(action.GetIconAnimation(100)); | 128 EXPECT_FALSE(action.GetIconAnimation(100)) |
| 129 << "Page actions should not animate."; |
135 | 130 |
136 action.ClearAllValuesForTab(100); | 131 action.ClearAllValuesForTab(100); |
137 ASSERT_FALSE(action.GetIsVisible(1)); | 132 ASSERT_FALSE(action.GetIsVisible(1)); |
138 ASSERT_FALSE(action.GetIsVisible(100)); | 133 ASSERT_FALSE(action.GetIsVisible(100)); |
139 EXPECT_FALSE(action.GetIconAnimation(100)); | |
140 | 134 |
141 message_loop.RunAllPending(); | 135 message_loop.RunAllPending(); |
142 } | 136 } |
143 | 137 |
| 138 TEST_F(ExtensionActionTest, ScriptBadgeAnimation) { |
| 139 // Supports the icon animation. |
| 140 MessageLoop message_loop; |
| 141 |
| 142 ExtensionAction script_badge("", ExtensionAction::TYPE_SCRIPT_BADGE); |
| 143 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)); |
| 144 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, |
| 145 ExtensionAction::ACTIVE); |
| 146 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)) |
| 147 << "Showing the default tab should not animate script badges."; |
| 148 |
| 149 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, |
| 150 ExtensionAction::INVISIBLE); |
| 151 EXPECT_FALSE(script_badge.GetIconAnimation(1)) |
| 152 << "Making a script badge invisible should not show its animation."; |
| 153 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); |
| 154 EXPECT_TRUE(script_badge.GetIconAnimation(1)) |
| 155 << "Making a script badge visible should show its animation."; |
| 156 |
| 157 script_badge.ClearAllValuesForTab(1); |
| 158 EXPECT_FALSE(script_badge.GetIconAnimation(100)); |
| 159 } |
| 160 |
144 TEST_F(ExtensionActionTest, GetAttention) { | 161 TEST_F(ExtensionActionTest, GetAttention) { |
145 // Supports the icon animation. | 162 // Supports the icon animation. |
146 MessageLoop message_loop; | 163 MessageLoop message_loop; |
147 | 164 |
148 EXPECT_FALSE(action.GetIsVisible(1)); | 165 ExtensionAction script_badge("", ExtensionAction::TYPE_SCRIPT_BADGE); |
149 EXPECT_FALSE(action.GetIconAnimation(1)); | 166 EXPECT_FALSE(script_badge.GetIsVisible(1)); |
150 action.SetAppearance(1, ExtensionAction::WANTS_ATTENTION); | 167 EXPECT_FALSE(script_badge.GetIconAnimation(1)); |
151 EXPECT_TRUE(action.GetIsVisible(1)); | 168 script_badge.SetAppearance(1, ExtensionAction::WANTS_ATTENTION); |
152 EXPECT_TRUE(action.GetIconAnimation(1)); | 169 EXPECT_TRUE(script_badge.GetIsVisible(1)); |
| 170 EXPECT_TRUE(script_badge.GetIconAnimation(1)); |
153 | 171 |
154 // Simulate waiting long enough for the animation to end. | 172 // Simulate waiting long enough for the animation to end. |
155 action.GetIconAnimation(1)->Stop(); | 173 action.GetIconAnimation(1)->Stop(); |
156 EXPECT_FALSE(action.GetIconAnimation(1)); // Sanity check. | 174 EXPECT_FALSE(script_badge.GetIconAnimation(1)); // Sanity check. |
157 | 175 |
158 action.SetAppearance(1, ExtensionAction::ACTIVE); | 176 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); |
159 EXPECT_FALSE(action.GetIconAnimation(1)) | 177 EXPECT_FALSE(script_badge.GetIconAnimation(1)) |
160 << "The animation should not play again if the icon was already visible."; | 178 << "The animation should not play again if the icon was already visible."; |
161 | 179 |
162 message_loop.RunAllPending(); | 180 message_loop.RunAllPending(); |
163 } | 181 } |
164 | 182 |
165 TEST_F(ExtensionActionTest, Badge) { | 183 TEST_F(ExtensionActionTest, Badge) { |
166 ASSERT_EQ("", action.GetBadgeText(1)); | 184 ASSERT_EQ("", action.GetBadgeText(1)); |
167 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); | 185 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); |
168 ASSERT_EQ("foo", action.GetBadgeText(1)); | 186 ASSERT_EQ("foo", action.GetBadgeText(1)); |
169 ASSERT_EQ("foo", action.GetBadgeText(100)); | 187 ASSERT_EQ("foo", action.GetBadgeText(100)); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); | 246 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); |
229 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 247 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); |
230 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 248 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); |
231 | 249 |
232 action.ClearAllValuesForTab(100); | 250 action.ClearAllValuesForTab(100); |
233 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 251 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); |
234 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); | 252 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); |
235 } | 253 } |
236 | 254 |
237 } // namespace | 255 } // namespace |
OLD | NEW |