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.html.HtmlGraphicImage;
24
25 import junit.framework.Test;
26 import junit.framework.TestSuite;
27
28 import org.apache.myfaces.test.utils.HtmlCheckAttributesUtil;
29 import org.apache.myfaces.test.utils.HtmlRenderedAttr;
30 import org.apache.shale.test.base.AbstractJsfTestCase;
31 import org.apache.shale.test.mock.MockRenderKitFactory;
32 import org.apache.shale.test.mock.MockResponseWriter;
33
34
35
36
37
38 public class HtmlImageRendererTest extends AbstractJsfTestCase
39 {
40 private MockResponseWriter writer ;
41 private HtmlGraphicImage graphicImage;
42
43 public HtmlImageRendererTest(String name)
44 {
45 super(name);
46 }
47
48 public static Test suite() {
49 return new TestSuite(HtmlImageRendererTest.class);
50 }
51
52 public void setUp() throws Exception
53 {
54 super.setUp();
55
56 graphicImage = new HtmlGraphicImage();
57
58 writer = new MockResponseWriter(new StringWriter(), null, null);
59 facesContext.setResponseWriter(writer);
60
61 facesContext.getViewRoot().setRenderKitId(MockRenderKitFactory.HTML_BASIC_RENDER_KIT);
62 facesContext.getRenderKit().addRenderer(
63 graphicImage.getFamily(),
64 graphicImage.getRendererType(),
65 new HtmlImageRenderer());
66
67 }
68
69 public void tearDown() throws Exception
70 {
71 super.tearDown();
72 graphicImage = null;
73 writer = null;
74 }
75
76 public void testRenderDefault() throws Exception
77 {
78 String imgUrl = "http://www.apache.org/images/feather.gif";
79 String src = facesContext.getApplication().getViewHandler().getResourceURL(facesContext, imgUrl);
80
81 graphicImage.setId("img1");
82 graphicImage.setValue(imgUrl);
83 graphicImage.encodeBegin(facesContext);
84 graphicImage.encodeChildren(facesContext);
85 graphicImage.encodeEnd(facesContext);
86 facesContext.renderResponse();
87
88 String output = writer.getWriter().toString();
89 assertEquals("<img id=\"img1\" src=\"" + src + "\"/>", output);
90 }
91
92 public void testHtmlPropertyPassTru() throws Exception
93 {
94 HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicReadOnlyAttrs();
95
96 graphicImage.setId("img1");
97 graphicImage.setValue("http://www.apache.org/images/feather.gif");
98
99 HtmlCheckAttributesUtil.checkRenderedAttributes(
100 graphicImage, facesContext, writer, attrs);
101 if(HtmlCheckAttributesUtil.hasFailedAttrRender(attrs)) {
102 fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
103 }
104 }
105
106 public void testHtmlPropertyPassTruNotRendered() throws Exception
107 {
108 HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateAttrsNotRenderedForReadOnly();
109
110 graphicImage.setId("img1");
111 graphicImage.setValue("http://www.apache.org/images/feather.gif");
112
113 HtmlCheckAttributesUtil.checkRenderedAttributes(
114 graphicImage, facesContext, writer, attrs);
115 if(HtmlCheckAttributesUtil.hasFailedAttrRender(attrs)) {
116 fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
117 }
118 }
119 }