You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2017/09/05 10:54:13 UTC
wicket git commit: WICKET-6462 added regression test
Repository: wicket
Updated Branches:
refs/heads/master 48f458091 -> 72a5d312a
WICKET-6462 added regression test
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/72a5d312
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/72a5d312
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/72a5d312
Branch: refs/heads/master
Commit: 72a5d312a1dfe63349a8ab963d9126cab5525a20
Parents: 48f4580
Author: Andrea Del Bene <ad...@apache.org>
Authored: Tue Sep 5 12:53:08 2017 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Tue Sep 5 12:53:08 2017 +0200
----------------------------------------------------------------------
.../ajax/form/AjaxFormSubmitBehaviorTest.java | 44 +++++++++-----
.../org/apache/wicket/ajax/form/PanelEdit.html | 47 +++++++++++++++
.../org/apache/wicket/ajax/form/PanelEdit.java | 60 ++++++++++++++++++++
3 files changed, 136 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/72a5d312/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehaviorTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehaviorTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehaviorTest.java
index 48f55a9..a0cab5d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehaviorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehaviorTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.ajax.form;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.util.tester.FormTester;
@@ -53,43 +55,55 @@ public class AjaxFormSubmitBehaviorTest extends WicketTestCase
tester.startPage(NestedFormTestPage.class);
NestedFormTestPage homePage = (NestedFormTestPage)tester.getLastRenderedPage();
- assertFalse(homePage.innerFormSubmitted);
+ assertFalse(homePage.innerSubmitted);
FormTester formTester = tester.newFormTester("outer:inner");
formTester.submit("submit");
- assertTrue(homePage.innerFormSubmitted);
+ assertTrue(homePage.innerSubmitted);
}
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-6462
+ *
+ * onSubmit must be called once.
+ */
+ @Test
+ public void formReplacement()
+ {
+ PanelEdit panelEdit = tester.startComponentInPage(PanelEdit.class);
+ FormTester formTester = tester.newFormTester(panelEdit.getId() + ":form");
+ //AjaxFormSubmitBehavior onSubmit must not be called when form is removed
+ formTester.submit("submit");
+ }
+
public static class NestedFormTestPage extends NestedFormPage
{
- public boolean innerFormSubmitted = false;
+ /**
+ *
+ */
+ private static final long serialVersionUID = -515262294201762225L;
+
public NestedFormTestPage()
{
- Form<?> outer = new Form("outer");
- replace(outer);
-
- Form<?> inner = new Form("inner")
- {
+ Form<?> inner = new Form("inner") {
@Override
- protected boolean wantSubmitOnParentFormSubmit()
- {
+ protected boolean wantSubmitOnParentFormSubmit() {
return false;
}
@Override
- protected void onSubmit()
- {
+ protected void onSubmit() {
super.onSubmit();
- innerFormSubmitted = true;
+ innerSubmitted = true;
}
};
- outer.add(inner);
-
inner.add(new AjaxButton("submit", inner) {});
+
+ get("outer:inner").replaceWith(inner);
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/72a5d312/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.html b/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.html
new file mode 100644
index 0000000..c30bb13
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.html
@@ -0,0 +1,47 @@
+<html xmlns:wicket="http://wicket.apache.org">
+
+<wicket:panel>
+
+ <div style="height: auto; width: 600px; text-align: center;margin: 0 auto;border: 1px solid silver;">
+
+ <br>
+ <br>
+ Panel Edit (the submit button is in a form)
+ <br>
+ <br>
+
+ <form wicket:id="form" >
+
+ ....
+ Textfield.....
+ <br>
+ Textfield.....
+ <br>
+ Textfield.....
+ <br>
+ <br>
+ <br>
+
+ When submit is clicked, this panel is remplaced by PanelView
+ <br>
+ (the one we come from)
+ <br>
+ <br>
+ But sumit is called twice.
+ <br>
+ <br>
+
+ <button wicket:id="submit" class="btn btn-primary btn-sm" type="submit">submit</button>
+
+ </form>
+
+ <br>
+ <br>
+ <br>
+ <br>
+
+ </div>
+
+</wicket:panel>
+
+</html>
http://git-wip-us.apache.org/repos/asf/wicket/blob/72a5d312/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.java b/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.java
new file mode 100644
index 0000000..5e0c4fc
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/PanelEdit.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ajax.form;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public class PanelEdit extends Panel {
+
+ public PanelEdit(String id) {
+ super(id);
+
+ setOutputMarkupId(true);
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+
+ Form<Void> form = new Form<>("form", null);
+ add(form);
+
+ form.add(createSubmitButton());
+ }
+
+ private AjaxButton createSubmitButton() {
+
+ AjaxButton submit = new AjaxButton("submit") {
+
+ protected void onSubmit(AjaxRequestTarget target) {
+ Component currentcomponent = PanelEdit.this;
+ Component newComponent = new Label(currentcomponent.getId())
+ .setOutputMarkupId(true);
+ currentcomponent.replaceWith(newComponent);
+ target.add(newComponent);
+ }
+
+ };
+
+ return submit;
+ }
+}
\ No newline at end of file