1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts2.views.jsp.ui;
22
23 import java.util.HashMap;
24 import java.util.Map;
25
26 import javax.servlet.jsp.tagext.BodyContent;
27
28 import org.apache.struts2.TestAction;
29 import org.apache.struts2.views.jsp.AbstractUITagTest;
30
31 import com.mockobjects.servlet.MockBodyContent;
32
33
34 /***
35 * Unit test for {@link SubmitTag}.
36 *
37 */
38 public class SubmitTest extends AbstractUITagTest {
39
40 public void testDefaultValues() throws Exception {
41 TestAction testAction = (TestAction) action;
42 testAction.setFoo("bar");
43
44 SubmitTag tag = new SubmitTag();
45 tag.setPageContext(pageContext);
46 tag.setLabel("mylabel");
47 tag.setName("myname");
48 tag.setTitle("mytitle");
49
50 tag.doStartTag();
51 tag.doEndTag();
52
53 verify(TextFieldTag.class.getResource("Submit-2.txt"));
54 }
55
56 public void testSimple() throws Exception {
57 TestAction testAction = (TestAction) action;
58 testAction.setFoo("bar");
59
60 SubmitTag tag = new SubmitTag();
61 tag.setPageContext(pageContext);
62 tag.setLabel("mylabel");
63 tag.setAlign("left");
64 tag.setName("myname");
65 tag.setValue("%{foo}");
66
67 tag.doStartTag();
68 tag.doEndTag();
69
70 verify(TextFieldTag.class.getResource("Submit-1.txt"));
71 }
72
73 public void testButtonSimple() throws Exception {
74 TestAction testAction = (TestAction) action;
75 testAction.setFoo("bar");
76
77 SubmitTag tag = new SubmitTag();
78 tag.setPageContext(pageContext);
79 tag.setType("button");
80 tag.setName("myname");
81 tag.setValue("%{foo}");
82
83 tag.doStartTag();
84 tag.doEndTag();
85
86 verify(TextFieldTag.class.getResource("Submit-3.txt"));
87 }
88
89 public void testButtonSimpleWithBody() throws Exception {
90 TestAction testAction = (TestAction) action;
91 testAction.setFoo("bar");
92
93 SubmitTag tag = new SubmitTag();
94 tag.setPageContext(pageContext);
95 tag.setType("button");
96 tag.setName("myname");
97 tag.setValue("%{foo}");
98
99 tag.doStartTag();
100 StrutsBodyContent body = new StrutsBodyContent(null);
101 body.append("foo");
102 tag.setBodyContent(body);
103 tag.doEndTag();
104
105 verify(TextFieldTag.class.getResource("Submit-7.txt"));
106 }
107
108 public void testButtonWithLabel() throws Exception {
109 TestAction testAction = (TestAction) action;
110 testAction.setFoo("bar");
111
112 SubmitTag tag = new SubmitTag();
113 tag.setPageContext(pageContext);
114 tag.setLabel("mylabel");
115 tag.setType("button");
116 tag.setAlign("left");
117 tag.setName("myname");
118 tag.setValue("%{foo}");
119
120 tag.doStartTag();
121 tag.doEndTag();
122
123 verify(TextFieldTag.class.getResource("Submit-4.txt"));
124 }
125
126 public void testImageSimple() throws Exception {
127 TestAction testAction = (TestAction) action;
128 testAction.setFoo("bar");
129
130 SubmitTag tag = new SubmitTag();
131 tag.setPageContext(pageContext);
132 tag.setType("image");
133 tag.setName("myname");
134 tag.setValue("%{foo}");
135
136 tag.doStartTag();
137 tag.doEndTag();
138
139 verify(TextFieldTag.class.getResource("Submit-5.txt"));
140 }
141
142 public void testImageWithSrc() throws Exception {
143 TestAction testAction = (TestAction) action;
144 testAction.setFoo("bar");
145
146 SubmitTag tag = new SubmitTag();
147 tag.setPageContext(pageContext);
148 tag.setType("image");
149 tag.setName("myname");
150 tag.setLabel("mylabel");
151 tag.setValue("%{foo}");
152 tag.setSrc("some.gif");
153
154 tag.doStartTag();
155 tag.doEndTag();
156
157 verify(TextFieldTag.class.getResource("Submit-6.txt"));
158 }
159
160 public void testSimpleThemeImageUsingActionAndMethod() throws Exception {
161 TestAction testAction = (TestAction) action;
162 testAction.setFoo("bar");
163
164 SubmitTag tag = new SubmitTag();
165 tag.setPageContext(pageContext);
166 tag.setTheme("simple");
167 tag.setType("button");
168 tag.setName("myname");
169 tag.setLabel("mylabel");
170 tag.setAction("manager");
171 tag.setMethod("update");
172 tag.setAlign("left");
173
174 tag.doStartTag();
175 tag.doEndTag();
176
177 assertEquals("<button type=\"submit\" id=\"myname\" name=\"action:manager!update\" value=\"Submit\">mylabel</button>", writer.toString().trim());
178 }
179
180 public void testSimpleThemeImageUsingActionOnly() throws Exception {
181 TestAction testAction = (TestAction) action;
182 testAction.setFoo("bar");
183
184 SubmitTag tag = new SubmitTag();
185 tag.setPageContext(pageContext);
186 tag.setTheme("simple");
187 tag.setType("button");
188 tag.setName("myname");
189 tag.setLabel("mylabel");
190 tag.setAction("manager");
191 tag.setMethod(null);
192 tag.setAlign("left");
193
194 tag.doStartTag();
195 tag.doEndTag();
196
197 assertEquals("<button type=\"submit\" id=\"myname\" name=\"action:manager\" value=\"Submit\">mylabel</button>", writer.toString().trim());
198 }
199
200 public void testSimpleThemeImageUsingMethodOnly() throws Exception {
201 TestAction testAction = (TestAction) action;
202 testAction.setFoo("bar");
203
204 SubmitTag tag = new SubmitTag();
205 tag.setPageContext(pageContext);
206 tag.setTheme("simple");
207 tag.setType("button");
208 tag.setName("myname");
209 tag.setLabel("mylabel");
210 tag.setAction(null);
211 tag.setMethod("update");
212 tag.setAlign("left");
213
214 tag.doStartTag();
215 tag.doEndTag();
216
217 assertEquals("<button type=\"submit\" id=\"myname\" name=\"method:update\" value=\"Submit\">mylabel</button>", writer.toString().trim());
218 }
219
220 public void testSimpleThemeInput() throws Exception {
221 TestAction testAction = (TestAction) action;
222 testAction.setFoo("bar");
223
224 SubmitTag tag = new SubmitTag();
225 tag.setPageContext(pageContext);
226 tag.setTheme("simple");
227 tag.setType("input");
228 tag.setName("myname");
229 tag.setLabel("mylabel");
230 tag.setAction(null);
231 tag.setMethod(null);
232
233 tag.doStartTag();
234 tag.doEndTag();
235
236 assertEquals("<input type=\"submit\" id=\"myname\" name=\"myname\" value=\"Submit\"/>", writer.toString().trim());
237 }
238
239 /***
240 * Initialize a map of {@link org.apache.struts2.views.jsp.AbstractUITagTest.PropertyHolder} for generic tag
241 * property testing. Will be used when calling {@link #verifyGenericProperties(org.apache.struts2.views.jsp.ui.AbstractUITag,
242 * String, String[])} as properties to verify.<p/> This implementation extends testdata from AbstractUITag.
243 *
244 * @return A Map of PropertyHolders values bound to {@link org.apache.struts2.views.jsp.AbstractUITagTest.PropertyHolder#getName()}
245 * as key.
246 */
247 protected Map initializedGenericTagTestProperties() {
248 Map result = new HashMap();
249 new PropertyHolder("title", "someTitle").addToMap(result);
250 new PropertyHolder("cssClass", "cssClass1", "class=\"cssClass1\"").addToMap(result);
251 new PropertyHolder("cssStyle", "cssStyle1", "style=\"cssStyle1\"").addToMap(result);
252 new PropertyHolder("name", "someName").addToMap(result);
253 new PropertyHolder("value", "someValue").addToMap(result);
254 return result;
255 }
256
257 public void testGenericSimple() throws Exception {
258 SubmitTag tag = new SubmitTag();
259 verifyGenericProperties(tag, "simple", null);
260 }
261
262 public void testGenericXhtml() throws Exception {
263 SubmitTag tag = new SubmitTag();
264 verifyGenericProperties(tag, "xhtml", null);
265 }
266
267 public void testGenericAjax() throws Exception {
268 SubmitTag tag = new SubmitTag();
269 verifyGenericProperties(tag, "ajax", null);
270 }
271
272 }