'db', 'server' => 1]; $dbi = $this->getMockBuilder(DatabaseInterface::class) ->disableOriginalConstructor() ->getMock(); $indexs = [ ['Schema' => 'Schema1', 'Key_name' => 'Key_name1', 'Column_name' => 'Column_name1'], ['Schema' => 'Schema2', 'Key_name' => 'Key_name2', 'Column_name' => 'Column_name2'], ['Schema' => 'Schema3', 'Key_name' => 'Key_name3', 'Column_name' => 'Column_name3'], ]; $dbi->expects($this->any())->method('getTableIndexes') ->willReturn($indexs); $GLOBALS['dbi'] = $dbi; //$_SESSION } /** * Tests for displayFormAction() */ public function testDisplayFormAction(): void { $table = $this->getMockBuilder(Table::class) ->disableOriginalConstructor() ->getMock(); $table->expects($this->any())->method('getStatusInfo') ->willReturn(''); $table->expects($this->any())->method('isView') ->willReturn(false); $table->expects($this->any())->method('getNameAndTypeOfTheColumns') ->willReturn(['field_name' => 'field_type']); $GLOBALS['dbi']->expects($this->any())->method('getTable') ->willReturn($table); $response = new ResponseStub(); $index = new Index(); $template = new Template(); $method = new ReflectionMethod(IndexesController::class, 'displayForm'); $ctrl = new IndexesController( $response, $template, $GLOBALS['dbi'], new Indexes($response, $template, $GLOBALS['dbi']), new DbTableExists($GLOBALS['dbi']), ); $_POST['create_index'] = true; $_POST['added_fields'] = 3; $method->invoke($ctrl, $index); $html = $response->getHTMLResult(); //Url::getHiddenInputs $this->assertStringContainsString( Url::getHiddenInputs( ['db' => 'db', 'table' => 'table', 'create_index' => 1], ), $html, ); $docHtml = Generator::showHint( Message::notice( __( '"PRIMARY" must be the name of and only of a primary key!', ), )->getMessage(), ); $this->assertStringContainsString($docHtml, $html); $this->assertStringContainsString( MySQLDocumentation::show('ALTER_TABLE'), $html, ); $this->assertStringContainsString( sprintf(__('Add %s column(s) to index'), 1), $html, ); //$field_name & $field_type $this->assertStringContainsString('field_name', $html); $this->assertStringContainsString('field_type', $html); } }