events = new Events(
$GLOBALS['dbi'],
new Template(),
ResponseRenderer::getInstance()
);
}
/**
* Test for getDataFromRequest
*
* @param array $in Input
* @param array $out Expected output
*
* @dataProvider providerGetDataFromRequest
*/
public function testGetDataFromRequestEmpty(array $in, array $out): void
{
unset($_POST);
foreach ($in as $key => $value) {
if ($value === '') {
continue;
}
$_POST[$key] = $value;
}
self::assertEquals($out, $this->events->getDataFromRequest());
}
/**
* Data provider for testGetDataFromRequestEmpty
*
* @return array
*/
public static function providerGetDataFromRequest(): array
{
return [
[
[
'item_name' => '',
'item_type' => '',
'item_original_name' => '',
'item_status' => '',
'item_execute_at' => '',
'item_interval_value' => '',
'item_interval_field' => '',
'item_starts' => '',
'item_ends' => '',
'item_definition' => '',
'item_preserve' => '',
'item_comment' => '',
'item_definer' => '',
],
[
'item_name' => '',
'item_type' => 'ONE TIME',
'item_type_toggle' => 'RECURRING',
'item_original_name' => '',
'item_status' => '',
'item_execute_at' => '',
'item_interval_value' => '',
'item_interval_field' => '',
'item_starts' => '',
'item_ends' => '',
'item_definition' => '',
'item_preserve' => '',
'item_comment' => '',
'item_definer' => '',
],
],
[
[
'item_name' => 'foo',
'item_type' => 'RECURRING',
'item_original_name' => 'foo',
'item_status' => 'foo',
'item_execute_at' => 'foo',
'item_interval_value' => 'foo',
'item_interval_field' => 'foo',
'item_starts' => 'foo',
'item_ends' => 'foo',
'item_definition' => 'foo',
'item_preserve' => 'foo',
'item_comment' => 'foo',
'item_definer' => 'foo',
],
[
'item_name' => 'foo',
'item_type' => 'RECURRING',
'item_type_toggle' => 'ONE TIME',
'item_original_name' => 'foo',
'item_status' => 'foo',
'item_execute_at' => 'foo',
'item_interval_value' => 'foo',
'item_interval_field' => 'foo',
'item_starts' => 'foo',
'item_ends' => 'foo',
'item_definition' => 'foo',
'item_preserve' => 'foo',
'item_comment' => 'foo',
'item_definer' => 'foo',
],
],
];
}
/**
* Test for getEditorForm
*
* @param array $data Data for routine
* @param string $matcher Matcher
*
* @dataProvider providerGetEditorFormAdd
*/
public function testGetEditorFormAdd(array $data, string $matcher): void
{
ResponseRenderer::getInstance()->setAjax(false);
self::assertStringContainsString($matcher, $this->events->getEditorForm('add', 'change', $data));
}
/**
* Data provider for testGetEditorFormAdd
*
* @return array
*/
public static function providerGetEditorFormAdd(): array
{
$data = [
'item_name' => '',
'item_type' => 'ONE TIME',
'item_type_toggle' => 'RECURRING',
'item_original_name' => '',
'item_status' => '',
'item_execute_at' => '',
'item_interval_value' => '',
'item_interval_field' => '',
'item_starts' => '',
'item_ends' => '',
'item_definition' => '',
'item_preserve' => '',
'item_comment' => '',
'item_definer' => '',
];
return [
[$data, 'setAjax(false);
self::assertStringContainsString($matcher, $this->events->getEditorForm('edit', 'change', $data));
}
/**
* Data provider for testGetEditorFormEdit
*
* @return array
*/
public static function providerGetEditorFormEdit(): array
{
$data = [
'item_name' => 'foo',
'item_type' => 'RECURRING',
'item_type_toggle' => 'ONE TIME',
'item_original_name' => 'bar',
'item_status' => 'ENABLED',
'item_execute_at' => '',
'item_interval_value' => '1',
'item_interval_field' => 'DAY',
'item_starts' => '',
'item_ends' => '',
'item_definition' => 'SET @A=1;',
'item_preserve' => '',
'item_comment' => '',
'item_definer' => '',
];
return [
[$data, 'setAjax(true);
self::assertStringContainsString($matcher, $this->events->getEditorForm('edit', 'change', $data));
ResponseRenderer::getInstance()->setAjax(false);
}
/**
* Data provider for testGetEditorFormAjax
*
* @return array
*/
public static function providerGetEditorFormAjax(): array
{
$data = [
'item_name' => '',
'item_type' => 'RECURRING',
'item_type_toggle' => 'ONE TIME',
'item_original_name' => '',
'item_status' => 'ENABLED',
'item_execute_at' => '',
'item_interval_value' => '',
'item_interval_field' => 'DAY',
'item_starts' => '',
'item_ends' => '',
'item_definition' => '',
'item_preserve' => '',
'item_comment' => '',
'item_definer' => '',
];
return [
[$data, '