Package org.ajax4jsf.renderkit.html

Source Code of org.ajax4jsf.renderkit.html.AjaxStatusRendererTest

/**
* License Agreement.
*
*  JBoss RichFaces - Ajax4jsf Component Library
*
* Copyright (C) 2007  Exadel, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
*/

package org.ajax4jsf.renderkit.html;

import java.util.Iterator;

import javax.faces.component.UIForm;
import javax.faces.component.UIGraphic;
import javax.faces.component.html.HtmlForm;

import org.ajax4jsf.component.UIAjaxStatus;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;

import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class AjaxStatusRendererTest extends AbstractAjax4JsfTestCase {
  private UIForm form = null;
  private UIAjaxStatus status1 = null;
  private UIAjaxStatus status2 = null;
 
  public AjaxStatusRendererTest(String name) {
    super(name);
  }
 
  public void setUp() throws Exception {
    super.setUp();
   
    application.addComponent("org.ajax4jsf.AjaxStatus", "org.ajax4jsf.component.html.HtmlAjaxStatus");
   
    form = new HtmlForm();
      form.setId("form");
      facesContext.getViewRoot().getChildren().add(form);
     
      status1 = (UIAjaxStatus)application.createComponent(UIAjaxStatus.COMPONENT_TYPE);
      status1.setId("status1");
      status1.setStartStyle("color: red;");
      status1.setStartStyleClass("A B C D");
      status1.setStopStyle("color: green;");
      status1.setStopStyleClass("X Y Z");
      status1.setStartText("startText");
      status1.setStopText("stopText");
      status1.getAttributes().put("layout", "block");
     
      status2 = (UIAjaxStatus)application.createComponent(UIAjaxStatus.COMPONENT_TYPE);
      status2.setId("status2");
      status2.setStartStyle("color: red;");
      status2.setStartStyleClass("A B C D");
      status2.setStopStyle("color: green;");
      status2.setStopStyleClass("X Y Z");
      status2.getAttributes().put("layout", "inline");
     
      UIGraphic startImage = new UIGraphic();
      startImage.setValue("start.png");
      startImage.getAttributes().put("alt", "alt");
      status2.getFacets().put("start", startImage);
     
      UIGraphic stopGraphic = new UIGraphic();
      stopGraphic.setValue("stop.png");
      stopGraphic.getAttributes().put("alt", "alt");
      status2.getFacets().put("stop", stopGraphic);
     
      form.getChildren().add(status1);
      form.getChildren().add(status2);
  }
 
  public void tearDown() throws Exception {
    super.tearDown();
   
    status1 = null;
    status2 = null;
    form = null;
  }
 
  /**
     * Test rendering
     *
     * @throws Exception
     */
    public void testRender() throws Exception {
      HtmlPage page = renderView();
        assertNotNull(page);
       
        HtmlElement div = page.getHtmlElementById(status1.getClientId(facesContext));
        assertNotNull(div);
        assertEquals("div", div.getNodeName());
       
        Iterator childIterator = div.getChildIterator();
        int i = 0;
        while (childIterator.hasNext()) {
          i++;
          HtmlElement element = (HtmlElement) childIterator.next();
          assertEquals("div", element.getNodeName());
        }
        assertEquals(2, i);
       
        HtmlElement div1 = page.getHtmlElementById(status1.getClientId(facesContext) + ".start");
        assertNotNull(div1);
        String style1 = div1.getAttributeValue("style");
        assertNotNull(style1);
        assertTrue(style1.contains("color: red;"));
        String class1 = div1.getAttributeValue("class");
        assertNotNull(class1);
        assertEquals(class1, "A B C D");
       
        HtmlElement div2 = page.getHtmlElementById(status1.getClientId(facesContext) + ".stop");
        assertNotNull(div2);
        String style2 = div2.getAttributeValue("style");
        assertNotNull(style2);
        assertTrue(style2.contains("color: green;"));
        String class2 = div2.getAttributeValue("class");
        assertNotNull(class2);
        assertEquals(class2, "X Y Z");
       
        form.getChildren().remove(0);
        page = renderView();
        System.out.println(page.asXml());
       
        HtmlElement span = (HtmlElement) div.getNextSibling();
        assertNotNull(span);
        assertEquals("span", span.getNodeName());
       
        childIterator = span.getChildIterator();
        i = 0;
        while (childIterator.hasNext()) {
          i++;
          HtmlElement element = (HtmlElement) childIterator.next();
          assertEquals("span", element.getNodeName());
          assertEquals("img", element.getFirstChild().getNodeName());
        }
        assertEquals(2, i);
    }

}
TOP

Related Classes of org.ajax4jsf.renderkit.html.AjaxStatusRendererTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.