selectedServer['DisableIS'] = true; $dummyDbi = $this->createDbiDummy(); // phpcs:disable Generic.Files.LineLength.TooLong $dummyDbi->removeDefaultResults(); $dummyDbi->addSelectDb('test_db'); $dummyDbi->addResult( 'SHOW EVENTS FROM `test_db`', [['test_db', 'test_event', 'definer@localhost', 'ONE TIME', 'ENABLED']], ['Db', 'Name', 'Definer', 'Type', 'Status'], ); $dummyDbi->addResult('SELECT CURRENT_USER();', [['definer@localhost']], ['CURRENT_USER()']); $dummyDbi->addResult( "SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''definer''@''localhost''' AND PRIVILEGE_TYPE='EVENT'", [['EVENT']], ['PRIVILEGE_TYPE'], ); $dummyDbi->addResult( 'SHOW GLOBAL VARIABLES LIKE \'event_scheduler\'', [['event_scheduler', 'OFF']], ['Variable_name', 'Value'], ); // phpcs:enable $dbi = $this->createDatabaseInterface($dummyDbi); DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); $request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/') ->withQueryParams(['db' => 'test_db']); (new EventsController( $response, $template, new Events($dbi), $dbi, new DbTableExists($dbi), ))($request); $actual = $response->getHTMLResult(); // phpcs:disable Generic.Files.LineLength.TooLong $expected = <<<'HTML'

Events Events Documentation

Name Status Type
DROP EVENT IF EXISTS `test_event` test_event ENABLED ONE TIME Edit Edit Export Export Drop Drop
Event scheduler status
index.php?route=/sql&db=test_db&goto=index.php%3Froute%3D%2Fdatabase%2Fevents%26db%3Dtest_db%26server%3D2%26lang%3Den&sql_query=SET+GLOBAL+event_scheduler%3D%22ON%22&server=2&lang=en
ON
 
index.php?route=/sql&db=test_db&goto=index.php%3Froute%3D%2Fdatabase%2Fevents%26db%3Dtest_db%26server%3D2%26lang%3Den&sql_query=SET+GLOBAL+event_scheduler%3D%22OFF%22&server=2&lang=en
OFF
window.pmaSlidingMessage(data.sql_query); ltr
HTML; // phpcs:enable self::assertSame($expected, $actual); } public function testWithoutEvents(): void { Current::$server = 2; Current::$database = 'test_db'; Config::getInstance()->selectedServer['DisableIS'] = true; $dummyDbi = $this->createDbiDummy(); // phpcs:disable Generic.Files.LineLength.TooLong $dummyDbi->removeDefaultResults(); $dummyDbi->addSelectDb('test_db'); $dummyDbi->addResult( 'SHOW EVENTS FROM `test_db`', [], ['Db', 'Name', 'Definer', 'Type', 'Status'], ); $dummyDbi->addResult('SELECT CURRENT_USER();', [['definer@localhost']], ['CURRENT_USER()']); $dummyDbi->addResult( "SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''definer''@''localhost''' AND PRIVILEGE_TYPE='EVENT'", [['EVENT']], ['PRIVILEGE_TYPE'], ); $dummyDbi->addResult( 'SHOW GLOBAL VARIABLES LIKE \'event_scheduler\'', [['event_scheduler', 'OFF']], ['Variable_name', 'Value'], ); // phpcs:enable $dbi = $this->createDatabaseInterface($dummyDbi); DatabaseInterface::$instance = $dbi; $response = new ResponseRenderer(); $template = new Template(); $request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/') ->withQueryParams(['db' => 'test_db']); (new EventsController( $response, $template, new Events($dbi), $dbi, new DbTableExists($dbi), ))($request); $actual = $response->getHTMLResult(); // phpcs:disable Generic.Files.LineLength.TooLong $expected = <<<'HTML'

Events Events Documentation

Create new event Create new event
Name Status Type
Event scheduler status
index.php?route=/sql&db=test_db&goto=index.php%3Froute%3D%2Fdatabase%2Fevents%26db%3Dtest_db%26server%3D2%26lang%3Den&sql_query=SET+GLOBAL+event_scheduler%3D%22ON%22&server=2&lang=en
ON
 
index.php?route=/sql&db=test_db&goto=index.php%3Froute%3D%2Fdatabase%2Fevents%26db%3Dtest_db%26server%3D2%26lang%3Den&sql_query=SET+GLOBAL+event_scheduler%3D%22OFF%22&server=2&lang=en
OFF
window.pmaSlidingMessage(data.sql_query); ltr
HTML; // phpcs:enable self::assertSame($expected, $actual); } }