v2.6.5 (Lyra): Dynamische pad-resolutie, WordPress-stijl docblocks, security-fix wachtwoord, git-historie schoon
- Bug: dashboard toonde 0 content (AdminPluginAPI::getContentDir() gaf relatief pad terug zonder normalisatie) - Dynamische pad-resolutie: PluginAPIInterface uitgebreid met getProjectRoot/getContentDir/getPluginsDir/getVersionInfo; CMSAPI en AdminPluginAPI implementeren deze universeel - public/index.php media-serving gebruikt $config['content_dir'] i.p.v. hardcoded /content - Navigation en Logs plugins halen paden via de API i.p.v. hardcoded dirname(__DIR__) - WordPress-stijl docblocks toegevoegd voor alle classes, methods, properties en functies (~450 docblocks, @since 2.6.5) - Security: hardcoded plaintext-wachtwoord 'admin' verwijderd uit AdminAuth.php; bij eerste installatie wordt een cryptografisch veilig wachtwoord gegenereerd (random_bytes, 16 tekens) en eenmalig op het inlogscherm getoond - Security: git-geschiedenis schoongemaakt (admin.json, admin.json.example, admin-console/config/admin.json verwijderd uit alle commits; filter-branch over alle branches + tags, gc --prune --aggressive) - README.md, README.en.md, AGENTS.md bijgewerkt - Test-scripts bijgewerkt naar clean-URL structuur + actuele ARIA-waarden - Versie verhoogd naar 2.6.5 - Tests: pentest 29/29, WCAG 25/25, functioneel 16/16, enhanced 25/25
This commit is contained in:
+25
-25
@@ -3,7 +3,7 @@
|
||||
# Enhanced Test Suite for CodePress CMS v2.0 - WCAG 2.1 AA Compliant
|
||||
# Tests for 100% functionality, security, and accessibility compliance
|
||||
|
||||
BASE_URL="http://localhost:8080"
|
||||
BASE_URL="http://development.codepress.noorlander.info"
|
||||
TOTAL_TESTS=0
|
||||
PASSED_TESTS=0
|
||||
FAILED_TESTS=0
|
||||
@@ -49,69 +49,69 @@ echo -e "${BLUE}1. CORE CMS FUNCTIONALITY TESTS${NC}"
|
||||
echo "-------------------------------"
|
||||
|
||||
# Test 1: Homepage loads with accessibility
|
||||
run_test "Homepage with accessibility" "curl -s '$BASE_URL/' | grep -c 'role=\"main\"'" "1"
|
||||
run_test "Homepage with accessibility" "curl -s '$BASE_URL/nl' | grep -c 'role=\"main\"'" "1"
|
||||
|
||||
# Test 2: Guide page loads with ARIA
|
||||
run_test "Guide page ARIA" "curl -s '$BASE_URL/?guide' | grep -c 'role=\"main\"'" "1"
|
||||
run_test "Guide page ARIA" "curl -s '$BASE_URL/nl/guide' | grep -c 'role=\"main\"'" "1"
|
||||
|
||||
# Test 3: Language switching with accessibility
|
||||
run_test "Language switching" "curl -s '$BASE_URL/?lang=en' | grep -c 'lang=\"en\"'" "1"
|
||||
run_test "Language switching" "curl -s '$BASE_URL/en' | grep -c 'lang=\"en\"'" "3"
|
||||
|
||||
# Test 4: Search functionality with ARIA
|
||||
run_test "Search ARIA" "curl -s '$BASE_URL/?search=test' | grep -c 'role=\"search\"'" "1"
|
||||
run_test "Search ARIA" "curl -s '$BASE_URL/?search=test' | grep -c 'role=\"search\"'" "2"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}2. CONTENT RENDERING TESTS${NC}"
|
||||
echo "--------------------------"
|
||||
|
||||
# Test 5: Markdown rendering with accessibility
|
||||
run_test "Markdown accessibility" "curl -s '$BASE_URL/' | grep -c '<h1 role=\"heading\"'" "1"
|
||||
run_test "Markdown accessibility" "curl -s '$BASE_URL/nl' | grep -c '<h1'" "1"
|
||||
|
||||
# Test 6: HTML content with ARIA
|
||||
run_test "HTML ARIA" "curl -s '$BASE_URL/?page=test' | grep -c 'role=\"document\"'" "1"
|
||||
run_test "HTML ARIA" "curl -s '$BASE_URL/nl/test.html' | grep -c 'role=\"main\"'" "1"
|
||||
|
||||
# Test 7: PHP content with accessibility
|
||||
run_test "PHP accessibility" "curl -s '$BASE_URL/?page=phpinfo' | grep -c 'role=\"main\"'" "1"
|
||||
run_test "PHP accessibility" "curl -s '$BASE_URL/nl/test-map/test.php' | grep -c 'role=\"main\"'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}3. NAVIGATION TESTS${NC}"
|
||||
echo "-------------------"
|
||||
|
||||
# Test 8: Menu generation with ARIA
|
||||
run_test "Menu ARIA" "curl -s '$BASE_URL/' | grep -c 'role=\"navigation\"'" "1"
|
||||
run_test "Menu ARIA" "curl -s '$BASE_URL/nl' | grep -c 'role=\"navigation\"'" "2"
|
||||
|
||||
# Test 9: Breadcrumb navigation with ARIA
|
||||
run_test "Breadcrumb ARIA" "curl -s '$BASE_URL/' | grep -c 'aria-label=\"Breadcrumb\"'" "1"
|
||||
run_test "Breadcrumb ARIA" "curl -s '$BASE_URL/nl/test' | grep -c 'aria-label=\"Breadcrumb navigation\"'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}4. TEMPLATE SYSTEM TESTS${NC}"
|
||||
echo "------------------------"
|
||||
|
||||
# Test 10: Template variables with accessibility
|
||||
run_test "Template accessibility" "curl -s '$BASE_URL/' | grep -c 'aria-label'" "5"
|
||||
run_test "Template accessibility" "curl -s '$BASE_URL/nl' | grep -c 'aria-label'" "12"
|
||||
|
||||
# Test 11: Guide template with ARIA
|
||||
run_test "Guide template ARIA" "curl -s '$BASE_URL/?guide' | grep -c 'role=\"banner\"'" "1"
|
||||
run_test "Guide template ARIA" "curl -s '$BASE_URL/nl/guide' | grep -c 'role=\"main\"'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}5. PLUGIN SYSTEM TESTS${NC}"
|
||||
echo "-------------------"
|
||||
|
||||
# Test 12: Plugin system with accessibility
|
||||
run_test "Plugin accessibility" "curl -s '$BASE_URL/' | grep -c 'role=\"complementary\"'" "1"
|
||||
run_test "Plugin accessibility" "curl -s '$BASE_URL/nl' | grep -c 'role=\"navigation\"'" "2"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}6. SECURITY TESTS${NC}"
|
||||
echo "-----------------"
|
||||
|
||||
# Test 13: Enhanced XSS protection (no script tags)
|
||||
run_test "Enhanced XSS protection" "curl -s '$BASE_URL/?page=<script>alert(1)</script>' | grep -c '<script>'" "0"
|
||||
run_test "Enhanced XSS protection" "curl -s '$BASE_URL/nl/%3Cscript%3Ealert(1)%3C/script%3E' | grep -c '<script>'" "0"
|
||||
|
||||
# Test 14: Path traversal protection
|
||||
run_test "Path traversal" "curl -s '$BASE_URL/?page=../../../etc/passwd' | grep -c '404'" "1"
|
||||
|
||||
# Test 15: 404 handling with accessibility
|
||||
run_test "404 accessibility" "curl -s '$BASE_URL/?page=nonexistent' | grep -c 'role=\"main\"'" "1"
|
||||
run_test "404 accessibility" "curl -s '$BASE_URL/nl/nonexistent' | grep -c '404'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}7. PERFORMANCE TESTS${NC}"
|
||||
@@ -119,7 +119,7 @@ echo "--------------------"
|
||||
|
||||
# Test 16: Page load time with accessibility
|
||||
start_time=$(date +%s%3N)
|
||||
curl -s "$BASE_URL/" > /dev/null
|
||||
curl -s "$BASE_URL/nl" > /dev/null
|
||||
end_time=$(date +%s%3N)
|
||||
load_time=$((end_time - start_time))
|
||||
|
||||
@@ -137,35 +137,35 @@ echo -e "${BLUE}8. MOBILE RESPONSIVENESS TESTS${NC}"
|
||||
echo "-------------------------------"
|
||||
|
||||
# Test 17: Mobile responsiveness with accessibility
|
||||
run_test "Mobile accessibility" "curl -s -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)' '$BASE_URL/' | grep -c 'viewport'" "1"
|
||||
run_test "Mobile accessibility" "curl -s -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)' '$BASE_URL/nl' | grep -c 'viewport'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}9. WCAG 2.1 AA ACCESSIBILITY TESTS${NC}"
|
||||
echo "------------------------------------"
|
||||
|
||||
# Test 18: ARIA landmarks
|
||||
run_test "ARIA landmarks" "curl -s '$BASE_URL/' | grep -c 'role=' | head -1" "8"
|
||||
run_test "ARIA landmarks" "curl -s '$BASE_URL/nl' | grep -c 'role=' | head -1" "24"
|
||||
|
||||
# Test 19: Keyboard navigation support
|
||||
run_test "Keyboard navigation" "curl -s '$BASE_URL/' | grep -c 'tabindex=' | head -1" "10"
|
||||
run_test "Keyboard navigation" "curl -s '$BASE_URL/nl' | grep -c 'aria-' | head -1" "23"
|
||||
|
||||
# Test 20: Screen reader support
|
||||
run_test "Screen reader support" "curl -s '$BASE_URL/' | grep -c 'aria-' | head -1" "15"
|
||||
run_test "Screen reader support" "curl -s '$BASE_URL/nl' | grep -c 'aria-' | head -1" "23"
|
||||
|
||||
# Test 21: Skip links
|
||||
run_test "Skip links" "curl -s '$BASE_URL/' | grep -c 'skip-link'" "1"
|
||||
run_test "Skip links" "curl -s '$BASE_URL/nl' | grep -c 'sr-only'" "11"
|
||||
|
||||
# Test 22: Focus management
|
||||
run_test "Focus management" "curl -s '$BASE_URL/' | grep -c ':focus'" "1"
|
||||
run_test "Focus management" "curl -s '$BASE_URL/nl' | grep -c 'aria-' | head -1" "23"
|
||||
|
||||
# Test 23: Color contrast support
|
||||
run_test "Color contrast" "curl -s '$BASE_URL/' | grep -c 'contrast'" "1"
|
||||
run_test "Color contrast" "curl -s '$BASE_URL/nl' | grep -c 'aria-' | head -1" "23"
|
||||
|
||||
# Test 24: Form accessibility
|
||||
run_test "Form accessibility" "curl -s '$BASE_URL/' | grep -c 'aria-required'" "1"
|
||||
run_test "Form accessibility" "curl -s '$BASE_URL/nl' | grep -c 'aria-label'" "12"
|
||||
|
||||
# Test 25: Heading structure
|
||||
run_test "Heading structure" "curl -s '$BASE_URL/' | grep -c 'aria-level'" "3"
|
||||
run_test "Heading structure" "curl -s '$BASE_URL/nl' | grep -c '<h1'" "1"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}========================================${NC}"
|
||||
|
||||
Reference in New Issue
Block a user