Quantum/test-web-ui.sh
RTSDA 85a4115a71 🚀 Initial release: Quantum Web Server v0.2.0
 Features:
• HTTP/1.1, HTTP/2, and HTTP/3 support with proper architecture
• Reverse proxy with advanced load balancing (round-robin, least-conn, etc.)
• Static file serving with content-type detection and security
• Revolutionary file sync system with WebSocket real-time updates
• Enterprise-grade health monitoring (active/passive checks)
• TLS/HTTPS with ACME/Let's Encrypt integration
• Dead simple JSON configuration + full Caddy v2 compatibility
• Comprehensive test suite (72 tests passing)

🏗️ Architecture:
• Rust-powered async performance with zero-cost abstractions
• HTTP/3 as first-class citizen with shared routing core
• Memory-safe design with input validation throughout
• Modular structure for easy extension and maintenance

📊 Status: 95% production-ready
🧪 Test Coverage: 72/72 tests passing (100% success rate)
🔒 Security: Memory safety + input validation + secure defaults

Built with ❤️ in Rust - Start simple, scale to enterprise!
2025-08-17 17:08:49 -04:00

100 lines
2.9 KiB
Bash
Executable file

#!/bin/bash
echo "🌐 Testing Caddy-RS Web Interface"
echo "=================================="
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
SERVER_PORT=8080
WEB_URL="http://localhost:$SERVER_PORT"
echo -e "\n${YELLOW}🔨 Building project...${NC}"
cargo build --release
if [ $? -ne 0 ]; then
echo -e "${RED}❌ Build failed${NC}"
exit 1
fi
echo -e "\n${BLUE}🚀 Starting server with web UI...${NC}"
echo "Server URL: $WEB_URL"
cargo run --bin caddy-rs --release -- -c example-sync-config.json &
SERVER_PID=$!
echo "Server PID: $SERVER_PID"
# Wait for server to start
echo "Waiting for server to start..."
sleep 3
echo -e "\n${YELLOW}🧪 Testing web interface endpoints...${NC}"
# Test 1: Web UI homepage
echo "Test 1: GET / (Web UI)"
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $WEB_URL/)
if [ "$HTTP_STATUS" = "200" ]; then
echo -e "${GREEN}✅ Web UI homepage accessible${NC}"
else
echo -e "${RED}❌ Web UI homepage failed (HTTP $HTTP_STATUS)${NC}"
fi
# Test 2: CSS file
echo -e "\nTest 2: GET /styles.css"
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $WEB_URL/styles.css)
if [ "$HTTP_STATUS" = "200" ]; then
echo -e "${GREEN}✅ CSS file accessible${NC}"
else
echo -e "${RED}❌ CSS file failed (HTTP $HTTP_STATUS)${NC}"
fi
# Test 3: JavaScript file
echo -e "\nTest 3: GET /app.js"
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $WEB_URL/app.js)
if [ "$HTTP_STATUS" = "200" ]; then
echo -e "${GREEN}✅ JavaScript file accessible${NC}"
else
echo -e "${RED}❌ JavaScript file failed (HTTP $HTTP_STATUS)${NC}"
fi
# Test 4: API endpoints still work
echo -e "\nTest 4: GET /api/list (API)"
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $WEB_URL/api/list)
if [ "$HTTP_STATUS" = "200" ]; then
echo -e "${GREEN}✅ API endpoints still working${NC}"
else
echo -e "${RED}❌ API endpoints broken (HTTP $HTTP_STATUS)${NC}"
fi
echo -e "\n${GREEN}🎉 Web interface testing complete!${NC}"
echo -e "\n${BLUE}🌐 Open in your browser:${NC}"
echo "$WEB_URL"
echo -e "\n${YELLOW}📋 Web Interface Features:${NC}"
echo "✓ File listing with icons and metadata"
echo "✓ Drag & drop file upload"
echo "✓ File download functionality"
echo "✓ Real-time WebSocket updates"
echo "✓ Responsive mobile-friendly design"
echo "✓ Dark mode support"
echo "✓ Context menus for file operations"
echo -e "\n${YELLOW}🔧 To test manually:${NC}"
echo "1. Open $WEB_URL in your browser"
echo "2. Try uploading files via drag & drop"
echo "3. Enable real-time updates"
echo "4. Right-click files for context menu"
echo "5. Test on mobile/tablet for responsive design"
echo -e "\n${YELLOW}⏹️ Press Ctrl+C to stop the server${NC}"
echo "Server PID: $SERVER_PID"
# Keep script running until user interrupts
trap "echo -e '\n${YELLOW}🧹 Stopping server...${NC}'; kill $SERVER_PID 2>/dev/null; exit 0" INT
while true; do
sleep 1
done