/**
* License Agreement.
*
* Rich Faces - Natural Ajax for Java Server Faces (JSF)
*
* 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 javax.faces.FacesException;
import javax.faces.component.UIForm;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlForm;
import org.ajax4jsf.component.UIMediaOutput;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
public class MediaOutputRendererTest extends AbstractAjax4JsfTestCase {
UIForm form = null;
UIMediaOutput media1 = null;
UIMediaOutput media2 = null;
UIMediaOutput media3 = null;
UIMediaOutput media4 = null;
UIMediaOutput media5 = null;
public MediaOutputRendererTest(String name) {
super(name);
}
public void setUp() throws Exception {
super.setUp();
application.addComponent("org.ajax4jsf.MMedia", "org.ajax4jsf.component.html.MediaOutput");
form = new HtmlForm();
form.setId("form");
facesContext.getViewRoot().getChildren().add(form);
media1 = (UIMediaOutput) application.createComponent(UIMediaOutput.COMPONENT_TYPE);
media1.setId("media1");
media1.setElement("a");
media1.setUriAttribute("href");
form.getChildren().add(media1);
media2 = (UIMediaOutput) application.createComponent(UIMediaOutput.COMPONENT_TYPE);
media2.setId("media2");
media2.setElement("img");
media2.setUriAttribute("src");
media2.getAttributes().put("alt", "Generated value");
form.getChildren().add(media2);
media3 = (UIMediaOutput) application.createComponent(UIMediaOutput.COMPONENT_TYPE);
media3.setId("media3");
media3.setElement("object");
media3.setUriAttribute("data");
form.getChildren().add(media3);
media4 = (UIMediaOutput) application.createComponent(UIMediaOutput.COMPONENT_TYPE);
media4.setId("media4");
media4.setElement("a");
UIParameter param = new UIParameter();
param.setName("name");
param.setValue("value");
media4.getChildren().add(param);
form.getChildren().add(media4);
media5 = (UIMediaOutput) application.createComponent(UIMediaOutput.COMPONENT_TYPE);
media5.setId("media5");
}
public void tearDown() throws Exception {
super.tearDown();
media1 = null;
media2 = null;
media3 = null;
media4 = null;
media5 = null;
form = null;
}
public void testRender() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
System.out.println(page.asXml());
HtmlElement a = page.getHtmlElementById(media1.getClientId(facesContext));
assertNotNull(a);
assertEquals("a", a.getTagName());
String href = a.getAttributeValue("href");
assertNotNull(href);
HtmlElement img = page.getHtmlElementById(media2.getClientId(facesContext));
assertNotNull(img);
assertEquals("img", img.getTagName());
String src = img.getAttributeValue("src");
assertNotNull(src);
HtmlElement object = page.getHtmlElementById(media3.getClientId(facesContext));
assertNotNull(object);
assertEquals("object", object.getTagName());
String data = object.getAttributeValue("data");
assertNotNull(data);
// Rendering without uriAttribute
HtmlElement a2 = page.getHtmlElementById(media4.getClientId(facesContext));
assertNotNull(a2);
assertEquals("a", a2.getTagName());
String href2 = a2.getAttributeValue("href");
assertNotNull(href2);
assertTrue(href2.endsWith("name=value"));
}
public void testRenderWithoutElement() throws Exception {
form.getChildren().add(media5);
try {
renderView();
assertTrue("'element' is undefined but exception was not thrown", false);
} catch (FacesException e) {
}
}
}