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
 |