#!/bin/bash

SOCKET_FILE=$AUTOPKGTEST_TMP/.ydotool_socket
PID_FILE=$AUTOPKGTEST_TMP/.ydotool_pid

oneTimeTearDown() {
    if [[ -f "$PID_FILE" ]]; then
        pid=$(cat "$PID_FILE")
        echo "[CLEANUP] killing ydotoold (pid $pid)..."
        kill -term "$pid" || true
        rm -f "$PID_FILE"
    fi
}

test_startydotoold() {
    echo "[TEST] Ydotoold starts and socket is created..."
    sudo ydotoold --socket-path=$SOCKET_FILE --socket-perm=777 &
    echo $! > "$PID_FILE"

    local retries=10
    while [[ $retries -gt 0 ]]; do
        if [[ -S "$SOCKET_FILE" ]]; then
            assertTrue "socket file exists" "[ -S \"$SOCKET_FILE\" ]"
            assertTrue "ydotoold process not running" "ps -p $(cat $PID_FILE) > /dev/null"
            return
        fi
        sleep 0.1
        retries=$((retries - 1))
    done
    fail "ydotoold socket not created"
}

test_ydotooltype() {
    echo "[TEST] Type command under ydotool..."
    YDOTOOL_SOCKET="$SOCKET_FILE" ydotool type hello
    assertEquals "ydotool exit status" 0 $?
}

test_verifyydotooldrunning() {
    echo "[TEST] verifying ydotoold is still running..."
    assertTrue "ydotoold died unexpectedly" "ps -p $(cat $PID_FILE) > /dev/null"
}

. /usr/share/shunit2/shunit2
