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;