#!/bin/bash # Test script for CyberPanel Modular Installer # This script tests the installer without actually installing echo "๐Ÿงช Testing CyberPanel Modular Installer..." # Test 1: Check if all modules exist echo "๐Ÿ“‹ Testing module structure..." modules=( "modules/os/detect.sh" "modules/deps/manager.sh" "modules/deps/rhel_deps.sh" "modules/deps/debian_deps.sh" "modules/install/cyberpanel_installer.sh" "modules/fixes/cyberpanel_fixes.sh" "modules/utils/ui.sh" "modules/utils/menu.sh" ) for module in "${modules[@]}"; do if [ -f "$module" ]; then echo "โœ… $module exists" else echo "โŒ $module missing" fi done # Test 2: Check if cyberpanel.sh is executable echo "" echo "๐Ÿ“‹ Testing main installer..." if [ -f "cyberpanel.sh" ]; then echo "โœ… cyberpanel.sh exists" if [ -x "cyberpanel.sh" ]; then echo "โœ… cyberpanel.sh is executable" else echo "โŒ cyberpanel.sh is not executable" fi else echo "โŒ cyberpanel.sh missing" fi # Test 3: Test help function echo "" echo "๐Ÿ“‹ Testing help function..." if ./cyberpanel.sh --help > /dev/null 2>&1; then echo "โœ… Help function works" else echo "โŒ Help function failed" fi # Test 4: Test module loading (dry run) echo "" echo "๐Ÿ“‹ Testing module loading..." # Create a test script that loads modules cat > test_modules.sh << 'EOF' #!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODULES_DIR="$SCRIPT_DIR/modules" # Test OS detection module if [ -f "$MODULES_DIR/os/detect.sh" ]; then source "$MODULES_DIR/os/detect.sh" echo "โœ… OS detection module loaded" else echo "โŒ OS detection module not found" exit 1 fi # Test UI module if [ -f "$MODULES_DIR/utils/ui.sh" ]; then source "$MODULES_DIR/utils/ui.sh" echo "โœ… UI module loaded" else echo "โŒ UI module not found" exit 1 fi echo "โœ… All modules loaded successfully" EOF chmod +x test_modules.sh if ./test_modules.sh; then echo "โœ… Module loading test passed" else echo "โŒ Module loading test failed" fi # Cleanup rm -f test_modules.sh echo "" echo "๐ŸŽ‰ Test completed!" echo "" echo "To use the installer:" echo " bash cyberpanel.sh # Interactive mode" echo " bash cyberpanel.sh --debug # Debug mode" echo " bash cyberpanel.sh --auto # Auto mode" echo " bash cyberpanel.sh -b v2.5.5-dev # Specific version"