Skip to content

Commit da763d9

Browse files
Merge pull request #19849 from MauricioFauth/new-unit-tests
Add some unit tests form PhpMyAdmin\Config classes
2 parents 8747ce8 + bbffd8d commit da763d9

14 files changed

Lines changed: 1762 additions & 0 deletions
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Config\Forms\Page;
6+
7+
use PhpMyAdmin\Config\ConfigFile;
8+
use PhpMyAdmin\Config\Form;
9+
use PhpMyAdmin\Config\FormDisplay;
10+
use PhpMyAdmin\Config\Forms\BaseForm;
11+
use PhpMyAdmin\Config\Forms\Page\BrowseForm;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
15+
#[CoversClass(BrowseForm::class)]
16+
#[CoversClass(BaseForm::class)]
17+
#[CoversClass(FormDisplay::class)]
18+
#[CoversClass(Form::class)]
19+
final class BrowseFormTest extends AbstractTestCase
20+
{
21+
public function testRegisteredForms(): void
22+
{
23+
Form::resetGroupCounter();
24+
25+
$browseForm = new BrowseForm(new ConfigFile([]), 1);
26+
self::assertSame('', BrowseForm::getName());
27+
28+
$forms = $browseForm->getRegisteredForms();
29+
self::assertCount(1, $forms);
30+
31+
self::assertArrayHasKey('Browse', $forms);
32+
$form = $forms['Browse'];
33+
self::assertSame('Browse', $form->name);
34+
self::assertSame(1, $form->index);
35+
self::assertSame([], $form->default);
36+
self::assertSame(
37+
[
38+
'TableNavigationLinksMode' => 'TableNavigationLinksMode',
39+
'ActionLinksMode' => 'ActionLinksMode',
40+
'ShowAll' => 'ShowAll',
41+
'MaxRows' => 'MaxRows',
42+
'Order' => 'Order',
43+
'BrowsePointerEnable' => 'BrowsePointerEnable',
44+
'BrowseMarkerEnable' => 'BrowseMarkerEnable',
45+
'GridEditing' => 'GridEditing',
46+
'SaveCellsAtOnce' => 'SaveCellsAtOnce',
47+
'RepeatCells' => 'RepeatCells',
48+
'LimitChars' => 'LimitChars',
49+
'RowActionLinks' => 'RowActionLinks',
50+
'RowActionLinksWithoutUnique' => 'RowActionLinksWithoutUnique',
51+
'TablePrimaryKeyOrder' => 'TablePrimaryKeyOrder',
52+
'RememberSorting' => 'RememberSorting',
53+
'RelationalDisplay' => 'RelationalDisplay',
54+
],
55+
$form->fields,
56+
);
57+
}
58+
59+
public function testGetFields(): void
60+
{
61+
self::assertSame(
62+
[
63+
'TableNavigationLinksMode',
64+
'ActionLinksMode',
65+
'ShowAll',
66+
'MaxRows',
67+
'Order',
68+
'BrowsePointerEnable',
69+
'BrowseMarkerEnable',
70+
'GridEditing',
71+
'SaveCellsAtOnce',
72+
'RepeatCells',
73+
'LimitChars',
74+
'RowActionLinks',
75+
'RowActionLinksWithoutUnique',
76+
'TablePrimaryKeyOrder',
77+
'RememberSorting',
78+
'RelationalDisplay',
79+
],
80+
BrowseForm::getFields(),
81+
);
82+
}
83+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Config\Forms\Page;
6+
7+
use PhpMyAdmin\Config\ConfigFile;
8+
use PhpMyAdmin\Config\Form;
9+
use PhpMyAdmin\Config\FormDisplay;
10+
use PhpMyAdmin\Config\Forms\BaseForm;
11+
use PhpMyAdmin\Config\Forms\Page\DbStructureForm;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
15+
#[CoversClass(DbStructureForm::class)]
16+
#[CoversClass(BaseForm::class)]
17+
#[CoversClass(FormDisplay::class)]
18+
#[CoversClass(Form::class)]
19+
final class DbStructureFormTest extends AbstractTestCase
20+
{
21+
public function testRegisteredForms(): void
22+
{
23+
Form::resetGroupCounter();
24+
25+
$dbStructureForm = new DbStructureForm(new ConfigFile([]), 1);
26+
self::assertSame('', DbStructureForm::getName());
27+
28+
$forms = $dbStructureForm->getRegisteredForms();
29+
self::assertCount(1, $forms);
30+
31+
self::assertArrayHasKey('DbStructure', $forms);
32+
$form = $forms['DbStructure'];
33+
self::assertSame('DbStructure', $form->name);
34+
self::assertSame(1, $form->index);
35+
self::assertSame([], $form->default);
36+
self::assertSame(
37+
[
38+
'ShowDbStructureCharset' => 'ShowDbStructureCharset',
39+
'ShowDbStructureComment' => 'ShowDbStructureComment',
40+
'ShowDbStructureCreation' => 'ShowDbStructureCreation',
41+
'ShowDbStructureLastUpdate' => 'ShowDbStructureLastUpdate',
42+
'ShowDbStructureLastCheck' => 'ShowDbStructureLastCheck',
43+
],
44+
$form->fields,
45+
);
46+
}
47+
48+
public function testGetFields(): void
49+
{
50+
self::assertSame(
51+
[
52+
'ShowDbStructureCharset',
53+
'ShowDbStructureComment',
54+
'ShowDbStructureCreation',
55+
'ShowDbStructureLastUpdate',
56+
'ShowDbStructureLastCheck',
57+
],
58+
DbStructureForm::getFields(),
59+
);
60+
}
61+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Config\Forms\Page;
6+
7+
use PhpMyAdmin\Config\ConfigFile;
8+
use PhpMyAdmin\Config\Form;
9+
use PhpMyAdmin\Config\FormDisplay;
10+
use PhpMyAdmin\Config\Forms\BaseForm;
11+
use PhpMyAdmin\Config\Forms\Page\EditForm;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
15+
#[CoversClass(EditForm::class)]
16+
#[CoversClass(BaseForm::class)]
17+
#[CoversClass(FormDisplay::class)]
18+
#[CoversClass(Form::class)]
19+
final class EditFormTest extends AbstractTestCase
20+
{
21+
public function testRegisteredForms(): void
22+
{
23+
Form::resetGroupCounter();
24+
25+
$editForm = new EditForm(new ConfigFile([]), 1);
26+
self::assertSame('', EditForm::getName());
27+
28+
$forms = $editForm->getRegisteredForms();
29+
self::assertCount(2, $forms);
30+
31+
self::assertArrayHasKey('Edit', $forms);
32+
$form = $forms['Edit'];
33+
self::assertSame('Edit', $form->name);
34+
self::assertSame(1, $form->index);
35+
self::assertSame([], $form->default);
36+
self::assertSame(
37+
[
38+
'ProtectBinary' => 'ProtectBinary',
39+
'ShowFunctionFields' => 'ShowFunctionFields',
40+
'ShowFieldTypesInDataEditView' => 'ShowFieldTypesInDataEditView',
41+
'InsertRows' => 'InsertRows',
42+
'ForeignKeyDropdownOrder' => 'ForeignKeyDropdownOrder',
43+
'ForeignKeyMaxLimit' => 'ForeignKeyMaxLimit',
44+
45+
],
46+
$form->fields,
47+
);
48+
49+
self::assertArrayHasKey('Text_fields', $forms);
50+
$form = $forms['Text_fields'];
51+
self::assertSame('Text_fields', $form->name);
52+
self::assertSame(1, $form->index);
53+
self::assertSame([], $form->default);
54+
self::assertSame(
55+
[
56+
'CharEditing' => 'CharEditing',
57+
'MinSizeForInputField' => 'MinSizeForInputField',
58+
'MaxSizeForInputField' => 'MaxSizeForInputField',
59+
'CharTextareaCols' => 'CharTextareaCols',
60+
'CharTextareaRows' => 'CharTextareaRows',
61+
'TextareaCols' => 'TextareaCols',
62+
'TextareaRows' => 'TextareaRows',
63+
'LongtextDoubleTextarea' => 'LongtextDoubleTextarea',
64+
],
65+
$form->fields,
66+
);
67+
}
68+
69+
public function testGetFields(): void
70+
{
71+
self::assertSame(
72+
[
73+
'ProtectBinary',
74+
'ShowFunctionFields',
75+
'ShowFieldTypesInDataEditView',
76+
'InsertRows',
77+
'ForeignKeyDropdownOrder',
78+
'ForeignKeyMaxLimit',
79+
'CharEditing',
80+
'MinSizeForInputField',
81+
'MaxSizeForInputField',
82+
'CharTextareaCols',
83+
'CharTextareaRows',
84+
'TextareaCols',
85+
'TextareaRows',
86+
'LongtextDoubleTextarea',
87+
],
88+
EditForm::getFields(),
89+
);
90+
}
91+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Config\Forms\Page;
6+
7+
use PhpMyAdmin\Config\ConfigFile;
8+
use PhpMyAdmin\Config\Form;
9+
use PhpMyAdmin\Config\FormDisplay;
10+
use PhpMyAdmin\Config\Forms\BaseForm;
11+
use PhpMyAdmin\Config\Forms\Page\TableStructureForm;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
15+
#[CoversClass(TableStructureForm::class)]
16+
#[CoversClass(BaseForm::class)]
17+
#[CoversClass(FormDisplay::class)]
18+
#[CoversClass(Form::class)]
19+
final class TableStructureFormTest extends AbstractTestCase
20+
{
21+
public function testRegisteredForms(): void
22+
{
23+
Form::resetGroupCounter();
24+
25+
$tableStructureForm = new TableStructureForm(new ConfigFile([]), 1);
26+
self::assertSame('', TableStructureForm::getName());
27+
28+
$forms = $tableStructureForm->getRegisteredForms();
29+
self::assertCount(1, $forms);
30+
31+
self::assertArrayHasKey('TableStructure', $forms);
32+
$form = $forms['TableStructure'];
33+
self::assertSame('TableStructure', $form->name);
34+
self::assertSame(1, $form->index);
35+
self::assertSame([], $form->default);
36+
self::assertSame(
37+
[
38+
'HideStructureActions' => 'HideStructureActions',
39+
'ShowColumnComments' => 'ShowColumnComments',
40+
':group:Default transformations' => ':group:Default transformations',
41+
'Hex' => 'DefaultTransformations/Hex',
42+
'Substring' => 'DefaultTransformations/Substring',
43+
'Bool2Text' => 'DefaultTransformations/Bool2Text',
44+
'External' => 'DefaultTransformations/External',
45+
'PreApPend' => 'DefaultTransformations/PreApPend',
46+
'DateFormat' => 'DefaultTransformations/DateFormat',
47+
'Inline' => 'DefaultTransformations/Inline',
48+
'TextImageLink' => 'DefaultTransformations/TextImageLink',
49+
'TextLink' => 'DefaultTransformations/TextLink',
50+
':group:end:0' => ':group:end:0',
51+
],
52+
$form->fields,
53+
);
54+
}
55+
56+
public function testGetFields(): void
57+
{
58+
self::assertSame(
59+
[
60+
'HideStructureActions',
61+
'ShowColumnComments',
62+
':group:Default transformations',
63+
'DefaultTransformations/Hex',
64+
'DefaultTransformations/Substring',
65+
'DefaultTransformations/Bool2Text',
66+
'DefaultTransformations/External',
67+
'DefaultTransformations/PreApPend',
68+
'DefaultTransformations/DateFormat',
69+
'DefaultTransformations/Inline',
70+
'DefaultTransformations/TextImageLink',
71+
'DefaultTransformations/TextLink',
72+
':group:end',
73+
],
74+
TableStructureForm::getFields(),
75+
);
76+
}
77+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Config\Forms\Setup;
6+
7+
use PhpMyAdmin\Config\ConfigFile;
8+
use PhpMyAdmin\Config\Form;
9+
use PhpMyAdmin\Config\FormDisplay;
10+
use PhpMyAdmin\Config\Forms\BaseForm;
11+
use PhpMyAdmin\Config\Forms\Setup\ConfigForm;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PHPUnit\Framework\Attributes\CoversClass;
14+
15+
#[CoversClass(ConfigForm::class)]
16+
#[CoversClass(BaseForm::class)]
17+
#[CoversClass(FormDisplay::class)]
18+
#[CoversClass(Form::class)]
19+
final class ConfigFormTest extends AbstractTestCase
20+
{
21+
public function testRegisteredForms(): void
22+
{
23+
Form::resetGroupCounter();
24+
25+
$configForm = new ConfigForm(new ConfigFile([]), 1);
26+
self::assertSame('', ConfigForm::getName());
27+
28+
$forms = $configForm->getRegisteredForms();
29+
self::assertCount(1, $forms);
30+
31+
self::assertArrayHasKey('Config', $forms);
32+
$form = $forms['Config'];
33+
self::assertSame('Config', $form->name);
34+
self::assertSame(1, $form->index);
35+
self::assertSame([], $form->default);
36+
self::assertSame(['DefaultLang' => 'DefaultLang', 'ServerDefault' => 'ServerDefault'], $form->fields);
37+
}
38+
39+
public function testGetFields(): void
40+
{
41+
self::assertSame(['DefaultLang', 'ServerDefault'], ConfigForm::getFields());
42+
}
43+
}

0 commit comments

Comments
 (0)