| 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 |