#!/bin/sh

echo '\033[0;33mCheck module\033[0m'

echo '\033[0;33mRemove and create test directory\033[0m'
rm -rf install_object
mkdir -p install_object
cp -R composer.json install_object/

cd install_object

echo '\033[0;33mGet composer and install dependancies\033[0m'
curl -sS https://getcomposer.org/installer | php
php composer.phar install

echo '\033[0;33mBFW Install and module\033[0m'
./vendor/bin/bfwInstall
./vendor/bin/bfwAddMod -a

echo '\033[0;33mCopy module test skeleton files\033[0m'
cd ../
mv install_object/app/config/bfw/modules.php install_object/app/config/bfw/modules.php.original
cp -R skeleton_common/app/* install_object/app/
cp -R skeleton_object/app/* install_object/app/
cp -R skeleton_object/src/* install_object/src/
cd install_object

echo '\033[0;33mEnable all modules\033[0m'
./vendor/bin/bfwEnMod -a

DIRECTORY=`pwd`

echo -n '\033[0;33mCheck module installed script has been executed ... \033[0m'
if [ -d "$DIRECTORY/src/controllers" ]; then
    echo '\033[1;32mOK\033[0m'
else
    echo '\033[1;31mFail\033[0m'
    exit 1
fi

echo -n '\033[0;33mCheck module bfw-controller is available ... \033[0m'
if [ -d "$DIRECTORY/app/modules/available/bfw-controller" ]; then
    echo '\033[1;32mOK\033[0m'
else
    echo '\033[1;31mFail\033[0m'
    exit 1
fi

echo -n '\033[0;33mCheck module bfw-controller is enabled ... \033[0m'
if [ -d "$DIRECTORY/app/modules/enabled/bfw-controller" ]; then
    echo '\033[1;32mOK\033[0m'
else
    echo '\033[1;31mFail\033[0m'
    exit 1
fi

echo -n '\033[0;33mCheck module forceRoute is enabled ... \033[0m'
if [ -d "$DIRECTORY/app/modules/enabled/forceRoute" ]; then
    echo '\033[1;32mOK\033[0m'
else
    echo '\033[1;31mFail\033[0m'
    exit 1
fi

echo '\033[0;33mRun php integrated web server\033[0m'
php -S localhost:8000 -t web web/index.php &

echo '\033[0;33mWait 5s web server is running\033[0m'
sleep 5

echo '\033[0;33mGet return\033[0m'
wgetreturn=$( wget -qO - http://localhost:8000/test )
wgetexpected="object controller"

echo -n '\033[0;33mCheck return ... \033[0m'
if [ "$wgetreturn" = "$wgetexpected" ] ;then
    echo '\033[1;32mOK\033[0m'
    exit 0;
fi

echo '\033[1;31m Fail\033[0m'
exit 1;
