PHP code example of mammothwp / wp-self-test
1. Go to this page and download the library: Download mammothwp/wp-self-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/ */
mammothwp / wp-self-test example snippets
add_action('mmwp_self_test_register', function (\MammothWP\SelfTest\Registry $registry) {
$registry->register('my-plugin', __DIR__ . '/self-test/manifest.json', [
'label' => 'My Plugin',
'
use MammothWP\SelfTest\Case_Base;
class Content_Crud_Case extends Case_Base
{
public function preview() { return ['Create an item over REST', 'Read it back over the CLI', '…']; }
public function run()
{
$o = [];
$o['create'] = $this->rest('POST', '/my-plugin/v1/items', ['title' => 'Self-test']);
$o['cli'] = $this->cli(['My_Cli', 'get'], [$o['create']['data']['id']], []);
$o['get'] = $this->ability('my-plugin/get-item', ['id' => $o['create']['data']['id']]);
return ['observed' => $o, 'id' => $o['create']['data']['id']];
}
public function validate(array $context)
{
$o = $context['observed'];
return [
$this->check('rest', 'POST /items returns 201', $this->status($o, 'create') === 201, $this->detail($o, 'create')),
$this->cli_check($o, 'cli', 'wp my-plugin items get prints the item'),
$this->ability_check($o, 'get', 'my-plugin/get-item returns the item', fn($data) => !empty($data['id'])),
];
}
public function cleanup(array $context)
{
delete_item((int) $context['id']);
return ['Deleted the test item.'];
}
}
js
const { test, expect, openAdminPage, fillForm, submitForm, expectNotice, expectNoBrowserErrors } = p?page=ewp-coupons&action=new');
await fillForm(page, { code: 'E2E10', amount: '10' });
await submitForm(page, { button: 'Save' });
await expectNotice(page, { type: 'success' });
expectNoBrowserErrors(collector);
});
json
{
"version": 1,
"pages": [
{ "area": "admin", "name": "Settings", "path": "/wp-admin/admin.php?page=my-plugin", "as": "admin", "expect": "#my-plugin-form" },
{ "area": "admin", "name": "Product", "path": "/wp-admin/post.php?post=${PRODUCT_ID}&action=edit", "as": "admin", "expect_url": "action=edit" },
{ "area": "frontend", "name": "Shop", "path": "/shop/", "as": "guest", "expect": ".products" },
{ "area": "frontend", "name": "Old URL", "path": "/old/", "as": "guest", "status": 200, "expect_url": "/new/" }
],
"setup": [],
"about": "ignored by the crawler"
}