heroagent/scripts/test_webdav.sh
2025-04-23 04:18:28 +02:00

95 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# Test script for WebDAV server with all features
# This script demonstrates how to use the WebDAV server with debug mode, authentication, and HTTPS
# Create test directory for WebDAV files
TEST_DIR="/tmp/webdav_test"
mkdir -p "$TEST_DIR"
echo "Test content" > "$TEST_DIR/test.txt"
# Generate self-signed certificate for HTTPS testing if it doesn't exist
CERT_DIR="./certs"
if [ ! -f "$CERT_DIR/webdav.crt" ] || [ ! -f "$CERT_DIR/webdav.key" ]; then
echo "Generating self-signed certificate for HTTPS testing..."
./scripts/generate_cert.sh
fi
# Function to display section headers
section() {
echo ""
echo "====================================="
echo " $1"
echo "====================================="
}
# Function to run a test case
run_test() {
local name="$1"
local cmd="$2"
local connect_cmd="$3"
section "TEST: $name"
echo "Running command: $cmd"
# Run the WebDAV server in the background
eval "$cmd" &
SERVER_PID=$!
# Wait for server to start
sleep 2
# Display connection command
if [ -n "$connect_cmd" ]; then
echo ""
echo "To connect to this server, run:"
echo "$connect_cmd"
echo ""
echo "Press Enter to continue to the next test..."
read
else
echo "Server is running. Press Enter to continue to the next test..."
read
fi
# Kill the server
kill $SERVER_PID
wait $SERVER_PID 2>/dev/null
echo "Server stopped."
}
# Test 1: Basic WebDAV server
run_test "Basic WebDAV Server" \
"./bin/webdavserver -fs $TEST_DIR" \
"./scripts/open_webdav_osx.sh"
# Test 2: WebDAV with debug mode
run_test "WebDAV Server with Debug Mode" \
"./bin/webdavserver -fs $TEST_DIR -debug" \
"./scripts/open_webdav_osx.sh"
# Test 3: WebDAV with authentication
run_test "WebDAV Server with Authentication" \
"./bin/webdavserver -fs $TEST_DIR -auth -username testuser -password testpass" \
"./scripts/open_webdav_osx.sh -u testuser -pw testpass"
# Test 4: WebDAV with HTTPS
run_test "WebDAV Server with HTTPS" \
"./bin/webdavserver -fs $TEST_DIR -https -cert $CERT_DIR/webdav.crt -key $CERT_DIR/webdav.key" \
"./scripts/open_webdav_osx.sh -s"
# Test 5: WebDAV with all features
run_test "WebDAV Server with All Features" \
"./bin/webdavserver -fs $TEST_DIR -debug -auth -username testuser -password testpass -https -cert $CERT_DIR/webdav.crt -key $CERT_DIR/webdav.key" \
"./scripts/open_webdav_osx.sh -s -u testuser -pw testpass"
section "All tests completed"
echo "The WebDAV server has been tested with all features:"
echo "- Basic functionality"
echo "- Debug mode"
echo "- Authentication"
echo "- HTTPS support"
echo ""
echo "To run the WebDAV server in production mode, use:"
echo "./bin/webdavserver -fs /path/to/your/files -auth -username your_username -password your_password -https -cert /path/to/cert.pem -key /path/to/key.pem"