Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 057457135 -> 1a6f1bde1


WICKET-5837 JUnit tests may fail because of AbstractDefaultAjaxBehavior


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1a6f1bde
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1a6f1bde
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1a6f1bde

Branch: refs/heads/wicket-6.x
Commit: 1a6f1bde1a6b576f39bf6fd6d5129d577319c2a7
Parents: 0574571
Author: klopfdreh <[email protected]>
Authored: Sat Feb 14 15:57:18 2015 +0100
Committer: Andrea Del Bene <[email protected]>
Committed: Sun Feb 15 22:08:28 2015 +0100

----------------------------------------------------------------------
 .../ajax/AbstractDefaultAjaxBehavior.java       | 55 ++++++++++----------
 .../org/apache/wicket/ajax/json/JSONObject.java |  5 +-
 .../ajax/AbstractDefaultAjaxBehaviorTest.java   | 20 ++++---
 .../form/upload/MultiFileUploadFieldTest.java   | 39 +++++++++-----
 4 files changed, 65 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/1a6f1bde/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
index 43a1525..a9d517c 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
@@ -220,11 +220,24 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
 
                try
                {
+                       String formId = attributes.getFormId();
+                       if (Strings.isEmpty(formId) == false)
+                       {
+                               
attributesJson.put(AjaxAttributeName.FORM_ID.jsonName(), formId);
+                       }
                        attributesJson.put(AjaxAttributeName.URL.jsonName(), 
getCallbackUrl());
-                       Method method = attributes.getMethod();
-                       if (Method.POST == method)
+
+                       String[] eventNames = attributes.getEventNames();
+                       if (eventNames.length == 1)
                        {
-                               
attributesJson.put(AjaxAttributeName.METHOD.jsonName(), method);
+                               
attributesJson.put(AjaxAttributeName.EVENT_NAME.jsonName(), eventNames[0]);
+                       }
+                       else
+                       {
+                               for (String eventName : eventNames)
+                               {
+                                       
attributesJson.append(AjaxAttributeName.EVENT_NAME.jsonName(), eventName);
+                               }
                        }
 
                        if (component instanceof Page == false)
@@ -233,12 +246,6 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
                                
attributesJson.put(AjaxAttributeName.MARKUP_ID.jsonName(), componentId);
                        }
 
-                       String formId = attributes.getFormId();
-                       if (Strings.isEmpty(formId) == false)
-                       {
-                               
attributesJson.put(AjaxAttributeName.FORM_ID.jsonName(), formId);
-                       }
-
                        if (attributes.isMultipart())
                        {
                                
attributesJson.put(AjaxAttributeName.IS_MULTIPART.jsonName(), true);
@@ -254,8 +261,7 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
                        CharSequence childSelector = 
attributes.getChildSelector();
                        if (Strings.isEmpty(childSelector) == false)
                        {
-                               
attributesJson.put(AjaxAttributeName.CHILD_SELECTOR.jsonName(),
-                                               childSelector);
+                               
attributesJson.put(AjaxAttributeName.CHILD_SELECTOR.jsonName(), childSelector);
                        }
 
                        String indicatorId = findIndicatorId();
@@ -328,19 +334,6 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
                                
attributesJson.put(AjaxAttributeName.IS_ASYNC.jsonName(), false);
                        }
 
-                       String[] eventNames = attributes.getEventNames();
-                       if (eventNames.length == 1)
-                       {
-                               
attributesJson.put(AjaxAttributeName.EVENT_NAME.jsonName(), eventNames[0]);
-                       }
-                       else
-                       {
-                               for (String eventName : eventNames)
-                               {
-                                       
attributesJson.append(AjaxAttributeName.EVENT_NAME.jsonName(), eventName);
-                               }
-                       }
-
                        AjaxChannel channel = attributes.getChannel();
                        if (channel != null && 
channel.equals(AjaxChannel.DEFAULT) == false)
                        {
@@ -352,6 +345,12 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
                                
attributesJson.put(AjaxAttributeName.IS_ALLOW_DEFAULT.jsonName(), true);
                        }
 
+                       Method method = attributes.getMethod();
+                       if (Method.POST == method)
+                       {
+                               
attributesJson.put(AjaxAttributeName.METHOD.jsonName(), method);
+                       }
+
                        if 
(AjaxRequestAttributes.EventPropagation.BUBBLE.equals(attributes.getEventPropagation()))
                        {
                                
attributesJson.put(AjaxAttributeName.EVENT_PROPAGATION.jsonName(), "bubble");
@@ -540,9 +539,11 @@ public abstract class AbstractDefaultAjaxBehavior extends 
AbstractAjaxBehavior
                        }
                }
                sb.append("var params = ").append(jsonArray).append(";\n");
-               sb.append("attrs.").append(AjaxAttributeName.EXTRA_PARAMETERS)
-                               .append(" = params.concat(attrs.")
-                               
.append(AjaxAttributeName.EXTRA_PARAMETERS).append(" || []);\n");
+               sb.append("attrs.")
+                       .append(AjaxAttributeName.EXTRA_PARAMETERS)
+                       .append(" = params.concat(attrs.")
+                       .append(AjaxAttributeName.EXTRA_PARAMETERS)
+                       .append(" || []);\n");
                sb.append("Wicket.Ajax.ajax(attrs);\n");
                return sb;
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/1a6f1bde/wicket-core/src/main/java/org/apache/wicket/ajax/json/JSONObject.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/json/JSONObject.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/json/JSONObject.java
index 4aabe0c..76fdc25 100755
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/json/JSONObject.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/json/JSONObject.java
@@ -34,6 +34,7 @@ import java.util.Collection;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
@@ -149,7 +150,7 @@ public class JSONObject {
      * Construct an empty JSONObject.
      */
     public JSONObject() {
-        this.map = new HashMap();
+        this.map = new LinkedHashMap();
     }
 
 
@@ -238,7 +239,7 @@ public class JSONObject {
      * @throws JSONException
      */
     public JSONObject(Map map) {
-        this.map = new HashMap();
+        this.map = new LinkedHashMap();
         if (map != null) {
             Iterator i = map.entrySet().iterator();
             while (i.hasNext()) {

http://git-wip-us.apache.org/repos/asf/wicket/blob/1a6f1bde/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java
index d8917ed..6313d0c 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java
@@ -70,20 +70,18 @@ public class AbstractDefaultAjaxBehaviorTest extends Assert
 
                CharSequence json = behavior.renderAjaxAttributes(component, 
attributes);
 
-               String expected = "{\"" + AjaxAttributeName.COMPLETE_HANDLER +
-                       "\":[function(attrs, jqXHR, 
textStatus){alert('Complete!');}],\"" +
-                       AjaxAttributeName.URL + "\":\"some/url\",\"" +
-                       AjaxAttributeName.PRECONDITION +
-                       "\":[function(attrs){return somePrecondition();}],\"" +
+               String expected = "{\"" + AjaxAttributeName.URL + 
"\":\"some/url\",\"" +
+                       AjaxAttributeName.BEFORE_HANDLER + 
"\":[function(attrs){alert('Before!');}],\"" +
+                       AjaxAttributeName.AFTER_HANDLER + 
"\":[function(attrs){alert('After!');}],\"" +
+                       AjaxAttributeName.SUCCESS_HANDLER +
+                       "\":[function(attrs, jqXHR, data, 
textStatus){alert('Success!');}],\"" +
                        AjaxAttributeName.FAILURE_HANDLER +
                        "\":[function(attrs, jqXHR, errorMessage, 
textStatus){alert('Failure!');}],\"" +
+                       AjaxAttributeName.COMPLETE_HANDLER +
+                       "\":[function(attrs, jqXHR, 
textStatus){alert('Complete!');}],\"" +
+                       AjaxAttributeName.PRECONDITION + 
"\":[function(attrs){return somePrecondition();}],\"" +
                        AjaxAttributeName.EXTRA_PARAMETERS +
-                       
"\":[{\"name\":\"param1\",\"value\":123},{\"name\":\"param2\",\"value\":\"fr_CA\"}],\""
 +
-                       AjaxAttributeName.BEFORE_HANDLER +
-                       "\":[function(attrs){alert('Before!');}],\"" +
-                       AjaxAttributeName.SUCCESS_HANDLER +
-                       "\":[function(attrs, jqXHR, data, 
textStatus){alert('Success!');}],\"" +
-                       AjaxAttributeName.AFTER_HANDLER + 
"\":[function(attrs){alert('After!');}]}";
+                       
"\":[{\"name\":\"param1\",\"value\":123},{\"name\":\"param2\",\"value\":\"fr_CA\"}]}";
                assertEquals(expected, json);
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/1a6f1bde/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest.java
index 472c8e8..3010b52 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest.java
@@ -48,7 +48,8 @@ public class MultiFileUploadFieldTest extends WicketTestCase
        public void submitMultiFileUploadFields()
        {
                final AtomicBoolean submitted = new AtomicBoolean(false);
-               final ListModel<FileUpload> filesModel = new 
ListModel<FileUpload>(new ArrayList<FileUpload>());
+               final ListModel<FileUpload> filesModel = new 
ListModel<FileUpload>(
+                       new ArrayList<FileUpload>());
 
                TestPage page = new TestPage(filesModel)
                {
@@ -63,13 +64,16 @@ public class MultiFileUploadFieldTest extends WicketTestCase
                                for (int i = 1; i < 2; i++)
                                {
                                        FileUpload fileUpload = uploads.get(i);
-                                       
assertEquals(MultiFileUploadFieldTest.class.getSimpleName()+i+".txt", 
fileUpload.getClientFileName());
+                                       
assertEquals(MultiFileUploadFieldTest.class.getSimpleName() + i + ".txt",
+                                               fileUpload.getClientFileName());
                                        try
                                        {
-                                               assertEquals("Test"+i, 
IOUtils.toString(fileUpload.getInputStream()));
-                                       } catch (IOException e)
+                                               assertEquals("Test" + i,
+                                                       
IOUtils.toString(fileUpload.getInputStream()));
+                                       }
+                                       catch (IOException e)
                                        {
-                                               fail("Reading file upload 
'"+i+"' failed: " + e.getMessage());
+                                               fail("Reading file upload '" + 
i + "' failed: " + e.getMessage());
                                        }
                                }
                                submitted.set(true);
@@ -79,8 +83,16 @@ public class MultiFileUploadFieldTest extends WicketTestCase
 
                FormTester ft = tester.newFormTester("f");
 
-               ft.setFile("muf", new 
File("target/test-classes/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest0.txt"),
 "plain/text");
-               ft.setFile("muf", new 
File("target/test-classes/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest1.txt"),
 "plain/text");
+               ft.setFile(
+                       "muf",
+                       new File(
+                               
"target/test-classes/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest0.txt"),
+                       "plain/text");
+               ft.setFile(
+                       "muf",
+                       new File(
+                               
"target/test-classes/org/apache/wicket/markup/html/form/upload/MultiFileUploadFieldTest1.txt"),
+                       "plain/text");
                ft.submit();
 
                assertEquals("The form is not submitted", true, 
submitted.get());
@@ -110,14 +122,13 @@ public class MultiFileUploadFieldTest extends 
WicketTestCase
                }
 
                @Override
-               public IResourceStream getMarkupResourceStream(MarkupContainer 
container, Class<?> containerClass)
+               public IResourceStream getMarkupResourceStream(MarkupContainer 
container,
+                       Class<?> containerClass)
                {
-                       return new StringResourceStream("<html><body>\n" +
-                                       "\t\t<form wicket:id=\"f\">\n" +
-                                       "\t\t\t<input type=\"file\" 
wicket:id=\"muf\" />\n" +
-                                       "\t\t\t<input type=\"submit\" 
value=\"Submit!\" />\t\n" +
-                                       "\t\t</form>\n" +
-                                       "\t</body></html>");
+                       return new StringResourceStream("<html><body>\n" + 
"\t\t<form wicket:id=\"f\">\n"
+                               + "\t\t\t<input type=\"file\" wicket:id=\"muf\" 
/>\n"
+                               + "\t\t\t<input type=\"submit\" 
value=\"Submit!\" />\t\n" + "\t\t</form>\n"
+                               + "\t</body></html>");
                }
        }
 }

Reply via email to