dummyDbi = $this->createDbiDummy(); $this->dbi = $this->createDatabaseInterface($this->dummyDbi); DatabaseInterface::$instance = $this->dbi; parent::loadDbiIntoContainerBuilder(); $GLOBALS['server'] = 1; $GLOBALS['text_dir'] = 'ltr'; parent::loadResponseIntoContainerBuilder(); } public function testGetEnumValuesError(): void { $this->dummyDbi->addResult('SHOW COLUMNS FROM `cvv`.`enums` LIKE \'set\'', false); $this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', false); $GLOBALS['db'] = 'cvv'; $GLOBALS['table'] = 'enums'; $request = $this->createStub(ServerRequest::class); $request->method('getParsedBodyParam')->willReturnMap([ ['db', null, 'cvv'], ['table', null, 'enums'], ['column', null, 'set'], ['curr_value', null, 'b&c'], ]); /** @var EnumValuesController $sqlController */ $sqlController = Core::getContainerBuilder()->get(EnumValuesController::class); $sqlController($request); $this->assertResponseWasNotSuccessfull(); $this->assertSame( ['message' => 'Error in processing request'], $this->getResponseJsonResult(), ); } public function testGetEnumValuesSuccess(): void { $this->dummyDbi->addResult( 'SHOW COLUMNS FROM `cvv`.`enums` LIKE \'set\'', [ [ 'set', "set('','a&b','b&c','vrai&','','漢字','''','\\','\\\"\\\\''')", 'No', '', 'NULL', '', ], ], ['Field', 'Type', 'Null', 'Key', 'Default', 'Extra'], ); $this->dummyDbi->addResult('SHOW INDEXES FROM `cvv`.`enums`', []); $GLOBALS['db'] = 'cvv'; $GLOBALS['table'] = 'enums'; $request = $this->createStub(ServerRequest::class); $request->method('getParsedBodyParam')->willReturnMap([ ['db', null, 'cvv'], ['table', null, 'enums'], ['column', null, 'set'], ['curr_value', null, 'b&c'], ]); /** @var EnumValuesController $sqlController */ $sqlController = Core::getContainerBuilder()->get(EnumValuesController::class); $sqlController($request); $this->assertResponseWasSuccessfull(); $this->assertSame( [ 'dropdown' => '' . "\n", ], $this->getResponseJsonResult(), ); } }