Files
cremote/test_advanced_input.sh
Josh at WLTechBlog a3c782eb24 bump
2025-09-30 14:11:27 -05:00

157 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
# Test script for advanced input operations in cremote
# This script demonstrates the new mouse and keyboard capabilities
set -e
echo "🚀 Testing Advanced Input Operations in Cremote"
echo "=============================================="
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Function to print test status
print_test() {
echo -e "${BLUE}[TEST]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_info() {
echo -e "${YELLOW}[INFO]${NC} $1"
}
# Check if cremote is available
if ! command -v ./cremote &> /dev/null; then
print_error "cremote binary not found. Please build it first with: go build -o cremote ."
exit 1
fi
# Test basic help functionality
print_test "Testing help for new commands"
./cremote right-click -h > /dev/null 2>&1 && print_success "right-click help works"
./cremote double-click -h > /dev/null 2>&1 && print_success "double-click help works"
./cremote hover -h > /dev/null 2>&1 && print_success "hover help works"
./cremote middle-click -h > /dev/null 2>&1 && print_success "middle-click help works"
./cremote mouse-move -h > /dev/null 2>&1 && print_success "mouse-move help works"
./cremote scroll-wheel -h > /dev/null 2>&1 && print_success "scroll-wheel help works"
./cremote key-combination -h > /dev/null 2>&1 && print_success "key-combination help works"
./cremote special-key -h > /dev/null 2>&1 && print_success "special-key help works"
./cremote modifier-click -h > /dev/null 2>&1 && print_success "modifier-click help works"
echo ""
print_info "All help commands are working correctly!"
echo ""
print_test "Testing main usage message includes new commands"
if ./cremote 2>&1 | grep -q "right-click"; then
print_success "right-click appears in usage"
else
print_error "right-click missing from usage"
fi
if ./cremote 2>&1 | grep -q "key-combination"; then
print_success "key-combination appears in usage"
else
print_error "key-combination missing from usage"
fi
if ./cremote 2>&1 | grep -q "modifier-click"; then
print_success "modifier-click appears in usage"
else
print_error "modifier-click missing from usage"
fi
echo ""
print_info "Usage message verification complete!"
echo ""
print_test "Testing command parameter validation"
# Test missing required parameters
if ./cremote right-click 2>&1 | grep -q "Usage of right-click"; then
print_success "right-click shows usage when no parameters provided"
fi
if ./cremote key-combination 2>&1 | grep -q "Usage of key-combination"; then
print_success "key-combination shows usage when no parameters provided"
fi
if ./cremote modifier-click 2>&1 | grep -q "Usage of modifier-click"; then
print_success "modifier-click shows usage when no parameters provided"
fi
echo ""
print_info "Parameter validation working correctly!"
echo ""
print_test "Testing MCP server build"
cd mcp
if go build -o cremote-mcp . > /dev/null 2>&1; then
print_success "MCP server builds successfully"
cd ..
else
print_error "MCP server build failed"
cd ..
exit 1
fi
echo ""
print_info "All basic tests passed! 🎉"
echo ""
echo "📋 Advanced Input Operations Summary:"
echo "====================================="
echo "✅ Mouse Operations:"
echo " • right-click - Context menus"
echo " • double-click - File operations, text selection"
echo " • middle-click - Open links in new tabs"
echo " • hover - Tooltips, dropdowns"
echo " • mouse-move - Precise positioning"
echo " • scroll-wheel - Mouse wheel scrolling"
echo ""
echo "✅ Keyboard Operations:"
echo " • key-combination - Ctrl+C, Alt+Tab, Shift+Enter, etc."
echo " • special-key - Enter, Escape, Tab, F1-F12, Arrow keys"
echo " • modifier-click - Ctrl+click, Shift+click for multi-selection"
echo ""
echo "✅ MCP Tools Available:"
echo " • web_right_click_cremotemcp"
echo " • web_double_click_cremotemcp"
echo " • web_hover_cremotemcp"
echo " • web_middle_click_cremotemcp"
echo " • web_mouse_move_cremotemcp"
echo " • web_scroll_wheel_cremotemcp"
echo " • web_key_combination_cremotemcp"
echo " • web_special_key_cremotemcp"
echo " • web_modifier_click_cremotemcp"
echo ""
echo "🎯 Use Cases Enabled:"
echo " • Context menu testing"
echo " • Keyboard navigation accessibility"
echo " • Tooltip/dropdown interactions"
echo " • Multi-selection workflows"
echo " • Copy/paste operations"
echo " • Precise mouse control"
echo " • Advanced user interaction patterns"
echo ""
echo "🚀 Ready for comprehensive web application testing!"
echo ""
print_info "To test with a real browser, start the daemon and Chrome:"
echo " 1. Start Chrome: chromium --remote-debugging-port=9222 --user-data-dir=/tmp/chromium-debug"
echo " 2. Start daemon: ./daemon/cremotedaemon"
echo " 3. Test commands: ./cremote open-tab"
echo " 4. Try new features: ./cremote right-click --selector='body'"