[richfaces-svn-commits] JBoss Rich Faces SVN: r11521 - in trunk/ui/core/src: test/java/org/ajax4jsf/renderkit/html and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Dec 3 09:47:47 EST 2008


Author: alevkovsky
Date: 2008-12-03 09:47:47 -0500 (Wed, 03 Dec 2008)
New Revision: 11521

Modified:
   trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRenderer.java
   trunk/ui/core/src/test/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRendererTest.java
Log:
https://jira.jboss.org/jira/browse/RF-4812

Modified: trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRenderer.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRenderer.java	2008-12-03 14:41:13 UTC (rev 11520)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRenderer.java	2008-12-03 14:47:47 UTC (rev 11521)
@@ -36,9 +36,11 @@
 import javax.faces.event.ActionEvent;
 
 import org.ajax4jsf.Messages;
+import org.ajax4jsf.javascript.AjaxScript;
 import org.ajax4jsf.javascript.JSFunction;
-import org.ajax4jsf.renderkit.RendererBase;
+import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
 import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.ajax4jsf.resource.InternetResource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -49,14 +51,20 @@
  * @author shura
  *
  */
-public class HtmlCommandLinkRenderer extends RendererBase {
+public class HtmlCommandLinkRenderer extends HeaderResourcesRendererBase {
 
 	private static final Log _log = LogFactory.getLog(HtmlCommandLinkRenderer.class);
 	
 	private static final String[] LINK_EXCLUSIONS = {"onclick","target","href"};
-
-	/* (non-Javadoc)
-	 * @see org.ajax4jsf.renderkit.RendererBase#doDecode(javax.faces.context.FacesContext, javax.faces.component.UIComponent)
+	
+	private InternetResource[] scripts = null;
+	private static final String FORM_SCRIPT = "/org/ajax4jsf/javascript/scripts/form.js";
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.ajax4jsf.renderkit.RendererBase#doDecode(javax.faces.context.FacesContext,
+	 *      javax.faces.component.UIComponent)
 	 */
 	protected void doDecode(FacesContext context, UIComponent component) {
 		UIForm form = getUtils().getNestingForm(context,component);
@@ -216,4 +224,15 @@
 				writer.writeText(valueString,null);
 			}
         }
+    
+    /* (non-Javadoc)
+     * @see org.ajax4jsf.renderkit.HeaderResourcesRendererBase#getScripts()
+     */
+    protected InternetResource[] getScripts() {
+    	if (scripts == null) {			
+			scripts = new InternetResource[1];				
+			scripts[0] = getResource(FORM_SCRIPT);			
+		}
+		return scripts;
+	}
 }

Modified: trunk/ui/core/src/test/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRendererTest.java
===================================================================
--- trunk/ui/core/src/test/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRendererTest.java	2008-12-03 14:41:13 UTC (rev 11520)
+++ trunk/ui/core/src/test/java/org/ajax4jsf/renderkit/html/HtmlCommandLinkRendererTest.java	2008-12-03 14:47:47 UTC (rev 11521)
@@ -21,16 +21,30 @@
 
 package org.ajax4jsf.renderkit.html;
 
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
 import javax.faces.component.UIForm;
 import javax.faces.component.html.HtmlCommandLink;
 import javax.faces.component.html.HtmlForm;
 
 import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.apache.commons.lang.StringUtils;
 
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
 import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlScript;
 
 public class HtmlCommandLinkRendererTest extends AbstractAjax4JsfTestCase {
+	/** Set with required javascripts for Editor */
+	private static Set<String> javaScripts = new HashSet<String>();
+
+	static {
+		javaScripts.add("org/ajax4jsf/javascript/scripts/form.js");
+	}
+	
 	private UIForm form = null;
 	private HtmlCommandLink link1 = null;
 	private HtmlCommandLink link2 = null;
@@ -92,5 +106,34 @@
         assertNotNull(disabled);
         assertEquals("disabled", disabled);
 	}
+	
+	/**
+	 * Method to test if required scripts is present on page 
+	 * @throws Exception
+	 */
+	@SuppressWarnings("unchecked")
+	public void testLinkScripts() throws Exception {
+		HtmlPage page = renderView();
+		assertNotNull(page);
+		
+		List scripts = page.getDocumentHtmlElement().getHtmlElementsByTagName(
+				"script");
 
+		for (Iterator it = scripts.iterator(); it.hasNext();) {
+			HtmlScript item = (HtmlScript) it.next();
+			String srcAttr = item.getSrcAttribute();
+			if (StringUtils.isNotBlank(srcAttr)) {
+				boolean found = false;
+				for (Iterator srcIt = javaScripts.iterator(); srcIt.hasNext();) {
+					String src = (String) srcIt.next();
+					found = srcAttr.contains(src);
+					if (found) {
+						break;
+					}
+				}
+				assertTrue(found);
+			}
+		}
+	}
+
 }




More information about the richfaces-svn-commits mailing list