You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2012/06/16 10:12:10 UTC
[8/11] git commit: FIXME changed into proper wicket component test
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 <sv...@apache.org>
Authored: Fri Jun 15 18:30:38 2012 +0200
Committer: svenmeier <sv...@apache.org>
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;