#!/bin/sh

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

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

cd install

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/bfwInstallModules

echo '\033[0;33mCopy module test skeleton files\033[0m'
cd ../
mv install/app/config/bfw/config.php install/app/config/bfw/config.php.original
cp -Rf skeleton/app/* install/app/
cp -Rf skeleton/src/* install/src/
mkdir install/app/logs/
chmod 775 install/app/logs

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

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

exitstatus=0

echo '\033[0;33mRun all tests\033[0m'
curlreturn=$( curl http://localhost:8000 )
curlexpected="Status Execution (Http Code) : 200"

echo "$curlreturn"

curlsearch=$( echo "${curlreturn}" |grep "Status Execution (Http Code)")

echo -n '\033[0;33mCheck return ... \033[0m'
if [ "$curlexpected" = "$curlsearch" ] ;then
    echo '\033[1;32mOK\033[0m'
else
    echo '\033[1;31m Fail\033[0m'
    exitstatus=1
fi

echo -n '\033[0;33mCheck observer log file ... \033[0m'
if [ ! -f app/logs/sql.log ]; then
    echo '\033[1;31mSqlObserver log file not exists\033[0m'
    exitstatus=1
else
    if [ ! -s app/logs/sql.log ]; then
        echo '\033[1;31mSqlObserver log file is empty\033[0m'
        exitstatus=1
    else
        echo '\033[1;32mOK\033[0m'
    fi
fi


killall php
exit "$exitstatus";
