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.behavior;
20  
21  import javax.faces.component.UIComponent;
22  import javax.faces.component.UISelectItem;
23  import javax.faces.component.behavior.AjaxBehavior;
24  import javax.faces.component.behavior.ClientBehaviorHolder;
25  import javax.faces.component.html.HtmlSelectOneRadio;
26  
27  import org.junit.Assert;
28  
29  /**
30   * @author Leonardo Uribe (latest modification by $Author: struberg $)
31   * @version $Revision: 1188694 $ $Date: 2011-10-25 10:07:44 -0500 (Tue, 25 Oct 2011) $
32   */
33  public class HtmlSelectOneRadioClientBehaviorRendererTest extends AbstractClientBehaviorTestCase
34  {
35      private HtmlRenderedClientEventAttr[] attrs = null;
36      
37      @Override
38      public void setUp() throws Exception
39      {
40          super.setUp();
41          attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs();
42      }
43  
44      @Override
45      public void tearDown() throws Exception
46      {
47          super.tearDown();
48          attrs = null;
49      }
50  
51  
52      @Override
53      protected UIComponent createComponentToTest()
54      {
55          UIComponent component = new HtmlSelectOneRadio();
56          UISelectItem item = new UISelectItem();
57          item.setItemValue("value1");
58          component.getChildren().add(item);
59          return component;
60      }
61  
62      @Override
63      protected HtmlRenderedClientEventAttr[] getClientBehaviorHtmlRenderedAttributes()
64      {
65          return attrs;
66      }
67      
68      public void testClientBehaviorHolderRendersIdAndName() 
69      {
70          HtmlRenderedClientEventAttr[] attrs = getClientBehaviorHtmlRenderedAttributes();
71          
72          for (int i = 0; i < attrs.length; i++)
73          {
74              UIComponent component = createComponentToTest();
75              ClientBehaviorHolder clientBehaviorHolder = (ClientBehaviorHolder) component;
76              clientBehaviorHolder.addClientBehavior(attrs[i].getClientEvent(), new AjaxBehavior());
77              try 
78              {
79                  component.encodeAll(facesContext);
80                  String output = outputWriter.toString();
81                  Assert.assertTrue(output.matches(".+ id=\".+\".+"));
82                  Assert.assertTrue(output.matches(".+ name=\".+\".+"));
83                  outputWriter.reset();
84              }
85              catch (Exception e)
86              {
87                  Assert.fail(e.getMessage());
88              }
89          }
90      }
91  }