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/message_loop.h" | 5 #include "base/message_loop/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 "chrome/common/extensions/api/extension_action/action_info.h" |
| 8 #include "extensions/common/test_util.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "url/gurl.h" | 10 #include "url/gurl.h" |
10 | 11 |
| 12 namespace extensions { |
| 13 |
11 namespace { | 14 namespace { |
12 | 15 |
13 using extensions::ActionInfo; | 16 scoped_ptr<ExtensionAction> CreateAction(ActionInfo::Type type, |
| 17 const ActionInfo& action_info) { |
| 18 scoped_refptr<const Extension> extension = test_util::CreateEmptyExtension(); |
| 19 return make_scoped_ptr(new ExtensionAction(*extension, type, action_info)); |
| 20 } |
| 21 |
| 22 } // namespace |
14 | 23 |
15 TEST(ExtensionActionTest, Title) { | 24 TEST(ExtensionActionTest, Title) { |
16 ActionInfo action_info; | 25 ActionInfo action_info; |
17 action_info.default_title = "Initial Title"; | 26 action_info.default_title = "Initial Title"; |
18 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info); | 27 scoped_ptr<ExtensionAction> action = |
| 28 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
19 | 29 |
20 ASSERT_EQ("Initial Title", action.GetTitle(1)); | 30 ASSERT_EQ("Initial Title", action->GetTitle(1)); |
21 action.SetTitle(ExtensionAction::kDefaultTabId, "foo"); | 31 action->SetTitle(ExtensionAction::kDefaultTabId, "foo"); |
22 ASSERT_EQ("foo", action.GetTitle(1)); | 32 ASSERT_EQ("foo", action->GetTitle(1)); |
23 ASSERT_EQ("foo", action.GetTitle(100)); | 33 ASSERT_EQ("foo", action->GetTitle(100)); |
24 action.SetTitle(100, "bar"); | 34 action->SetTitle(100, "bar"); |
25 ASSERT_EQ("foo", action.GetTitle(1)); | 35 ASSERT_EQ("foo", action->GetTitle(1)); |
26 ASSERT_EQ("bar", action.GetTitle(100)); | 36 ASSERT_EQ("bar", action->GetTitle(100)); |
27 action.SetTitle(ExtensionAction::kDefaultTabId, "baz"); | 37 action->SetTitle(ExtensionAction::kDefaultTabId, "baz"); |
28 ASSERT_EQ("baz", action.GetTitle(1)); | 38 ASSERT_EQ("baz", action->GetTitle(1)); |
29 action.ClearAllValuesForTab(100); | 39 action->ClearAllValuesForTab(100); |
30 ASSERT_EQ("baz", action.GetTitle(100)); | 40 ASSERT_EQ("baz", action->GetTitle(100)); |
31 } | 41 } |
32 | 42 |
33 TEST(ExtensionActionTest, Visibility) { | 43 TEST(ExtensionActionTest, Visibility) { |
34 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 44 scoped_ptr<ExtensionAction> action = |
| 45 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
35 | 46 |
36 ASSERT_FALSE(action.GetIsVisible(1)); | 47 ASSERT_FALSE(action->GetIsVisible(1)); |
37 action.SetIsVisible(ExtensionAction::kDefaultTabId, true); | 48 action->SetIsVisible(ExtensionAction::kDefaultTabId, true); |
38 ASSERT_TRUE(action.GetIsVisible(1)); | 49 ASSERT_TRUE(action->GetIsVisible(1)); |
39 ASSERT_TRUE(action.GetIsVisible(100)); | 50 ASSERT_TRUE(action->GetIsVisible(100)); |
40 | 51 |
41 action.SetIsVisible(ExtensionAction::kDefaultTabId, false); | 52 action->SetIsVisible(ExtensionAction::kDefaultTabId, false); |
42 ASSERT_FALSE(action.GetIsVisible(1)); | 53 ASSERT_FALSE(action->GetIsVisible(1)); |
43 ASSERT_FALSE(action.GetIsVisible(100)); | 54 ASSERT_FALSE(action->GetIsVisible(100)); |
44 action.SetIsVisible(100, true); | 55 action->SetIsVisible(100, true); |
45 ASSERT_FALSE(action.GetIsVisible(1)); | 56 ASSERT_FALSE(action->GetIsVisible(1)); |
46 ASSERT_TRUE(action.GetIsVisible(100)); | 57 ASSERT_TRUE(action->GetIsVisible(100)); |
47 | 58 |
48 action.ClearAllValuesForTab(100); | 59 action->ClearAllValuesForTab(100); |
49 ASSERT_FALSE(action.GetIsVisible(1)); | 60 ASSERT_FALSE(action->GetIsVisible(1)); |
50 ASSERT_FALSE(action.GetIsVisible(100)); | 61 ASSERT_FALSE(action->GetIsVisible(100)); |
51 | 62 |
52 ExtensionAction browser_action( | 63 scoped_ptr<ExtensionAction> browser_action = |
53 std::string(), ActionInfo::TYPE_BROWSER, ActionInfo()); | 64 CreateAction(ActionInfo::TYPE_BROWSER, ActionInfo()); |
54 ASSERT_TRUE(browser_action.GetIsVisible(1)); | 65 ASSERT_TRUE(browser_action->GetIsVisible(1)); |
55 } | 66 } |
56 | 67 |
57 TEST(ExtensionActionTest, Icon) { | 68 TEST(ExtensionActionTest, Icon) { |
58 ActionInfo action_info; | 69 ActionInfo action_info; |
59 action_info.default_icon.Add(16, "icon16.png"); | 70 action_info.default_icon.Add(16, "icon16.png"); |
60 ExtensionAction page_action( | 71 scoped_ptr<ExtensionAction> page_action = |
61 std::string(), ActionInfo::TYPE_PAGE, action_info); | 72 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
62 ASSERT_TRUE(page_action.default_icon()); | 73 ASSERT_TRUE(page_action->default_icon()); |
63 EXPECT_EQ("icon16.png", | 74 EXPECT_EQ("icon16.png", |
64 page_action.default_icon()->Get( | 75 page_action->default_icon()->Get( |
65 16, ExtensionIconSet::MATCH_EXACTLY)); | 76 16, ExtensionIconSet::MATCH_EXACTLY)); |
66 EXPECT_EQ("", | 77 EXPECT_EQ("", |
67 page_action.default_icon()->Get( | 78 page_action->default_icon()->Get( |
68 17, ExtensionIconSet::MATCH_BIGGER)); | 79 17, ExtensionIconSet::MATCH_BIGGER)); |
69 } | 80 } |
70 | 81 |
71 TEST(ExtensionActionTest, Badge) { | 82 TEST(ExtensionActionTest, Badge) { |
72 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 83 scoped_ptr<ExtensionAction> action = |
73 ASSERT_EQ("", action.GetBadgeText(1)); | 84 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
74 action.SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); | 85 ASSERT_EQ("", action->GetBadgeText(1)); |
75 ASSERT_EQ("foo", action.GetBadgeText(1)); | 86 action->SetBadgeText(ExtensionAction::kDefaultTabId, "foo"); |
76 ASSERT_EQ("foo", action.GetBadgeText(100)); | 87 ASSERT_EQ("foo", action->GetBadgeText(1)); |
77 action.SetBadgeText(100, "bar"); | 88 ASSERT_EQ("foo", action->GetBadgeText(100)); |
78 ASSERT_EQ("foo", action.GetBadgeText(1)); | 89 action->SetBadgeText(100, "bar"); |
79 ASSERT_EQ("bar", action.GetBadgeText(100)); | 90 ASSERT_EQ("foo", action->GetBadgeText(1)); |
80 action.SetBadgeText(ExtensionAction::kDefaultTabId, "baz"); | 91 ASSERT_EQ("bar", action->GetBadgeText(100)); |
81 ASSERT_EQ("baz", action.GetBadgeText(1)); | 92 action->SetBadgeText(ExtensionAction::kDefaultTabId, "baz"); |
82 action.ClearAllValuesForTab(100); | 93 ASSERT_EQ("baz", action->GetBadgeText(1)); |
83 ASSERT_EQ("baz", action.GetBadgeText(100)); | 94 action->ClearAllValuesForTab(100); |
| 95 ASSERT_EQ("baz", action->GetBadgeText(100)); |
84 } | 96 } |
85 | 97 |
86 TEST(ExtensionActionTest, BadgeTextColor) { | 98 TEST(ExtensionActionTest, BadgeTextColor) { |
87 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 99 scoped_ptr<ExtensionAction> action = |
88 ASSERT_EQ(0x00000000u, action.GetBadgeTextColor(1)); | 100 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
89 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u); | 101 ASSERT_EQ(0x00000000u, action->GetBadgeTextColor(1)); |
90 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); | 102 action->SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFFFF0000u); |
91 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(100)); | 103 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(1)); |
92 action.SetBadgeTextColor(100, 0xFF00FF00); | 104 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(100)); |
93 ASSERT_EQ(0xFFFF0000u, action.GetBadgeTextColor(1)); | 105 action->SetBadgeTextColor(100, 0xFF00FF00); |
94 ASSERT_EQ(0xFF00FF00u, action.GetBadgeTextColor(100)); | 106 ASSERT_EQ(0xFFFF0000u, action->GetBadgeTextColor(1)); |
95 action.SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu); | 107 ASSERT_EQ(0xFF00FF00u, action->GetBadgeTextColor(100)); |
96 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(1)); | 108 action->SetBadgeTextColor(ExtensionAction::kDefaultTabId, 0xFF0000FFu); |
97 action.ClearAllValuesForTab(100); | 109 ASSERT_EQ(0xFF0000FFu, action->GetBadgeTextColor(1)); |
98 ASSERT_EQ(0xFF0000FFu, action.GetBadgeTextColor(100)); | 110 action->ClearAllValuesForTab(100); |
| 111 ASSERT_EQ(0xFF0000FFu, action->GetBadgeTextColor(100)); |
99 } | 112 } |
100 | 113 |
101 TEST(ExtensionActionTest, BadgeBackgroundColor) { | 114 TEST(ExtensionActionTest, BadgeBackgroundColor) { |
102 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, ActionInfo()); | 115 scoped_ptr<ExtensionAction> action = |
103 ASSERT_EQ(0x00000000u, action.GetBadgeBackgroundColor(1)); | 116 CreateAction(ActionInfo::TYPE_PAGE, ActionInfo()); |
104 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, | 117 ASSERT_EQ(0x00000000u, action->GetBadgeBackgroundColor(1)); |
| 118 action->SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, |
105 0xFFFF0000u); | 119 0xFFFF0000u); |
106 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); | 120 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(1)); |
107 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(100)); | 121 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(100)); |
108 action.SetBadgeBackgroundColor(100, 0xFF00FF00); | 122 action->SetBadgeBackgroundColor(100, 0xFF00FF00); |
109 ASSERT_EQ(0xFFFF0000u, action.GetBadgeBackgroundColor(1)); | 123 ASSERT_EQ(0xFFFF0000u, action->GetBadgeBackgroundColor(1)); |
110 ASSERT_EQ(0xFF00FF00u, action.GetBadgeBackgroundColor(100)); | 124 ASSERT_EQ(0xFF00FF00u, action->GetBadgeBackgroundColor(100)); |
111 action.SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, | 125 action->SetBadgeBackgroundColor(ExtensionAction::kDefaultTabId, |
112 0xFF0000FFu); | 126 0xFF0000FFu); |
113 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(1)); | 127 ASSERT_EQ(0xFF0000FFu, action->GetBadgeBackgroundColor(1)); |
114 action.ClearAllValuesForTab(100); | 128 action->ClearAllValuesForTab(100); |
115 ASSERT_EQ(0xFF0000FFu, action.GetBadgeBackgroundColor(100)); | 129 ASSERT_EQ(0xFF0000FFu, action->GetBadgeBackgroundColor(100)); |
116 } | 130 } |
117 | 131 |
118 TEST(ExtensionActionTest, PopupUrl) { | 132 TEST(ExtensionActionTest, PopupUrl) { |
119 GURL url_unset; | 133 GURL url_unset; |
120 GURL url_foo("http://www.example.com/foo.html"); | 134 GURL url_foo("http://www.example.com/foo.html"); |
121 GURL url_bar("http://www.example.com/bar.html"); | 135 GURL url_bar("http://www.example.com/bar.html"); |
122 GURL url_baz("http://www.example.com/baz.html"); | 136 GURL url_baz("http://www.example.com/baz.html"); |
123 | 137 |
124 ActionInfo action_info; | 138 ActionInfo action_info; |
125 action_info.default_popup_url = url_foo; | 139 action_info.default_popup_url = url_foo; |
126 ExtensionAction action(std::string(), ActionInfo::TYPE_PAGE, action_info); | 140 scoped_ptr<ExtensionAction> action = |
| 141 CreateAction(ActionInfo::TYPE_PAGE, action_info); |
127 | 142 |
128 ASSERT_EQ(url_foo, action.GetPopupUrl(1)); | 143 ASSERT_EQ(url_foo, action->GetPopupUrl(1)); |
129 ASSERT_EQ(url_foo, action.GetPopupUrl(100)); | 144 ASSERT_EQ(url_foo, action->GetPopupUrl(100)); |
130 ASSERT_TRUE(action.HasPopup(1)); | 145 ASSERT_TRUE(action->HasPopup(1)); |
131 ASSERT_TRUE(action.HasPopup(100)); | 146 ASSERT_TRUE(action->HasPopup(100)); |
132 | 147 |
133 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset); | 148 action->SetPopupUrl(ExtensionAction::kDefaultTabId, url_unset); |
134 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); | 149 ASSERT_EQ(url_unset, action->GetPopupUrl(1)); |
135 ASSERT_EQ(url_unset, action.GetPopupUrl(100)); | 150 ASSERT_EQ(url_unset, action->GetPopupUrl(100)); |
136 ASSERT_FALSE(action.HasPopup(1)); | 151 ASSERT_FALSE(action->HasPopup(1)); |
137 ASSERT_FALSE(action.HasPopup(100)); | 152 ASSERT_FALSE(action->HasPopup(100)); |
138 | 153 |
139 action.SetPopupUrl(100, url_bar); | 154 action->SetPopupUrl(100, url_bar); |
140 ASSERT_EQ(url_unset, action.GetPopupUrl(1)); | 155 ASSERT_EQ(url_unset, action->GetPopupUrl(1)); |
141 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 156 ASSERT_EQ(url_bar, action->GetPopupUrl(100)); |
142 | 157 |
143 action.SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); | 158 action->SetPopupUrl(ExtensionAction::kDefaultTabId, url_baz); |
144 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 159 ASSERT_EQ(url_baz, action->GetPopupUrl(1)); |
145 ASSERT_EQ(url_bar, action.GetPopupUrl(100)); | 160 ASSERT_EQ(url_bar, action->GetPopupUrl(100)); |
146 | 161 |
147 action.ClearAllValuesForTab(100); | 162 action->ClearAllValuesForTab(100); |
148 ASSERT_EQ(url_baz, action.GetPopupUrl(1)); | 163 ASSERT_EQ(url_baz, action->GetPopupUrl(1)); |
149 ASSERT_EQ(url_baz, action.GetPopupUrl(100)); | 164 ASSERT_EQ(url_baz, action->GetPopupUrl(100)); |
150 } | 165 } |
151 | 166 |
152 } // namespace | 167 } // namespace extensions |
OLD | NEW |