1 package com.atlassian.plugins.codegen.modules.common.web;
2
3 import org.junit.Before;
4 import org.junit.Test;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertNotNull;
8
9
10
11
12 public class WebItemTest extends AbstractWebFragmentTest<WebItemProperties>
13 {
14 public static final String GLOBAL_SETTINGS_SECTION = "system.admin/globalsettings";
15
16 public WebItemTest()
17 {
18 super("web-item", new WebItemModuleCreator());
19 }
20
21 @Before
22 public void setupProps() throws Exception
23 {
24 setProps(new WebItemProperties(MODULE_NAME, GLOBAL_SETTINGS_SECTION));
25 props.setIncludeExamples(false);
26 }
27
28 @Test
29 public void moduleHasDefaultKey() throws Exception
30 {
31 assertEquals(MODULE_KEY, getGeneratedModule().attributeValue("key"));
32 }
33
34 @Test
35 public void moduleHasSection() throws Exception
36 {
37 assertEquals(GLOBAL_SETTINGS_SECTION, getGeneratedModule().attributeValue("section"));
38 }
39
40 @Test
41 public void moduleHasDefaultWeight() throws Exception
42 {
43 assertEquals("1000", getGeneratedModule().attributeValue("weight"));
44 }
45
46 @Test
47 public void moduleHasSpecifiedWeight() throws Exception
48 {
49 props.setWeight(20);
50
51 assertEquals("20", getGeneratedModule().attributeValue("weight"));
52 }
53
54 @Test
55 public void iconIsAdded() throws Exception
56 {
57 props.setIcon(icon);
58
59 assertNotNull(getGeneratedModule().selectSingleNode("icon"));
60 }
61
62 @Test
63 public void iconHasLink() throws Exception
64 {
65 props.setIcon(icon);
66
67 assertEquals(icon.getLink().getValue(), getGeneratedModule().selectSingleNode("icon/link").getText());
68 }
69
70 @Test
71 public void iconHasWidth() throws Exception
72 {
73 props.setIcon(icon);
74
75 assertEquals(String.valueOf(icon.getWidth()), getGeneratedModule().selectSingleNode("icon/@width").getText());
76 }
77
78 @Test
79 public void iconHasHeight() throws Exception
80 {
81 props.setIcon(icon);
82
83 assertEquals(String.valueOf(icon.getHeight()), getGeneratedModule().selectSingleNode("icon/@height").getText());
84 }
85
86 @Test
87 public void labelIsAdded() throws Exception
88 {
89 props.setLabel(label);
90
91 assertNotNull(getGeneratedModule().selectSingleNode("label"));
92 }
93
94 @Test
95 public void labelHasI18nKey() throws Exception
96 {
97 props.setLabel(label);
98
99 assertEquals(label.getKey(), getGeneratedModule().selectSingleNode("label/@key").getText());
100 }
101
102 @Test
103 public void labelHasParams() throws Exception
104 {
105 props.setLabel(label);
106
107 assertEquals(2, getGeneratedModule().selectNodes("label/param").size());
108 }
109
110 @Test
111 public void labelParam0HasName() throws Exception
112 {
113 props.setLabel(label);
114
115 assertEquals("param0", getGeneratedModule().selectSingleNode("label/param[1]/@name").getText());
116 }
117
118 @Test
119 public void labelParam0HasValue() throws Exception
120 {
121 props.setLabel(label);
122
123 assertEquals(label.getParams().get("param0"), getGeneratedModule().selectSingleNode("label/param[1]/@value").getText());
124 }
125
126 @Test
127 public void labelParam1HasName() throws Exception
128 {
129 props.setLabel(label);
130
131 assertEquals("param1", getGeneratedModule().selectSingleNode("label/param[2]/@name").getText());
132 }
133
134 @Test
135 public void labelParam1HasValue() throws Exception
136 {
137 props.setLabel(label);
138
139 assertEquals(label.getParams().get("param1"), getGeneratedModule().selectSingleNode("label/param[2]/@value").getText());
140 }
141
142 @Test
143 public void labelStringIsAddedToI18nProperties() throws Exception
144 {
145 props.setLabel(label);
146
147 assertEquals(label.getValue(), getChangesetForModule().getI18nProperties().get(label.getKey()));
148 }
149
150 @Test
151 public void linkIsAdded() throws Exception
152 {
153 props.setLink(link);
154
155 assertNotNull(getGeneratedModule().selectSingleNode("link"));
156 }
157
158 @Test
159 public void linkHasId() throws Exception
160 {
161 props.setLink(link);
162
163 assertEquals(link.getLinkId(), getGeneratedModule().selectSingleNode("link/@linkId").getText());
164 }
165
166 @Test
167 public void linkHasLink() throws Exception
168 {
169 props.setLink(link);
170
171 assertEquals(link.getValue(), getGeneratedModule().selectSingleNode("link").getText());
172 }
173
174 @Test
175 public void paramsAreAdded() throws Exception
176 {
177 createParams();
178
179 assertEquals(2, getGeneratedModule().selectNodes("param").size());
180 }
181
182 @Test
183 public void param0HasValue() throws Exception
184 {
185 createParams();
186
187 assertEquals("true", getGeneratedModule().selectSingleNode("param[@name='isPopupLink']/@value").getText());
188 }
189
190 @Test
191 public void param1HasValue() throws Exception
192 {
193 createParams();
194
195 assertEquals("false", getGeneratedModule().selectSingleNode("param[@name='isSuperAwesome']/@value").getText());
196 }
197
198 @Test
199 public void tooltipIsAdded() throws Exception
200 {
201 props.setTooltip(tooltip);
202
203 assertNotNull(getGeneratedModule().selectSingleNode("tooltip"));
204 }
205
206 @Test
207 public void tooltipHasKey() throws Exception
208 {
209 props.setTooltip(tooltip);
210
211 assertEquals(tooltip.getKey(), getGeneratedModule().selectSingleNode("tooltip/@key").getText());
212 }
213
214 @Test
215 public void tooltipStringIsAddedToI18nProperties() throws Exception
216 {
217 props.setTooltip(tooltip);
218
219 assertEquals(tooltip.getValue(), getChangesetForModule().getI18nProperties().get(tooltip.getKey()));
220 }
221
222 protected void createParams()
223 {
224 props.addParam("isPopupLink", "true");
225 props.addParam("isSuperAwesome", "false");
226 }
227 }