FIXME changed into proper wicket component test
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4f59e992 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4f59e992 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4f59e992 Branch: refs/heads/master Commit: 4f59e992ffd3e01016b990bcdb015e35fdbad52d Parents: 34d61f7 Author: svenmeier <[email protected]> Authored: Fri Jun 15 18:30:38 2012 +0200 Committer: svenmeier <[email protected]> Committed: Fri Jun 15 22:22:25 2012 +0200 ---------------------------------------------------------------------- .../html/form/RadioGroupProcessingTestPage.html | 13 ++ .../html/form/RadioGroupProcessingTestPage.java | 58 ++++++ .../wicket/markup/html/form/RadioGroupTest.java | 140 ++------------- .../markup/html/form/RadioGroupTestPage1.java | 1 - 4 files changed, 86 insertions(+), 126 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/4f59e992/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.html new file mode 100644 index 0000000..12e2213 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.html @@ -0,0 +1,13 @@ +<html> +<head><title>RadioGroupTestPage1</title></head> +<body> + <form wicket:id="form"> + <span wicket:id="group"> + <input type="radio" wicket:id="radio1">radio1</input> + <span wicket:id="container"> + <input type="radio" wicket:id="radio2">radio2</input> + </span> + </span> + </form> +</body> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/4f59e992/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.java new file mode 100644 index 0000000..f0ce5ff --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupProcessingTestPage.java @@ -0,0 +1,58 @@ +/* + * 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.markup.html.form; + +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +/** + * Tests rendering of the RadioGroup and Radio components + * + * @author igor + */ +public class RadioGroupProcessingTestPage extends WebPage +{ + /** + */ + private static final long serialVersionUID = 1L; + + public Form<Void> form; + public RadioGroup<String> group; + public Radio<String> radio1; + public Radio<String> radio2; + + /** + * Constructor + */ + public RadioGroupProcessingTestPage(IModel<String> model) + { + form = new Form<Void>("form"); + group = new RadioGroup<String>("group", model); + WebMarkupContainer container = new WebMarkupContainer("container"); + radio1 = new Radio<String>("radio1", new Model<String>("radio1")); + radio2 = new Radio<String>("radio2", new Model<String>("radio2")); + + + add(form); + form.add(group); + group.add(radio1); + group.add(container); + container.add(radio2); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/4f59e992/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java index 52d009f..c5371b6 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTest.java @@ -16,14 +16,9 @@ */ package org.apache.wicket.markup.html.form; -import java.io.Serializable; - import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.WicketTestCase; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.Model; -import org.apache.wicket.protocol.http.MockPage; import org.junit.Test; @@ -36,158 +31,53 @@ import org.junit.Test; public class RadioGroupTest extends WicketTestCase { /** - * mock model object with an embedded property used to test compound property model - * - * @author igor - * - */ - public static class MockModelObject implements Serializable - { - private static final long serialVersionUID = 1L; - - private String prop1; - private String prop2; - - /** - * @return prop1 - */ - public String getProp1() - { - return prop1; - } - - /** - * @param prop1 - */ - public void setProp1(String prop1) - { - this.prop1 = prop1; - } - - /** - * @return prop2 - */ - public String getProp2() - { - return prop2; - } - - /** - * @param prop2 - */ - public void setProp2(String prop2) - { - this.prop2 = prop2; - } - - - } - - /** * test component form processing */ - // TODO (Eelco) This is an awful test. Why is 'mock page' (which isn't a - // real mock, but just some arbitrary page) used rather than a page with - // markup that corresponds to the component structure that is build up? - // Components and markup go together in Wicket, period. @Test public void formProcessing() { - // setup some values we will use for testing as well as a test model - final String radio1 = "radio1-selection"; - // object used to test compound property model - MockModelObject modelObject = new MockModelObject(); - // object used to test regular model Model<String> model = new Model<String>(); - // set up necessary objects to emulate a form submission - - // this could have been any page it seems. see comment at method - MockPage page = new MockPage(); - - // create component hierarchy - - final Form<MockModelObject> form = new Form<MockModelObject>("form", - new CompoundPropertyModel<MockModelObject>(modelObject)) - { - private static final long serialVersionUID = 1L; - - @Override - public String getMarkupId() - { - // hack for the fact that this test doesn't relate to any markup - return "foo"; - } - }; - - final RadioGroup<String> group = new RadioGroup<String>("prop1"); - - final WebMarkupContainer container = new WebMarkupContainer("container"); + RadioGroupProcessingTestPage page = new RadioGroupProcessingTestPage(model); - final Radio<String> choice1 = new Radio<String>("radio1", new Model<String>(radio1)); - final Radio<String> choice2 = new Radio<String>("prop2"); + model.setObject("initial"); - final RadioGroup<String> group2 = new RadioGroup<String>("group2", model); + tester.startPage(page); - final Radio<String> choice3 = new Radio<String>("radio3", new Model<String>(radio1)); - - page.add(form); - form.add(group); - group.add(container); - container.add(choice1); - group.add(choice2); - form.add(group2); - group2.add(choice3); - - // test mock form submissions - - modelObject.setProp1(radio1); - - form.onFormSubmitted(); + tester.submitForm(page.form); assertTrue("group: running with nothing selected - model must be set to null", - modelObject.getProp1() == null); - assertTrue("group2: running with nothing selected - model must be set to null", model.getObject() == null); tester.getRequest() .getPostParameters() - .setParameterValue(group.getInputName(), choice1.getValue()); - tester.getRequest() - .getPostParameters() - .setParameterValue(group2.getInputName(), choice3.getValue()); - - tester.applyRequest(); + .setParameterValue(page.group.getInputName(), page.radio1.getValue()); + tester.submitForm(page.form); - form.onFormSubmitted(); assertEquals("group: running with choice1 selected - model must be set to value of radio1", - modelObject.getProp1(), choice1.getDefaultModelObject()); - assertEquals( - "group2: running with choice3 selected - model must be set to value of radio1", - model.getObject(), choice3.getDefaultModelObject()); + model.getObject(), "radio1"); tester.getRequest() .getPostParameters() - .setParameterValue(group.getInputName(), choice2.getValue()); - tester.applyRequest(); - form.onFormSubmitted(); + .setParameterValue(page.group.getInputName(), page.radio2.getValue()); + tester.submitForm(page.form); + assertEquals("group: running with choice2 selected - model must be set to value of radio2", - modelObject.getProp1(), choice2.getDefaultModelObject()); + model.getObject(), "radio2"); tester.getRequest() .getPostParameters() - .setParameterValue(group2.getInputName(), choice1.getValue()); - tester.applyRequest(); + .setParameterValue(page.group.getInputName(), "some weird choice uuid to test error"); + try { - form.onFormSubmitted(); - fail("group2: ran with an invalid choice selected but did not fail"); + tester.submitForm(page.form); + fail("group: ran with an invalid choice selected but did not fail"); } catch (WicketRuntimeException e) { } - } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/4f59e992/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1.java index a2b9515..2bab8c9 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1.java @@ -28,7 +28,6 @@ import org.apache.wicket.model.Model; public class RadioGroupTestPage1 extends WebPage { /** - * */ private static final long serialVersionUID = 1L;
