Author: ivaynberg Date: Thu Jan 24 21:51:36 2008 New Revision: 615118 URL: http://svn.apache.org/viewvc?rev=615118&view=rev Log: failing unit test for WICKET-1304
Added: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java (with props) Added: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java?rev=615118&view=auto ============================================================================== --- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java (added) +++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java Thu Jan 24 21:51:36 2008 @@ -0,0 +1,134 @@ +/* + * 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.MarkupContainer; +import org.apache.wicket.WicketTestCase; +import org.apache.wicket.markup.IMarkupResourceStreamProvider; +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.util.resource.IResourceStream; +import org.apache.wicket.util.resource.StringResourceStream; +import org.apache.wicket.util.tester.FormTester; + +/** + * Test form component panel related form processing + * + * @author ivaynberg + */ +public class FormComponentPanelProcessingTest extends WicketTestCase +{ + + /** + * Test processing order of form component panel and its containing children. The children + * should be processed first. + */ + public void testProcessingOrder() + { + tester.startPage(new TestPage()); + tester.assertRenderedPage(TestPage.class); + FormTester ft = tester.newFormTester("form"); + ft.submit(); + } + + private static class TestFormComponentPanel extends FormComponentPanel + implements + IMarkupResourceStreamProvider + { + private static final long serialVersionUID = 1L; + + private boolean childValidated = false; + private boolean childModelUpdated = false; + + private TestFormComponentPanel(String id, IModel model) + { + super(id, model); + add(new TextField("text", new Model()) + { + private static final long serialVersionUID = 1L; + + protected void convertInput() + { + super.convertInput(); + childValidated = true; + } + + public void updateModel() + { + super.updateModel(); + childModelUpdated = true; + } + }); + } + + protected void onBeforeRender() + { + super.onBeforeRender(); + childValidated = false; + childModelUpdated = false; + + } + + protected void convertInput() + { + if (childValidated == false) + { + fail("Child should have been validated before parent"); + } + super.convertInput(); + } + + public void updateModel() + { + if (childModelUpdated == false) + { + fail("Child's model not updated before parent's"); + + } + super.updateModel(); + } + + public IResourceStream getMarkupResourceStream(MarkupContainer container, + Class containerClass) + { + return new StringResourceStream( + "<wicket:panel><input wicket:id='text' type='text'/></wicket:panel>"); + } + } + + + private static class TestPage extends WebPage implements IMarkupResourceStreamProvider + { + private static final long serialVersionUID = 1L; + + public TestPage() + { + Form form = new Form("form"); + add(form); + form.add(new TestFormComponentPanel("panel", new Model())); + } + + public IResourceStream getMarkupResourceStream(MarkupContainer container, + Class containerClass) + { + return new StringResourceStream( + "<body><form wicket:id='form'><div wicket:id='panel'></div></form></body>"); + } + + } +} Propchange: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/form/FormComponentPanelProcessingTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain