View Javadoc

1   /*
2    * $Id: TooltipTest.java 439747 2006-09-03 09:22:46Z mrdon $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts2.views.jsp.ui;
19  
20  import org.apache.struts2.TestConfigurationProvider;
21  import org.apache.struts2.views.jsp.AbstractUITagTest;
22  import org.apache.struts2.views.jsp.ParamTag;
23  import org.apache.struts2.views.jsp.StrutsMockBodyContent;
24  
25  import com.mockobjects.servlet.MockJspWriter;
26  
27  /***
28   * UI components Tooltip test case.
29   */
30  public class TooltipTest extends AbstractUITagTest {
31  
32      public void testWithoutFormOverriding() throws Exception {
33  
34          configurationManager.clearConfigurationProviders();
35          configurationManager.addConfigurationProvider(new TestConfigurationProvider());
36  
37          // we test it on textfield component, but since the tooltip are common to
38          // all components, it will be the same for other components as well.
39          FormTag formTag = new FormTag();
40          formTag.setPageContext(pageContext);
41          formTag.setId("myFormId");
42          formTag.setAction("testAction");
43          formTag.setName("myForm");
44  
45  
46          TextFieldTag tag = new TextFieldTag();
47          tag.setPageContext(pageContext);
48          tag.setLabel("MyLabel");
49          tag.setId("myId");
50  
51  
52          tag.setTooltip("myTooltip");
53          tag.setTooltipConfig(
54                  "#{" +
55                          "'tooltipIcon':'/struts/tooltip/myTooltip.gif', " +
56                          "'tooltipDelay':'500', " +
57                          "'jsTooltipEnabled':'true' "+
58                          "}"
59          );
60  
61          formTag.doStartTag();
62          tag.doStartTag();
63          tag.doEndTag();
64          formTag.doEndTag();
65  
66          verify(TooltipTest.class.getResource("tooltip-1.txt"));
67      }
68  
69      public void testWithFormOverriding() throws Exception {
70  
71          configurationManager.clearConfigurationProviders();
72          configurationManager.addConfigurationProvider(new TestConfigurationProvider());
73  
74          FormTag formTag = new FormTag();
75          formTag.setPageContext(pageContext);
76          formTag.setName("myForm");
77          formTag.setId("myFormId");
78          formTag.setAction("testAction");
79  
80          formTag.setTooltipConfig(
81          		"#{" +
82                  "'tooltipIcon':'/struts/tooltip/myTooltip.gif', " +
83                  "'tooltipDelay':'500', " +
84                  "'jsTooltipEnabled':'true' "+
85                  "}"
86          );
87  
88  
89          TextFieldTag tag = new TextFieldTag();
90          tag.setPageContext(pageContext);
91          tag.setLabel("MyLabel");
92          tag.setId("myId");
93  
94          tag.setTooltip("myTooltip");
95  
96          formTag.doStartTag();
97          tag.doStartTag();
98          tag.doEndTag();
99          formTag.doEndTag();
100 
101         verify(TooltipTest.class.getResource("tooltip-2.txt"));
102     }
103 
104     public void testWithPartialFormOverriding() throws Exception {
105 
106         configurationManager.clearConfigurationProviders();
107         configurationManager.addConfigurationProvider(new TestConfigurationProvider());
108 
109         FormTag formTag = new FormTag();
110         formTag.setName("myForm");
111         formTag.setPageContext(pageContext);
112         formTag.setId("myFormId");
113         formTag.setAction("testAction");
114 
115         formTag.setTooltipConfig(
116         		"#{" +
117                 "'tooltipIcon':'/struts/tooltip/myTooltip.gif', " +
118                 "'tooltipDelay':'500', " +
119                 "'jsTooltipEnabled':'true' "+
120                 "}"
121         );
122 
123 
124         TextFieldTag tag = new TextFieldTag();
125         tag.setPageContext(pageContext);
126         tag.setLabel("MyLabel");
127         tag.setId("myId");
128 
129         tag.setTooltip("myTooltip");
130         tag.setTooltipConfig(
131         		"#{" +
132                 "'tooltipIcon':'/struts/tooltip/myTooltip2.gif', " +
133                 "'tooltipDelay':'5000' " +
134                 "}"
135         );
136 
137         formTag.doStartTag();
138         tag.doStartTag();
139         tag.doEndTag();
140         formTag.doEndTag();
141 
142         verify(TooltipTest.class.getResource("tooltip-3.txt"));
143     }
144 
145 
146     public void testUsingParamValueToSetConfigurations() throws Exception {
147         configurationManager.clearConfigurationProviders();
148         configurationManager.addConfigurationProvider(new TestConfigurationProvider());
149 
150         FormTag formTag = new FormTag();
151         formTag.setName("myForm");
152         formTag.setPageContext(pageContext);
153         formTag.setId("myFormId");
154         formTag.setAction("testAction");
155 
156 
157         ParamTag formParamTag = new ParamTag();
158         formParamTag.setPageContext(pageContext);
159         formParamTag.setName("tooltipConfig");
160         formParamTag.setValue(
161         		"#{" +
162                 "'tooltipIcon':'/struts/tooltip/myTooltip.gif', " +
163                 "'tooltipDelay':'500', " +
164                 "'jsTooltipEnabled':'true' "+
165                 "}"
166         );
167 
168 
169         TextFieldTag tag = new TextFieldTag();
170         tag.setPageContext(pageContext);
171         tag.setLabel("MyLabel");
172         tag.setId("myId");
173         tag.setTooltip("myTooltip");
174 
175         ParamTag textFieldParamTag = new ParamTag();
176         textFieldParamTag.setPageContext(pageContext);
177         textFieldParamTag.setName("tooltipConfig");
178         textFieldParamTag.setValue(
179         		"#{" +
180                 "'tooltipIcon':'/struts/tooltip/myTooltip2.gif', " +
181                 "'tooltipDelay':'5000' "+
182                 "}"
183         );
184 
185         formTag.doStartTag();
186         formParamTag.doStartTag();
187         formParamTag.doEndTag();
188         tag.doStartTag();
189         textFieldParamTag.doStartTag();
190         textFieldParamTag.doEndTag();
191         tag.doEndTag();
192         formTag.doEndTag();
193 
194         verify(TooltipTest.class.getResource("tooltip-3.txt"));
195     }
196 
197 
198     public void testUsingParamBodyValueToSetConfigurations() throws Exception {
199         configurationManager.clearConfigurationProviders();
200         configurationManager.addConfigurationProvider(new TestConfigurationProvider());
201 
202         FormTag formTag = new FormTag();
203         formTag.setName("myForm");
204         formTag.setPageContext(pageContext);
205         formTag.setId("myFormId");
206         formTag.setAction("testAction");
207 
208 
209         ParamTag formParamTag = new ParamTag();
210         formParamTag.setPageContext(pageContext);
211         formParamTag.setName("tooltipConfig");
212         StrutsMockBodyContent bodyContent = new StrutsMockBodyContent(new MockJspWriter());
213         bodyContent.setString(
214                 "tooltipIcon=/struts/tooltip/myTooltip.gif| " +
215                 "tooltipDelay=500| " +
216                 "jsTooltipEnabled=true "
217         );
218         formParamTag.setBodyContent(bodyContent);
219 
220         TextFieldTag tag = new TextFieldTag();
221         tag.setPageContext(pageContext);
222         tag.setLabel("MyLabel");
223         tag.setId("myId");
224         tag.setTooltip("myTooltip");
225 
226 
227         ParamTag textFieldParamTag = new ParamTag();
228         textFieldParamTag.setPageContext(pageContext);
229         textFieldParamTag.setName("tooltipConfig");
230         StrutsMockBodyContent bodyContent2 = new StrutsMockBodyContent(new MockJspWriter());
231         bodyContent2.setString(
232                 "tooltipIcon=/struts/tooltip/myTooltip2.gif| " +
233                 "tooltipDelay=5000 "
234         );
235         textFieldParamTag.setBodyContent(bodyContent2);
236 
237         formTag.doStartTag();
238         formParamTag.doStartTag();
239         formParamTag.doEndTag();
240         tag.doStartTag();
241         textFieldParamTag.doStartTag();
242         textFieldParamTag.doEndTag();
243         tag.doEndTag();
244         formTag.doEndTag();
245         
246         System.out.println(writer.toString());
247 
248         verify(TooltipTest.class.getResource("tooltip-3.txt"));
249     }
250 }