summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/data/Makefile6
-rw-r--r--test/data/my-webapp/app.config3
-rwxr-xr-xtest/data/my-webapp/root/bin/app.js39
-rwxr-xr-xtest/data/my-webapp/root/bin/my-app20
-rw-r--r--test/data/my-webapp/root/conf/httpd.conf56
-rw-r--r--test/data/my-webapp/root/conf/mime.types0
-rw-r--r--test/data/my-webapp/root/conf/modules.conf1
-rw-r--r--test/data/my-webapp/root/conf/modules.load24
-rw-r--r--test/it.bats22
-rw-r--r--test/utils.bash25
10 files changed, 140 insertions, 56 deletions
diff --git a/test/data/Makefile b/test/data/Makefile
new file mode 100644
index 0000000..ad61a15
--- /dev/null
+++ b/test/data/Makefile
@@ -0,0 +1,6 @@
+all: my-webapp.zip
+
+my-webapp.zip:
+ @rm -f my-webapp.zip
+ @(cd my-webapp; zip -q -r ../my-webapp.zip .)
+.PHONY: my-webapp.zip
diff --git a/test/data/my-webapp/app.config b/test/data/my-webapp/app.config
index 40cbaa0..3a68978 100644
--- a/test/data/my-webapp/app.config
+++ b/test/data/my-webapp/app.config
@@ -1 +1,2 @@
-app.bin=app.js
+app.pid_management=launcher
+app.launch_timeout=2
diff --git a/test/data/my-webapp/root/bin/app.js b/test/data/my-webapp/root/bin/app.js
deleted file mode 100755
index 992a701..0000000
--- a/test/data/my-webapp/root/bin/app.js
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env nodejs
-
-var http = require("http"),
- url = require("url"),
- path = require("path"),
- fs = require("fs")
- port = process.env.PORT || 8888;
-
-http.createServer(function(request, response) {
-
- var uri = url.parse(request.url).pathname
- , filename = path.join(process.cwd(), uri);
-
- path.exists(filename, function(exists) {
- if(!exists) {
- response.writeHead(404, {"Content-Type": "text/plain"});
- response.write("404 Not Found\n");
- response.end();
- return;
- }
-
- if (fs.statSync(filename).isDirectory()) filename += '/index.html';
-
- fs.readFile(filename, "binary", function(err, file) {
- if(err) {
- response.writeHead(500, {"Content-Type": "text/plain"});
- response.write(err + "\n");
- response.end();
- return;
- }
-
- response.writeHead(200);
- response.write(file, "binary");
- response.end();
- });
- });
-}).listen(parseInt(port, 10));
-
-console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");
diff --git a/test/data/my-webapp/root/bin/my-app b/test/data/my-webapp/root/bin/my-app
new file mode 100755
index 0000000..e3fb305
--- /dev/null
+++ b/test/data/my-webapp/root/bin/my-app
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+export BASEDIR=`pwd`
+
+exec 1>/tmp/stdout
+exec 2>/tmp/stderr
+
+mkdir -p "$BASEDIR/locks"
+mkdir -p "$BASEDIR/logs"
+
+set -x
+export APACHE_LOCK_DIR="$BASEDIR/locks"
+export APACHE_PID_FILE="$(cd $BASEDIR/../../../.app && pwd)/pid"
+export APACHE_LOG_DIR="$BASEDIR/logs"
+
+export MODULES=/usr/lib/apache2/modules
+
+export PORT=$(app conf get myapp.port)
+
+exec /usr/sbin/apache2 -DPORT="$PORT" -f "$BASEDIR/conf/httpd.conf"
diff --git a/test/data/my-webapp/root/conf/httpd.conf b/test/data/my-webapp/root/conf/httpd.conf
new file mode 100644
index 0000000..4a1e775
--- /dev/null
+++ b/test/data/my-webapp/root/conf/httpd.conf
@@ -0,0 +1,56 @@
+ServerRoot ${BASEDIR}
+Mutex file:locks default
+PidFile ${APACHE_PID_FILE}
+Timeout 300
+KeepAlive On
+MaxKeepAliveRequests 100
+KeepAliveTimeout 5
+
+#User ${APACHE_RUN_USER}
+#Group ${APACHE_RUN_GROUP}
+
+HostnameLookups Off
+ErrorLog logs/error.log
+LogLevel warn
+
+Include conf/modules.load
+Include conf/modules.conf
+
+Listen ${PORT}
+
+<IfModule mpm_prefork_module>
+ StartServers 5
+ MinSpareServers 5
+ MaxSpareServers 10
+ MaxRequestWorkers 150
+ MaxConnectionsPerChild 0
+</IfModule>
+
+<Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ Require all denied
+</Directory>
+
+<Directory /var/www/>
+ Options Indexes FollowSymLinks
+ AllowOverride None
+ Require all granted
+</Directory>
+
+AccessFileName .htaccess
+
+<FilesMatch "^\.ht">
+ Require all denied
+</FilesMatch>
+
+LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %O" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+#IncludeOptional conf-enabled/*.conf
+#IncludeOptional sites-enabled/*.conf
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
diff --git a/test/data/my-webapp/root/conf/mime.types b/test/data/my-webapp/root/conf/mime.types
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/data/my-webapp/root/conf/mime.types
diff --git a/test/data/my-webapp/root/conf/modules.conf b/test/data/my-webapp/root/conf/modules.conf
new file mode 100644
index 0000000..f791286
--- /dev/null
+++ b/test/data/my-webapp/root/conf/modules.conf
@@ -0,0 +1 @@
+TypesConfig conf/mime.types
diff --git a/test/data/my-webapp/root/conf/modules.load b/test/data/my-webapp/root/conf/modules.load
new file mode 100644
index 0000000..eafc5b5
--- /dev/null
+++ b/test/data/my-webapp/root/conf/modules.load
@@ -0,0 +1,24 @@
+LoadModule access_compat_module /usr/lib/apache2/modules/mod_access_compat.so
+LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
+LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so
+LoadModule authn_core_module /usr/lib/apache2/modules/mod_authn_core.so
+LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so
+LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
+LoadModule authz_groupfile_module /usr/lib/apache2/modules/mod_authz_groupfile.so
+LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so
+LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so
+LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so
+LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
+LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
+LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so
+LoadModule dnssd_module /usr/lib/apache2/modules/mod_dnssd.so
+LoadModule env_module /usr/lib/apache2/modules/mod_env.so
+LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so
+LoadModule filter_module /usr/lib/apache2/modules/mod_filter.so
+LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
+LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so
+LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so
+LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
+LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so
+LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so
+LoadModule status_module /usr/lib/apache2/modules/mod_status.so
diff --git a/test/it.bats b/test/it.bats
index 406d5fc..df0d4b9 100644
--- a/test/it.bats
+++ b/test/it.bats
@@ -4,8 +4,8 @@
load utils
@test "Happy day" {
- mkzip my-webapp
- install_artifact "my-webapp"
+# describe "Installing Maven artifacts"
+# install_artifact "my-webapp"
# install_artifact "my-webapp" 1.0
cd $BATS_TMPDIR
@@ -13,16 +13,28 @@ load utils
mkdir -p client server
cd client
+ describe "appstore init"
appstore init "localhost" "$BATS_TMPDIR/appstore/server" "mysetup"
cd mysetup
+ describe "appstore add-app"
# Making assertions easier.
git config user.name "Test Case"
git config user.email tester@example.org
- echo "frontend,maven,org.example:my-webapp:1.0-SNAPSHOT,1.0-SNAPSHOT,enabled" >> apps.csv
- echo "backend,maven,org.example:my-webapp:1.0-SNAPSHOT,1.0-SNAPSHOT,enabled" >> apps.csv
- echo "left,maven,org.example:my-webapp:1.0-SNAPSHOT,1.0-SNAPSHOT,disabled" >> apps.csv
+ appstore add-app frontend file $BATS_TEST_DIRNAME/data/my-webapp.zip 1.0-SNAPSHOT enabled
+ app conf set -f frontend.config myapp.port 8880
+
+ appstore add-app backend file $BATS_TEST_DIRNAME/data/my-webapp.zip 1.0-SNAPSHOT enabled
+ app conf set -f backend.config myapp.port 8881
+
+ appstore add-app left maven org.example:my-webapp:1.0-SNAPSHOT 1.0-SNAPSHOT disabled
+ app conf set -f left.config myapp.port 8882
+
+ appstore add-app right maven org.example:my-webapp:1.0-SNAPSHOT 1.0-SNAPSHOT disabled
+ # no myapp.port
+
+ describe "git commit & push"
git commit -m "o Adding app-1." -a
git push cloud master
eq "ssh://localhost$BATS_TMPDIR/appstore/server/repos/mysetup" `git config remote.cloud.url`
diff --git a/test/utils.bash b/test/utils.bash
index cd6fcf0..4c7e2c8 100644
--- a/test/utils.bash
+++ b/test/utils.bash
@@ -8,10 +8,18 @@ exit_usage_wrong=0
setup() {
ORIG_PATH=$PATH
- APPSTORE_HOME=$(cd $BATS_TEST_DIRNAME/..; echo `pwd`)
+ APPSTORE_HOME=$(cd $BATS_TEST_DIRNAME/.. && echo `pwd`)
PATH=/bin:/usr/bin
PATH=$PATH:$APPSTORE_HOME
+ APPSH_HOME=$(cd $BATS_TEST_DIRNAME/../../app.sh && echo `pwd`)
+ if [[ ! -x $APPSH_HOME/app ]]
+ then
+ echo "app.sh has to be available as ../app.sh"
+ exit 1
+ fi
+ PATH=$PATH:$APPSH_HOME
+
rm -rf $BATS_TMPDIR/appstore
mkdir $BATS_TMPDIR/appstore
@@ -23,6 +31,9 @@ setup() {
REPO_URL="file://$REPO"
FIXED_REPO_URL="file://`fix_path $REPO`"
+ cd $BATS_TEST_DIRNAME/data
+ make
+
if [ "`declare -f setup_inner >/dev/null; echo $?`" = 0 ]
then
setup_inner
@@ -35,14 +46,6 @@ echo_lines() {
echo status=$status
}
-mkzip() {
-(
- cd $BATS_TEST_DIRNAME/data/$1
- rm -f ../$1.zip
- zip -qr ../$1.zip *
-)
-}
-
install_artifact() {
local artifactId=${1}; shift
local version=${1-1.0-SNAPSHOT}
@@ -56,7 +59,7 @@ check_status=yes
app() {
echo app $@
- run $APPSTORE_HOME/app $@
+ run $APPSH_HOME/app $@
echo_lines
if [ "$check_status" = yes ]
@@ -68,7 +71,7 @@ app() {
}
app_libexec() {
- local x=`PATH=$APPSTORE_HOME/libexec:/bin:/usr/bin which $1`
+ local x=`PATH=$APPSH_HOME/libexec:/bin:/usr/bin which $1`
echo libexec/$@
shift