Testing
tests/
+-- bootstrap.php
+-- Unit/
+-- NonceTest.php
+-- GateTest.php
+-- SanitizerTest.php
// tests/bootstrap.php
<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
if (!function_exists('wp_create_nonce')) {
function wp_create_nonce($action) {
return md5('nonce_' . $action);
}
}
if (!function_exists('wp_verify_nonce')) {
function wp_verify_nonce($nonce, $action) {
return $nonce === md5('nonce_' . $action);
}
}
if (!function_exists('current_user_can')) {
function current_user_can($cap) {
return $GLOBALS['test_user_caps'][$cap] ?? false;
}
}
if (!function_exists('sanitize_text_field')) {
function sanitize_text_field($str) {
return trim(strip_tags($str));
}
}
if (!function_exists('sanitize_email')) {
function sanitize_email($email) {
return filter_var($email, FILTER_SANITIZE_EMAIL);
}
}
// ... other mocks
class SanitizerTest extends TestCase
{
public function testSanitizesTextFields(): void
{
$sanitizer = new Sanitizer();
$result = $sanitizer->text('<script>alert(1)</script>Hello');
$this->assertStringNotContainsString('<script>', $result);
}
public function testSanitizesEmail(): void
{
$sanitizer = new Sanitizer();
$result = $sanitizer->email('[email protected]<script>');
$this->assertSame('[email protected]', $result);
}
}