109 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash
 | 
						|
# =====================================================================
 | 
						|
# includes-test.sh - Test the includes functionality
 | 
						|
# =====================================================================
 | 
						|
# This script checks if the includes 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 Includes Functionality ==="
 | 
						|
echo "Using base URL: $BASE_URL"
 | 
						|
 | 
						|
# Array to track failures
 | 
						|
FAILURES=0
 | 
						|
 | 
						|
# Test if includes.js exists and loads properly
 | 
						|
echo "Checking if includes.js exists and loads properly..."
 | 
						|
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/includes.js")
 | 
						|
if [ "$RESPONSE" -eq 200 ]; then
 | 
						|
    echo "✅ includes.js loads successfully (HTTP $RESPONSE)"
 | 
						|
    
 | 
						|
    # Check includes.js content
 | 
						|
    INCLUDES_JS=$(curl -s "$BASE_URL/includes.js")
 | 
						|
    if echo "$INCLUDES_JS" | grep -q "includeHTML"; then
 | 
						|
        echo "✅ includes.js contains includeHTML function"
 | 
						|
    else
 | 
						|
        echo "❌ includes.js doesn't contain includeHTML function"
 | 
						|
        FAILURES=$((FAILURES+1))
 | 
						|
    fi
 | 
						|
    
 | 
						|
    if echo "$INCLUDES_JS" | grep -q "DOMContentLoaded"; then
 | 
						|
        echo "✅ includes.js contains DOMContentLoaded event listener"
 | 
						|
    else
 | 
						|
        echo "❌ includes.js doesn't contain DOMContentLoaded event listener"
 | 
						|
        FAILURES=$((FAILURES+1))
 | 
						|
    fi
 | 
						|
else
 | 
						|
    echo "❌ includes.js failed to load (HTTP $RESPONSE)"
 | 
						|
    FAILURES=$((FAILURES+1))
 | 
						|
fi
 | 
						|
 | 
						|
# Check if the includes/header.html file exists
 | 
						|
echo "Checking includes/header.html file..."
 | 
						|
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/includes/header.html")
 | 
						|
if [ "$RESPONSE" -eq 200 ] || [ "$RESPONSE" -eq 403 ]; then
 | 
						|
    echo "✅ includes/header.html file exists (HTTP $RESPONSE)"
 | 
						|
else
 | 
						|
    echo "❌ includes/header.html file doesn't exist (HTTP $RESPONSE)"
 | 
						|
    FAILURES=$((FAILURES+1))
 | 
						|
fi
 | 
						|
 | 
						|
# Check if pages with includes load correctly
 | 
						|
echo "Checking pages that use includes..."
 | 
						|
INCLUDE_PAGES=(
 | 
						|
    "template-with-includes.html"
 | 
						|
    "stories/story-with-includes.html"
 | 
						|
    "one-pager-tools/tool-with-includes.html"
 | 
						|
)
 | 
						|
 | 
						|
for page in "${INCLUDE_PAGES[@]}"; do
 | 
						|
    RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/$page")
 | 
						|
    if [ "$RESPONSE" -eq 200 ]; then
 | 
						|
        echo "✅ $page loads successfully (HTTP $RESPONSE)"
 | 
						|
        
 | 
						|
        # Check if the page has include placeholders
 | 
						|
        CONTENT=$(curl -s "$BASE_URL/$page")
 | 
						|
        if echo "$CONTENT" | grep -q "id=\"header-include\""; then
 | 
						|
            echo "✅ $page has header include placeholder"
 | 
						|
        else
 | 
						|
            echo "❌ $page doesn't have header include placeholder"
 | 
						|
            FAILURES=$((FAILURES+1))
 | 
						|
        fi
 | 
						|
        
 | 
						|
        if echo "$CONTENT" | grep -q "id=\"footer-include\""; then
 | 
						|
            echo "✅ $page has footer include placeholder"
 | 
						|
        else
 | 
						|
            echo "❌ $page doesn't have footer include placeholder"
 | 
						|
            FAILURES=$((FAILURES+1))
 | 
						|
        fi
 | 
						|
        
 | 
						|
        # Check if includes.js is included in the page
 | 
						|
        if echo "$CONTENT" | grep -q "includes.js"; then
 | 
						|
            echo "✅ $page includes the includes.js script"
 | 
						|
        else
 | 
						|
            echo "❌ $page doesn't include the includes.js script"
 | 
						|
            FAILURES=$((FAILURES+1))
 | 
						|
        fi
 | 
						|
    else
 | 
						|
        echo "❌ $page failed to load (HTTP $RESPONSE)"
 | 
						|
        FAILURES=$((FAILURES+1))
 | 
						|
    fi
 | 
						|
    
 | 
						|
    echo "---"
 | 
						|
done
 | 
						|
 | 
						|
# Check if any failures occurred
 | 
						|
if [ "$FAILURES" -eq 0 ]; then
 | 
						|
    echo "=== All Includes Tests Passed ==="
 | 
						|
    exit 0
 | 
						|
else
 | 
						|
    echo "=== Includes Tests Failed: $FAILURES failures ==="
 | 
						|
    exit 1
 | 
						|
fi
 |