#!/bin/bash # CodePress CMS Functional Test Suite v1.5.0 # Tests core functionality, new features, and regressions BASE_URL="http://localhost:8080" TEST_DATE=$(date '+%Y-%m-%d %H:%M:%S') TOTAL_TESTS=0 PASSED_TESTS=0 FAILED_TESTS=0 WARNING_TESTS=0 echo "==========================================" echo "CodePress CMS Functional Test Suite v1.5.0" echo "Target: $BASE_URL" echo "Date: $TEST_DATE" echo "==========================================" # Function to run a test run_test() { local test_name="$1" local command="$2" local expected="$3" ((TOTAL_TESTS++)) echo -n "Testing: $test_name... " # Run the test result=$(eval "$command" 2>/dev/null) if [[ "$result" == *"$expected"* ]]; then echo -e "\e[32m[PASS]\e[0m ✅" ((PASSED_TESTS++)) else echo -e "\e[31m[FAIL]\e[0m ❌" echo " Expected: $expected" echo " Got: $result" ((FAILED_TESTS++)) fi } # Function to run a warning test (non-critical) run_warning_test() { local test_name="$1" local command="$2" local expected="$3" ((TOTAL_TESTS++)) echo -n "Testing: $test_name... " result=$(eval "$command" 2>/dev/null) if [[ "$result" == *"$expected"* ]]; then echo -e "\e[33m[WARNING]\e[0m ⚠️" echo " Issue: $expected" ((WARNING_TESTS++)) else echo -e "\e[32m[PASS]\e[0m ✅" ((PASSED_TESTS++)) fi } echo "" echo "1. CORE CMS FUNCTIONALITY TESTS" echo "-------------------------------" # Test homepage loads run_test "Homepage loads" "curl -s '$BASE_URL/' | grep -o '.*'" "CodePress" # Test guide page loads run_test "Guide page loads" "curl -s '$BASE_URL/?guide' | grep -o '.*'" "Handleiding" # Test language switching run_test "Language switching" "curl -s '$BASE_URL/?lang=en' | grep -o '.*'" "CodePress CMS Guide" # Test search functionality run_test "Search functionality" "curl -s '$BASE_URL/?search=test' | grep -c 'result'" "1" echo "" echo "2. CONTENT RENDERING TESTS" echo "--------------------------" # Test Markdown content run_test "Markdown rendering" "curl -s '$BASE_URL/?page=demo/content-only' | grep -c '

'" "1" # Test HTML content run_test "HTML content" "curl -s '$BASE_URL/?page=demo/html-demo' | grep -c '

'" "1" # Test PHP content run_test "PHP content" "curl -s '$BASE_URL/?page=demo/php-demo' | grep -c 'PHP Version'" "1" echo "" echo "3. NAVIGATION TESTS" echo "-------------------" # Test menu generation run_test "Menu generation" "curl -s '$BASE_URL/' | grep -c 'nav-item'" "5" # Test breadcrumb navigation run_test "Breadcrumb navigation" "curl -s '$BASE_URL/?page=demo/content-only' | grep -c 'breadcrumb'" "1" echo "" echo "4. TEMPLATE SYSTEM TESTS" echo "------------------------" # Test template variables (site_title should be replaced) run_test "Template variables" "curl -s '$BASE_URL/' | grep -c 'CodePress'" "2" # Test guide template variables (should NOT be replaced) run_test "Guide template variables" "curl -s '$BASE_URL/?guide' | grep -c '\{\{site_title\}\}'" "0" echo "" echo "5. PLUGIN SYSTEM TESTS (NEW v1.5.0)" echo "-----------------------------------" # Test plugin system (check if plugins directory exists and is loaded) run_test "Plugin system" "curl -s '$BASE_URL/' | grep -c 'sidebar'" "1" echo "" echo "6. SECURITY TESTS" echo "-----------------" # Test XSS protection run_test "XSS protection" "curl -s '$BASE_URL/?page=' | grep -c '