37 lines
1.5 KiB
PHP
37 lines
1.5 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require_once PLUGIN_ROOT . '/exec/lib/DirectAdminVacationApi.php';
|
|
|
|
test('directadmin vacation api builds scoped payload for one mailbox', function (): void {
|
|
$api = new DirectAdminVacationApi('/usr/local/directadmin/directadmin');
|
|
$payload = $api->buildSavePayload('info@example.com', [
|
|
'subject_prefix' => 'Urlop',
|
|
'reply_every_message' => false,
|
|
'repeat_minutes' => 1440,
|
|
'body' => 'Body',
|
|
'start_value' => '2026-06-10|morning',
|
|
'end_value' => '2026-06-24|evening',
|
|
]);
|
|
|
|
assert_same('info', $payload['user']);
|
|
assert_same('example.com', $payload['domain']);
|
|
assert_same('Body', $payload['text']);
|
|
assert_same('Urlop', $payload['subject_prefix']);
|
|
assert_same('1440', $payload['reply_frequency']);
|
|
assert_same('morning', $payload['starttime']);
|
|
assert_same('evening', $payload['endtime']);
|
|
});
|
|
|
|
test('directadmin vacation api detects existing native vacation by mailbox', function (): void {
|
|
$api = new DirectAdminVacationApi('/usr/local/directadmin/directadmin', static function (string $owner, string $endpoint, array $payload): string {
|
|
assert_same('alice', $owner);
|
|
assert_same('CMD_API_EMAIL_VACATION', $endpoint);
|
|
assert_same(['domain' => 'example.com'], $payload);
|
|
return 'info=starttime%3Dmorning%26text%3DBody&sales=starttime%3Devening';
|
|
});
|
|
|
|
assert_true($api->vacationExists('alice', 'info@example.com'));
|
|
assert_false($api->vacationExists('alice', 'new@example.com'));
|
|
});
|