89 lines
2.9 KiB
Bash
Executable File
89 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# =====================================================================
|
|
# theme-test.sh - Test the theme functionality
|
|
# =====================================================================
|
|
# This script checks if the theme system is working properly
|
|
# =====================================================================
|
|
|
|
# Check if base URL is provided
|
|
if [ -z "$1" ]; then
|
|
BASE_URL="http://localhost:8080"
|
|
else
|
|
BASE_URL="$1"
|
|
fi
|
|
|
|
echo "=== Testing Theme Functionality ==="
|
|
echo "Using base URL: $BASE_URL"
|
|
|
|
# Array to track failures
|
|
FAILURES=0
|
|
|
|
# Test if theme.js exists and loads properly
|
|
echo "Checking if theme.js exists and loads properly..."
|
|
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/theme.js")
|
|
if [ "$RESPONSE" -eq 200 ]; then
|
|
echo "✅ theme.js loads successfully (HTTP $RESPONSE)"
|
|
|
|
# Check theme.js content
|
|
THEME_JS=$(curl -s "$BASE_URL/theme.js")
|
|
if echo "$THEME_JS" | grep -q "DOMContentLoaded"; then
|
|
echo "✅ theme.js contains DOMContentLoaded event listener"
|
|
else
|
|
echo "❌ theme.js doesn't contain DOMContentLoaded event listener"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
|
|
if echo "$THEME_JS" | grep -q "themeToggle"; then
|
|
echo "✅ theme.js contains themeToggle functionality"
|
|
else
|
|
echo "❌ theme.js doesn't contain themeToggle functionality"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
|
|
if echo "$THEME_JS" | grep -q "localStorage"; then
|
|
echo "✅ theme.js uses localStorage for theme persistence"
|
|
else
|
|
echo "❌ theme.js doesn't use localStorage for theme persistence"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
else
|
|
echo "❌ theme.js failed to load (HTTP $RESPONSE)"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
|
|
# Check if CSS has theme-related styles
|
|
echo "Checking if styles.css has theme-related styles..."
|
|
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/styles.css")
|
|
if [ "$RESPONSE" -eq 200 ]; then
|
|
echo "✅ styles.css loads successfully (HTTP $RESPONSE)"
|
|
|
|
# Check styles.css content for theme-related styles
|
|
STYLES_CSS=$(curl -s "$BASE_URL/styles.css")
|
|
if echo "$STYLES_CSS" | grep -q "data-theme"; then
|
|
echo "✅ styles.css contains data-theme attribute selectors"
|
|
else
|
|
echo "❌ styles.css doesn't contain data-theme attribute selectors"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
|
|
# Check for dark mode styles
|
|
if echo "$STYLES_CSS" | grep -q "dark"; then
|
|
echo "✅ styles.css contains dark mode styles"
|
|
else
|
|
echo "❌ styles.css doesn't contain dark mode styles"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
else
|
|
echo "❌ styles.css failed to load (HTTP $RESPONSE)"
|
|
FAILURES=$((FAILURES+1))
|
|
fi
|
|
|
|
# Check if any failures occurred
|
|
if [ "$FAILURES" -eq 0 ]; then
|
|
echo "=== All Theme Tests Passed ==="
|
|
exit 0
|
|
else
|
|
echo "=== Theme Tests Failed: $FAILURES failures ==="
|
|
exit 1
|
|
fi
|