display command which will be terminated
[mkws-moved-to-github.git] / test / Makefile
index 07c3d5b..23d1ab8 100644 (file)
@@ -1,14 +1,15 @@
-# Copyright (c) 2013-2014 IndexData ApS. http://indexdata.com
+# Copyright (c) 2013-2014 Index Data ApS. http://indexdata.com
 
 # For running on Mike's local install of node.js
 MIKE = PATH=$$PATH:/usr/local/lib/node-v0.10.24-linux-x64/bin
 
 APACHE_PORT:= $(shell echo $${APACHE_PORT-4040})
 
-#PHANTOMJS_URL=https://mkws-dev.indexdata.com/jasmine-popup.html       
+#PHANTOMJS_URL=https://mkws-dev.indexdata.com/jasmine-popup.html
 PHANTOMJS_PATH=jasmine-local-popup.html
 PHANTOMJS_URL=http://localhost:${APACHE_PORT}/${PHANTOMJS_PATH}
-PHANTOMJS_TIMEOUT=18
+PHANTOMJS_TIMEOUT ?= 30
+PHANTOMJS_FLAGS ?= --ignore-ssl-errors=true
 
 NPM_INSTALL_FLAGS=-q
 JASMINE_NODE=  ./node_modules/jasmine-node/bin/jasmine-node
@@ -18,16 +19,18 @@ SCREENSHOT_WIDTH=   360 480 640 768 1024 1200 1440 2048
 PERL_SCRIPTS=  bin/bomb.pl
 TMP_DIR=       ./logs
 APACHE_HTTPD:= $(shell env PATH=$$PATH:/usr/sbin which apache2 httpd false | head -1 )
+APACHE_PORT ?= 4040
 
 all: check
 
 clean:
-       rm -f mkws-error.png mkws-error.html 
+       rm -f mkws-error.png mkws-error.html
        rm -f images/*.png
+       ${MAKE} -C./widgets $@
 
-distclean: clean clean-tmp clean-error
+distclean: apache-stop clean clean-tmp clean-error
        rm -rf node_modules
-       rm -f ${TMP_DIR}/jasmine-dev
+       rm -f libexec
 
 clean-error:
        rm -f mkws-error.png.* mkws-error.html.*
@@ -38,22 +41,37 @@ clean-tmp:
        touch ${TMP_DIR}/.gitkeep
 
 mkws-complete-syntax-check:
-       ${MAKE} -C../tools/htdocs mkws-complete.min.js
+       ${MAKE} -C../src ../tools/htdocs/mkws-complete.min.js
 
-check: mkws-complete-syntax-check
-       @if [ ! -e node_modules ]; then echo "please run first: make node-modules"; exit 1; fi 
+check check-js: node-modules mkws-complete-syntax-check
        ${JASMINE_NODE} --noColor --captureExceptions --forceexit ./spec
 
+check-dev: node-modules mkws-complete-syntax-check
+       ${JASMINE_NODE} --noColor --captureExceptions --forceexit ./spec-dev
+
+check-node-installation:
+       @if [ ! -e node_modules ]; then \
+           echo "==> please run first: make node-modules"; \
+           echo ""; \
+           exit 1; \
+       fi
+
 test: check
 
 terse:
        $(MIKE) jasmine-node --noColor --captureExceptions --forceexit spec
 
-phantomjs p: apache-stop apache-start _phantomjs 
+phantomjs p: check-js apache-stop apache-start _phantomjs
        ${MAKE} apache-stop
 
 _phantomjs:
-       perl ./bin/bomb.pl --timeout="${PHANTOMJS_TIMEOUT}.5" ${PHANTOMJS} phantom/run-jasmine.js ${PHANTOMJS_URL} ${PHANTOMJS_TIMEOUT}
+       ./bin/bomb --timeout="${PHANTOMJS_TIMEOUT}.5" -- ${PHANTOMJS} ${PHANTOMJS_FLAGS} phantom/run-jasmine.js ${PHANTOMJS_URL} ${PHANTOMJS_TIMEOUT}
+
+phantomjs-all p-all:
+       ${MAKE} phantomjs PHANTOMJS_PATH=jasmine-local-popup.html
+       ${MAKE} phantomjs PHANTOMJS_PATH=jasmine-popup.html?lang=de
+       ${MAKE} phantomjs PHANTOMJS_PATH=jasmine-cms-popup.html?lang=en
+       ${MAKE} phantomjs PHANTOMJS_PATH=jasmine.html?lang=da
 
 mike-test:
        $(MAKE) _phantomjs PHANTOMJS_URL=http://x.example.indexdata.com/jasmine-popup.html
@@ -73,6 +91,9 @@ screenshot-indexdata:
        done; wait
        ls -l ${IMAGES}
 
+screenshots: check
+       ${MAKE} -C ./widgets $@
+
 jsbeautifier jsb indent:
        for i in package.json ./spec*/*.js ./js/*.js ./phantom/*.js; do \
          jsbeautifier -j $$i > $@.tmp && mv -f $@.tmp $$i; \
@@ -88,27 +109,32 @@ node_modules node-modules:
 
 apache-start:
        bin/apache-template-update
-       ${APACHE_HTTPD} -f `pwd`/${TMP_DIR}/jasmine-dev
+       umask 002; ${APACHE_HTTPD} -f `pwd`/${TMP_DIR}/jasmine-dev-${APACHE_PORT}.conf
 
+APACHE_PID_FILE=${TMP_DIR}/mkws-jasmine-${APACHE_PORT}.pid
 apache-stop:
-       @-if [ -e ${TMP_DIR}/mkws-jasmine.pid ]; then \
-          kill `cat ${TMP_DIR}/mkws-jasmine.pid`; \
+       @-if [ -e ${APACHE_PID_FILE} ]; then \
+          kill `cat ${APACHE_PID_FILE}`; \
        else \
-          killall apache2 2> /dev/null; \
+          killall ${APACHE_HTTPD} 2> /dev/null; \
        fi
-       @sleep 0.3
-       rm -f ${TMP_DIR}/mkws-jasmine.pid
+       @sleep 0.6
+       rm -f ${APACHE_PID_FILE}
 
 help:
-       @echo "make [ all | check | clean | distclean ]"
-       @echo "     [ phantomjs | screenshot ]"
-       @echo "     [ jsbeautifier | perltidy ]"
+       @echo "make [ all | check | check-dev | clean | distclean ]"
+       @echo "     [ phantomjs | phantomjs-all ]"
+       @echo "     [ jsbeautifier | perltidy | screenshot ]"
+       @echo "     [ screenshots ]"
        @echo "     [ node-modules ]"
        @echo "     [ apache-stop apache-start ]"
        @echo ""
-       @echo "Examples"
-       @echo "                         make phantomjs PHANTOMJS_PATH=${PHANTOMJS_PATH}"
-       @echo "DEBUG=0 APACHE_PORT=5050 make phantomjs PHANTOMJS_TIMEOUT=12 PHANTOMJS_PATH=${PHANTOMJS_PATH}"
-       @echo "DEBUG=2                  make phantomjs PHANTOMJS_TIMEOUT=12 PHANTOMJS_URL=${PHANTOMJS_URL}"
+       @echo "Examples: "
+       @echo ""
+       @echo "make phantomjs PHANTOMJS_PATH=${PHANTOMJS_PATH}"
+       @echo "DEBUG=0 APACHE_PORT=5050 make -s phantomjs PHANTOMJS_TIMEOUT=16 PHANTOMJS_PATH=${PHANTOMJS_PATH}"
+       @echo "DEBUG=2 make phantomjs PHANTOMJS_TIMEOUT=12 PHANTOMJS_URL=${PHANTOMJS_URL}"
+       @echo ""
+       @echo "make APACHE_PORT=5050 apache-start"
+       @echo "make phantomjs-all"
        @echo ""
-