#!/bin/sh
# Pruebas de regresión.
# Dominio público. 2007. vtamara@pasosdeJesus.org

function die {
	echo $1;
	exit 1;
}

# Genera DataObject.ini con el nivel de depuración especificado en primer 
# parámetro
function genDataObject {
	depura=$1;
	sed -e "s/\(database *=.*(\).*).*\"/\1$ds)sivel-prueba\"/g;s/schema_location *=.*/schema_location=$fuentes/g;s/class_location *=.*/class_location=$fuentes/g;s/debug *=.*/debug=$depura/g" ../DataObject.ini > DataObject.ini
}


function prueba {
	a=$1;
	d=$2;
	sal=$3;
	saca="$4";
	echo -n "$1 $2 : ";
	echo -n "$1 $2 : " >> pruebas.bitacora;
	if (test "$sal" != "") then {
		genDataObject 0;
		mkdir -p salida
		php $1 | grep -v evita_csrf > salida/$sal.tmp 2>&1
		if (test "$saca" != "") then {
			grep -v "$saca" salida/$sal.tmp > salida/$sal
		} 
		else {
			cp salida/$sal.tmp salida/$sal
		} fi;
		diff -b salida/$sal esperado/$sal > /dev/null
	} 
	else {
		genDataObject 5;
		php $1 >> pruebas.bitacora 2>&1
	} fi;
	if (test "$?" != "0") then {
		echo " Falló";
	}
	else {
		echo " OK";
	} fi;
}

echo "Pruebas de regresión"

if (test ! -f pruebas.sh) then {
	echo "Ejecute desde el directorio pruebas";
} fi;

if (test ! -f ../confv.sh) then {
	echo "Configure primero las fuentes";
	exit 1;
} fi;

echo "Configurando"
. ../confv.sh

ds=`echo $SOCKPSQL | sed -e "s/.s.PGSQL.*//g" | sed -e "s/\//\\\\\\\\\//g"`;
fuentes=`pwd | sed -e "s/\/pruebas//g" | sed -e "s/\//\\\\\\\\\//g"`;

genDataObject 5;

sed -e "s/^ *\$dbservidor *=.*/\$dbservidor = \"unix($ds)\";/g" ../aut/conf.php | 
sed -e "s/^ *\$dbnombre *=.*/\$dbnombre = \"sivel-prueba\";/g"  |
sed -e "s/^ *\$GLOBALS\['consulta_web_fecha_min'\] *=.*/\$GLOBALS\['consulta_web_fecha_min'\] = '1990-01-01';/g" |
sed -e "s/^ *\$GLOBALS\['anio_min'\] *=.*/\$GLOBALS\['anio_min'\] = 1990;/g" |  
sed -e "s/^ *\$socketopt *=.*/\$socketopt = \"-h $ds\";/g"  > aut/conf.php  

. ./vardb.sh

echo "Se empleará una base nueva de nombre $dbnombre del usuario $dbusuario "
echo -n "(se borrará, no la utilice!) ";

echo "[Enter] para comenzar";

date > pruebas.bitacora

#function x {
RUTASQL=../ SIN_DATOS=1 ../bin/creapg.sh >> pruebas.bitacora 2>&1
if (test "$?" != "0") then {
	die "Falló creación de la base";
} fi;
RUTASQL=../
if (test -f ${RUTASQL}datos-us.sql) then {
	cmd="psql $socketopt -U $dbusuario -d $dbnombre -f ${RUTASQL}datos-us.sql";
	echo $cmd;
	eval $cmd;
} fi;

rm -f ../sivel-prueba.ini ../sivel-prueba.links.ini
(cd ..; ln -s sivel.ini sivel-prueba.ini; ln -s sivel.links.ini sivel-prueba.links.ini)

php -r 'phpinfo();' >> pruebas.bitacora 2>&1
prueba insdep.php "Inserta departamento"
prueba actdep.php "Actualiza departamento"
prueba insbasicas.php "Inserta en tablas básicas"
prueba insusu.php "Inserta usuario"
prueba inscaso-basico.php "Inserta un caso basico"
prueba inscaso-clase.php " - Localización"
prueba inscaso-ubicacion.php " - Ubicacion"
prueba inscaso-frecuentes.php " - Fuentes frecuentes"
prueba inscaso-otras.php " - Otras fuentes"
prueba inscaso-tipoViolencia.php " - Tipo de Violencia"
prueba inscaso-presponsable.php " - Presunto Responsable"
prueba inscaso-victima.php " - Víctima"
prueba inscaso-victimaColectiva.php " - Víctima Colectiva"
prueba inscaso-victimaCombatiente.php " - Víctima Combatiente"
prueba inscaso-memo.php " - Memo"
prueba inscaso-evaluacion.php " - Evaluacion"
#}

prueba inscaso-valrepgen.php " - Validar y Reporte General" valrepgen "inv1 *[0-9]*-[A-Za-z]*-[0-9]*"
prueba reprevista.php " - Reporte Revista" reprevista
prueba reprevista-filtros.php " - Filtros en Reporte Revista" reprevista-filtros
prueba repconsolidado.php " - Reporte Consolidado" repconsolidado
prueba estadisticas.php " - Estadísticas " estadisticas
prueba novalida-basicos.php " - Validación básicos" novalida-basicos
prueba novalida-frecuentes.php " - Validación frecuentes" novalida-frecuentes


