feat: add rest transport client
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
* @package WPContentSync
|
||||
*/
|
||||
|
||||
// phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- WordPress class and function stubs share this test bootstrap.
|
||||
|
||||
require_once dirname( __DIR__ ) . '/vendor/autoload.php';
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
@@ -23,6 +25,20 @@ if ( ! defined( 'WPCS_VERSION' ) ) {
|
||||
define( 'WPCS_VERSION', '0.1.0' );
|
||||
}
|
||||
|
||||
if ( ! class_exists( 'WP_Error' ) ) {
|
||||
class WP_Error {
|
||||
private string $message;
|
||||
|
||||
public function __construct( string $code, string $message ) {
|
||||
$this->message = $message;
|
||||
}
|
||||
|
||||
public function get_error_message(): string {
|
||||
return $this->message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'sanitize_text_field' ) ) {
|
||||
/**
|
||||
* Minimal WordPress-compatible text sanitizer for unit tests.
|
||||
@@ -370,6 +386,86 @@ if ( ! function_exists( 'wp_safe_redirect' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_remote_get' ) ) {
|
||||
/**
|
||||
* Minimal HTTP GET helper for unit tests.
|
||||
*
|
||||
* @param string $url Request URL.
|
||||
* @param array<string, mixed> $args Request arguments.
|
||||
* @return array<string, mixed>|\WP_Error
|
||||
*/
|
||||
function wp_remote_get( $url, array $args = array() ) {
|
||||
$GLOBALS['wpcs_last_http_request'] = array(
|
||||
'method' => 'GET',
|
||||
'url' => $url,
|
||||
'args' => $args,
|
||||
);
|
||||
|
||||
return $GLOBALS['wpcs_http_response'] ?? array(
|
||||
'response' => array( 'code' => 200 ),
|
||||
'body' => '{"ok":true}',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_remote_post' ) ) {
|
||||
/**
|
||||
* Minimal HTTP POST helper for unit tests.
|
||||
*
|
||||
* @param string $url Request URL.
|
||||
* @param array<string, mixed> $args Request arguments.
|
||||
* @return array<string, mixed>|\WP_Error
|
||||
*/
|
||||
function wp_remote_post( $url, array $args = array() ) {
|
||||
$GLOBALS['wpcs_last_http_request'] = array(
|
||||
'method' => 'POST',
|
||||
'url' => $url,
|
||||
'args' => $args,
|
||||
);
|
||||
|
||||
return $GLOBALS['wpcs_http_response'] ?? array(
|
||||
'response' => array( 'code' => 200 ),
|
||||
'body' => '{"accepted":true}',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_remote_retrieve_response_code' ) ) {
|
||||
/**
|
||||
* Minimal response code helper for unit tests.
|
||||
*
|
||||
* @param array<string, mixed> $response HTTP response.
|
||||
* @return int
|
||||
*/
|
||||
function wp_remote_retrieve_response_code( array $response ) {
|
||||
return (int) ( $response['response']['code'] ?? 0 );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_remote_retrieve_body' ) ) {
|
||||
/**
|
||||
* Minimal response body helper for unit tests.
|
||||
*
|
||||
* @param array<string, mixed> $response HTTP response.
|
||||
* @return string
|
||||
*/
|
||||
function wp_remote_retrieve_body( array $response ) {
|
||||
return (string) ( $response['body'] ?? '' );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'is_wp_error' ) ) {
|
||||
/**
|
||||
* Minimal WP_Error checker for unit tests.
|
||||
*
|
||||
* @param mixed $value Value to check.
|
||||
* @return bool
|
||||
*/
|
||||
function is_wp_error( $value ) {
|
||||
return $value instanceof WP_Error;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'admin_url' ) ) {
|
||||
/**
|
||||
* Minimal admin URL helper for unit tests.
|
||||
|
||||
Reference in New Issue
Block a user