| 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.h" | 5 #include "base/message_loop.h" |
| 6 #include "chrome/common/extensions/extension_action.h" | 6 #include "chrome/common/extensions/extension_action.h" |
| 7 #include "googleurl/src/gurl.h" | 7 #include "googleurl/src/gurl.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 namespace { | 10 namespace { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 action.SetTitle(100, "bar"); | 26 action.SetTitle(100, "bar"); |
| 27 ASSERT_EQ("foo", action.GetTitle(1)); | 27 ASSERT_EQ("foo", action.GetTitle(1)); |
| 28 ASSERT_EQ("bar", action.GetTitle(100)); | 28 ASSERT_EQ("bar", action.GetTitle(100)); |
| 29 action.SetTitle(ExtensionAction::kDefaultTabId, "baz"); | 29 action.SetTitle(ExtensionAction::kDefaultTabId, "baz"); |
| 30 ASSERT_EQ("baz", action.GetTitle(1)); | 30 ASSERT_EQ("baz", action.GetTitle(1)); |
| 31 action.ClearAllValuesForTab(100); | 31 action.ClearAllValuesForTab(100); |
| 32 ASSERT_EQ("baz", action.GetTitle(100)); | 32 ASSERT_EQ("baz", action.GetTitle(100)); |
| 33 } | 33 } |
| 34 | 34 |
| 35 TEST_F(ExtensionActionTest, Visibility) { | 35 TEST_F(ExtensionActionTest, Visibility) { |
| 36 // Supports the icon animation. | |
| 37 MessageLoop message_loop; | |
| 38 | |
| 39 ASSERT_FALSE(action.GetIsVisible(1)); | 36 ASSERT_FALSE(action.GetIsVisible(1)); |
| 40 EXPECT_FALSE(action.GetIconAnimation(ExtensionAction::kDefaultTabId)); | |
| 41 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE); | 37 action.SetAppearance(ExtensionAction::kDefaultTabId, ExtensionAction::ACTIVE); |
| 42 ASSERT_TRUE(action.GetIsVisible(1)); | 38 ASSERT_TRUE(action.GetIsVisible(1)); |
| 43 ASSERT_TRUE(action.GetIsVisible(100)); | 39 ASSERT_TRUE(action.GetIsVisible(100)); |
| 44 EXPECT_FALSE(action.GetIconAnimation(ExtensionAction::kDefaultTabId)); | |
| 45 | 40 |
| 46 action.SetAppearance(ExtensionAction::kDefaultTabId, | 41 action.SetAppearance(ExtensionAction::kDefaultTabId, |
| 47 ExtensionAction::INVISIBLE); | 42 ExtensionAction::INVISIBLE); |
| 48 ASSERT_FALSE(action.GetIsVisible(1)); | 43 ASSERT_FALSE(action.GetIsVisible(1)); |
| 49 ASSERT_FALSE(action.GetIsVisible(100)); | 44 ASSERT_FALSE(action.GetIsVisible(100)); |
| 50 EXPECT_FALSE(action.GetIconAnimation(100)); | |
| 51 action.SetAppearance(100, ExtensionAction::ACTIVE); | 45 action.SetAppearance(100, ExtensionAction::ACTIVE); |
| 52 ASSERT_FALSE(action.GetIsVisible(1)); | 46 ASSERT_FALSE(action.GetIsVisible(1)); |
| 53 ASSERT_TRUE(action.GetIsVisible(100)); | 47 ASSERT_TRUE(action.GetIsVisible(100)); |
| 54 EXPECT_TRUE(action.GetIconAnimation(100)); | 48 EXPECT_FALSE(action.GetIconAnimation(100)) |
| 49 << "Page actions should not animate."; |
| 55 | 50 |
| 56 action.ClearAllValuesForTab(100); | 51 action.ClearAllValuesForTab(100); |
| 57 ASSERT_FALSE(action.GetIsVisible(1)); | 52 ASSERT_FALSE(action.GetIsVisible(1)); |
| 58 ASSERT_FALSE(action.GetIsVisible(100)); | 53 ASSERT_FALSE(action.GetIsVisible(100)); |
| 59 EXPECT_FALSE(action.GetIconAnimation(100)); | 54 } |
| 55 |
| 56 TEST_F(ExtensionActionTest, ScriptBadgeAnimation) { |
| 57 // Supports the icon animation. |
| 58 MessageLoop message_loop; |
| 59 |
| 60 ExtensionAction script_badge("", ExtensionAction::TYPE_SCRIPT_BADGE); |
| 61 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)); |
| 62 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, |
| 63 ExtensionAction::ACTIVE); |
| 64 EXPECT_FALSE(script_badge.GetIconAnimation(ExtensionAction::kDefaultTabId)) |
| 65 << "Showing the default tab should not animate script badges."; |
| 66 |
| 67 script_badge.SetAppearance(ExtensionAction::kDefaultTabId, |
| 68 ExtensionAction::INVISIBLE); |
| 69 EXPECT_FALSE(script_badge.GetIconAnimation(1)) |
| 70 << "Making a script badge invisible should not show its animation."; |
| 71 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); |
| 72 EXPECT_TRUE(script_badge.GetIconAnimation(1)) |
| 73 << "Making a script badge visible should show its animation."; |
| 74 |
| 75 script_badge.ClearAllValuesForTab(1); |
| 76 EXPECT_FALSE(script_badge.GetIconAnimation(100)); |
| 60 } | 77 } |
| 61 | 78 |
| 62 TEST_F(ExtensionActionTest, GetAttention) { | 79 TEST_F(ExtensionActionTest, GetAttention) { |
| 63 // Supports the icon animation. | 80 // Supports the icon animation. |
| 64 scoped_ptr<MessageLoop> message_loop(new MessageLoop); | 81 scoped_ptr<MessageLoop> message_loop(new MessageLoop); |
| 65 | 82 |
| 66 EXPECT_FALSE(action.GetIsVisible(1)); | 83 ExtensionAction script_badge("", ExtensionAction::TYPE_SCRIPT_BADGE); |
| 67 EXPECT_FALSE(action.GetIconAnimation(1)); | 84 EXPECT_FALSE(script_badge.GetIsVisible(1)); |
| 68 action.SetAppearance(1, ExtensionAction::WANTS_ATTENTION); | 85 EXPECT_FALSE(script_badge.GetIconAnimation(1)); |
| 69 EXPECT_TRUE(action.GetIsVisible(1)); | 86 script_badge.SetAppearance(1, ExtensionAction::WANTS_ATTENTION); |
| 70 EXPECT_TRUE(action.GetIconAnimation(1)); | 87 EXPECT_TRUE(script_badge.GetIsVisible(1)); |
| 88 EXPECT_TRUE(script_badge.GetIconAnimation(1)); |
| 71 | 89 |
| 72 // Simulate waiting long enough for the animation to end. | 90 // Simulate waiting long enough for the animation to end. |
| 73 message_loop.reset(); // Can't have 2 MessageLoops alive at once. | 91 message_loop.reset(); // Can't have 2 MessageLoops alive at once. |
| 74 message_loop.reset(new MessageLoop); | 92 message_loop.reset(new MessageLoop); |
| 75 EXPECT_FALSE(action.GetIconAnimation(1)); // Sanity check. | 93 EXPECT_FALSE(script_badge.GetIconAnimation(1)); // Sanity check. |
| 76 | 94 |
| 77 action.SetAppearance(1, ExtensionAction::ACTIVE); | 95 script_badge.SetAppearance(1, ExtensionAction::ACTIVE); |
| 78 EXPECT_FALSE(action.GetIconAnimation(1)) | 96 EXPECT_FALSE(script_badge.GetIconAnimation(1)) |
| 79 << "The animation should not play again if the icon was already visible."; | 97 << "The animation should not play again if the icon was already visible."; |
| 80 } | 98 } |
| 81 | 99 |
| 82 TEST_F(ExtensionActionTest, Badge) { | 100 TEST_F(ExtensionActionTest, Badge) { |
| 83 ASSERT_EQ("", action.GetBadgeText(1)); | 101 ASSERT_EQ("", action.GetBadgeText(1)); |
| 84 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); | 102 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); |
| 85 ASSERT_EQ("foo", action.GetBadgeText(1)); | 103 ASSERT_EQ("foo", action.GetBadgeText(1)); |
| 86 ASSERT_EQ("foo", action.GetBadgeText(100)); | 104 ASSERT_EQ("foo", action.GetBadgeText(100)); |
| 87 action.SetBadgeText(100, "bar"); | 105 action.SetBadgeText(100, "bar"); |
| 88 ASSERT_EQ("foo", action.GetBadgeText(1)); | 106 ASSERT_EQ("foo", action.GetBadgeText(1)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); | 163 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); |
| 146 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 164 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); |
| 147 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 165 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); |
| 148 | 166 |
| 149 action.ClearAllValuesForTab(100); | 167 action.ClearAllValuesForTab(100); |
| 150 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 168 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); |
| 151 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); | 169 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); |
| 152 } | 170 } |
| 153 | 171 |
| 154 } // namespace | 172 } // namespace |
| OLD | NEW |