enableBc(); $GLOBALS['server'] = 0; $GLOBALS['db'] = 'db'; $GLOBALS['table'] = 'table'; $GLOBALS['PMA_PHP_SELF'] = 'index.php'; $GLOBALS['cfg']['Server']['DisableIS'] = false; $this->events = new Events( $GLOBALS['dbi'], new Template(), Response::getInstance() ); } /** * Test for getDataFromRequest * * @param array $in Input * @param array $out Expected output * * @dataProvider providerGetDataFromRequest */ public function testGetDataFromRequestEmpty($in, $out): void { unset($_POST); foreach ($in as $key => $value) { if ($value === '') { continue; } $_POST[$key] = $value; } $this->assertEquals($out, $this->events->getDataFromRequest()); } /** * Data provider for testGetDataFromRequestEmpty * * @return array */ public 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 { $this->assertStringContainsString( $matcher, $this->events->getEditorForm('add', 'change', $data) ); } /** * Data provider for testGetEditorFormAdd * * @return array */ public 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, 'assertStringContainsString( $matcher, $this->events->getEditorForm('edit', 'change', $data) ); } /** * Data provider for testGetEditorFormEdit * * @return array */ public 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); $this->assertStringContainsString( $matcher, $this->events->getEditorForm('edit', 'change', $data) ); Response::getInstance()->setAjax(false); } /** * Data provider for testGetEditorFormAjax * * @return array */ public 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, '