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/34d61f7f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/34d61f7f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/34d61f7f

Branch: refs/heads/master
Commit: 34d61f7f02dae699d77da42c43f1948b02d74ac2
Parents: be10b5a
Author: svenmeier <[email protected]>
Authored: Fri Jun 15 18:05:40 2012 +0200
Committer: svenmeier <[email protected]>
Committed: Fri Jun 15 22:22:25 2012 +0200

----------------------------------------------------------------------
 .../html/form/AbstractCheckGroupTestPage.java      |   16 +-
 .../html/form/CheckGroupProcessingTestPage.html    |   13 ++
 .../html/form/CheckGroupProcessingTestPage.java    |   37 ++++
 .../wicket/markup/html/form/CheckGroupTest.java    |  155 ++-------------
 4 files changed, 82 insertions(+), 139 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/34d61f7f/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractCheckGroupTestPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractCheckGroupTestPage.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractCheckGroupTestPage.java
index d1745de..fbb8567 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractCheckGroupTestPage.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/AbstractCheckGroupTestPage.java
@@ -36,6 +36,13 @@ public abstract class AbstractCheckGroupTestPage extends 
WebPage
         */
        private static final long serialVersionUID = 1L;
 
+       public Form<?> form;
+
+       public CheckGroup<String> group;
+
+       public Check<String> check1;
+
+       public Check<String> check2;
 
        /**
         * Constructor
@@ -45,12 +52,11 @@ public abstract class AbstractCheckGroupTestPage extends 
WebPage
        public AbstractCheckGroupTestPage(List<String> list)
        {
 
-               Form<?> form = new Form<Void>("form");
-               CheckGroup<String> group = new CheckGroup<String>("group",
-                       new CollectionModel<String>(list));
+               form = new Form<Void>("form");
+               group = new CheckGroup<String>("group", new 
CollectionModel<String>(list));
                WebMarkupContainer container = new 
WebMarkupContainer("container");
-               Check<String> check1 = new Check<String>("check1", new 
Model<String>("check1"));
-               Check<String> check2 = new Check<String>("check2", new 
Model<String>("check2"));
+               check1 = new Check<String>("check1", new 
Model<String>("check1"));
+               check2 = new Check<String>("check2", new 
Model<String>("check2"));
 
 
                add(form);

http://git-wip-us.apache.org/repos/asf/wicket/blob/34d61f7f/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.html
new file mode 100644
index 0000000..f8268f3
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.html
@@ -0,0 +1,13 @@
+<html>
+<head><title>CheckGroupTestPage1</title></head>
+<body>
+       <form wicket:id="form">
+               <span wicket:id="group">
+                       <input type="checkbox" wicket:id="check1">check1</input>
+                       <span wicket:id="container">
+                               <input type="checkbox" 
wicket:id="check2">check2</input>
+                       </span>
+               </span>
+       </form>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/34d61f7f/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.java
new file mode 100644
index 0000000..11eb26f
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupProcessingTestPage.java
@@ -0,0 +1,37 @@
+/*
+ * 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 java.util.List;
+
+/**
+ * test processing
+ * 
+ * @author svenmeier
+ */
+public class CheckGroupProcessingTestPage extends AbstractCheckGroupTestPage
+{
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * constructor
+        */
+       public CheckGroupProcessingTestPage(List<String> list)
+       {
+               super(list);
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/34d61f7f/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
index 93c8731..e88e30c 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTest.java
@@ -16,19 +16,11 @@
  */
 package org.apache.wicket.markup.html.form;
 
-import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 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.model.util.CollectionModel;
-import org.apache.wicket.protocol.http.MockPage;
 import org.junit.Test;
 
 
@@ -44,171 +36,66 @@ import org.junit.Test;
 public class CheckGroupTest 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 Set<Object> prop1 = new HashSet<Object>();
-               private String prop2;
-
-               /**
-                * @return prop1
-                */
-               public Set<Object> getProp1()
-               {
-                       return prop1;
-               }
-
-               /**
-                * @param prop1
-                */
-               public void setProp1(Set<Object> 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 check1 = "check1-selection";
-               final String check2 = "check2-selection";
-
-               MockModelObject modelObject = new MockModelObject();
-               modelObject.setProp2(check2);
 
                // test model constructors
-               List<Object> list = new ArrayList<Object>();
-               CollectionModel<Object> model = new 
CollectionModel<Object>(list);
-
-               final CheckGroup<Object> group2 = new 
CheckGroup<Object>("group2", model);
-               assertTrue(group2.getDefaultModelObject() == list);
-
-               final CheckGroup<Object> group3 = new 
CheckGroup<Object>("group3", list);
-               assertTrue(group3.getDefaultModelObject() == list);
-
-
-               // set up necessary objects to emulate a form submission
+               List<String> list = new ArrayList<String>();
+               list.add("check2");
 
-               // this could have been any page it seems. see comment at method
-               MockPage page = new MockPage();
+               CheckGroupProcessingTestPage page = new 
CheckGroupProcessingTestPage(list);
 
-               // 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";
-                       }
-               };
+               tester.startPage(page);
 
-               final CheckGroup<Object> group = new 
CheckGroup<Object>("prop1");
+               tester.submitForm(page.form);
 
-               final WebMarkupContainer container = new 
WebMarkupContainer("container");
-
-               final Check<Serializable> choice1 = new 
Check<Serializable>("check1",
-                       new Model<Serializable>(check1));
-               final Check<String> choice2 = new Check<String>("prop2");
-
-               page.add(form);
-               form.add(group);
-               group.add(container);
-               container.add(choice1);
-               group.add(choice2);
-
-               // test mock form submissions
-
-               modelObject.getProp1().add(check1);
-
-               form.onFormSubmitted();
-               assertTrue("running with nothing selected - model must be 
empty", modelObject.getProp1()
-                       .size() == 0);
+               assertTrue("running with nothing selected - model must be 
empty", list.size() == 0);
 
                tester.getRequest()
                        .getPostParameters()
-                       .setParameterValue(group.getInputName(), 
String.valueOf(choice1.getValue()));
-               tester.applyRequest();
-               form.onFormSubmitted();
+                       .setParameterValue(page.group.getInputName(), 
page.check1.getValue());
+               tester.submitForm(page.form);
+
                assertTrue("running with choice1 selected - model must only 
contain value of check1",
-                       modelObject.getProp1().size() == 1 && 
modelObject.getProp1().contains(check1));
+                       list.size() == 1 && list.contains("check1"));
 
                tester.getRequest()
                        .getPostParameters()
-                       .setParameterValue(group.getInputName(), 
String.valueOf(choice2.getValue()));
-               tester.applyRequest();
-               form.onFormSubmitted();
+                       .setParameterValue(page.group.getInputName(), 
page.check2.getValue());
+               tester.submitForm(page.form);
+
                assertTrue("running with choice2 selected - model must only 
contain value of check2",
-                       modelObject.getProp1().size() == 1 && 
modelObject.getProp1().contains(check2));
+                       list.size() == 1 && list.contains("check2"));
 
                // throw in some nulls into the request param to make sure they 
are
                // ignored
-               
tester.getRequest().getPostParameters().addParameterValue(group.getInputName(), 
null);
+               
tester.getRequest().getPostParameters().addParameterValue(page.group.getInputName(),
 null);
                tester.getRequest()
                        .getPostParameters()
-                       .addParameterValue(group.getInputName(), 
String.valueOf(choice1.getValue()));
+                       .addParameterValue(page.group.getInputName(), 
page.check1.getValue());
                tester.getRequest()
                        .getPostParameters()
-                       .addParameterValue(group.getInputName(), 
String.valueOf(choice2.getValue()));
-               tester.applyRequest();
-               form.onFormSubmitted();
+                       .addParameterValue(page.group.getInputName(), 
page.check2.getValue());
+               tester.submitForm(page.form);
 
                assertTrue(
                        "running with choice1 and choice2 selected - model must 
only contain values of check1 and check2",
-                       modelObject.getProp1().size() == 2 && 
modelObject.getProp1().contains(check2) &&
-                               modelObject.getProp1().contains(check1));
+                       list.size() == 2 && list.contains("check1") && 
list.contains("check2"));
 
                tester.getRequest()
                        .getPostParameters()
-                       .setParameterValue(group.getInputName(), "some weird 
choice uuid to test error");
-               tester.applyRequest();
+                       .setParameterValue(page.group.getInputName(), "some 
weird choice uuid to test error");
                try
                {
-                       form.onFormSubmitted();
+                       tester.submitForm(page.form);
                        fail("running with an invalid choice value in the 
request param, should fail");
                }
                catch (WicketRuntimeException e)
                {
-
                }
-
-
        }
 
        /**

Reply via email to