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;
 

Reply via email to