138 lines
4.4 KiB
Bash
Executable File
138 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Test script for new accessibility summary tools
|
|
# Tests the token-efficient accessibility assessment tools
|
|
|
|
set -e
|
|
|
|
echo "========================================="
|
|
echo "Testing Accessibility Summary Tools"
|
|
echo "========================================="
|
|
echo ""
|
|
|
|
# Configuration
|
|
DAEMON_HOST="localhost"
|
|
DAEMON_PORT="8989"
|
|
TEST_URL="https://visionleadership.org"
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Function to test a command
|
|
test_command() {
|
|
local cmd_name=$1
|
|
local cmd_json=$2
|
|
|
|
echo -e "${YELLOW}Testing: $cmd_name${NC}"
|
|
|
|
response=$(curl -s -X POST http://$DAEMON_HOST:$DAEMON_PORT/command \
|
|
-H "Content-Type: application/json" \
|
|
-d "$cmd_json")
|
|
|
|
success=$(echo "$response" | jq -r '.success')
|
|
|
|
if [ "$success" = "true" ]; then
|
|
echo -e "${GREEN}✓ $cmd_name succeeded${NC}"
|
|
|
|
# Show token estimate
|
|
token_count=$(echo "$response" | jq -r '.data' | wc -c)
|
|
echo " Estimated tokens: ~$((token_count / 4))"
|
|
|
|
return 0
|
|
else
|
|
error=$(echo "$response" | jq -r '.error')
|
|
echo -e "${RED}✗ $cmd_name failed: $error${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Check if daemon is running
|
|
echo "Checking daemon status..."
|
|
if ! curl -s http://$DAEMON_HOST:$DAEMON_PORT/status > /dev/null; then
|
|
echo -e "${RED}Error: Daemon is not running on $DAEMON_HOST:$DAEMON_PORT${NC}"
|
|
echo "Please start the daemon first: ./daemon/cremotedaemon"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}✓ Daemon is running${NC}"
|
|
echo ""
|
|
|
|
# Open a tab and navigate to test URL
|
|
echo "Opening tab and navigating to $TEST_URL..."
|
|
tab_response=$(curl -s -X POST http://$DAEMON_HOST:$DAEMON_PORT/command \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"action":"open-tab","params":{"timeout":"10"}}')
|
|
|
|
tab_id=$(echo "$tab_response" | jq -r '.data')
|
|
echo "Tab ID: $tab_id"
|
|
|
|
# Navigate to test URL
|
|
curl -s -X POST http://$DAEMON_HOST:$DAEMON_PORT/command \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"action\":\"navigate\",\"params\":{\"tab\":\"$tab_id\",\"url\":\"$TEST_URL\",\"timeout\":\"10\"}}" > /dev/null
|
|
|
|
echo -e "${GREEN}✓ Navigated to $TEST_URL${NC}"
|
|
echo ""
|
|
|
|
# Wait for page to load
|
|
sleep 2
|
|
|
|
# Test 1: Page Accessibility Report
|
|
echo "========================================="
|
|
echo "Test 1: Page Accessibility Report"
|
|
echo "========================================="
|
|
test_command "page-accessibility-report" \
|
|
"{\"action\":\"page-accessibility-report\",\"params\":{\"tab\":\"$tab_id\",\"tests\":\"wcag,contrast,keyboard\",\"standard\":\"WCAG21AA\",\"timeout\":\"30\"}}"
|
|
echo ""
|
|
|
|
# Test 2: Contrast Audit
|
|
echo "========================================="
|
|
echo "Test 2: Contrast Audit"
|
|
echo "========================================="
|
|
test_command "contrast-audit" \
|
|
"{\"action\":\"contrast-audit\",\"params\":{\"tab\":\"$tab_id\",\"priority_selectors\":\"button,a,nav,footer\",\"threshold\":\"AA\",\"timeout\":\"10\"}}"
|
|
echo ""
|
|
|
|
# Test 3: Keyboard Audit
|
|
echo "========================================="
|
|
echo "Test 3: Keyboard Audit"
|
|
echo "========================================="
|
|
test_command "keyboard-audit" \
|
|
"{\"action\":\"keyboard-audit\",\"params\":{\"tab\":\"$tab_id\",\"check_focus_indicators\":\"true\",\"check_tab_order\":\"true\",\"check_keyboard_traps\":\"true\",\"timeout\":\"15\"}}"
|
|
echo ""
|
|
|
|
# Test 4: Form Accessibility Audit
|
|
echo "========================================="
|
|
echo "Test 4: Form Accessibility Audit"
|
|
echo "========================================="
|
|
test_command "form-accessibility-audit" \
|
|
"{\"action\":\"form-accessibility-audit\",\"params\":{\"tab\":\"$tab_id\",\"timeout\":\"10\"}}"
|
|
echo ""
|
|
|
|
# Close the tab
|
|
echo "Cleaning up..."
|
|
curl -s -X POST http://$DAEMON_HOST:$DAEMON_PORT/command \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"action\":\"close-tab\",\"params\":{\"tab\":\"$tab_id\"}}" > /dev/null
|
|
|
|
echo -e "${GREEN}✓ Tab closed${NC}"
|
|
echo ""
|
|
|
|
echo "========================================="
|
|
echo "All Tests Complete!"
|
|
echo "========================================="
|
|
echo ""
|
|
echo "Summary:"
|
|
echo "- All 4 new accessibility summary tools tested"
|
|
echo "- Token usage significantly reduced"
|
|
echo "- Results are structured and actionable"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Review the output above for any errors"
|
|
echo "2. Compare token usage with old approach"
|
|
echo "3. Test with MCP server integration"
|
|
echo "4. Run full site assessment"
|
|
|