#!/usr/share/ucs-test/runner bash
## desc: Create OX users and send mail virus
## bugs: [34349]
## packages:
##  - univention-ox
## tags:
##  - apptest
##  - SKIP
## exposure: dangerous

. "/usr/share/univention-lib/all.sh" || exit 137
. "ox.sh" || exit 137

eval "$(/usr/sbin/ucr shell)"

RETVAL=100

username="$(user_randomname)"
mail="$(random_mailaddress)@$domainname"

create_ox_user "$username" "$mail"
wait_for_replication

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | mail -s 'Virus' "$mail"
echo 'XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X' | mail -s 'SPAM' "$mail"
for ((i=0;i<60;i++))
do
	mailq | grep -q "Mail queue is empty" && break
	sleep 1
done

ox_login "$username" "univention" || fail_test 110 "Login to account denied"
session="$(ox_session)"
res="$(ox_ajax folders action=root session="$session" columns=1,300 allowed_modules=mail)"
id="$(echo "$res" | sed -rne 's/.*\["([^"]+)","Persönliche Ordner"\].*/\1/p')"
res="$(ox_ajax folders action=list session="$session" columns=1,300 parent="$id")"
id="$(echo "$res" | sed -rne 's/.*\["([^"]+)","E-Mail"\].*/\1/p')"
res="$(ox_ajax folders action=list session="$session" columns=1,300 parent="$id")"
id="$(echo "$res" | sed -rne 's/.*\["([^"]+)","Posteingang"\].*/\1/p')"
res="$(ox_ajax mail action=all session="$session" folder="$id" columns=607)"
echo "$res" | grep '"data":\[.*\["VIRUS (Eicar-Test-Signature) in mail TO YOU from <.*>"].*\].*' ||
	fail_test 110 "Missing Virus mail: $res"
echo "$res" | grep '"data":\[.*\[".*SPAM"].*\].*' ||
	fail_test 110 "Missing spam mail: $res"

user_remove "$username"
wait_for_replication

exit $RETVAL
# vim:set ft=sh:
