#!/bin/bash

set -u

RETCODE=0
SRCDIR=$(pwd)

# Format: "file-type|filename|size"
TEST_CASES=(
    "video|1.webm|16"
    "video|1.webm|32"
    "video|1.webm|48"
    "video|1.webm|64"
    "video|1.webm|512"
    "audio|audio-cover-png.flac|16"
    "audio|audio-cover-png.flac|32"
    "audio|audio-cover-png.flac|256"
)

echo "Starting Thumbnailer Integration Tests..."
echo "----------------------------------------"
for case in "${TEST_CASES[@]}"; do
    IFS='|' read -r content filename size <<< "$case"

    input_path="$SRCDIR"/tests/"$filename"
    output_file="thumb_${filename}_${size}.png"

    if [[ "$content" == "video" ]]; then
        exe="gst-video-thumbnailer"
    else
        exe="gst-audio-thumbnailer"
    fi

    $exe --input-uri "file://$input_path" --output "$output_file" --size "$size"

    if [ -s "$output_file" ]; then
        echo "[PASS] $filename ($size px)"
    else
        echo "[FAIL] $filename ($size px): Expected a non-zero sized output file."
        RETCODE=1
    fi

    rm -f "$output_file"
done

echo "----------------------------------------"
if [ $RETCODE -eq 0 ]; then
    echo "All tests passed."
else
    echo "Some tests failed."
fi

exit $RETCODE
