phpmyadmin/tests/unit/Config/Forms/Setup/SqlFormTest.php
Maurício Meneghini Fauth 166b0ab4c0
Add unit tests for Config\Forms classes
Signed-off-by: Maurício Meneghini Fauth <mauricio@mfauth.net>
2025-09-08 16:33:22 -03:00

95 lines
3.1 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Config\Forms\Setup;
use PhpMyAdmin\Config\ConfigFile;
use PhpMyAdmin\Config\Form;
use PhpMyAdmin\Config\FormDisplay;
use PhpMyAdmin\Config\Forms\BaseForm;
use PhpMyAdmin\Config\Forms\Setup\SqlForm;
use PhpMyAdmin\Tests\AbstractTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(SqlForm::class)]
#[CoversClass(BaseForm::class)]
#[CoversClass(FormDisplay::class)]
#[CoversClass(Form::class)]
final class SqlFormTest extends AbstractTestCase
{
public function testRegisteredForms(): void
{
Form::resetGroupCounter();
$sqlForm = new SqlForm(new ConfigFile([]), 1);
self::assertSame('SQL queries', SqlForm::getName());
$forms = $sqlForm->getRegisteredForms();
self::assertCount(2, $forms);
self::assertArrayHasKey('Sql_queries', $forms);
$form = $forms['Sql_queries'];
self::assertSame('Sql_queries', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
'ShowSQL' => 'ShowSQL',
'Confirm' => 'Confirm',
'QueryHistoryMax' => 'QueryHistoryMax',
'IgnoreMultiSubmitErrors' => 'IgnoreMultiSubmitErrors',
'MaxCharactersInDisplayedSQL' => 'MaxCharactersInDisplayedSQL',
'RetainQueryBox' => 'RetainQueryBox',
'CodemirrorEnable' => 'CodemirrorEnable',
'LintEnable' => 'LintEnable',
'EnableAutocompleteForTablesAndColumns' => 'EnableAutocompleteForTablesAndColumns',
'DefaultForeignKeyChecks' => 'DefaultForeignKeyChecks',
'QueryHistoryDB' => 'QueryHistoryDB',
'AllowSharedBookmarks' => 'AllowSharedBookmarks',
],
$form->fields,
);
self::assertArrayHasKey('Sql_box', $forms);
$form = $forms['Sql_box'];
self::assertSame('Sql_box', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
'Edit' => 'SQLQuery/Edit',
'Explain' => 'SQLQuery/Explain',
'ShowAsPHP' => 'SQLQuery/ShowAsPHP',
'Refresh' => 'SQLQuery/Refresh',
],
$form->fields,
);
}
public function testGetFields(): void
{
self::assertSame(
[
'ShowSQL',
'Confirm',
'QueryHistoryMax',
'IgnoreMultiSubmitErrors',
'MaxCharactersInDisplayedSQL',
'RetainQueryBox',
'CodemirrorEnable',
'LintEnable',
'EnableAutocompleteForTablesAndColumns',
'DefaultForeignKeyChecks',
'QueryHistoryDB',
'AllowSharedBookmarks',
'SQLQuery/Edit',
'SQLQuery/Explain',
'SQLQuery/ShowAsPHP',
'SQLQuery/Refresh',
],
SqlForm::getFields(),
);
}
}