95 lines
2.9 KiB
Bash
Executable File
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"
|