[
https://issues.apache.org/jira/browse/WICKET-2019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12663483#action_12663483
]
Juergen Donnerstag commented on WICKET-2019:
--------------------------------------------
I used your code for a life system and it works with 1.4 trunk without any
problems. The messages are reset. The problem only occured with WicketTester.
There should be no need to use clearFeedbackMessages().
> Validation messages aren't cleared on success.
> ----------------------------------------------
>
> Key: WICKET-2019
> URL: https://issues.apache.org/jira/browse/WICKET-2019
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4-RC1
> Reporter: Maarten Billemont
> Assignee: Juergen Donnerstag
> Fix For: 1.4-RC2
>
>
> When triggering validation messages on a form component, they aren't cleared
> anymore when afterward we fix our validation problem.
> The following code demonstrates this issue by making a form with a single
> text field that is set as required. First, we submit the form without filling
> in the field. We expect that to cause an error. Which it does. Then, we
> set a value in the field, and submit again. We expect that to pass
> validation. It does not, however.
> Instead, we get this exception:
> junit.framework.AssertionFailedError: expect no error message, but contains
> Field 'field' is required.
> at junit.framework.Assert.fail(Assert.java:47)
> at junit.framework.Assert.assertTrue(Assert.java:20)
> at
> org.apache.wicket.util.tester.WicketTester.assertNoErrorMessage(WicketTester.java:493)
> at
> test.spike.net.link.safeonline.TinyTests.wicketTest(TinyTests.java:93)
> Code:
> package test.spike;
> import org.apache.wicket.Page;
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.markup.html.form.Form;
> import org.apache.wicket.markup.html.form.TextField;
> import org.apache.wicket.protocol.http.WebApplication;
> import org.apache.wicket.util.tester.FormTester;
> import org.apache.wicket.util.tester.WicketTester;
> import org.junit.Test;
> public class TinyTests {
> public static class MyApp extends WebApplication {
> @Override
> public Class<? extends Page> getHomePage() {
> return MyPage.class;
> }
> }
> public static class MyPage extends WebPage {
> public MyPage() {
> add(new MyForm("form"));
> }
> class MyForm extends Form<String> {
> private static final long serialVersionUID = 1L;
> public MyForm(String id) {
> super(id);
> TextField<String> f = new TextField<String>("field");
> f.setRequired(true);
> add(f);
> }
> }
> }
> @Test
> public void wicketTest() {
> WicketTester wicket = new WicketTester(new MyApp());
> wicket.processRequestCycle();
> FormTester form = wicket.newFormTester("form");
> form.submit();
> wicket.assertErrorMessages(new String[] { "Field 'field' is
> required." });
> form = wicket.newFormTester("form");
> form.setValue("field", "foo");
> form.submit();
> wicket.assertNoErrorMessage(); // <- Exception line.
> }
> }
> <html>
> <body>
> <form wicket:id="form">
> <input wicket:id="field" />
> <input type="submit" />
> </form>
> </body>
> </html>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.