Author: jdonnerstag
Date: Sun Nov  8 12:31:26 2009
New Revision: 833863

URL: http://svn.apache.org/viewvc?rev=833863&view=rev
Log:
additional test on: FormComponents hidden by wicket:enclosure should not be 
validated upon form submit
Issue: WICKET-2552

Added:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/basic/EnclosureContainer.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.java
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.html
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.java
Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java

Added: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/basic/EnclosureContainer.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/basic/EnclosureContainer.java?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/basic/EnclosureContainer.java
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/markup/html/basic/EnclosureContainer.java
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,85 @@
+/*
+ * 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.basic;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * <code>&lt;wicket:enclosure&gt;</code> is nice and prevents that users have 
to add boilerplate to
+ * their application. But it is not without problems. The child components are 
children in the
+ * markup, but the auto-component generated for the enclosure tag will not 
magically re-parent the
+ * child components. Thus the markup hierarchy and the component hierarchy 
will be out of sync. The
+ * automatically created enclosure container will be created along side its 
"children" with both
+ * attached to the very same parent container. That leads to a tricky 
situation since e.g.
+ * <code>onBeforeRender()</code> will be called for enclosure children even if 
the enclosure is made
+ * invisible by it controlling child.
+ * 
+ * On top auto-components cannot keep any state. A new instance is created 
during each render
+ * process and automatically deleted at the end. That implies that we cannot 
prevent
+ * <code>validation()<code> from being called, since validation() is called 
before the actual
+ * render process has started.
+ * 
+ * Where any of these problems apply, you may replace the tag and manually add 
this simple container 
+ * which basically does the same. But instead of adding the children to the 
Page, Panel whatever, 
+ * you must add the children to this container in order to keep the component 
hierarchy in sync.
+ * 
+ * @author Juergen Donnerstag
+ * @since 1.5
+ */
+public class EnclosureContainer extends WebMarkupContainer
+{
+       private static final long serialVersionUID = 1L;
+
+       private static final Logger log = 
LoggerFactory.getLogger(EnclosureContainer.class);
+
+       /** The child component to delegate the isVisible() call to */
+       private final Component child;
+
+       /**
+        * Construct.
+        * 
+        * @param id
+        * @param child
+        */
+       public EnclosureContainer(final String id, final Component child)
+       {
+               super(id);
+
+               if (child == null)
+               {
+                       throw new NullPointerException("Parameter 'child' must 
not be null");
+               }
+
+               this.child = child;
+
+               // Usually we don't want this extra tag
+               setRenderBodyOnly(true);
+       }
+
+       /**
+        * @see org.apache.wicket.Component#isVisible()
+        */
+       @Override
+       public boolean isVisible()
+       {
+               return child.isVisible();
+       }
+}

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,5 @@
+<html xmlns:wicket>
+<body>
+  <wicket:enclosure child="input"></wicket:enclosure>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,8 @@
+<html xmlns:wicket>
+<body>
+  <wicket:enclosure child="input">
+    <input wicket:id="input" type="checkbox" name="input"/>
+    
+  </wicket:enclosure>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,8 @@
+<html xmlns:wicket>
+<body>
+  <wicket:enclosure child="input">
+    <input wicket:id="input" type="checkbox" name="input"/>
+    <span wicket:id="label"></span>
+  </wicket:enclosure>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,8 @@
+<html xmlns:wicket>
+<body>
+  <form wicket:id="form" id="form1" method="post" 
action="?wicket:interface=:0:form::IFormSubmitListener::"><div 
style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" 
/></div>
+    <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
+    <wicket:enclosure child="label"></wicket:enclosure>
+  </form>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,11 @@
+<html xmlns:wicket>
+<body>
+  <form wicket:id="form" id="form1" method="post" 
action="?wicket:interface=:0:form::IFormSubmitListener::"><div 
style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" 
/></div>
+    <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
+    <wicket:enclosure child="label">
+      
+      <span wicket:id="label"></span>
+    </wicket:enclosure>
+  </form>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,11 @@
+<html xmlns:wicket>
+<body>
+  <form wicket:id="form" id="form1" method="post" 
action="?wicket:interface=:0:form::IFormSubmitListener::"><div 
style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" 
/></div>
+    <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
+    <wicket:enclosure child="label">
+      <input wicket:id="input" type="checkbox" checked="checked" name="input"/>
+      <span wicket:id="label"></span>
+    </wicket:enclosure>
+  </form>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,11 @@
+<html xmlns:wicket>
+<body>
+  <form wicket:id="form" id="form1" method="post" 
action="?wicket:interface=:0:form::IFormSubmitListener::"><div 
style="display:none"><input type="hidden" name="form1_hf_0" id="form1_hf_0" 
/></div>
+    <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
+    <wicket:enclosure child="label">
+      <input wicket:id="input" type="checkbox" name="input"/>
+      <span wicket:id="label"></span>
+    </wicket:enclosure>
+  </form>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,8 @@
+<html xmlns:wicket>
+<body>
+  <wicket:enclosure child="input">
+    <input wicket:id="input" type="checkbox" value="salami"/>
+    <span wicket:id="label">label</span>
+  </wicket:enclosure>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.java?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.java
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_10.java
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,41 @@
+/*
+ * 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.internal;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.CheckBox;
+
+
+/**
+ * Mock page for testing.
+ * 
+ * @author Juergen Donnerstag
+ */
+public class EnclosurePage_10 extends WebPage
+{
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * Construct.
+        */
+       public EnclosurePage_10()
+       {
+               add(new CheckBox("input"));
+               add(new Label("label"));
+       }
+}

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.html
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.html?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.html
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.html
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,11 @@
+<html xmlns:wicket>
+<body>
+  <form wicket:id="form">
+    <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
+    <wicket:enclosure child="label">
+      <input wicket:id="input" type="checkbox" value="salami"/>
+      <span wicket:id="label">label</span>
+    </wicket:enclosure>
+  </form>
+</body>
+</html>

Added: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.java?rev=833863&view=auto
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.java
 (added)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePage_9.java
 Sun Nov  8 12:31:26 2009
@@ -0,0 +1,114 @@
+/*
+ * 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.internal;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.PropertyModel;
+
+
+/**
+ * Mock page for testing.
+ * 
+ * @author Juergen Donnerstag
+ */
+public class EnclosurePage_9 extends WebPage
+{
+       private static final long serialVersionUID = 1L;
+
+       /** */
+       public boolean formValidate;
+
+       /** */
+       public boolean inputOnBeforeRender;
+
+       /** */
+       public boolean inputValidate;
+
+       /** */
+       public boolean labelOnBeforeRender;
+
+       /** */
+       public boolean checkbox;
+
+       /**
+        * Construct.
+        */
+       public EnclosurePage_9()
+       {
+               Form<Void> form = new Form<Void>("form")
+               {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onValidate()
+                       {
+                               formValidate = true;
+                               super.onValidate();
+                       }
+               };
+
+               add(form);
+
+               form.add(new CheckBox("input", new PropertyModel<Boolean>(this, 
"checkbox"))
+               {
+                       private static final long serialVersionUID = 1L;
+
+                       /**
+                        * @see org.apache.wicket.Component#onBeforeRender()
+                        */
+                       @Override
+                       protected void onBeforeRender()
+                       {
+                               inputOnBeforeRender = true;
+                               super.onBeforeRender();
+                       }
+
+                       @Override
+                       public void validate()
+                       {
+                               inputValidate = true;
+                               super.validate();
+                       }
+               });
+
+               form.add(new Label("label")
+               {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onBeforeRender()
+                       {
+                               labelOnBeforeRender = true;
+                               super.onBeforeRender();
+                       };
+               });
+       }
+
+       /**
+        * 
+        */
+       public void reset()
+       {
+               inputOnBeforeRender = false;
+               inputValidate = false;
+               labelOnBeforeRender = false;
+               formValidate = false;
+       }
+}

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java?rev=833863&r1=833862&r2=833863&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java
 Sun Nov  8 12:31:26 2009
@@ -16,10 +16,16 @@
  */
 package org.apache.wicket.markup.html.internal;
 
+import java.io.IOException;
+
+import org.apache.wicket.Page;
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.resource.DummyApplication;
+import org.apache.wicket.util.diff.DiffUtil;
+import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTester;
 
 
@@ -154,4 +160,166 @@
        {
                executeTest(EnclosurePage_8.class, 
"EnclosurePageExpectedResult_8.html");
        }
+
+       /**
+        * 
+        * @param page
+        * @param file
+        * @throws Exception
+        */
+       private void executePage(final EnclosurePage_9 page, final String file) 
throws Exception
+       {
+               page.reset();
+               tester.startPage(page);
+               tester.assertRenderedPage(page.getClass());
+               assertResultPage(file);
+       }
+
+       private void assertResultPage(final String file) throws IOException
+       {
+               String document = tester.getServletResponse().getDocument();
+               document = 
document.replaceAll(":form:[1-90]+:IFormSubmitListener:",
+                       ":form::IFormSubmitListener:");
+               DiffUtil.validatePage(document, getClass(), file, true);
+       }
+
+       /**
+        * @throws Exception
+        */
+       public void testRender9() throws Exception
+       {
+               Class<? extends Page> clazz = EnclosurePage_9.class;
+               tester = new WicketTester(clazz);
+
+               executeTest(clazz, "EnclosurePageExpectedResult_9.html");
+               EnclosurePage_9 page = 
(EnclosurePage_9)tester.getLastRenderedPage();
+               assertTrue(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:label").setVisible(false);
+               executePage(page, "EnclosurePageExpectedResult_9-2.html");
+               // It should be FALSE, but because of auto-component etc. it 
doesn't
+               // assertFalse(page.inputOnBeforeRender);
+               assertTrue(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertFalse(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:label").setVisible(true);
+               executePage(page, "EnclosurePageExpectedResult_9.html");
+               assertTrue(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:input").setVisible(false);
+               executePage(page, "EnclosurePageExpectedResult_9-3.html");
+               assertFalse(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:label").setVisible(false);
+               executePage(page, "EnclosurePageExpectedResult_9-2.html");
+               assertFalse(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertFalse(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:label").setVisible(true);
+               executePage(page, "EnclosurePageExpectedResult_9-3.html");
+               assertFalse(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+
+               page.reset();
+               page.get("form:input").setVisible(true);
+               executePage(page, "EnclosurePageExpectedResult_9.html");
+               assertTrue(page.inputOnBeforeRender);
+               assertFalse(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+       }
+
+       /**
+        * @throws Exception
+        */
+       public void testRender9a() throws Exception
+       {
+               Class<? extends Page> clazz = EnclosurePage_9.class;
+               tester = new WicketTester(clazz);
+
+               executeTest(clazz, "EnclosurePageExpectedResult_9.html");
+               EnclosurePage_9 page = 
(EnclosurePage_9)tester.getLastRenderedPage();
+
+               page.reset();
+               FormTester formTester = tester.newFormTester("form");
+               
tester.getServletRequest().setParameter(((CheckBox)page.get("form:input")).getInputName(),
+                       "true");
+               page.get("form:label").setVisible(true);
+               formTester.submit();
+               tester.assertRenderedPage(clazz);
+               assertResultPage("EnclosurePageExpectedResult_9-4.html");
+               assertTrue(page.inputOnBeforeRender);
+               assertTrue(page.inputValidate);
+               assertTrue(page.labelOnBeforeRender);
+
+               page.reset();
+               
tester.getServletRequest().setParameter(((CheckBox)page.get("form:input")).getInputName(),
+                       "true");
+               page.get("form:label").setVisible(false);
+               tester.submitForm("form");
+               tester.assertRenderedPage(clazz);
+               assertResultPage("EnclosurePageExpectedResult_9-2.html");
+               // It should be FALSE, but because of auto-component etc. it 
doesn't
+               // assertFalse(page.inputOnBeforeRender);
+               assertTrue(page.inputOnBeforeRender);
+               // It should be FALSE, but because of auto-component etc. it 
doesn't
+               // assertFalse(page.inputValidate);
+               assertTrue(page.inputValidate);
+               assertFalse(page.labelOnBeforeRender);
+       }
+
+       /**
+        * It must not be a difference if the enclosure controller child is a 
FormComponent.
+        * 
+        * @throws Exception
+        */
+       public void testRender10() throws Exception
+       {
+               Class<? extends Page> clazz = EnclosurePage_10.class;
+               executeTest(clazz, "EnclosurePageExpectedResult_10.html");
+
+               Page page = tester.getLastRenderedPage();
+               page.get("input").setVisible(false);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10-2.html");
+
+               page.get("input").setVisible(true);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10.html");
+
+               page.get("label").setVisible(false);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10-3.html");
+
+               page.get("input").setVisible(false);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10-2.html");
+
+               page.get("input").setVisible(true);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10-3.html");
+
+               page.get("label").setVisible(true);
+               tester.startPage(page);
+               tester.assertRenderedPage(clazz);
+               tester.assertResultPage(getClass(), 
"EnclosurePageExpectedResult_10.html");
+       }
 }


Reply via email to