#!/bin/bash

source ../share/apkg-bashlib


echo "GUI Protocol test suite"
cyan; echo "* ONE"; normal;
echo

pipename="pipe$$"
mkfifo $pipename

function flush() { cat $pipename >/dev/null; }

( # fork a subshell
echo "HELLO 1" >$pipename
ret=`cat $pipename` # wait

if [[ "$ret" != "LETS GO" ]]; then
  red; echo -n "FAIL: "; normal; echo "Bad protocol response:";
  cyan; echo "$ret"; normal;
  exit 1;
fi

# Test STATUS primitive
echo "STATUS
Testing status function...." >$pipename
flush

# Test TEST primitive
echo "TEST
for passed test" >$pipename
flush
echo "PASSTEST" >$pipename
flush

echo "TEST
for failed test" >$pipename
flush
echo "FAILTEST" >$pipename
flush

echo "TEST
with a recommendation this time" >$pipename
flush
echo "RECOMMEND" >$pipename
flush

# Test FAIL
echo "FAIL
This is just a test failure, we're doing OK really" >$pipename
flush

# just for testing, a blank line....
echo "STATUS
 " >$pipename
flush

# Test SELECT STRING
echo "INTERACT STRING
VAR1
Kickass
What is autopackage?" >$pipename
flush;

# set group

echo "SWITCH GROUP
cool_group
The coolest group" >$pipename
flush;

echo "INTERACT STRING
VAR2
The Avenger
What is your name?" >$pipename
flush;


echo "INTERACT PATH
VAR3
~/foo
Where is foo installed?" >$pipename
flush

echo "INTERACT STRING
VAR4
drool
Matrix 2?" >$pipename
flush;

echo "SWITCH GROUP
default" >$pipename
flush;

echo "INTERACT STRING
VAR5
ok
And back to the default group" >$pipename
flush;

## wait
echo "WAIT" >$pipename
flush;
## end wait

echo "GET
VAR1" >$pipename
var1=`cat $pipename`

echo "SWITCH GROUP
cool_group" >$pipename; flush;
echo "GET
VAR2" >$pipename
var2=`cat $pipename`

echo "GET
VAR3" >$pipename
var3=`cat $pipename`
echo "GET
VAR4" >$pipename
var4=`cat $pipename`


echo "STATUS

autopackage is $var1
your name is $var2
demo of tilde expansion = $var3
the matrix is $var4" >$pipename
flush


# and clean up....
echo "TERMINATE" >$pipename
#sleep 1

) &     # the above script will be forked into the background, so the ttyfe will gain control of stdin/stdout

../share/apkg-ttyfe "$pipename"
rm $pipename
