'https://api.example.test', 'formulix_chave' => ''][$name] ?? $default; } function get_locale() { return 'pt_BR'; } function wp_create_nonce($action) { assert($action === 'wp_rest'); return 'nonce-local'; } function current_user_can($capability) { return false; } function wp_json_encode($value, $flags) { return json_encode($value, $flags); } function wp_add_inline_script($handle, $code, $position) { assert($handle === 'formulix-editor' && $position === 'before'); $GLOBALS['inline'][] = $code; } function add_options_page($title, $menu, $capability, $slug, $callback) { assert($capability === 'manage_options'); ob_start(); $callback(); assert(ob_get_clean() === ''); } function delete_option($name) { $GLOBALS['deleted'][] = $name; } require __DIR__ . '/formulix.php'; $actions['admin_init'](); assert($settings['formulix_servidor']['sanitize_callback'] === 'formulix_sanitizar_servidor'); assert($settings['formulix_chave']['sanitize_callback'] === 'sanitize_text_field'); assert(formulix_sanitizar_servidor(' https://api.example.test/formulix/ ') === 'https://api.example.test/formulix'); assert(formulix_sanitizar_servidor('http://localhost:5190/') === 'http://localhost:5190'); assert(formulix_sanitizar_servidor('http://127.0.0.1:5190') === 'http://127.0.0.1:5190'); assert(formulix_sanitizar_servidor('http://[::1]:5190') === 'http://[::1]:5190'); foreach (['http://api.example.test', 'https://user:pass@api.example.test', 'https://api.example.test?q=x', 'https://api.example.test#x', 'javascript:alert(1)', 'https://', [], null] as $bad) { assert(formulix_sanitizar_servidor($bad) === ''); } assert(count($errors) === 6); assert($inline === []); // A configuração não é publicada no init/front-end. $actions['enqueue_block_editor_assets'](); assert(count($inline) === 1 && !str_contains($inline[0], '')); $config = json_decode(substr($inline[0], strlen('window.FormulixWP='), -1), true); assert($config['nonce'] === 'nonce-local' && $config['podeEnviar'] === false); $actions['admin_menu'](); define('WP_UNINSTALL_PLUGIN', true); require __DIR__ . '/uninstall.php'; assert($deleted === ['formulix_servidor', 'formulix_chave']); echo "WordPress: URL, Settings API, capability, JSON e desinstalação passaram\n";