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