#!/bin/sh

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

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

cd install_procedural

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_procedural/app/config/bfw/modules.php install_procedural/app/config/bfw/modules.php.original
cp -R skeleton_common/app/* install_procedural/app/
cp -R skeleton_procedural/app/* install_procedural/app/
cp -R skeleton_procedural/src/* install_procedural/src/
cd install_procedural

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:8001 -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:8001/test )
wgetexpected="procedural 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;
