diff --git a/test/frontend/cases/static-page-test.js b/test/frontend/cases/static-page-test.js new file mode 100644 index 000000000..b77496f86 --- /dev/null +++ b/test/frontend/cases/static-page-test.js @@ -0,0 +1,19 @@ +/** +* +* This test simply checks the icinga build server and tests +* if the title is correct +**/ +i2w = require('./i2w-config'); + +var casper = i2w.getTestEnv(); + +casper.start("http://build.icinga.org/jenkins"); + +casper.then(function() { + this.test.assertTitle("icinga-web test [Jenkins]", "The jenkins page"); +}); + +casper.run(function() { + this.test.done(); +}); + diff --git a/test/frontend/casperjs.config b/test/frontend/casperjs.config new file mode 100644 index 000000000..69c9d4a3b --- /dev/null +++ b/test/frontend/casperjs.config @@ -0,0 +1,5 @@ +{ + "host": "localhost", + "port": 80, + "path": "icinga2-web" +} diff --git a/test/frontend/i2w-config.js b/test/frontend/i2w-config.js new file mode 100644 index 000000000..7d54a1a00 --- /dev/null +++ b/test/frontend/i2w-config.js @@ -0,0 +1,107 @@ +/** +* Tools for setting up the casperjs tests +* mainly setting host, port and path path +**/ + +// load config files +var fs = require('fs'); +var env = require('system').env; +var args = require('system').args; +var utils = require('utils'); + + +var configFile = fs.absolute('./casperjs.config'); +var host = null; +var port = null; +var path = null; +var verbose = false; + + +if (typeof(env.CASPERJS_HOST) === "string") + host = env.CASPERJS_HOST; +if (typeof(env.CASPERJS_PORT) === "string") + port = parseInt(env.CASPERJS_PORT, 10); +if (typeof(env.CASPERJS_PATH) === "string") + path = env.CASPERJS_PATH; + + +for (var i=0;i /dev/null +DIR=`pwd` +popd > /dev/null +CASPER=$(which casperjs) +INCLUDE="" +EXCLUDE="" +VERBOSE=0 +BUILD=0 + +if [ ! -x $CASPER ]; then + echo "CasperJS is not installed but required to run frontend tests\n"\ +"Take a look at http://casperjs.org/installation.html to see how the installation works for your system" + exit 1 +fi; + +PARAM="0" +for arg in $@;do + if [ ! "$PARAM" == "0" ]; then + export $PARAM=$arg + PARAM="0" + continue + fi; + case $arg in + --verbose) + VERBOSE=1 + ;; + --include) + PARAM="INCLUDE" + continue + ;; + --exclude) + PARAM="EXCLUDE" + continue + ;; + --build) + BUILD=1 + continue + ;; + **) + if [ "$arg" != "--help" ]; then + echo "Unknown option $arg" + fi; + printf "%b" "Testrunner for interface tests\n\n" + printf "%b" "Usage: ./$0 [--verbose] [--include %include%] [--exclude %exclude%] [--build]\n\n" + printf "%b" " --verbose \t\t\t Print verbose output when testing\n" + printf "%b" " --include %filelist%\t\t Include only files matching this patterns\n" + printf "%b" " --exclude %filelist%\t\t Exclude files matching this patterns\n" + printf "%b" " --build \t\t\t Write test results to ../../build/log/casper_results.xml\n" + printf "%b" " --help \t\t\t Print this message\n\n" + exit 1 + esac; +done; + +EXEC="$CASPER test" + +# +# If build is set, the results are written for our jenkins server +# +if [ $BUILD -eq 1 ];then + mkdir -p $DIR/../../build/log + EXEC="$EXEC --xunit=$DIR/../../build/log/casper_results.xml" +fi; +if [ "$PARAM" != "0" ]; then + echo "Missing parameter for $PARAM" + exit 1 +fi; + +cd $DIR +FILELIST="" +# +# Default : Run regression and cases directory +# +if [ "$INCLUDE" == "" -a "$EXCLUDE" == "" ];then + FILELIST="./cases ./regression" +fi; + +# +# Include patterns set with the --include directive +# +if [ "$INCLUDE" != "" ];then + NAME="\(" + GLUE="" + for INC in $INCLUDE;do + NAME="$NAME${GLUE}${INC}.*js" + GLUE="\|" + done; + NAME=$NAME"\)$" + FILELIST=`find . | grep "$NAME"` +fi; + +# +# Exclude patterns that match the include directive +# +if [ "$EXCLUDE" != "" ];then + NAME="\(" + GLUE="" + for EXC in $EXCLUDE;do + NAME="$NAME${GLUE}${EXC}.*js" + GLUE="\|" + done; + NAME=$NAME"\)$" + if [ "$FILELIST" == "" ]; then + FILELIST=`find .|grep ".*js$"` + fi + FILELIST=`echo $FILELIST | grep -v "$NAME"` +fi; + +echo $EXEC $FILELIST +$EXEC $FILELIST + +exit 0