KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > web > servlet > tags > MessageTagTests


1 /*
2  * Copyright 2002-2005 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.web.servlet.tags;
18
19 import java.util.Arrays JavaDoc;
20 import java.util.List JavaDoc;
21 import java.util.Locale JavaDoc;
22
23 import javax.servlet.ServletException JavaDoc;
24 import javax.servlet.http.HttpServletRequest JavaDoc;
25 import javax.servlet.jsp.JspException JavaDoc;
26 import javax.servlet.jsp.PageContext JavaDoc;
27 import javax.servlet.jsp.tagext.Tag JavaDoc;
28
29 import org.springframework.context.MessageSourceResolvable;
30 import org.springframework.context.support.DefaultMessageSourceResolvable;
31 import org.springframework.mock.web.MockHttpServletRequest;
32 import org.springframework.web.context.ConfigurableWebApplicationContext;
33 import org.springframework.web.servlet.support.RequestContext;
34 import org.springframework.web.servlet.support.RequestContextUtils;
35
36 /**
37  * @author Juergen Hoeller
38  * @author Alef Arendsen
39  */

40 public class MessageTagTests extends AbstractTagTests {
41
42     public void testMessageTagWithCode1() throws JspException JavaDoc {
43         PageContext JavaDoc pc = createPageContext();
44         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
45         MessageTag tag = new MessageTag() {
46             protected void writeMessage(String JavaDoc msg) {
47                 message.append(msg);
48             }
49         };
50         tag.setPageContext(pc);
51         tag.setCode("test");
52         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
53         assertEquals("Correct message", "test message", message.toString());
54     }
55
56     public void testMessageTagWithCode2() throws JspException JavaDoc {
57         PageContext JavaDoc pc = createPageContext();
58         MockHttpServletRequest request = (MockHttpServletRequest) pc.getRequest();
59         request.addPreferredLocale(Locale.CANADA);
60         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
61         MessageTag tag = new MessageTag() {
62             protected void writeMessage(String JavaDoc msg) {
63                 message.append(msg);
64             }
65         };
66         tag.setPageContext(pc);
67         pc.setAttribute("myattr", "test");
68         tag.setCode("${myattr}");
69         tag.setHtmlEscape("true");
70         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
71         assertEquals("Correct message", "Canadian & test message", message.toString());
72     }
73
74     public void testMessageTagWithNullCode() throws JspException JavaDoc {
75         PageContext JavaDoc pc = createPageContext();
76         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
77         MessageTag tag = new MessageTag() {
78             protected void writeMessage(String JavaDoc msg) {
79                 message.append(msg);
80             }
81         };
82         tag.setPageContext(pc);
83         tag.setCode(null);
84         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
85         assertEquals("Correct message", "null", message.toString());
86     }
87
88     public void testMessageTagWithCodeAndStringArgument() throws JspException JavaDoc {
89         PageContext JavaDoc pc = createPageContext();
90         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
91         MessageTag tag = new MessageTag() {
92             protected void writeMessage(String JavaDoc msg) {
93                 message.append(msg);
94             }
95         };
96         tag.setPageContext(pc);
97         tag.setCode("testArgs");
98         tag.setArguments("arg1,arg2");
99         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
100         assertEquals("Correct message", "test arg1 message arg2", message.toString());
101     }
102
103     public void testMessageTagWithCodeAndArrayArgument() throws JspException JavaDoc {
104         PageContext JavaDoc pc = createPageContext();
105         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
106         MessageTag tag = new MessageTag() {
107             protected void writeMessage(String JavaDoc msg) {
108                 message.append(msg);
109             }
110         };
111         tag.setPageContext(pc);
112         tag.setCode("testArgs");
113         tag.setArguments(new Object JavaDoc[] {"arg1", new Integer JavaDoc(5)});
114         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
115         assertEquals("Correct message", "test arg1 message 5", message.toString());
116     }
117
118     public void testMessageTagWithCodeAndObjectArgument() throws JspException JavaDoc {
119         PageContext JavaDoc pc = createPageContext();
120         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
121         MessageTag tag = new MessageTag() {
122             protected void writeMessage(String JavaDoc msg) {
123                 message.append(msg);
124             }
125         };
126         tag.setPageContext(pc);
127         tag.setCode("testArgs");
128         tag.setArguments(new Integer JavaDoc(5));
129         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
130         assertEquals("Correct message", "test 5 message {1}", message.toString());
131     }
132
133     public void testMessageTagWithCodeAndExpressionArgument() throws JspException JavaDoc {
134         PageContext JavaDoc pc = createPageContext();
135         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
136         MessageTag tag = new MessageTag() {
137             protected void writeMessage(String JavaDoc msg) {
138                 message.append(msg);
139             }
140         };
141         tag.setPageContext(pc);
142         tag.setCode("testArgs");
143         tag.setArguments("${arg1}");
144         pc.setAttribute("arg1", "my,value");
145         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
146         assertEquals("Correct message", "test my,value message {1}", message.toString());
147     }
148
149     public void testMessageTagWithCodeAndExpressionArguments() throws JspException JavaDoc {
150         PageContext JavaDoc pc = createPageContext();
151         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
152         MessageTag tag = new MessageTag() {
153             protected void writeMessage(String JavaDoc msg) {
154                 message.append(msg);
155             }
156         };
157         tag.setPageContext(pc);
158         tag.setCode("testArgs");
159         tag.setArguments("${arg1},${arg2}");
160         pc.setAttribute("arg1", "my,value");
161         pc.setAttribute("arg2", new Integer JavaDoc(5));
162         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
163         assertEquals("Correct message", "test my,value message 5", message.toString());
164     }
165
166     public void testMessageTagWithCodeAndText1() throws JspException JavaDoc {
167         PageContext JavaDoc pc = createPageContext();
168         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
169         MessageTag tag = new MessageTag() {
170             protected void writeMessage(String JavaDoc msg) {
171                 message.append(msg);
172             }
173         };
174         tag.setPageContext(pc);
175         tag.setCode("test");
176         tag.setText("testtext");
177         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
178         assertEquals("Correct message", "test message", (message.toString()));
179     }
180
181     public void testMessageTagWithCodeAndText2() throws JspException JavaDoc {
182         PageContext JavaDoc pc = createPageContext();
183         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
184         MessageTag tag = new MessageTag() {
185             protected void writeMessage(String JavaDoc msg) {
186                 message.append(msg);
187             }
188         };
189         tag.setPageContext(pc);
190         pc.setAttribute("myattr", "test & text");
191         tag.setCode("test2");
192         tag.setText("${myattr}");
193         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
194         assertEquals("Correct message", "test & text", message.toString());
195     }
196
197     public void testMessageTagWithText() throws JspException JavaDoc {
198         PageContext JavaDoc pc = createPageContext();
199         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
200         MessageTag tag = new MessageTag() {
201             protected void writeMessage(String JavaDoc msg) {
202                 message.append(msg);
203             }
204         };
205         tag.setPageContext(pc);
206         tag.setText("test & text");
207         tag.setHtmlEscape("true");
208         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
209         assertEquals("Correct message", "test & text", message.toString());
210     }
211     
212     public void testMessageTagWithTextAndJavaScriptEscape() throws JspException JavaDoc {
213         PageContext JavaDoc pc = createPageContext();
214         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
215         MessageTag tag = new MessageTag() {
216             protected void writeMessage(String JavaDoc msg) {
217                 message.append(msg);
218             }
219         };
220         tag.setPageContext(pc);
221         tag.setText("' test & text \\");
222         tag.setJavaScriptEscape("true");
223         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
224         assertEquals("Correct message", "\\' test & text \\\\", message.toString());
225     }
226
227     public void testMessageTagWithTextAndHtmlEscapeAndJavaScriptEscape() throws JspException JavaDoc {
228         PageContext JavaDoc pc = createPageContext();
229         final StringBuffer JavaDoc message = new StringBuffer JavaDoc();
230         MessageTag tag = new MessageTag() {
231             protected void writeMessage(String JavaDoc msg) {
232                 message.append(msg);
233             }
234         };
235         tag.setPageContext(pc);
236         tag.setText("' test & text \\");
237         tag.setHtmlEscape("true");
238         tag.setJavaScriptEscape("true");
239         assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE);
240         assertEquals("Correct message", "\\' test & text \\\\", message.toString());
241     }
242
243     public void testMessageWithVarAndScope() throws JspException JavaDoc {
244         PageContext JavaDoc pc = createPageContext();
245         MessageTag tag = new MessageTag();
246         tag.setPageContext(pc);
247         tag.setText("text & text");
248         tag.setVar("testvar");
249         tag.setScope("page");
250         tag.doStartTag();
251         assertEquals("text & text", pc.getAttribute("testvar"));
252         tag.release();
253         
254         tag = new MessageTag();
255         tag.setPageContext(pc);
256         tag.setCode("test");
257         tag.setVar("testvar2");
258         tag.doStartTag();
259         assertEquals("Correct message", "test message", pc.getAttribute("testvar2"));
260         tag.release();
261     }
262
263     public void testMessageWithVar() throws JspException JavaDoc {
264         PageContext JavaDoc pc = createPageContext();
265         MessageTag tag = new MessageTag();
266         tag.setPageContext(pc);
267         tag.setText("text & text");
268         tag.setVar("testvar");
269         tag.doStartTag();
270         assertEquals("text & text", pc.getAttribute("testvar"));
271         tag.release();
272
273         // try to reuse
274
tag.setPageContext(pc);
275         tag.setCode("test");
276         tag.setVar("testvar");
277             
278         tag.doStartTag();
279         assertEquals("Correct message", "test message", pc.getAttribute("testvar"));
280     }
281     
282     public void testNullMessageSource() throws JspException JavaDoc {
283         PageContext JavaDoc pc = createPageContext();
284         ConfigurableWebApplicationContext ctx = (ConfigurableWebApplicationContext)
285                 RequestContextUtils.getWebApplicationContext(pc.getRequest(), pc.getServletContext());
286         ctx.close();
287
288         MessageTag tag = new MessageTag();
289         tag.setPageContext(pc);
290         tag.setCode("test");
291         tag.setVar("testvar2");
292         tag.doStartTag();
293     }
294
295     public void testRequestContext() throws ServletException JavaDoc {
296         PageContext JavaDoc pc = createPageContext();
297         RequestContext rc = new RequestContext((HttpServletRequest JavaDoc) pc.getRequest(), pc.getServletContext());
298         assertEquals("test message", rc.getMessage("test"));
299         assertEquals("test message", rc.getMessage("test", (Object JavaDoc[]) null));
300         assertEquals("test message", rc.getMessage("test", "default"));
301         assertEquals("test message", rc.getMessage("test", (Object JavaDoc[]) null, "default"));
302         assertEquals("test arg1 message arg2",
303                 rc.getMessage("testArgs", new String JavaDoc[] {"arg1", "arg2"}, "default"));
304         assertEquals("test arg1 message arg2",
305                 rc.getMessage("testArgs", Arrays.asList(new String JavaDoc[] {"arg1", "arg2"}), "default"));
306         assertEquals("default", rc.getMessage("testa", "default"));
307         assertEquals("default", rc.getMessage("testa", (List JavaDoc) null, "default"));
308         MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String JavaDoc[] {"test"});
309         assertEquals("test message", rc.getMessage(resolvable));
310     }
311
312 }
313
Popular Tags