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>"); } } }
