Files
old-new-wiaas/backend/app/plugins/wiaas/tests/wiaas-api-unit-test-case.php
2018-09-24 21:51:55 +02:00

63 lines
1.7 KiB
PHP

<?php
/**
* Implements common logic for testing Wiaas API
*
* Class Wiaas_API_Unit_Test_Case
*/
class Wiaas_API_Unit_Test_Case extends Wiaas_Unit_Test_Case {
protected $server;
function setUp() {
parent::setUp();
/** @var WP_REST_Server $wp_rest_server */
global $wp_rest_server;
$this->server = $wp_rest_server = new \WP_REST_Server;
do_action( 'rest_api_init' );
}
/**
* Test that given endpoint is forbidden when accessed as guest
*
* @param WP_REST_Request $request Request to test
*/
function check_endpoint_forbidden_for_guest($request) {
wp_set_current_user(0);
$response = $this->server->dispatch( $request );
$this->assertNotNull($response);
$this->assertInstanceOf('WP_REST_Response',$response);
$this->assertTrue($response->is_error());
$this->assertEquals($response->get_status(), 401);
$error_data = $response->as_error();
$this->assertEquals($error_data->get_error_message(), 'Sorry, you are not allowed to do that.');
}
/**
* Handles common action during dispatching of rest request
*
* @param WP_REST_Request $request
* @param int $expected_status_code
* @param bool $is_error_expected
*
* @return mixed Result error when error is expected, result data otherwise
*/
function dispatch_endpoint_request($request, $expected_status_code = 200, $is_error_expected = false) {
$response = $this->server->dispatch( $request );
$this->assertNotNull($response);
$this->assertInstanceOf('WP_REST_Response',$response);
$this->assertEquals($response->get_status(), $expected_status_code);
if ($is_error_expected) {
$this->assertTrue($response->is_error());
return $response->as_error();
}
$this->assertFalse($response->is_error());
return $response->get_data();
}
}