cremote/test-iframe-timeout.sh

72 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Test script for iframe timeout functionality
set -e
echo "Starting iframe timeout test..."
# Start the daemon in background
echo "Starting cremotedaemon..."
./cremotedaemon --debug &
DAEMON_PID=$!
# Wait for daemon to start
sleep 2
# Function to cleanup
cleanup() {
echo "Cleaning up..."
kill $DAEMON_PID 2>/dev/null || true
wait $DAEMON_PID 2>/dev/null || true
}
# Set trap for cleanup
trap cleanup EXIT
# Test 1: Basic iframe switching with timeout
echo "Test 1: Basic iframe switching with timeout"
TAB_ID=$(./cremote open-tab --timeout 5 | grep -o '"[^"]*"' | tr -d '"')
echo "Created tab: $TAB_ID"
# Load test page
./cremote load-url --tab "$TAB_ID" --url "file://$(pwd)/test-iframe.html" --timeout 10
echo "Loaded test page"
# Switch to iframe with timeout
echo "Switching to iframe with 5 second timeout..."
./cremote switch-iframe --tab "$TAB_ID" --selector "#test-iframe" --timeout 5
echo "Successfully switched to iframe"
# Try to click button in iframe
echo "Clicking button in iframe..."
./cremote click-element --tab "$TAB_ID" --selector "#iframe-button" --selection-timeout 5 --action-timeout 5
echo "Successfully clicked iframe button"
# Switch back to main
echo "Switching back to main context..."
./cremote switch-main --tab "$TAB_ID"
echo "Successfully switched back to main"
# Try to click main button
echo "Clicking main page button..."
./cremote click-element --tab "$TAB_ID" --selector "#main-button" --selection-timeout 5 --action-timeout 5
echo "Successfully clicked main button"
# Test 2: Test timeout with non-existent iframe
echo ""
echo "Test 2: Testing timeout with non-existent iframe"
set +e # Allow command to fail
./cremote switch-iframe --tab "$TAB_ID" --selector "#non-existent-iframe" --timeout 2
RESULT=$?
set -e
if [ $RESULT -eq 0 ]; then
echo "ERROR: Expected timeout failure but command succeeded"
exit 1
else
echo "SUCCESS: Timeout correctly handled for non-existent iframe"
fi
echo ""
echo "All iframe timeout tests passed!"