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.ArrayList;
24 import java.util.Collections;
25 import java.util.LinkedHashMap;
26 import java.util.List;
27 import java.util.Map;
28
29 import org.apache.struts2.views.jsp.AbstractUITagTest;
30 import org.apache.struts2.views.jsp.ParamTag;
31
32 import com.opensymphony.xwork2.Action;
33 import com.opensymphony.xwork2.ActionSupport;
34
35 /***
36 * FieldError Tag Test Case.
37 *
38 */
39 public class FieldErrorTagTest extends AbstractUITagTest {
40
41
42 public void testWithoutParamsWithFieldErrors() throws Exception {
43 FieldErrorTag tag = new FieldErrorTag();
44 ((InternalAction)action).setHaveFieldErrors(true);
45 tag.setPageContext(pageContext);
46 tag.doStartTag();
47 tag.doEndTag();
48
49 verify(FieldErrorTagTest.class.getResource("fielderror-1.txt"));
50 }
51
52 public void testWithoutParamsWithoutFieldErrors() throws Exception {
53 FieldErrorTag tag = new FieldErrorTag();
54 ((InternalAction)action).setHaveFieldErrors(false);
55 tag.setPageContext(pageContext);
56 tag.doStartTag();
57 tag.doEndTag();
58
59 verify(FieldErrorTagTest.class.getResource("fielderror-2.txt"));
60 }
61
62 public void testWithParamsWithFieldErrors1() throws Exception {
63 FieldErrorTag tag = new FieldErrorTag();
64 ((InternalAction)action).setHaveFieldErrors(true);
65 tag.setPageContext(pageContext);
66 tag.doStartTag();
67 ParamTag pTag1 = new ParamTag();
68 pTag1.setPageContext(pageContext);
69 pTag1.setValue("%{'field1'}");
70 pTag1.doStartTag();
71 pTag1.doEndTag();
72
73 ParamTag pTag2 = new ParamTag();
74 pTag2.setPageContext(pageContext);
75 pTag2.setValue("%{'field3'}");
76 pTag2.doStartTag();
77 pTag2.doEndTag();
78
79 tag.doEndTag();
80
81 verify(FieldErrorTagTest.class.getResource("fielderror-3.txt"));
82 }
83
84 public void testWithParamsWithFieldErrors2() throws Exception {
85 FieldErrorTag tag = new FieldErrorTag();
86 ((InternalAction)action).setHaveFieldErrors(true);
87 tag.setPageContext(pageContext);
88 tag.doStartTag();
89 ParamTag pTag1 = new ParamTag();
90 pTag1.setPageContext(pageContext);
91 pTag1.setValue("%{'field1'}");
92 pTag1.doStartTag();
93 pTag1.doEndTag();
94
95 ParamTag pTag2 = new ParamTag();
96 pTag2.setPageContext(pageContext);
97 pTag2.setValue("%{'field2'}");
98 pTag2.doStartTag();
99 pTag2.doEndTag();
100
101 tag.doEndTag();
102
103 verify(FieldErrorTagTest.class.getResource("fielderror-4.txt"));
104 }
105
106
107 public void testWithParamsWithFieldErrors3() throws Exception {
108 FieldErrorTag tag = new FieldErrorTag();
109 ((InternalAction)action).setHaveFieldErrors(true);
110 tag.setPageContext(pageContext);
111 tag.doStartTag();
112 ParamTag pTag1 = new ParamTag();
113 pTag1.setPageContext(pageContext);
114 pTag1.setValue("%{'field2'}");
115 pTag1.doStartTag();
116 pTag1.doEndTag();
117
118 tag.doEndTag();
119
120 verify(FieldErrorTagTest.class.getResource("fielderror-5.txt"));
121 }
122
123 public void testWithParamsWithoutFieldErrors1() throws Exception {
124 FieldErrorTag tag = new FieldErrorTag();
125 ((InternalAction)action).setHaveFieldErrors(false);
126 tag.setPageContext(pageContext);
127 tag.doStartTag();
128 ParamTag pTag1 = new ParamTag();
129 pTag1.setPageContext(pageContext);
130 pTag1.setValue("%{'field1'}");
131 pTag1.doStartTag();
132 pTag1.doEndTag();
133
134 ParamTag pTag2 = new ParamTag();
135 pTag2.setPageContext(pageContext);
136 pTag2.setValue("%{'field3'}");
137 pTag2.doStartTag();
138 pTag2.doEndTag();
139 tag.doEndTag();
140
141 verify(FieldErrorTagTest.class.getResource("fielderror-2.txt"));
142 }
143
144 public void testWithParamsWithoutFieldErrors2() throws Exception {
145 FieldErrorTag tag = new FieldErrorTag();
146 ((InternalAction)action).setHaveFieldErrors(false);
147 tag.setPageContext(pageContext);
148 tag.doStartTag();
149 ParamTag pTag1 = new ParamTag();
150 pTag1.setPageContext(pageContext);
151 pTag1.setValue("%{'field1'}");
152 pTag1.doStartTag();
153 pTag1.doEndTag();
154
155 ParamTag pTag2 = new ParamTag();
156 pTag2.setPageContext(pageContext);
157 pTag2.setValue("%{'field3'}");
158 pTag2.doStartTag();
159 pTag2.doEndTag();
160 tag.doEndTag();
161
162 verify(FieldErrorTagTest.class.getResource("fielderror-2.txt"));
163 }
164
165
166 public void testWithParamsWithoutFieldErrors3() throws Exception {
167 FieldErrorTag tag = new FieldErrorTag();
168 ((InternalAction)action).setHaveFieldErrors(false);
169 tag.setPageContext(pageContext);
170 tag.doStartTag();
171 ParamTag pTag1 = new ParamTag();
172 pTag1.setPageContext(pageContext);
173 pTag1.setValue("%{'field2'}");
174 pTag1.doStartTag();
175 pTag1.doEndTag();
176
177 tag.doEndTag();
178
179 verify(FieldErrorTagTest.class.getResource("fielderror-2.txt"));
180 }
181
182 public void testWithNullFieldErrors() throws Exception {
183 FieldErrorTag tag = new FieldErrorTag();
184 ((InternalAction)action).setHaveFieldErrors(false);
185 ((InternalAction)action).setReturnNullForFieldErrors(true);
186 tag.setPageContext(pageContext);
187 tag.doStartTag();
188 ParamTag pTag1 = new ParamTag();
189 pTag1.setPageContext(pageContext);
190 pTag1.setValue("%{'field2'}");
191 pTag1.doStartTag();
192 pTag1.doEndTag();
193
194 tag.doEndTag();
195
196 verify(FieldErrorTagTest.class.getResource("fielderror-2.txt"));
197 }
198
199
200 public Action getAction() {
201 return new InternalAction();
202 }
203
204
205 public class InternalAction extends ActionSupport {
206
207 private boolean haveFieldErrors = false;
208 private boolean returnNullForFieldErrors = false;
209
210 public void setHaveFieldErrors(boolean haveFieldErrors) {
211 this.haveFieldErrors = haveFieldErrors;
212 }
213
214 public void setReturnNullForFieldErrors(boolean returnNullForFieldErrors) {
215 this.returnNullForFieldErrors = returnNullForFieldErrors;
216 }
217
218 public Map getFieldErrors() {
219 if (haveFieldErrors) {
220 List err1 = new ArrayList();
221 err1.add("field error message number 1");
222 List err2 = new ArrayList();
223 err2.add("field error message number 2");
224 List err3 = new ArrayList();
225 err3.add("field error message number 3");
226 Map fieldErrors = new LinkedHashMap();
227 fieldErrors.put("field1", err1);
228 fieldErrors.put("field2", err2);
229 fieldErrors.put("field3", err3);
230 return fieldErrors;
231 }
232 else if (returnNullForFieldErrors) {
233 return null;
234 }
235 else {
236 return Collections.EMPTY_MAP;
237 }
238 }
239
240 public boolean hasFieldErrors() {
241 return haveFieldErrors;
242 }
243 }
244 }
245