001: /*
002: * $Id: UIComponentTest.java 474560 2006-11-13 23:09:31Z hermanns $
003: *
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021: package org.apache.struts2.components;
022:
023: import org.apache.struts2.TestConfigurationProvider;
024: import org.apache.struts2.views.jsp.AbstractUITagTest;
025: import org.apache.struts2.views.jsp.ui.AbstractRemoteCallUITag;
026: import org.apache.struts2.views.jsp.ui.ActionErrorTag;
027: import org.apache.struts2.views.jsp.ui.ActionMessageTag;
028: import org.apache.struts2.views.jsp.ui.AnchorTag;
029: import org.apache.struts2.views.jsp.ui.CheckboxTag;
030: import org.apache.struts2.views.jsp.ui.ComboBoxTag;
031: import org.apache.struts2.views.jsp.ui.DivTag;
032: import org.apache.struts2.views.jsp.ui.DoubleSelectTag;
033: import org.apache.struts2.views.jsp.ui.FieldErrorTag;
034: import org.apache.struts2.views.jsp.ui.FileTag;
035: import org.apache.struts2.views.jsp.ui.FormTag;
036: import org.apache.struts2.views.jsp.ui.HiddenTag;
037: import org.apache.struts2.views.jsp.ui.LabelTag;
038: import org.apache.struts2.views.jsp.ui.OptionTransferSelectTag;
039: import org.apache.struts2.views.jsp.ui.PasswordTag;
040: import org.apache.struts2.views.jsp.ui.RadioTag;
041: import org.apache.struts2.views.jsp.ui.SelectTag;
042: import org.apache.struts2.views.jsp.ui.SubmitTag;
043: import org.apache.struts2.views.jsp.ui.TextFieldTag;
044: import org.apache.struts2.views.jsp.ui.TextareaTag;
045: import org.apache.struts2.views.jsp.ui.TokenTag;
046:
047: import com.opensymphony.xwork2.ActionContext;
048:
049: /**
050: * Test case common for all UI component in general.
051: */
052: public class UIComponentTest extends AbstractUITagTest {
053:
054: // actionError
055: public void testActionErrorComponentDisposeItselfFromComponentStack()
056: throws Exception {
057: ActionMessageTag t = new ActionMessageTag();
058: t.setPageContext(pageContext);
059:
060: try {
061: t.doStartTag();
062: ActionErrorTag tag = new ActionErrorTag();
063: tag.setPageContext(pageContext);
064: tag.doStartTag();
065: assertEquals(tag.getComponent().getComponentStack().peek(),
066: tag.getComponent());
067: tag.doEndTag();
068: assertEquals(t.getComponent().getComponentStack().peek(), t
069: .getComponent());
070:
071: t.doEndTag();
072: } catch (Exception e) {
073: e.printStackTrace();
074: fail(e.toString());
075: }
076:
077: }
078:
079: // actionMessage
080: public void testActionMessageDisposeItselfFromComponentStack()
081: throws Exception {
082: ActionErrorTag t = new ActionErrorTag();
083: t.setPageContext(pageContext);
084:
085: try {
086: t.doStartTag();
087: ActionMessageTag tag = new ActionMessageTag();
088: tag.setPageContext(pageContext);
089: tag.doStartTag();
090: assertEquals(tag.getComponent().getComponentStack().peek(),
091: tag.getComponent());
092: tag.doEndTag();
093: assertEquals(t.getComponent().getComponentStack().peek(), t
094: .getComponent());
095:
096: t.doEndTag();
097: } catch (Exception e) {
098: e.printStackTrace();
099: fail(e.toString());
100: }
101: }
102:
103: // Anchor
104: public void testAnchorComponentDisposeItselfFromComponentStack()
105: throws Exception {
106:
107: TextFieldTag t = new TextFieldTag();
108: t.setPageContext(pageContext);
109: t.setName("textFieldName");
110:
111: AnchorTag tag = new AnchorTag();
112: tag.setPageContext(pageContext);
113:
114: try {
115: t.doStartTag();
116: tag.doStartTag();
117: assertEquals(tag.getComponent().getComponentStack().peek(),
118: tag.getComponent());
119: tag.doEndTag();
120: assertEquals(t.getComponent().getComponentStack().peek(), t
121: .getComponent());
122:
123: t.doEndTag();
124: } catch (Exception e) {
125: e.printStackTrace();
126: fail(e.toString());
127: }
128: }
129:
130: // checkbox
131: public void testCheckboxDisposeItselfFromComponentStack()
132: throws Exception {
133: ActionErrorTag t = new ActionErrorTag();
134: t.setPageContext(pageContext);
135:
136: try {
137: t.doStartTag();
138: CheckboxTag tag = new CheckboxTag();
139: tag.setName("name");
140: tag.setLabel("label");
141: tag.setPageContext(pageContext);
142: tag.doStartTag();
143: assertEquals(tag.getComponent().getComponentStack().peek(),
144: tag.getComponent());
145: tag.doEndTag();
146: assertEquals(t.getComponent().getComponentStack().peek(), t
147: .getComponent());
148:
149: t.doEndTag();
150: } catch (Exception e) {
151: e.printStackTrace();
152: fail(e.toString());
153: }
154: }
155:
156: // combobox
157: public void testComboboxDisposeItselfFromComponentStack()
158: throws Exception {
159: ActionErrorTag t = new ActionErrorTag();
160: t.setPageContext(pageContext);
161:
162: try {
163: t.doStartTag();
164: ComboBoxTag tag = new ComboBoxTag();
165: tag.setName("name");
166: tag.setLabel("label");
167: tag.setList("{'aaa','bbb','ccc'}");
168: tag.setPageContext(pageContext);
169: tag.doStartTag();
170: assertEquals(tag.getComponent().getComponentStack().peek(),
171: tag.getComponent());
172: tag.doEndTag();
173: assertEquals(t.getComponent().getComponentStack().peek(), t
174: .getComponent());
175:
176: t.doEndTag();
177: } catch (Exception e) {
178: e.printStackTrace();
179: fail(e.toString());
180: }
181: }
182:
183: // div
184: public void testDivComponentDisposeItselfFromComponentStack()
185: throws Exception {
186: ActionErrorTag t = new ActionErrorTag();
187: t.setPageContext(pageContext);
188:
189: try {
190: t.doStartTag();
191: AbstractRemoteCallUITag tag = new DivTag();
192: tag.setPageContext(pageContext);
193: tag.doStartTag();
194: assertEquals(tag.getComponent().getComponentStack().peek(),
195: tag.getComponent());
196: tag.doEndTag();
197: assertEquals(t.getComponent().getComponentStack().peek(), t
198: .getComponent());
199:
200: t.doEndTag();
201: } catch (Exception e) {
202: e.printStackTrace();
203: fail(e.toString());
204: }
205: }
206:
207: // doubleselect
208: public void testDoubleselectComponentDisposeItselfFromComponentStack()
209: throws Exception {
210: ActionErrorTag t = new ActionErrorTag();
211: t.setPageContext(pageContext);
212:
213: try {
214: t.doStartTag();
215: DoubleSelectTag tag = new DoubleSelectTag();
216: tag.setName("name");
217: tag.setLabel("label");
218: tag.setList("#{1:'one',2:'two'}");
219: tag.setDoubleName("doubleName");
220: tag.setDoubleList("1?({'aa','bb'}:{'cc','dd'}");
221: tag.setFormName("formName");
222: tag.setPageContext(pageContext);
223: tag.doStartTag();
224: assertEquals(tag.getComponent().getComponentStack().peek(),
225: tag.getComponent());
226: tag.doEndTag();
227: assertEquals(t.getComponent().getComponentStack().peek(), t
228: .getComponent());
229:
230: t.doEndTag();
231: } catch (Exception e) {
232: e.printStackTrace();
233: fail(e.toString());
234: }
235: }
236:
237: // fieldError
238: public void testFielderrorComponentDisposeItselfFromComponentStack()
239: throws Exception {
240: ActionErrorTag t = new ActionErrorTag();
241: t.setPageContext(pageContext);
242:
243: try {
244: t.doStartTag();
245: FieldErrorTag tag = new FieldErrorTag();
246: tag.setPageContext(pageContext);
247: tag.doStartTag();
248: assertEquals(tag.getComponent().getComponentStack().peek(),
249: tag.getComponent());
250: tag.doEndTag();
251: assertEquals(t.getComponent().getComponentStack().peek(), t
252: .getComponent());
253:
254: t.doEndTag();
255: } catch (Exception e) {
256: e.printStackTrace();
257: fail(e.toString());
258: }
259: }
260:
261: // file
262: public void testFileDisposeItselfFromComponentStack()
263: throws Exception {
264: ActionErrorTag t = new ActionErrorTag();
265: t.setPageContext(pageContext);
266:
267: try {
268: t.doStartTag();
269: FileTag tag = new FileTag();
270: tag.setName("name");
271: tag.setLabel("label");
272: tag.setPageContext(pageContext);
273: tag.doStartTag();
274: assertEquals(tag.getComponent().getComponentStack().peek(),
275: tag.getComponent());
276: tag.doEndTag();
277: assertEquals(t.getComponent().getComponentStack().peek(), t
278: .getComponent());
279:
280: t.doEndTag();
281: } catch (Exception e) {
282: e.printStackTrace();
283: fail(e.toString());
284: }
285: }
286:
287: // form
288: public void testFormComponentDisposeItselfFromComponentStack()
289: throws Exception {
290: configurationManager.clearConfigurationProviders();
291: configurationManager
292: .addConfigurationProvider(new TestConfigurationProvider());
293: ActionContext.getContext().setValueStack(stack);
294:
295: request.setupGetServletPath("/testAction");
296:
297: ActionErrorTag t = new ActionErrorTag();
298: t.setPageContext(pageContext);
299:
300: try {
301: t.doStartTag();
302: FormTag tag = new FormTag();
303: tag.setName("myForm");
304: tag.setMethod("POST");
305: tag.setAction("myAction");
306: tag.setEnctype("myEncType");
307: tag.setTitle("mytitle");
308: tag.setPageContext(pageContext);
309: tag.doStartTag();
310: assertEquals(tag.getComponent().getComponentStack().peek(),
311: tag.getComponent());
312: tag.doEndTag();
313: assertEquals(t.getComponent().getComponentStack().peek(), t
314: .getComponent());
315:
316: t.doEndTag();
317: } catch (Exception e) {
318: e.printStackTrace();
319: fail(e.toString());
320: }
321: }
322:
323: // hidden
324: public void testHiddenComponentDisposeItselfFromComponentStack()
325: throws Exception {
326: ActionErrorTag t = new ActionErrorTag();
327: t.setPageContext(pageContext);
328:
329: try {
330: t.doStartTag();
331: HiddenTag tag = new HiddenTag();
332: tag.setPageContext(pageContext);
333: tag.doStartTag();
334: assertEquals(tag.getComponent().getComponentStack().peek(),
335: tag.getComponent());
336: tag.doEndTag();
337: assertEquals(t.getComponent().getComponentStack().peek(), t
338: .getComponent());
339:
340: t.doEndTag();
341: } catch (Exception e) {
342: e.printStackTrace();
343: fail(e.toString());
344: }
345: }
346:
347: // label
348: public void testLabelComponentDisposeItselfFromComponentStack()
349: throws Exception {
350: ActionErrorTag t = new ActionErrorTag();
351: t.setPageContext(pageContext);
352:
353: try {
354: t.doStartTag();
355: LabelTag tag = new LabelTag();
356: tag.setName("name");
357: tag.setLabel("label");
358: tag.setPageContext(pageContext);
359: tag.doStartTag();
360: assertEquals(tag.getComponent().getComponentStack().peek(),
361: tag.getComponent());
362: tag.doEndTag();
363: assertEquals(t.getComponent().getComponentStack().peek(), t
364: .getComponent());
365:
366: t.doEndTag();
367: } catch (Exception e) {
368: e.printStackTrace();
369: fail(e.toString());
370: }
371: }
372:
373: // optiontransferselect
374: public void testOptiontransferselectComponentDisposeItselfFromComponentStack()
375: throws Exception {
376: ActionErrorTag t = new ActionErrorTag();
377: t.setPageContext(pageContext);
378:
379: try {
380: t.doStartTag();
381: OptionTransferSelectTag tag = new OptionTransferSelectTag();
382: tag.setId("myId");
383: tag.setDoubleId("myDoubleId");
384: tag.setName("name");
385: tag.setLabel("label");
386: tag.setList("{}");
387: tag.setDoubleList("{}");
388: tag.setPageContext(pageContext);
389: tag.doStartTag();
390: assertEquals(tag.getComponent().getComponentStack().peek(),
391: tag.getComponent());
392: tag.doEndTag();
393: assertEquals(t.getComponent().getComponentStack().peek(), t
394: .getComponent());
395:
396: t.doEndTag();
397: } catch (Exception e) {
398: e.printStackTrace();
399: fail(e.toString());
400: }
401: }
402:
403: // password
404: public void testPasswordComponentDisposeItselfFromComponentStack()
405: throws Exception {
406: ActionErrorTag t = new ActionErrorTag();
407: t.setPageContext(pageContext);
408:
409: try {
410: t.doStartTag();
411: PasswordTag tag = new PasswordTag();
412: tag.setName("name");
413: tag.setLabel("label");
414: tag.setPageContext(pageContext);
415: tag.doStartTag();
416: assertEquals(tag.getComponent().getComponentStack().peek(),
417: tag.getComponent());
418: tag.doEndTag();
419: assertEquals(t.getComponent().getComponentStack().peek(), t
420: .getComponent());
421:
422: t.doEndTag();
423: } catch (Exception e) {
424: e.printStackTrace();
425: fail(e.toString());
426: }
427: }
428:
429: // radio
430: public void testRadioComponentDisposeItselfFromComponentStack()
431: throws Exception {
432: ActionErrorTag t = new ActionErrorTag();
433: t.setPageContext(pageContext);
434:
435: try {
436: t.doStartTag();
437: RadioTag tag = new RadioTag();
438: tag.setList("{}");
439: tag.setName("name");
440: tag.setLabel("label");
441: tag.setPageContext(pageContext);
442: tag.doStartTag();
443: assertEquals(tag.getComponent().getComponentStack().peek(),
444: tag.getComponent());
445: tag.doEndTag();
446: assertEquals(t.getComponent().getComponentStack().peek(), t
447: .getComponent());
448:
449: t.doEndTag();
450: } catch (Exception e) {
451: e.printStackTrace();
452: fail(e.toString());
453: }
454: }
455:
456: // select
457: public void testSelectComponentDisposeItselfFromComponentStack()
458: throws Exception {
459: ActionErrorTag t = new ActionErrorTag();
460: t.setPageContext(pageContext);
461:
462: try {
463: t.doStartTag();
464: SelectTag tag = new SelectTag();
465: tag.setList("{}");
466: tag.setName("name");
467: tag.setLabel("label");
468: tag.setPageContext(pageContext);
469: tag.doStartTag();
470: assertEquals(tag.getComponent().getComponentStack().peek(),
471: tag.getComponent());
472: tag.doEndTag();
473:
474: assertEquals(t.getComponent().getComponentStack().peek(), t
475: .getComponent());
476:
477: t.doEndTag();
478: } catch (Exception e) {
479: e.printStackTrace();
480: fail(e.toString());
481: }
482: }
483:
484: // submit
485: public void testSubmitDisposeItselfFromComponentStack()
486: throws Exception {
487: ActionErrorTag t = new ActionErrorTag();
488: t.setPageContext(pageContext);
489:
490: try {
491: t.doStartTag();
492: SubmitTag tag = new SubmitTag();
493: tag.setName("name");
494: tag.setPageContext(pageContext);
495: tag.doStartTag();
496: assertEquals(tag.getComponent().getComponentStack().peek(),
497: tag.getComponent());
498: tag.doEndTag();
499: assertEquals(t.getComponent().getComponentStack().peek(), t
500: .getComponent());
501:
502: t.doEndTag();
503: } catch (Exception e) {
504: e.printStackTrace();
505: fail(e.toString());
506: }
507: }
508:
509: // textarea
510: public void testTextareaComponentDisposeItselfFromComponentStack()
511: throws Exception {
512: ActionErrorTag t = new ActionErrorTag();
513: t.setPageContext(pageContext);
514:
515: try {
516: t.doStartTag();
517: TextareaTag tag = new TextareaTag();
518: tag.setName("name");
519: tag.setLabel("label");
520: tag.setPageContext(pageContext);
521: tag.doStartTag();
522: assertEquals(tag.getComponent().getComponentStack().peek(),
523: tag.getComponent());
524: tag.doEndTag();
525: assertEquals(t.getComponent().getComponentStack().peek(), t
526: .getComponent());
527:
528: t.doEndTag();
529: } catch (Exception e) {
530: e.printStackTrace();
531: fail(e.toString());
532: }
533: }
534:
535: // textfield
536: public void testTextfieldComponentDisposeItselfFromComponentStack()
537: throws Exception {
538: ActionErrorTag t = new ActionErrorTag();
539: t.setPageContext(pageContext);
540:
541: try {
542: t.doStartTag();
543: TextFieldTag tag = new TextFieldTag();
544: tag.setName("name");
545: tag.setLabel("label");
546: tag.setPageContext(pageContext);
547: tag.doStartTag();
548: assertEquals(tag.getComponent().getComponentStack().peek(),
549: tag.getComponent());
550: tag.doEndTag();
551: assertEquals(t.getComponent().getComponentStack().peek(), t
552: .getComponent());
553:
554: t.doEndTag();
555: } catch (Exception e) {
556: e.printStackTrace();
557: fail(e.toString());
558: }
559: }
560:
561: // token
562: public void testTokenComponentDisposeItselfFromComponentStack()
563: throws Exception {
564: ActionErrorTag t = new ActionErrorTag();
565: t.setPageContext(pageContext);
566:
567: try {
568: t.doStartTag();
569: TokenTag tag = new TokenTag();
570: tag.setPageContext(pageContext);
571: tag.doStartTag();
572: assertEquals(tag.getComponent().getComponentStack().peek(),
573: tag.getComponent());
574: tag.doEndTag();
575: assertEquals(t.getComponent().getComponentStack().peek(), t
576: .getComponent());
577:
578: t.doEndTag();
579: } catch (Exception e) {
580: e.printStackTrace();
581: fail(e.toString());
582: }
583: }
584: }
|