Author: ivaynberg
Date: Sun Apr 26 19:55:38 2009
New Revision: 768757

URL: http://svn.apache.org/viewvc?rev=768757&view=rev
Log:
check in test case into extensions so we wouldnt need the :tests: assembly as 
it is causing a compilation problem when used with a clean maven repo

Added:
    
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java
   (with props)

Added: 
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java?rev=768757&view=auto
==============================================================================
--- 
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java
 (added)
+++ 
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java
 Sun Apr 26 19:55:38 2009
@@ -0,0 +1,169 @@
+/*
+ * 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;
+
+import junit.framework.TestCase;
+
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+import org.apache.wicket.util.tester.WicketTester;
+
+/**
+ * Base class for tests which require comparing wicket response with a file.
+ * <p>
+ * To create/replace the expected result file with the new content, define the 
system property like
+ * -Dwicket.replace.expected.results=true
+ * 
+ */
+public abstract class WicketTestCase extends TestCase
+{
+       /** */
+       public WicketTester tester;
+
+       /**
+        * Constructor
+        */
+       public WicketTestCase()
+       {
+       }
+
+       /**
+        * Create the test.
+        * 
+        * @param name
+        *            The test name
+        */
+       public WicketTestCase(String name)
+       {
+               super(name);
+       }
+
+       /**
+        * @see junit.framework.TestCase#setUp()
+        */
+       @Override
+       protected void setUp() throws Exception
+       {
+               tester = new WicketTester();
+       }
+
+       /**
+        * @see junit.framework.TestCase#tearDown()
+        */
+       @Override
+       protected void tearDown() throws Exception
+       {
+               tester.destroy();
+       }
+
+       /**
+        * Use <code>-Dwicket.replace.expected.results=true</code> to 
automatically replace the expected
+        * output file.
+        * 
+        * @param <T>
+        * 
+        * @param pageClass
+        * @param filename
+        * @throws Exception
+        */
+       protected <T extends Page> void executeTest(final Class<T> pageClass, 
final String filename)
+               throws Exception
+       {
+               System.out.println("=== " + pageClass.getName() + " ===");
+
+               tester.startPage(pageClass);
+               tester.assertRenderedPage(pageClass);
+               tester.assertResultPage(getClass(), filename);
+       }
+
+       /**
+        * Use <code>-Dwicket.replace.expected.results=true</code> to 
automatically replace the expected
+        * output file.
+        * 
+        * @param <T>
+        * 
+        * @param pageClass
+        * @param parameters
+        * @param filename
+        * @throws Exception
+        */
+       protected <T extends Page> void executeTest(final Class<T> pageClass,
+               PageParameters parameters, final String filename) throws 
Exception
+       {
+               System.out.println("=== " + pageClass.getName() + " ===");
+
+               tester.startPage(pageClass, parameters);
+               tester.assertRenderedPage(pageClass);
+               tester.assertResultPage(getClass(), filename);
+       }
+
+       /**
+        * 
+        * @param clazz
+        * @param component
+        * @param filename
+        * @throws Exception
+        */
+       protected void executedListener(final Class<?> clazz, final Component 
component,
+               final String filename) throws Exception
+       {
+               assertNotNull(component);
+
+               System.out.println("=== " + clazz.getName() + " : " + 
component.getPageRelativePath() +
+                       " ===");
+
+               tester.executeListener(component);
+               tester.assertResultPage(clazz, filename);
+       }
+
+       /**
+        * 
+        * @param clazz
+        * @param behavior
+        * @param filename
+        * @throws Exception
+        */
+       protected void executedBehavior(final Class<?> clazz, final 
AbstractAjaxBehavior behavior,
+               final String filename) throws Exception
+       {
+               assertNotNull(behavior);
+
+               System.out.println("=== " + clazz.getName() + " : " + 
behavior.toString() + " ===");
+
+               tester.executeBehavior(behavior);
+               tester.assertResultPage(clazz, filename);
+       }
+
+       /**
+        * Returns the current Maven build directory taken from the 
<tt>basedir</tt> system property, or
+        * null if not set
+        * 
+        * @return path with a trailing slash
+        */
+       public static String getBasedir()
+       {
+               String basedir = System.getProperty("basedir");
+               if (basedir != null)
+               {
+                       basedir = basedir + "/";
+               }
+               else
+               {
+                       basedir = "";
+               }
+               return basedir;
+       }
+}

Propchange: 
wicket/trunk/wicket-extensions/src/test/java/org/apache/wicket/WicketTestCase.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to