cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bdelacre...@apache.org
Subject svn commit: r160376 - in cocoon/branches/BRANCH_2_1_X: build.properties status.xml tools/src/blocks-build.xsl tools/targets/compile-build.xml tools/targets/init-build.xml tools/targets/test-build.xml
Date Thu, 07 Apr 2005 07:47:14 GMT
Author: bdelacretaz
Date: Thu Apr  7 00:47:13 2005
New Revision: 160376

URL: http://svn.apache.org/viewcvs?view=rev&rev=160376
Log:
patch 34294 applied: new HtmlUnit based tests, thanks to Alfred Nathaniel

Modified:
    cocoon/branches/BRANCH_2_1_X/build.properties
    cocoon/branches/BRANCH_2_1_X/status.xml
    cocoon/branches/BRANCH_2_1_X/tools/src/blocks-build.xsl
    cocoon/branches/BRANCH_2_1_X/tools/targets/compile-build.xml
    cocoon/branches/BRANCH_2_1_X/tools/targets/init-build.xml
    cocoon/branches/BRANCH_2_1_X/tools/targets/test-build.xml

Modified: cocoon/branches/BRANCH_2_1_X/build.properties
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/build.properties?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/build.properties (original)
+++ cocoon/branches/BRANCH_2_1_X/build.properties Thu Apr  7 00:47:13 2005
@@ -68,6 +68,13 @@
 # disable some long-running tests by default
 # anteater.test.bug26186InternalRequestMemoryLeak.enabled = true
 
+# ---- htmlUnit ----------------------------------------------------------------
+
+htmlunit.home = /default-from-build.properties/htmlunit-1.5
+htmlunit.test.baseurl=http://localhost:8888/
+# for serious leak testing increase iteration count to 10000
+htmlunit.test.Bug26186InternalRequestMemoryLeak.iterations=1
+
 # ---- JUnit -------------------------------------------------------------------
 
 junit.test.debugport=8000
@@ -88,6 +95,9 @@
 build.test=${build}/test
 build.test.output=${build.test}/output
 build.test.report=${build.test}/report
+build.test.htmlunit=${build.test}/htmlunit
+build.test.htmlunit.output=${build.test.htmlunit}/output
+build.test.htmlunit.report=${build.test.htmlunit}/report
 build.docs=${build}/docs
 build.docs.printer=${build}/printer-docs
 build.site=${build}/site

Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Thu Apr  7 00:47:13 2005
@@ -196,6 +196,9 @@
 
   <changes>
   <release version="@version@" date="@date@">
+    <action dev="BD" type="add" fixes-bug="34294" due-to="Alfred Nathaniel" due-to-email="Alfred.Nathaniel@swx.com">
+      New set of automated tests based on HtmlUnit 
+    </action>
     <action dev="VG" type="update">
       Add support for namespaced XML elements to the JXPath based input
       modules (includes JXPathMetaModule, XMLFileModule, and others).

Modified: cocoon/branches/BRANCH_2_1_X/tools/src/blocks-build.xsl
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/src/blocks-build.xsl?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/src/blocks-build.xsl (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/src/blocks-build.xsl Thu Apr  7 00:47:13 2005
@@ -49,6 +49,18 @@
         </fileset>
       </path>
 
+      <path id="htmlunit.classpath">
+        <fileset dir="${{htmlunit.home}}/lib">
+          <include name="*.jar"/>
+        </fileset>
+        <fileset dir="${{tools.lib}}">
+          <include name="*.jar"/>
+        </fileset>
+        <fileset dir="${{lib}}">
+          <include name="core/avalon-framework-*.jar"/>
+        </fileset>
+      </path>
+
       <!-- Files, which should no compiled or otherwise processed -->
       <patternset id="unprocessed.sources">
         <exclude name="**/*.java"/>
@@ -355,7 +367,7 @@
         <sequential>
           <!-- Test if this block has tests -->
           <if>
-            <available file="@{{dir}}/test"/>
+            <available file="@{{dir}}/test/org/apache"/>
             <then>
               <mkdir dir="${{build.blocks}}/@{{name}}/test"/>
 
@@ -370,7 +382,7 @@
                      target="${{target.vm}}"
                      nowarn="${{compiler.nowarn}}"
                      compiler="${{compiler}}">
-                <src path="@{{dir}}/test"/>
+                <src path="@{{dir}}/test/org/apache"/>
                 <classpath>
                   <path refid="@{{name}}.classpath"/>
                   <path refid="test.classpath"/>
@@ -396,6 +408,64 @@
                     <exclude name="**/AllTest.class"/>
                     <exclude name="**/*$$*Test.class"/>
                     <exclude name="**/Abstract*.class"/>
+                    <exclude name="htmlunit/**"/>
+                  </fileset>
+                </batchtest>
+              </junit>
+            </then>
+          </if>
+        </sequential>
+      </macrodef>
+
+      <macrodef name="block-prepare-htmlunit-tests">
+        <attribute name="name"/>
+        <attribute name="dir"/>
+        <sequential>
+          <!-- Test if this block has tests -->
+          <if>
+            <and>
+              <available file="@{{dir}}/test/htmlunit"/>
+              <available file="${{htmlunit.home}}"/>
+            </and>
+            <then>
+              <mkdir dir="${{build.blocks}}/@{{name}}/test/htmlunit"/>
+
+              <copy todir="${{build.blocks}}/@{{name}}/test/htmlunit" filtering="on">
+                <fileset dir="@{{dir}}/test/htmlunit" excludes="**/*.java"/>
+              </copy>
+
+              <javac destdir="${{build.blocks}}/@{{name}}/test/htmlunit"
+                     debug="${{compiler.debug}}"
+                     optimize="${{compiler.optimize}}"
+                     deprecation="${{compiler.deprecation}}"
+                     target="${{target.vm}}"
+                     nowarn="${{compiler.nowarn}}"
+                     compiler="${{compiler}}">
+                <src path="@{{dir}}/test/htmlunit"/>
+                <classpath>
+                  <path refid="htmlunit.classpath"/>
+                  <pathelement location="${{build.test.htmlunit}}"/>
+                </classpath>
+              </javac>
+
+              <junit printsummary="yes" fork="yes" failureproperty="junit.test.failed">
+                <jvmarg value="-Djava.endorsed.dirs=lib/endorsed"/>
+                <jvmarg value="-Djunit.test.loglevel=${{junit.test.loglevel}}"/>
+                <jvmarg value="-Dhtmlunit.test.baseurl=${{htmlunit.test.baseurl}}"/>
+                <classpath>
+                  <path refid="htmlunit.classpath"/>
+                  <pathelement location="${{build.test.htmlunit}}"/>
+                  <pathelement location="${{build.blocks}}/@{{name}}/test/htmlunit"/>
+                </classpath>
+                <formatter type="plain" usefile="no"/>
+                <formatter type="xml"/>
+                <batchtest todir="${{build.test.htmlunit.output}}">
+                  <fileset dir="${{build.blocks}}/@{{name}}/test/htmlunit">
+                    <include name="**/*TestCase.class"/>
+                    <include name="**/*Test.class"/>
+                    <exclude name="**/AllTest.class"/>
+                    <exclude name="**/*$$*Test.class"/>
+                    <exclude name="**/Abstract*.class"/>
                   </fileset>
                 </batchtest>
               </junit>
@@ -553,6 +623,16 @@
       </xsl:attribute>
     </target>
 
+    <target name="prepare-htmlunit-tests">
+      <xsl:attribute name="depends">
+        <xsl:text>init</xsl:text>
+        <xsl:for-each select="$cocoon-blocks">
+          <xsl:text>,</xsl:text>
+          <xsl:value-of select="concat(@name, '-prepare-htmlunit-tests')"/>
+        </xsl:for-each>
+      </xsl:attribute>
+    </target>
+
     <target name="prepare-anteater-tests">
       <xsl:attribute name="depends">
         <xsl:text>init</xsl:text>
@@ -818,6 +898,10 @@
         </xsl:if>
       </xsl:attribute>
       <block-tests name="{$block-name}" dir="{@dir}"/>
+    </target>
+
+    <target name="{@name}-prepare-htmlunit-tests" unless="internal.exclude.block.{$block-name}">
+        <block-prepare-htmlunit-tests name="{$block-name}" dir="{@dir}"/>
     </target>
 
     <target name="{@name}-prepare-anteater-tests" unless="internal.exclude.block.{$block-name}">

Modified: cocoon/branches/BRANCH_2_1_X/tools/targets/compile-build.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/targets/compile-build.xml?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/targets/compile-build.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/targets/compile-build.xml Thu Apr  7 00:47:13 2005
@@ -83,6 +83,9 @@
 
   <!-- compiles tests classes -->
   <target name="compile-tests"
+          depends="compile-junit-tests, compile-htmlunit-tests"/>
+
+  <target name="compile-tests-prepare"
           depends="compile-core, compile-deprecated, clover.off">
     <mkdir dir="${build.test}"/>
 
@@ -90,6 +93,11 @@
     <copy todir="${build.test}" filtering="on">
       <fileset dir="${test}" excludes="**/*.java"/>
     </copy>
+  </target>
+
+  <target name="compile-junit-tests" depends="compile-tests-prepare">
+
+    <!-- Compile JUnit tests, using Cocoon libraries -->
 
     <path id="test.classpath">
       <path refid="classpath"/>
@@ -102,8 +110,7 @@
       </fileset>
     </path>
 
-    <!-- Compile tests -->
-    <javac srcdir="${test}"
+    <javac srcdir="${test}/org/apache"
            destdir="${build.test}"
            debug="${compiler.debug}"
            optimize="${compiler.optimize}"
@@ -112,6 +119,35 @@
            source="${source.vm}"
            compiler="${compiler}"
            classpathref="test.classpath"/>
+  </target>
+
+  <target name="compile-htmlunit-tests" if="htmlunit.present"
+          depends="compile-tests-prepare">
+
+    <!-- Compile JUnit tests using htmlUnit (requires running server) -->
+
+    <path id="htmlunit.classpath">
+      <pathelement location="${build.test.htmlunit}" />
+      <fileset dir="${htmlunit.home}/lib">
+        <include name="*.jar"/>
+      </fileset>
+      <fileset dir="${tools.lib}">
+        <include name="*.jar"/>
+      </fileset>
+      <fileset dir="${lib}">
+        <include name="core/avalon-framework-*.jar"/>
+      </fileset>
+    </path>
+
+    <javac srcdir="${test}/htmlunit/org/apache"
+           destdir="${build.test.htmlunit}"
+           debug="${compiler.debug}"
+           optimize="${compiler.optimize}"
+           deprecation="${compiler.deprecation}"
+           target="${target.vm}"
+           source="${source.vm}"
+           compiler="${compiler}"
+           classpathref="htmlunit.classpath"/>
   </target>
 
 <!-- === Package Targets ================================================= -->

Modified: cocoon/branches/BRANCH_2_1_X/tools/targets/init-build.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/targets/init-build.xml?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/targets/init-build.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/targets/init-build.xml Thu Apr  7 00:47:13 2005
@@ -51,6 +51,9 @@
     <!-- Get the build properties from an external file -->
     <property file="build.properties"/>
 
+    <!-- Check whether HtmlUnit is installed and available -->
+    <available file="${htmlunit.home}" property="htmlunit.present"/>
+
     <!-- Allow users a chance to override without editing the main file -->
     <property file="${user.home}/cocoon.blocks.properties"/>
     <property file="local.blocks.properties"/>

Modified: cocoon/branches/BRANCH_2_1_X/tools/targets/test-build.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/targets/test-build.xml?view=diff&r1=160375&r2=160376
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/targets/test-build.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/targets/test-build.xml Thu Apr  7 00:47:13 2005
@@ -21,24 +21,48 @@
   <!--+
       | Runs all tests
       +-->
-  <target name="test" depends="junit-tests, anteater-tests"
+  <target name="test" depends="junit-tests, htmlunit-tests, anteater-tests"
           description="Runs all tests"/>
 
   <!--+
       | Runs JUnit tests
       +-->
 
-  <target name="junit-tests" depends="core-junit-tests, block-junit-tests, junit-tests-report"
+  <target name="junit-tests"
+          depends="core-junit-tests, block-junit-tests, junit-tests-report"
           description="Runs JUnit tests"/>
 
+  <target name="htmlunit-tests"
+          depends="core-htmlunit-tests, block-htmlunit-tests, htmlunit-tests-report, check-htmlunit-present"
+          description="Runs HtmlUnit tests"/>
+
+  <target name="check-htmlunit-present" unless="htmlunit.present">
+    <echo>To use htmlunit, please install it (see http://htmlunit.sourceforge.net/)
and set htmlunit.home (currently ${htmlunit.home}) in your local.build.properties</echo>
+    <echo>----------------------</echo>
+    <echo>*** Htmlunit notes ***</echo>
+    <echo>a) To run these tests, an instance of Cocoon must be</echo>
+    <echo>   running at ${htmlunit.test.baseurl}</echo>
+    <echo>b) JDK 1.4.x is required to run these tests, but running them</echo>
+    <echo>   under 1.4.x to test Cocoon running under 1.3.x should be ok.</echo>
+    <echo>c) htmlunit options can be set in local.build.properties, and some</echo>
+    <echo>   tests only run if enabled there.</echo>
+  </target>
+
   <target name="junit-tests-prepare">
     <delete dir="${build.test.output}"/>
     <delete dir="${build.test.report}"/>
     <mkdir dir="${build.test.output}"/>
   </target>
 
+  <target name="htmlunit-tests-prepare" if="htmlunit.present">
+    <delete dir="${build.test.htmlunit.output}"/>
+    <delete dir="${build.test.htmlunit.report}"/>
+    <mkdir dir="${build.test.htmlunit.output}"/>
+  </target>
+
   <!-- Runs JUnit tests -->
-  <target name="core-junit-tests" depends="compile-tests, junit-tests-prepare">
+  <target name="core-junit-tests"
+          depends="compile-junit-tests, junit-tests-prepare">
     <junit printsummary="yes" fork="yes" failureproperty="junit.test.failed">
       <jvmarg value="-Djava.endorsed.dirs=lib/endorsed"/>
       <jvmarg value="-Djunit.test.loglevel=${junit.test.loglevel}"/>
@@ -57,13 +81,46 @@
           <exclude name="**/Abstract*.class" />
           <exclude name="**/SitemapComponentTestCase*"/>
           <exclude name="**/ContainerTestCase*"/>
+          <exclude name="htmlunit/**"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+  <!-- Runs HtmlUnit tests -->
+  <target name="core-htmlunit-tests" if="htmlunit.present"
+          depends="compile-htmlunit-tests, htmlunit-tests-prepare">
+
+    <!-- fail if the URL under test is not available -->
+    <echo>Tests tests require another instance of Cocoon to run at ${htmlunit.test.baseurl}</echo>
+    <get src="${htmlunit.test.baseurl}"
+      dest="${build.temp}/htmlunit-tests-checkaccess.html"
+      verbose="false"
+      usetimestamp="false"/>
+
+    <junit printsummary="yes" fork="yes" failureproperty="htmlunit.test.failed">
+      <jvmarg value="-Djava.endorsed.dirs=lib/endorsed"/>
+      <jvmarg value="-Djunit.test.loglevel=${junit.test.loglevel}"/>
+      <jvmarg value="-Dhtmlunit.test.baseurl=${htmlunit.test.baseurl}"/>
+      <jvmarg value="-Dhtmlunit.test.source-dir=${webapp}"/>
+      <jvmarg value="-Dhtmlunit.test.deploy-dir=${build.webapp}"/>
+      <jvmarg value="-Dhtmlunit.test.Bug26186InternalRequestMemoryLeak.iterations=${htmlunit.test.Bug26186InternalRequestMemoryLeak.iterations}"/>
+      <classpath>
+        <path refid="htmlunit.classpath"/>
+      </classpath>
+      <formatter type="plain" usefile="no"/>
+      <formatter type="xml"/>
+      <batchtest todir="${build.test.htmlunit.output}">
+        <fileset dir="${build.test.htmlunit}">
+          <include name="**/*TestCase.class"/>
+          <exclude name="**/HtmlUnitTestCase.class"/>
         </fileset>
       </batchtest>
     </junit>
   </target>
 
   <!-- Runs JUnit tests in debug mode -->
-  <target name="junit-test-debug" depends="compile-tests, junit-tests-prepare">
+  <target name="junit-test-debug" depends="compile-junit-tests, junit-tests-prepare">
     <fail unless="junit.testcase"
           message="Please set the property $${junit.testcase} to a JUnit testcase (package.Classname,
e.g. org.test.MyTestCase)."/>
 
@@ -80,13 +137,22 @@
   </target>
 
   <!-- Block tests -->
-  <target name="block-junit-tests" depends="compile-tests, prepare-blocks">
+  <target name="block-junit-tests"
+          depends="compile-junit-tests, prepare-blocks">
     <ant antfile="${build.temp}/blocks-build.xml"
          inheritAll="true"
          inheritRefs="false"
          target="tests"/>
   </target>
 
+  <target name="block-htmlunit-tests" if="htmlunit.present"
+          depends="compile-htmlunit-tests, prepare-blocks">
+    <ant antfile="${build.temp}/blocks-build.xml"
+         inheritAll="true"
+         inheritRefs="false"
+         target="prepare-htmlunit-tests"/>
+  </target>
+
   <target name="junit-tests-report" depends="init">
     <mkdir dir="${build.test.report}"/>
     <junitreport todir="${build.test.output}">
@@ -100,6 +166,19 @@
           message="One or more JUnit tests failed or caused errors. Please have a look into
the report for details."/>
   </target>
 
+  <target name="htmlunit-tests-report" if="htmlunit.present" depends="init">
+    <mkdir dir="${build.test.htmlunit.report}"/>
+    <junitreport todir="${build.test.htmlunit.output}">
+      <fileset dir="${build.test.htmlunit.output}">
+       <include name="TEST-*.xml"/>
+      </fileset>
+      <report format="frames" todir="${build.test.htmlunit.report}"/>
+    </junitreport>
+    <echo message="Unit report is at ${build.test.htmlunit.report}/index.html"/>
+    <fail if="htmlunit.test.failed"
+          message="One or more HtmlUnit tests failed or caused errors. Please have a look
into the report for details."/>
+  </target>
+
 
   <!--+
       | Anteater tests
@@ -150,13 +229,13 @@
   </target>
 
   <!-- Anteater tests  -->
-  <target name="core-anteater-tests" depends="compile-tests, anteater-tests-prepare"
+  <target name="core-anteater-tests" depends="anteater-tests-prepare"
           description="Runs anteater tests">
     <call-anteater script="run-tests.xml" target="all" targetfile=""/>
   </target>
 
   <!-- Run a SINGLE Anteater tests -->
-  <target name="anteater-test" depends="compile-tests, anteater-tests-prepare, block-anteater-tests"
+  <target name="anteater-test" depends="anteater-tests-prepare, block-anteater-tests"
           description="Runs a single Anteater test">
     <echo>d) to run the tests in 'calc.xml' call 'build anteater-test -Dtarget=calc'</echo>
     <call-anteater script="run-tests.xml" target="single" targetfile="${target}"/>



Mime
View raw message