====================================================== KUETx Test Suite — Automated System Verification ====================================================== [PASS] Helper 'e()' escapes HTML [PASS] Helper 'url()' formats paths correctly [PASS] Helper 'time_ago()' formats current time [PASS] Helper 'config()' retrieves defined keys [PASS] Helper 'icon()' generates valid SVG markup [FAIL] Database connection - Database connection failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) [FAIL] Model queries execution - Database connection failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) [PASS] RateLimiter initially not exceeded [PASS] RateLimiter exceeded after max attempts [PASS] RateLimiter cleared successfully [PASS] Session CSRF token generated (64 hex characters) [PASS] csrf_field() contains valid hidden input [PASS] honeypot_field() contains hidden anti-spam input [PASS] TotpService generates 16-character Base32 secret [PASS] TotpService calculates 6-digit numeric OTP code [PASS] TotpService::verifyCode accepts current OTP [PASS] TotpService::verifyCode rejects invalid OTP [PASS] TotpService generates valid otpauth URL [PASS] TotpService generates valid QR code endpoint [FAIL] 2FA DB lifecycle test - Database connection failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) [PASS] ImageService processes oversized 2400px post image [PASS] Compressed post image exists on disk [PASS] Thumbnail image exists on disk [PASS] Post image scaled within 1920px max dimension [PASS] Thumbnail is exact 600x450 center-crop [PASS] EXIF/device/GPS metadata stripped completely [PASS] Avatar image center-cropped to 400x400 square ------------------------------------------------------ Results: Passed: 24 | Failed: 3 ------------------------------------------------------