diff options
Diffstat (limited to 'tests/FunctionalTests/selenium/build.xml')
-rw-r--r-- | tests/FunctionalTests/selenium/build.xml | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/tests/FunctionalTests/selenium/build.xml b/tests/FunctionalTests/selenium/build.xml new file mode 100644 index 00000000..73376a1e --- /dev/null +++ b/tests/FunctionalTests/selenium/build.xml @@ -0,0 +1,109 @@ +<project name="Selenium Javascript Build" default="run_jsunit_tests" basedir="."> + + <property name="version" value="0.2"/> + + <!-- global properties --> + <property name="JSUnitHome" value="${basedir}/jsunit"/> + <property name="WebServerPort" value="8000"/> <!-- this must match the hardcoded value in tinyWebServer.py --> + + <path id="JSUnitClassPath"> + <fileset dir="${JSUnitHome}/java/lib"> + <include name="*.jar"/> + </fileset> + <fileset dir="${JSUnitHome}/java/bin"> + <include name="jsunit.jar"/> + </fileset> + </path> + + + <!-- Private independant targets --> + <target name="-start_web_server"> + <exec executable="startWebServer.bat" spawn="true"/> + <waitfor maxwaitunit="second" maxwait="5" timeoutproperty="webserver.timeout"> + <http url="http://localhost:${WebServerPort}"/> + </waitfor> + <fail message="Timed out waiting for http://localhost:${WebServerPort}" if="webserver.timeout"/> + </target> + + <target name="-stop_web_server" description="Stops a web server"> + <exec executable="stopWebServer.bat"/> + </target> + + <target name="-execute_jsunit_tests"> + + <property name="JSUnitServerPort" value="8080"/> + + <!-- TODO : Make this locally configurable without needing to hack build.xml --> + <property name="browserFileNames" value="c:\program files\Mozilla Firefox\firefox.exe,c:\program files\internet explorer\iexplore.exe"/> + + <property name="JSUnitSuitePath" value="/tests/jsUnitSuite.html"/> + <property name="JSUnitTestRunnerPath" value="/jsunit/testRunner.html"/> + + <!-- TODO: Theres a lot of moving parts here! + - The JSUnit testrunner and the tests themselves are served to the browser by the (python) webserver + - The Browser communicates with the build via a JSUnit server running on jetty + - consolidate to one webserver? + - Get runner and tests from the filesystem instead? + --> + <property name="testUrl" value="http://localhost:${WebServerPort}${JSUnitTestRunnerPath}?testPage=http://localhost:${WebServerPort}${JSUnitSuitePath}&autoRun=true&submitresults=localhost:${JSUnitServerPort}/jsunit/acceptor"/> + + <junit showoutput="true" failureproperty="JSUnitTestsFailed"> + <classpath refid="JSUnitClassPath"/> + <sysproperty key="browserFileNames" value="${browserFileNames}"/> + <sysproperty key="url" value="${testUrl}"/> + <sysproperty key="port" value="${JSUnitServerPort}"/> + <sysproperty key="logsDirectory" value="jsunit-logs"/> + <test name="net.jsunit.StandaloneTest"/> + </junit> + </target> + + <target name="-check_for_jsunit_failure"> + <fail message="One or more JSUnit Tests Failed" if="JSUnitTestsFailed"/> + </target> + + <!-- Dependancy Targets --> + <target name="--run_jsunit_tests" depends=" -start_web_server, -execute_jsunit_tests, -stop_web_server, -check_for_jsunit_failure"/> + + <!-- Public Targets --> + <target name="run_jsunit_tests" description="Runs selenium JSUnit tests" depends="--run_jsunit_tests"/> + + <target name="dist"> + + <mkdir dir="dist"/> + + <echo file="dist/readme.txt">Create a TestSuite.html page, and a number of test pages here. Read the docs!</echo> + + <zip destfile="dist/selenium-${version}-inbrowser.zip"> + <zipfileset dir="dist" prefix="tests/html"> + <include name="readme.txt"/> + </zipfileset> + <fileset dir="."> + <exclude name="dist/**"/> + <exclude name="SeleneseRunner.html"/> + <exclude name="jsmock/**"/> + <exclude name="jsunit/**"/> + <exclude name="jsunit-logs/**"/> + <exclude name="tests/**"/> + <exclude name="build.xml"/> + <exclude name="**/web.xml"/> + </fileset> + </zip> + + <zip destfile="dist/selenium-${version}-inbrowser-src.zip"> + <fileset dir="."> + <exclude name="dist/**"/> + <include name="**"/> + </fileset> + </zip> + <delete file="dist/readme.txt"/> + + </target> + <target name="publish-dist" depends="dist"> + + <copy todir="../../website/webapps/ROOT" file="dist/selenium-${version}-inbrowser-src.zip"/> + <copy todir="../../website/webapps/ROOT" file="dist/selenium-${version}-inbrowser.zip"/> + + </target> + + +</project> |