1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.renderkit.html;
20
21 import java.io.StringWriter;
22
23 import javax.faces.component.behavior.AjaxBehavior;
24 import javax.faces.component.html.HtmlInputSecret;
25
26 import junit.framework.Test;
27 import junit.framework.TestSuite;
28
29 import org.apache.myfaces.test.utils.HtmlCheckAttributesUtil;
30 import org.apache.myfaces.test.utils.HtmlRenderedAttr;
31 import org.apache.myfaces.test.base.AbstractJsfTestCase;
32 import org.apache.myfaces.test.mock.MockRenderKitFactory;
33 import org.apache.myfaces.test.mock.MockResponseWriter;
34
35
36
37
38
39 public class HtmlSecretRendererTest extends AbstractJsfTestCase
40 {
41 private MockResponseWriter writer ;
42 private HtmlInputSecret inputText;
43
44 public HtmlSecretRendererTest(String name)
45 {
46 super(name);
47 }
48
49 public static Test suite() {
50 return new TestSuite(HtmlSecretRendererTest.class);
51 }
52
53 public void setUp() throws Exception
54 {
55 super.setUp();
56
57 inputText = new HtmlInputSecret();
58
59 writer = new MockResponseWriter(new StringWriter(), null, null);
60 facesContext.setResponseWriter(writer);
61
62 facesContext.getViewRoot().setRenderKitId(MockRenderKitFactory.HTML_BASIC_RENDER_KIT);
63 facesContext.getRenderKit().addRenderer(
64 inputText.getFamily(),
65 inputText.getRendererType(),
66 new HtmlSecretRenderer());
67
68 facesContext.getAttributes().put("org.apache.myfaces.RENDERED_JSF_JS", Boolean.TRUE);
69 }
70
71 public void tearDown() throws Exception
72 {
73 super.tearDown();
74 inputText = null;
75 writer = null;
76 }
77
78 public void testInputTextDefault() throws Exception
79 {
80 inputText.encodeEnd(facesContext);
81 facesContext.renderResponse();
82
83 String output = writer.getWriter().toString();
84 assertEquals("<input type=\"password\" name=\"j_id__v_0\"/>", output);
85 }
86
87 public void testHtmlPropertyPassTru() throws Exception
88 {
89 HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs();
90
91 HtmlCheckAttributesUtil.checkRenderedAttributes(
92 inputText, facesContext, writer, attrs);
93 if(HtmlCheckAttributesUtil.hasFailedAttrRender(attrs)) {
94 fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
95 }
96 }
97
98
99
100
101 public void testClientBehaviorHolderRendersIdAndName()
102 {
103 inputText.addClientBehavior("keypress", new AjaxBehavior());
104 try
105 {
106 inputText.encodeAll(facesContext);
107 String output = ((StringWriter) writer.getWriter()).getBuffer().toString();
108 assertTrue(output.matches(".+id=\".+\".+"));
109 assertTrue(output.matches(".+name=\".+\".+"));
110 }
111 catch (Exception e)
112 {
113 fail(e.getMessage());
114 }
115
116 }
117 }