View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  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,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
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   * @author Bruno Aranda (latest modification by $Author: baranda $)
36   * @version $Revision: 451814 $ $Date: 2006-10-01 22:28:42 +0100 (dom, 01 oct 2006) $
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 }