PHP code example of cyruscollier / wp-test
1. Go to this page and download the library: Download cyruscollier/wp-test library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cyruscollier / wp-test example snippets
/* Test */
$event_post = $this->factory()->post->create_and_get([
'post_type' => 'event',
'meta_input' => [
'event_start' => '2021-01-01 18:00:00',
'event_end' => '2021-01-01 21:00:00'
]
]);
/* Source */
function make_api_request($parameter)
{
$response = wp_remote_post('https://yourapi.com/path/to/resource/', [
'body' => [
'keyword' => $parameter,
'apikey' => 'your api key'
]
]);
if (is_wp_error($response)) {
throw new Exception($response->get_error_message());
}
return json_decode($response['body']);
);
/* Test */
add_filter('pre_http_request', function($pre, $parsed_args, $url) {
$this->assertEquals('https://yourapi.com/path/to/resource/', $url);
$this->assertContains(['method' => 'POST', 'body' => [
'keyword' => 'test keyword',
'apikey' => 'your api key'
]], $parsed_args);
return ['body' => json_encode(['message' => 'success']])];
}, 10, 3);
$this->assertEquals(['message' => 'success'], make_api_request('test keyword'));
/* Test */
add_filter('pre_http_request', function($pre, $parsed_args, $url) {
$this->assertContains(['method' => 'POST', 'body' => [
'keyword' => 'test keyword',
'apikey' => 'invalid api key'
]], $parsed_args);
return new WP_Error('http_request_failed', 'Invalid API Key');
}, 10, 3);
$this->expectException(Exception::class);
$this-expectExceptionMessage('Invalid API Key');
make_api_request('test keyword');
/* Source */
function form_redirect()
{
$redirect_url = 'https://yoursite.com/form-success-page';
return wp_redirect($redirect_url) && exit;
}
/* Test */
add_filter('wp_redirect', function($url) {
$this->assertEquals('https://yoursite.com/form-success-page', $url);
return false;
});
$this->assertFalse(form_redirect());
/* Source */
function output_something()
{
$data = ['thing 1', 'thing 2'];
printf('<ul><li>%s</li></ul>', implode('</li><li>', $data));
return $data;
}
/* Test */
ob_start();
output_something();
$output = ob_get_clean();
$this->assertHTMLEquals('<ul><li>thing 1</li><li>thing 2</li></ul>', $output);
// or
ob_start();
$data = output_something();
ob_get_clean();
$this->assertEquals(['thing 1', 'thing 2'], $data);
/* Source */
function perform_custom_action()
{
// ...
$data = ['thing 1', 'thing 2'];
// ...
return $data;
}
add_action('init', 'perform_custom_action');
/* Test */
$this->assertHasAction('init', 'perform_custom_action');
$this->assertEquals(['thing 1', 'thing 2'], perform_custom_actio());