Security hardening: authentication, input validation, OWASP compliance, architecture improvements, and CSP fixes for browser mode (#942)
This commit is contained in:
103
scripts/uiTestsWithVnc.sh
Executable file
103
scripts/uiTestsWithVnc.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
function finish {
|
||||
set +e
|
||||
echo "Exiting, cleaning up.."
|
||||
|
||||
echo "Stopping noVNC server.."
|
||||
pkill -f "websockify.*6080" || echo "Already stopped"
|
||||
|
||||
echo "Stopping TMUX session (record).."
|
||||
tmux kill-session -t record || echo "Already stopped"
|
||||
|
||||
if [[ ! -z "$PID_MOSQUITTO" ]]; then
|
||||
echo "Stopping mosquitto ($PID_MOSQUITTO).."
|
||||
kill "$PID_MOSQUITTO" || echo "Already stopped"
|
||||
fi
|
||||
|
||||
if [[ ! -z "$PID_VNC" ]]; then
|
||||
echo "Stopping VNC ($PID_VNC).."
|
||||
kill "$PID_VNC" || echo "Already stopped"
|
||||
fi
|
||||
|
||||
if [[ ! -z "$PID_XVFB" ]]; then
|
||||
echo "Stopping XVFB ($PID_XVFB).."
|
||||
kill "$PID_XVFB" || echo "Already stopped"
|
||||
fi
|
||||
}
|
||||
|
||||
trap finish EXIT
|
||||
set -e
|
||||
|
||||
DIMENSIONS="1024x720"
|
||||
SCR=99
|
||||
|
||||
# Setup noVNC if not already done
|
||||
if [ ! -d "/tmp/noVNC" ]; then
|
||||
echo "noVNC not found. Running setup..."
|
||||
./scripts/setup-novnc.sh
|
||||
fi
|
||||
|
||||
# Start new window manager
|
||||
echo "Starting Xvfb..."
|
||||
Xvfb :$SCR -screen 0 "$DIMENSIONS"x24 -ac &
|
||||
export PID_XVFB=$!
|
||||
sleep 2
|
||||
|
||||
# Start VNC server
|
||||
echo "Starting VNC server..."
|
||||
x11vnc -localhost -rfbport 5900 -passwd "bierbier" -display :$SCR &
|
||||
export PID_VNC=$!
|
||||
sleep 1
|
||||
|
||||
# Start noVNC web server
|
||||
echo "Starting noVNC web server on port 6080..."
|
||||
/tmp/noVNC/utils/novnc_proxy --vnc localhost:5900 --listen 6080 &
|
||||
export PID_NOVNC=$!
|
||||
sleep 2
|
||||
|
||||
# Start mqtt broker
|
||||
echo "Starting mosquitto..."
|
||||
mosquitto &
|
||||
export PID_MOSQUITTO=$!
|
||||
sleep 1
|
||||
|
||||
# Delete old video
|
||||
rm -f ./app*.mp4
|
||||
rm -f ./qrawvideorgb24.yuv
|
||||
|
||||
# Start recording in tmux
|
||||
echo "Starting screen recording..."
|
||||
tmux new-session -d -s record ffmpeg -f x11grab -draw_mouse 0 -video_size $DIMENSIONS -i :$SCR -r 20 -vcodec rawvideo -pix_fmt yuv420p qrawvideorgb24.yuv
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "🎥 UI Test Environment Ready!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "📺 View the test in your browser:"
|
||||
echo " 1. Open the 'PORTS' tab in VS Code"
|
||||
echo " 2. Find port 6080 and click 'Open in Browser'"
|
||||
echo " 3. Click 'Connect' (password: bierbier)"
|
||||
echo ""
|
||||
echo "Starting tests in 3 seconds..."
|
||||
echo ""
|
||||
sleep 3
|
||||
|
||||
# Start tests
|
||||
DISPLAY=:$SCR node dist/src/spec/demoVideo.js
|
||||
TEST_EXIT_CODE=$?
|
||||
echo "Test script exited with $TEST_EXIT_CODE"
|
||||
|
||||
# Stop recording
|
||||
tmux send-keys -t record q
|
||||
|
||||
# Ensure video is written
|
||||
sleep 5
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ Tests completed!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
exit $TEST_EXIT_CODE
|
||||
Reference in New Issue
Block a user