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
|