You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by em...@apache.org on 2018/01/22 16:30:31 UTC

svn commit: r1821891 - in /myfaces/core/branches/2.3.x: impl/src/test/java/org/apache/myfaces/renderkit/html/ impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/ impl/src/test/java/org/apache/myfaces/test/utils/ shared/src/main/java/org/apac...

Author: embreijo
Date: Mon Jan 22 16:30:31 2018
New Revision: 1821891

URL: http://svn.apache.org/viewvc?rev=1821891&view=rev
Log:
MYFACES-4190 Remove onselect attribute from SELECT elements

Modified:
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlListboxRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlMenuRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlClientEventAttributesUtil.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyListboxClientBehaviorRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyMenuClientBehaviorRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneListboxClientBehaviorRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneMenuClientBehaviorRendererTest.java
    myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/test/utils/HtmlCheckAttributesUtil.java
    myfaces/core/branches/2.3.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSelectableRendererBase.java

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlListboxRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlListboxRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlListboxRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlListboxRendererTest.java Mon Jan 22 16:30:31 2018
@@ -88,7 +88,7 @@ public class HtmlListboxRendererTest ext
 
     public void testSelectOneHtmlPropertyPassTru() throws Exception
     {
-        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs();
+        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs(false);
         
         List items = new ArrayList();
         items.add(new SelectItem("mars"));
@@ -107,7 +107,7 @@ public class HtmlListboxRendererTest ext
     
     public void testSelectManyHtmlPropertyPassTru() throws Exception
     {
-        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs();
+        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs(false);
         
         List items = new ArrayList();
         items.add(new SelectItem("mars"));

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlMenuRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlMenuRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlMenuRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlMenuRendererTest.java Mon Jan 22 16:30:31 2018
@@ -89,7 +89,7 @@ public class HtmlMenuRendererTest extend
 
     public void testSelectOneHtmlPropertyPassTru() throws Exception
     {
-        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs();
+        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs(false);
         
         List items = new ArrayList();
         items.add(new SelectItem("mars"));
@@ -108,7 +108,7 @@ public class HtmlMenuRendererTest extend
     
     public void testSelectManyHtmlPropertyPassTru() throws Exception
     {
-        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs();
+        HtmlRenderedAttr[] attrs = HtmlCheckAttributesUtil.generateBasicAttrs(false);
         
         List items = new ArrayList();
         items.add(new SelectItem("mars"));

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlClientEventAttributesUtil.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlClientEventAttributesUtil.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlClientEventAttributesUtil.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlClientEventAttributesUtil.java Mon Jan 22 16:30:31 2018
@@ -20,6 +20,7 @@ package org.apache.myfaces.renderkit.htm
 
 import org.apache.myfaces.shared.renderkit.ClientBehaviorEvents;
 import org.apache.myfaces.shared.renderkit.html.HTML;
+import org.apache.myfaces.test.utils.HtmlCheckAttributesUtil;
 
 /**
  * @author Leonardo Uribe (latest modification by $Author$)
@@ -44,11 +45,18 @@ public class HtmlClientEventAttributesUt
 
         return attrs;
     }
-    
+
     public static HtmlRenderedClientEventAttr[] generateClientBehaviorInputEventAttrs()
     {
-        return (HtmlRenderedClientEventAttr[]) 
-            org.apache.myfaces.shared.util.ArrayUtils.concat( 
+        return generateClientBehaviorInputEventAttrs(HtmlCheckAttributesUtil.DEFAULT_IS_ON_SELECT_ATTRIBUTE_NEEDED);
+    }
+    
+    public static HtmlRenderedClientEventAttr[] generateClientBehaviorInputEventAttrs(boolean isOnSelectNeeded)
+    {
+        HtmlRenderedClientEventAttr[] attrs = null;
+        if (isOnSelectNeeded)
+        {
+            attrs = (HtmlRenderedClientEventAttr[]) org.apache.myfaces.shared.util.ArrayUtils.concat( 
                 generateClientBehaviorEventAttrs(),
                 new HtmlRenderedClientEventAttr[]{
                     new HtmlRenderedClientEventAttr(HTML.ONBLUR_ATTR, ClientBehaviorEvents.BLUR),
@@ -57,5 +65,20 @@ public class HtmlClientEventAttributesUt
                     new HtmlRenderedClientEventAttr(HTML.ONCHANGE_ATTR, ClientBehaviorEvents.CHANGE),
                     new HtmlRenderedClientEventAttr(HTML.ONCHANGE_ATTR, ClientBehaviorEvents.VALUECHANGE)
                 });
+        }
+        else
+        {
+            // Note that on JSF 2.3, some components don't need onselect attribute
+            // Please see https://issues.apache.org/jira/browse/MYFACES-4190
+            attrs = (HtmlRenderedClientEventAttr[]) org.apache.myfaces.shared.util.ArrayUtils.concat( 
+                generateClientBehaviorEventAttrs(),
+                new HtmlRenderedClientEventAttr[]{
+                    new HtmlRenderedClientEventAttr(HTML.ONBLUR_ATTR, ClientBehaviorEvents.BLUR),
+                    new HtmlRenderedClientEventAttr(HTML.ONFOCUS_ATTR, ClientBehaviorEvents.FOCUS),
+                    new HtmlRenderedClientEventAttr(HTML.ONCHANGE_ATTR, ClientBehaviorEvents.CHANGE),
+                    new HtmlRenderedClientEventAttr(HTML.ONCHANGE_ATTR, ClientBehaviorEvents.VALUECHANGE)
+                });
+        }
+        return attrs;
     }
 }

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyListboxClientBehaviorRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyListboxClientBehaviorRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyListboxClientBehaviorRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyListboxClientBehaviorRendererTest.java Mon Jan 22 16:30:31 2018
@@ -34,7 +34,7 @@ public class HtmlSelectManyListboxClient
     public void setUp() throws Exception
     {
         super.setUp();
-        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs();
+        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs(false);
     }
 
     @Override

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyMenuClientBehaviorRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyMenuClientBehaviorRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyMenuClientBehaviorRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectManyMenuClientBehaviorRendererTest.java Mon Jan 22 16:30:31 2018
@@ -34,7 +34,7 @@ public class HtmlSelectManyMenuClientBeh
     public void setUp() throws Exception
     {
         super.setUp();
-        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs();
+        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs(false);
     }
 
     @Override

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneListboxClientBehaviorRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneListboxClientBehaviorRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneListboxClientBehaviorRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneListboxClientBehaviorRendererTest.java Mon Jan 22 16:30:31 2018
@@ -34,7 +34,7 @@ public class HtmlSelectOneListboxClientB
     public void setUp() throws Exception
     {
         super.setUp();
-        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs();
+        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs(false);
     }
 
     @Override

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneMenuClientBehaviorRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneMenuClientBehaviorRendererTest.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneMenuClientBehaviorRendererTest.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/renderkit/html/behavior/HtmlSelectOneMenuClientBehaviorRendererTest.java Mon Jan 22 16:30:31 2018
@@ -34,7 +34,7 @@ public class HtmlSelectOneMenuClientBeha
     public void setUp() throws Exception
     {
         super.setUp();
-        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs();
+        attrs = HtmlClientEventAttributesUtil.generateClientBehaviorInputEventAttrs(false);
     }
 
     @Override

Modified: myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/test/utils/HtmlCheckAttributesUtil.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/test/utils/HtmlCheckAttributesUtil.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/test/utils/HtmlCheckAttributesUtil.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/test/java/org/apache/myfaces/test/utils/HtmlCheckAttributesUtil.java Mon Jan 22 16:30:31 2018
@@ -31,6 +31,8 @@ import org.apache.myfaces.test.mock.Mock
  */
 public class HtmlCheckAttributesUtil 
 {
+    public static final boolean DEFAULT_IS_ON_SELECT_ATTRIBUTE_NEEDED = true;
+
     /**
      * This method adds all elements of attrs to the attributes map of component.
      * @param component The component to add the attributes to.
@@ -168,38 +170,89 @@ public class HtmlCheckAttributesUtil
         }
     }
     
-    public static HtmlRenderedAttr[] generateBasicAttrs() {
-        HtmlRenderedAttr[] attrs = {
-            //_AccesskeyProperty
-            new HtmlRenderedAttr("accesskey"),
-            //_UniversalProperties
-            new HtmlRenderedAttr("dir"), 
-            new HtmlRenderedAttr("lang"), 
-            new HtmlRenderedAttr("title"),
-            new HtmlRenderedAttr("role"),
-            //_FocusBlurProperties
-            new HtmlRenderedAttr("onfocus"), 
-            new HtmlRenderedAttr("onblur"),
-            //_ChangeSelectProperties
-            new HtmlRenderedAttr("onchange"), 
-            new HtmlRenderedAttr("onselect"),
-            //_EventProperties
-            new HtmlRenderedAttr("onclick"), 
-            new HtmlRenderedAttr("ondblclick"), 
-            new HtmlRenderedAttr("onkeydown"), 
-            new HtmlRenderedAttr("onkeypress"),
-            new HtmlRenderedAttr("onkeyup"), 
-            new HtmlRenderedAttr("onmousedown"), 
-            new HtmlRenderedAttr("onmousemove"), 
-            new HtmlRenderedAttr("onmouseout"),
-            new HtmlRenderedAttr("onmouseover"), 
-            new HtmlRenderedAttr("onmouseup"),
-            //_StyleProperties
-            new HtmlRenderedAttr("style"), 
-            new HtmlRenderedAttr("styleClass", "styleClass", "class=\"styleClass\""),
-            //_TabindexProperty
-            new HtmlRenderedAttr("tabindex")
-        };
+    public static HtmlRenderedAttr[] generateBasicAttrs() 
+    {
+        return generateBasicAttrs(DEFAULT_IS_ON_SELECT_ATTRIBUTE_NEEDED);
+    }
+
+    /**
+     * Generates an array of basic attributes.
+     * Note that on JSF 2.3 some components don't need onselect attribute.
+     * Please see https://issues.apache.org/jira/browse/MYFACES-4190
+     * @param isOnSelectNeeded   A boolean value to check if onselect attribute is needed.
+     */
+    public static HtmlRenderedAttr[] generateBasicAttrs(boolean isOnSelectNeeded) 
+    {
+        HtmlRenderedAttr[] attrs = null;
+        if (isOnSelectNeeded)
+        {
+            attrs = new HtmlRenderedAttr[] {
+                //_AccesskeyProperty
+                new HtmlRenderedAttr("accesskey"),
+                //_UniversalProperties
+                new HtmlRenderedAttr("dir"), 
+                new HtmlRenderedAttr("lang"), 
+                new HtmlRenderedAttr("title"),
+                new HtmlRenderedAttr("role"),
+                //_FocusBlurProperties
+                new HtmlRenderedAttr("onfocus"), 
+                new HtmlRenderedAttr("onblur"),
+                //_ChangeProperty
+                new HtmlRenderedAttr("onchange"), 
+                // _SelectProperty
+                new HtmlRenderedAttr("onselect"),
+                //_EventProperties
+                new HtmlRenderedAttr("onclick"), 
+                new HtmlRenderedAttr("ondblclick"), 
+                new HtmlRenderedAttr("onkeydown"), 
+                new HtmlRenderedAttr("onkeypress"),
+                new HtmlRenderedAttr("onkeyup"), 
+                new HtmlRenderedAttr("onmousedown"), 
+                new HtmlRenderedAttr("onmousemove"), 
+                new HtmlRenderedAttr("onmouseout"),
+                new HtmlRenderedAttr("onmouseover"), 
+                new HtmlRenderedAttr("onmouseup"),
+                //_StyleProperties
+                new HtmlRenderedAttr("style"), 
+                new HtmlRenderedAttr("styleClass", "styleClass", "class=\"styleClass\""),
+                //_TabindexProperty
+                new HtmlRenderedAttr("tabindex")
+            };
+        }
+        else
+        {
+            // Note that on JSF 2.3, some components don't need onselect attribute
+            attrs = new HtmlRenderedAttr[] {
+                //_AccesskeyProperty
+                new HtmlRenderedAttr("accesskey"),
+                //_UniversalProperties
+                new HtmlRenderedAttr("dir"), 
+                new HtmlRenderedAttr("lang"), 
+                new HtmlRenderedAttr("title"),
+                new HtmlRenderedAttr("role"),
+                //_FocusBlurProperties
+                new HtmlRenderedAttr("onfocus"), 
+                new HtmlRenderedAttr("onblur"),
+                //_ChangeProperty
+                new HtmlRenderedAttr("onchange"), 
+                //_EventProperties
+                new HtmlRenderedAttr("onclick"), 
+                new HtmlRenderedAttr("ondblclick"), 
+                new HtmlRenderedAttr("onkeydown"), 
+                new HtmlRenderedAttr("onkeypress"),
+                new HtmlRenderedAttr("onkeyup"), 
+                new HtmlRenderedAttr("onmousedown"), 
+                new HtmlRenderedAttr("onmousemove"), 
+                new HtmlRenderedAttr("onmouseout"),
+                new HtmlRenderedAttr("onmouseover"), 
+                new HtmlRenderedAttr("onmouseup"),
+                //_StyleProperties
+                new HtmlRenderedAttr("style"), 
+                new HtmlRenderedAttr("styleClass", "styleClass", "class=\"styleClass\""),
+                //_TabindexProperty
+                new HtmlRenderedAttr("tabindex")
+            };
+        }
         
         return attrs;
     }

Modified: myfaces/core/branches/2.3.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSelectableRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSelectableRendererBase.java?rev=1821891&r1=1821890&r2=1821891&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSelectableRendererBase.java (original)
+++ myfaces/core/branches/2.3.x/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSelectableRendererBase.java Mon Jan 22 16:30:31 2018
@@ -94,7 +94,9 @@ public class HtmlSelectableRendererBase
                         commonPropertiesMarked, uiComponent);
                 CommonPropertyUtils.renderEventProperties(writer, 
                         commonPropertiesMarked, uiComponent);
-                CommonPropertyUtils.renderFieldEventPropertiesWithoutOnchange(writer, 
+                // Note that on JSF 2.3, selectable components don't need onselect attribute
+                // Please see https://issues.apache.org/jira/browse/MYFACES-4190
+                CommonPropertyUtils.renderFieldEventPropertiesWithoutOnchangeAndOnselect(writer, 
                         commonPropertiesMarked, uiComponent);
             }
             else
@@ -106,14 +108,14 @@ public class HtmlSelectableRendererBase
                     Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(uiComponent);
                     CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer, 
                             commonPropertiesMarked, commonEventsMarked, uiComponent, behaviors);
-                    CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+                    CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
                         facesContext, writer, commonPropertiesMarked, commonEventsMarked, uiComponent, behaviors);
                 }
                 else
                 {
                     HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, uiComponent,
                             behaviors);
-                    HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext,
+                    HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(facesContext,
                             writer, uiComponent, behaviors);
                 }
             }