From 166b0ab4c0e0648f26ea1318f7f86dba554ac243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Mon, 8 Sep 2025 16:33:22 -0300 Subject: [PATCH] Add unit tests for Config\Forms classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- .../unit/Config/Forms/Page/BrowseFormTest.php | 83 +++++ .../Config/Forms/Page/DbStructureFormTest.php | 61 ++++ tests/unit/Config/Forms/Page/EditFormTest.php | 91 ++++++ .../Forms/Page/TableStructureFormTest.php | 77 +++++ .../Config/Forms/Setup/ConfigFormTest.php | 43 +++ .../Config/Forms/Setup/FeaturesFormTest.php | 292 ++++++++++++++++++ .../unit/Config/Forms/Setup/MainFormTest.php | 212 +++++++++++++ .../Config/Forms/Setup/ServersFormTest.php | 172 +++++++++++ tests/unit/Config/Forms/Setup/SqlFormTest.php | 94 ++++++ tests/unit/Config/Forms/User/MainFormTest.php | 204 ++++++++++++ tests/unit/Config/Forms/User/NaviFormTest.php | 148 +++++++++ tests/unit/Config/Forms/User/SqlFormTest.php | 90 ++++++ 12 files changed, 1567 insertions(+) create mode 100644 tests/unit/Config/Forms/Page/BrowseFormTest.php create mode 100644 tests/unit/Config/Forms/Page/DbStructureFormTest.php create mode 100644 tests/unit/Config/Forms/Page/EditFormTest.php create mode 100644 tests/unit/Config/Forms/Page/TableStructureFormTest.php create mode 100644 tests/unit/Config/Forms/Setup/ConfigFormTest.php create mode 100644 tests/unit/Config/Forms/Setup/FeaturesFormTest.php create mode 100644 tests/unit/Config/Forms/Setup/MainFormTest.php create mode 100644 tests/unit/Config/Forms/Setup/ServersFormTest.php create mode 100644 tests/unit/Config/Forms/Setup/SqlFormTest.php create mode 100644 tests/unit/Config/Forms/User/MainFormTest.php create mode 100644 tests/unit/Config/Forms/User/NaviFormTest.php create mode 100644 tests/unit/Config/Forms/User/SqlFormTest.php diff --git a/tests/unit/Config/Forms/Page/BrowseFormTest.php b/tests/unit/Config/Forms/Page/BrowseFormTest.php new file mode 100644 index 0000000000..8aae3cbcc9 --- /dev/null +++ b/tests/unit/Config/Forms/Page/BrowseFormTest.php @@ -0,0 +1,83 @@ +getRegisteredForms(); + self::assertCount(1, $forms); + + self::assertArrayHasKey('Browse', $forms); + $form = $forms['Browse']; + self::assertSame('Browse', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TableNavigationLinksMode' => 'TableNavigationLinksMode', + 'ActionLinksMode' => 'ActionLinksMode', + 'ShowAll' => 'ShowAll', + 'MaxRows' => 'MaxRows', + 'Order' => 'Order', + 'BrowsePointerEnable' => 'BrowsePointerEnable', + 'BrowseMarkerEnable' => 'BrowseMarkerEnable', + 'GridEditing' => 'GridEditing', + 'SaveCellsAtOnce' => 'SaveCellsAtOnce', + 'RepeatCells' => 'RepeatCells', + 'LimitChars' => 'LimitChars', + 'RowActionLinks' => 'RowActionLinks', + 'RowActionLinksWithoutUnique' => 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder' => 'TablePrimaryKeyOrder', + 'RememberSorting' => 'RememberSorting', + 'RelationalDisplay' => 'RelationalDisplay', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'TableNavigationLinksMode', + 'ActionLinksMode', + 'ShowAll', + 'MaxRows', + 'Order', + 'BrowsePointerEnable', + 'BrowseMarkerEnable', + 'GridEditing', + 'SaveCellsAtOnce', + 'RepeatCells', + 'LimitChars', + 'RowActionLinks', + 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder', + 'RememberSorting', + 'RelationalDisplay', + ], + BrowseForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Page/DbStructureFormTest.php b/tests/unit/Config/Forms/Page/DbStructureFormTest.php new file mode 100644 index 0000000000..34af53d40c --- /dev/null +++ b/tests/unit/Config/Forms/Page/DbStructureFormTest.php @@ -0,0 +1,61 @@ +getRegisteredForms(); + self::assertCount(1, $forms); + + self::assertArrayHasKey('DbStructure', $forms); + $form = $forms['DbStructure']; + self::assertSame('DbStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ShowDbStructureCharset' => 'ShowDbStructureCharset', + 'ShowDbStructureComment' => 'ShowDbStructureComment', + 'ShowDbStructureCreation' => 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate' => 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck' => 'ShowDbStructureLastCheck', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'ShowDbStructureCharset', + 'ShowDbStructureComment', + 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck', + ], + DbStructureForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Page/EditFormTest.php b/tests/unit/Config/Forms/Page/EditFormTest.php new file mode 100644 index 0000000000..9b3e530f32 --- /dev/null +++ b/tests/unit/Config/Forms/Page/EditFormTest.php @@ -0,0 +1,91 @@ +getRegisteredForms(); + self::assertCount(2, $forms); + + self::assertArrayHasKey('Edit', $forms); + $form = $forms['Edit']; + self::assertSame('Edit', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ProtectBinary' => 'ProtectBinary', + 'ShowFunctionFields' => 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView' => 'ShowFieldTypesInDataEditView', + 'InsertRows' => 'InsertRows', + 'ForeignKeyDropdownOrder' => 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit' => 'ForeignKeyMaxLimit', + + ], + $form->fields, + ); + + self::assertArrayHasKey('Text_fields', $forms); + $form = $forms['Text_fields']; + self::assertSame('Text_fields', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'CharEditing' => 'CharEditing', + 'MinSizeForInputField' => 'MinSizeForInputField', + 'MaxSizeForInputField' => 'MaxSizeForInputField', + 'CharTextareaCols' => 'CharTextareaCols', + 'CharTextareaRows' => 'CharTextareaRows', + 'TextareaCols' => 'TextareaCols', + 'TextareaRows' => 'TextareaRows', + 'LongtextDoubleTextarea' => 'LongtextDoubleTextarea', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'ProtectBinary', + 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView', + 'InsertRows', + 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit', + 'CharEditing', + 'MinSizeForInputField', + 'MaxSizeForInputField', + 'CharTextareaCols', + 'CharTextareaRows', + 'TextareaCols', + 'TextareaRows', + 'LongtextDoubleTextarea', + ], + EditForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Page/TableStructureFormTest.php b/tests/unit/Config/Forms/Page/TableStructureFormTest.php new file mode 100644 index 0000000000..d394672b6d --- /dev/null +++ b/tests/unit/Config/Forms/Page/TableStructureFormTest.php @@ -0,0 +1,77 @@ +getRegisteredForms(); + self::assertCount(1, $forms); + + self::assertArrayHasKey('TableStructure', $forms); + $form = $forms['TableStructure']; + self::assertSame('TableStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'HideStructureActions' => 'HideStructureActions', + 'ShowColumnComments' => 'ShowColumnComments', + ':group:Default transformations' => ':group:Default transformations', + 'Hex' => 'DefaultTransformations/Hex', + 'Substring' => 'DefaultTransformations/Substring', + 'Bool2Text' => 'DefaultTransformations/Bool2Text', + 'External' => 'DefaultTransformations/External', + 'PreApPend' => 'DefaultTransformations/PreApPend', + 'DateFormat' => 'DefaultTransformations/DateFormat', + 'Inline' => 'DefaultTransformations/Inline', + 'TextImageLink' => 'DefaultTransformations/TextImageLink', + 'TextLink' => 'DefaultTransformations/TextLink', + ':group:end:0' => ':group:end:0', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'HideStructureActions', + 'ShowColumnComments', + ':group:Default transformations', + 'DefaultTransformations/Hex', + 'DefaultTransformations/Substring', + 'DefaultTransformations/Bool2Text', + 'DefaultTransformations/External', + 'DefaultTransformations/PreApPend', + 'DefaultTransformations/DateFormat', + 'DefaultTransformations/Inline', + 'DefaultTransformations/TextImageLink', + 'DefaultTransformations/TextLink', + ':group:end', + ], + TableStructureForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Setup/ConfigFormTest.php b/tests/unit/Config/Forms/Setup/ConfigFormTest.php new file mode 100644 index 0000000000..24bb1e2e62 --- /dev/null +++ b/tests/unit/Config/Forms/Setup/ConfigFormTest.php @@ -0,0 +1,43 @@ +getRegisteredForms(); + self::assertCount(1, $forms); + + self::assertArrayHasKey('Config', $forms); + $form = $forms['Config']; + self::assertSame('Config', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame(['DefaultLang' => 'DefaultLang', 'ServerDefault' => 'ServerDefault'], $form->fields); + } + + public function testGetFields(): void + { + self::assertSame(['DefaultLang', 'ServerDefault'], ConfigForm::getFields()); + } +} diff --git a/tests/unit/Config/Forms/Setup/FeaturesFormTest.php b/tests/unit/Config/Forms/Setup/FeaturesFormTest.php new file mode 100644 index 0000000000..81d73cf874 --- /dev/null +++ b/tests/unit/Config/Forms/Setup/FeaturesFormTest.php @@ -0,0 +1,292 @@ +settings['UserprefsDeveloperTab'] = true; + Config::$instance = $config; + + $featuresForm = new FeaturesForm(new ConfigFile([]), 1); + self::assertSame('Features', FeaturesForm::getName()); + + $forms = $featuresForm->getRegisteredForms(); + self::assertCount(10, $forms); + + self::assertArrayHasKey('General', $forms); + $form = $forms['General']; + self::assertSame('General', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'VersionCheck' => 'VersionCheck', + 'NaturalOrder' => 'NaturalOrder', + 'InitialSlidersState' => 'InitialSlidersState', + 'LoginCookieValidity' => 'LoginCookieValidity', + 'SkipLockedTables' => 'SkipLockedTables', + 'DisableMultiTableMaintenance' => 'DisableMultiTableMaintenance', + 'ShowHint' => 'ShowHint', + 'SendErrorReports' => 'SendErrorReports', + 'ConsoleEnterExecutes' => 'ConsoleEnterExecutes', + 'DisableShortcutKeys' => 'DisableShortcutKeys', + 'FirstDayOfCalendar' => 'FirstDayOfCalendar', + ], + $form->fields, + ); + + self::assertArrayHasKey('Databases', $forms); + $form = $forms['Databases']; + self::assertSame('Databases', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'MaxDbList' => 'MaxDbList', + 'MaxTableList' => 'MaxTableList', + 'DefaultConnectionCollation' => 'DefaultConnectionCollation', + ], + $form->fields, + ); + + self::assertArrayHasKey('Text_fields', $forms); + $form = $forms['Text_fields']; + self::assertSame('Text_fields', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'CharEditing' => 'CharEditing', + 'MinSizeForInputField' => 'MinSizeForInputField', + 'MaxSizeForInputField' => 'MaxSizeForInputField', + 'CharTextareaCols' => 'CharTextareaCols', + 'CharTextareaRows' => 'CharTextareaRows', + 'TextareaCols' => 'TextareaCols', + 'TextareaRows' => 'TextareaRows', + 'LongtextDoubleTextarea' => 'LongtextDoubleTextarea', + ], + $form->fields, + ); + + self::assertArrayHasKey('Page_titles', $forms); + $form = $forms['Page_titles']; + self::assertSame('Page_titles', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TitleDefault' => 'TitleDefault', + 'TitleTable' => 'TitleTable', + 'TitleDatabase' => 'TitleDatabase', + 'TitleServer' => 'TitleServer', + ], + $form->fields, + ); + + self::assertArrayHasKey('Warnings', $forms); + $form = $forms['Warnings']; + self::assertSame('Warnings', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'PmaNoRelation_DisableWarning' => 'PmaNoRelation_DisableWarning', + 'SuhosinDisableWarning' => 'SuhosinDisableWarning', + 'LoginCookieValidityDisableWarning' => 'LoginCookieValidityDisableWarning', + 'ReservedWordDisableWarning' => 'ReservedWordDisableWarning', + ], + $form->fields, + ); + + self::assertArrayHasKey('Console', $forms); + $form = $forms['Console']; + self::assertSame('Console', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'Mode' => 'Console/Mode', + 'StartHistory' => 'Console/StartHistory', + 'AlwaysExpand' => 'Console/AlwaysExpand', + 'CurrentQuery' => 'Console/CurrentQuery', + 'EnterExecutes' => 'Console/EnterExecutes', + 'DarkTheme' => 'Console/DarkTheme', + 'Height' => 'Console/Height', + 'GroupQueries' => 'Console/GroupQueries', + 'OrderBy' => 'Console/OrderBy', + 'Order' => 'Console/Order', + ], + $form->fields, + ); + + self::assertArrayHasKey('Developer', $forms); + $form = $forms['Developer']; + self::assertSame('Developer', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame(['UserprefsDeveloperTab' => 'UserprefsDeveloperTab', 'sql' => 'DBG/sql'], $form->fields); + + self::assertArrayHasKey('Import_export', $forms); + $form = $forms['Import_export']; + self::assertSame('Import_export', $form->name); + self::assertSame(1, $form->index); + self::assertSame(['RecodingEngine' => ':group'], $form->default); + self::assertSame( + [ + 'UploadDir' => 'UploadDir', + 'SaveDir' => 'SaveDir', + 'RecodingEngine' => 'RecodingEngine', + 'IconvExtraParams' => 'IconvExtraParams', + ':group:end:0' => ':group:end:0', + 'ZipDump' => 'ZipDump', + 'GZipDump' => 'GZipDump', + 'BZipDump' => 'BZipDump', + 'CompressOnFly' => 'CompressOnFly', + ], + $form->fields, + ); + + self::assertArrayHasKey('Security', $forms); + $form = $forms['Security']; + self::assertSame('Security', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'blowfish_secret' => 'blowfish_secret', + 'CheckConfigurationPermissions' => 'CheckConfigurationPermissions', + 'TrustedProxies' => 'TrustedProxies', + 'AllowUserDropDatabase' => 'AllowUserDropDatabase', + 'AllowArbitraryServer' => 'AllowArbitraryServer', + 'ArbitraryServerRegexp' => 'ArbitraryServerRegexp', + 'LoginCookieRecall' => 'LoginCookieRecall', + 'LoginCookieStore' => 'LoginCookieStore', + 'LoginCookieDeleteAll' => 'LoginCookieDeleteAll', + 'CaptchaLoginPublicKey' => 'CaptchaLoginPublicKey', + 'CaptchaLoginPrivateKey' => 'CaptchaLoginPrivateKey', + 'CaptchaSiteVerifyURL' => 'CaptchaSiteVerifyURL', + ], + $form->fields, + ); + + self::assertArrayHasKey('Other_core_settings', $forms); + $form = $forms['Other_core_settings']; + self::assertSame('Other_core_settings', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'PersistentConnections' => 'PersistentConnections', + 'ExecTimeLimit' => 'ExecTimeLimit', + 'MemoryLimit' => 'MemoryLimit', + 'UseDbSearch' => 'UseDbSearch', + 'ProxyUrl' => 'ProxyUrl', + 'ProxyUser' => 'ProxyUser', + 'ProxyPass' => 'ProxyPass', + 'AllowThirdPartyFraming' => 'AllowThirdPartyFraming', + 'ZeroConf' => 'ZeroConf', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'VersionCheck', + 'NaturalOrder', + 'InitialSlidersState', + 'LoginCookieValidity', + 'SkipLockedTables', + 'DisableMultiTableMaintenance', + 'ShowHint', + 'SendErrorReports', + 'ConsoleEnterExecutes', + 'DisableShortcutKeys', + 'FirstDayOfCalendar', + 'MaxDbList', + 'MaxTableList', + 'DefaultConnectionCollation', + 'CharEditing', + 'MinSizeForInputField', + 'MaxSizeForInputField', + 'CharTextareaCols', + 'CharTextareaRows', + 'TextareaCols', + 'TextareaRows', + 'LongtextDoubleTextarea', + 'TitleDefault', + 'TitleTable', + 'TitleDatabase', + 'TitleServer', + 'PmaNoRelation_DisableWarning', + 'SuhosinDisableWarning', + 'LoginCookieValidityDisableWarning', + 'ReservedWordDisableWarning', + 'Console/Mode', + 'Console/StartHistory', + 'Console/AlwaysExpand', + 'Console/CurrentQuery', + 'Console/EnterExecutes', + 'Console/DarkTheme', + 'Console/Height', + 'Console/GroupQueries', + 'Console/OrderBy', + 'Console/Order', + 'UploadDir', + 'SaveDir', + 'RecodingEngine', + 'IconvExtraParams', + ':group:end', + 'ZipDump', + 'GZipDump', + 'BZipDump', + 'CompressOnFly', + 'blowfish_secret', + 'CheckConfigurationPermissions', + 'TrustedProxies', + 'AllowUserDropDatabase', + 'AllowArbitraryServer', + 'ArbitraryServerRegexp', + 'LoginCookieRecall', + 'LoginCookieStore', + 'LoginCookieDeleteAll', + 'CaptchaLoginPublicKey', + 'CaptchaLoginPrivateKey', + 'CaptchaSiteVerifyURL', + 'UserprefsDeveloperTab', + 'DBG/sql', + 'PersistentConnections', + 'ExecTimeLimit', + 'MemoryLimit', + 'UseDbSearch', + 'ProxyUrl', + 'ProxyUser', + 'ProxyPass', + 'AllowThirdPartyFraming', + 'ZeroConf', + ], + FeaturesForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Setup/MainFormTest.php b/tests/unit/Config/Forms/Setup/MainFormTest.php new file mode 100644 index 0000000000..52a4b4665e --- /dev/null +++ b/tests/unit/Config/Forms/Setup/MainFormTest.php @@ -0,0 +1,212 @@ +getRegisteredForms(); + self::assertCount(7, $forms); + + self::assertArrayHasKey('Startup', $forms); + $form = $forms['Startup']; + self::assertSame('Startup', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ShowCreateDb' => 'ShowCreateDb', + 'ShowStats' => 'ShowStats', + 'ShowServerInfo' => 'ShowServerInfo', + 'ShowPhpInfo' => 'ShowPhpInfo', + 'ShowChgPassword' => 'ShowChgPassword', + ], + $form->fields, + ); + + self::assertArrayHasKey('DbStructure', $forms); + $form = $forms['DbStructure']; + self::assertSame('DbStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ShowDbStructureCharset' => 'ShowDbStructureCharset', + 'ShowDbStructureComment' => 'ShowDbStructureComment', + 'ShowDbStructureCreation' => 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate' => 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck' => 'ShowDbStructureLastCheck', + ], + $form->fields, + ); + + self::assertArrayHasKey('TableStructure', $forms); + $form = $forms['TableStructure']; + self::assertSame('TableStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'HideStructureActions' => 'HideStructureActions', + 'ShowColumnComments' => 'ShowColumnComments', + ':group:Default transformations' => ':group:Default transformations', + 'Hex' => 'DefaultTransformations/Hex', + 'Substring' => 'DefaultTransformations/Substring', + 'Bool2Text' => 'DefaultTransformations/Bool2Text', + 'External' => 'DefaultTransformations/External', + 'PreApPend' => 'DefaultTransformations/PreApPend', + 'DateFormat' => 'DefaultTransformations/DateFormat', + 'Inline' => 'DefaultTransformations/Inline', + 'TextImageLink' => 'DefaultTransformations/TextImageLink', + 'TextLink' => 'DefaultTransformations/TextLink', + ':group:end:0' => ':group:end:0', + ], + $form->fields, + ); + + self::assertArrayHasKey('Browse', $forms); + $form = $forms['Browse']; + self::assertSame('Browse', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TableNavigationLinksMode' => 'TableNavigationLinksMode', + 'ActionLinksMode' => 'ActionLinksMode', + 'ShowAll' => 'ShowAll', + 'MaxRows' => 'MaxRows', + 'Order' => 'Order', + 'BrowsePointerEnable' => 'BrowsePointerEnable', + 'BrowseMarkerEnable' => 'BrowseMarkerEnable', + 'GridEditing' => 'GridEditing', + 'SaveCellsAtOnce' => 'SaveCellsAtOnce', + 'RepeatCells' => 'RepeatCells', + 'LimitChars' => 'LimitChars', + 'RowActionLinks' => 'RowActionLinks', + 'RowActionLinksWithoutUnique' => 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder' => 'TablePrimaryKeyOrder', + 'RememberSorting' => 'RememberSorting', + 'RelationalDisplay' => 'RelationalDisplay', + ], + $form->fields, + ); + + self::assertArrayHasKey('Edit', $forms); + $form = $forms['Edit']; + self::assertSame('Edit', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ProtectBinary' => 'ProtectBinary', + 'ShowFunctionFields' => 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView' => 'ShowFieldTypesInDataEditView', + 'InsertRows' => 'InsertRows', + 'ForeignKeyDropdownOrder' => 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit' => 'ForeignKeyMaxLimit', + ], + $form->fields, + ); + + self::assertArrayHasKey('Tabs', $forms); + $form = $forms['Tabs']; + self::assertSame('Tabs', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TabsMode' => 'TabsMode', + 'DefaultTabServer' => 'DefaultTabServer', + 'DefaultTabDatabase' => 'DefaultTabDatabase', + 'DefaultTabTable' => 'DefaultTabTable', + ], + $form->fields, + ); + + self::assertArrayHasKey('DisplayRelationalSchema', $forms); + $form = $forms['DisplayRelationalSchema']; + self::assertSame('DisplayRelationalSchema', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame(['PDFDefaultPageSize' => 'PDFDefaultPageSize'], $form->fields); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'ShowCreateDb', + 'ShowStats', + 'ShowServerInfo', + 'ShowPhpInfo', + 'ShowChgPassword', + 'ShowDbStructureCharset', + 'ShowDbStructureComment', + 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck', + 'HideStructureActions', + 'ShowColumnComments', + ':group:Default transformations', + 'DefaultTransformations/Hex', + 'DefaultTransformations/Substring', + 'DefaultTransformations/Bool2Text', + 'DefaultTransformations/External', + 'DefaultTransformations/PreApPend', + 'DefaultTransformations/DateFormat', + 'DefaultTransformations/Inline', + 'DefaultTransformations/TextImageLink', + 'DefaultTransformations/TextLink', + ':group:end', + 'TableNavigationLinksMode', + 'ActionLinksMode', + 'ShowAll', + 'MaxRows', + 'Order', + 'BrowsePointerEnable', + 'BrowseMarkerEnable', + 'GridEditing', + 'SaveCellsAtOnce', + 'RepeatCells', + 'LimitChars', + 'RowActionLinks', + 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder', + 'RememberSorting', + 'RelationalDisplay', + 'ProtectBinary', + 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView', + 'InsertRows', + 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit', + 'TabsMode', + 'DefaultTabServer', + 'DefaultTabDatabase', + 'DefaultTabTable', + 'PDFDefaultPageSize', + ], + MainForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/Setup/ServersFormTest.php b/tests/unit/Config/Forms/Setup/ServersFormTest.php new file mode 100644 index 0000000000..0fac8d9d78 --- /dev/null +++ b/tests/unit/Config/Forms/Setup/ServersFormTest.php @@ -0,0 +1,172 @@ +getRegisteredForms(); + self::assertCount(5, $forms); + + self::assertArrayHasKey('Server', $forms); + $form = $forms['Server']; + self::assertSame('Server', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'verbose' => 'Servers/1/verbose', + 'host' => 'Servers/1/host', + 'port' => 'Servers/1/port', + 'socket' => 'Servers/1/socket', + 'ssl' => 'Servers/1/ssl', + 'compress' => 'Servers/1/compress', + ], + $form->fields, + ); + + self::assertArrayHasKey('Server_auth', $forms); + $form = $forms['Server_auth']; + self::assertSame('Server_auth', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'auth_type' => 'Servers/1/auth_type', + ':group:Config authentication' => 'Servers/1/:group:Config authentication', + 'user' => 'Servers/1/user', + 'password' => 'Servers/1/password', + ':group:end:0' => 'Servers/1/:group:end:0', + ':group:HTTP authentication' => 'Servers/1/:group:HTTP authentication', + 'auth_http_realm' => 'Servers/1/auth_http_realm', + ':group:end:1' => 'Servers/1/:group:end:1', + ':group:Signon authentication' => 'Servers/1/:group:Signon authentication', + 'SignonSession' => 'Servers/1/SignonSession', + 'SignonURL' => 'Servers/1/SignonURL', + 'LogoutURL' => 'Servers/1/LogoutURL', + ], + $form->fields, + ); + + self::assertArrayHasKey('Server_config', $forms); + $form = $forms['Server_config']; + self::assertSame('Server_config', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'only_db' => 'Servers/1/only_db', + 'hide_db' => 'Servers/1/hide_db', + 'AllowRoot' => 'Servers/1/AllowRoot', + 'AllowNoPassword' => 'Servers/1/AllowNoPassword', + 'DisableIS' => 'Servers/1/DisableIS', + 'order' => 'Servers/1/AllowDeny/order', + 'rules' => 'Servers/1/AllowDeny/rules', + 'SessionTimeZone' => 'Servers/1/SessionTimeZone', + ], + $form->fields, + ); + + self::assertArrayHasKey('Server_pmadb', $forms); + $form = $forms['Server_pmadb']; + self::assertSame('Server_pmadb', $form->name); + self::assertSame(1, $form->index); + self::assertSame( + [ + 'Servers/1/pmadb' => 'phpmyadmin', + 'Servers/1/bookmarktable' => 'pma__bookmark', + 'Servers/1/relation' => 'pma__relation', + 'Servers/1/userconfig' => 'pma__userconfig', + 'Servers/1/users' => 'pma__users', + 'Servers/1/usergroups' => 'pma__usergroups', + 'Servers/1/navigationhiding' => 'pma__navigationhiding', + 'Servers/1/table_info' => 'pma__table_info', + 'Servers/1/column_info' => 'pma__column_info', + 'Servers/1/history' => 'pma__history', + 'Servers/1/recent' => 'pma__recent', + 'Servers/1/favorite' => 'pma__favorite', + 'Servers/1/table_uiprefs' => 'pma__table_uiprefs', + 'Servers/1/tracking' => 'pma__tracking', + 'Servers/1/table_coords' => 'pma__table_coords', + 'Servers/1/pdf_pages' => 'pma__pdf_pages', + 'Servers/1/savedsearches' => 'pma__savedsearches', + 'Servers/1/central_columns' => 'pma__central_columns', + 'Servers/1/designer_settings' => 'pma__designer_settings', + 'Servers/1/export_templates' => 'pma__export_templates', + 'Servers/1/MaxTableUiprefs' => 100, + ], + $form->default, + ); + self::assertSame( + [ + 'pmadb' => 'Servers/1/pmadb', + 'controlhost' => 'Servers/1/controlhost', + 'controlport' => 'Servers/1/controlport', + 'controluser' => 'Servers/1/controluser', + 'controlpass' => 'Servers/1/controlpass', + 'bookmarktable' => 'Servers/1/bookmarktable', + 'relation' => 'Servers/1/relation', + 'userconfig' => 'Servers/1/userconfig', + 'users' => 'Servers/1/users', + 'usergroups' => 'Servers/1/usergroups', + 'navigationhiding' => 'Servers/1/navigationhiding', + 'table_info' => 'Servers/1/table_info', + 'column_info' => 'Servers/1/column_info', + 'history' => 'Servers/1/history', + 'recent' => 'Servers/1/recent', + 'favorite' => 'Servers/1/favorite', + 'table_uiprefs' => 'Servers/1/table_uiprefs', + 'tracking' => 'Servers/1/tracking', + 'table_coords' => 'Servers/1/table_coords', + 'pdf_pages' => 'Servers/1/pdf_pages', + 'savedsearches' => 'Servers/1/savedsearches', + 'central_columns' => 'Servers/1/central_columns', + 'designer_settings' => 'Servers/1/designer_settings', + 'export_templates' => 'Servers/1/export_templates', + 'MaxTableUiprefs' => 'Servers/1/MaxTableUiprefs', + ], + $form->fields, + ); + + self::assertArrayHasKey('Server_tracking', $forms); + $form = $forms['Server_tracking']; + self::assertSame('Server_tracking', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'tracking_version_auto_create' => 'Servers/1/tracking_version_auto_create', + 'tracking_default_statements' => 'Servers/1/tracking_default_statements', + 'tracking_add_drop_view' => 'Servers/1/tracking_add_drop_view', + 'tracking_add_drop_table' => 'Servers/1/tracking_add_drop_table', + 'tracking_add_drop_database' => 'Servers/1/tracking_add_drop_database', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame(['Servers', 'Servers', 'Servers', 'Servers', 'Servers'], ServersForm::getFields()); + } +} diff --git a/tests/unit/Config/Forms/Setup/SqlFormTest.php b/tests/unit/Config/Forms/Setup/SqlFormTest.php new file mode 100644 index 0000000000..f6da395b81 --- /dev/null +++ b/tests/unit/Config/Forms/Setup/SqlFormTest.php @@ -0,0 +1,94 @@ +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(), + ); + } +} diff --git a/tests/unit/Config/Forms/User/MainFormTest.php b/tests/unit/Config/Forms/User/MainFormTest.php new file mode 100644 index 0000000000..a22e8d8b4b --- /dev/null +++ b/tests/unit/Config/Forms/User/MainFormTest.php @@ -0,0 +1,204 @@ +getRegisteredForms(); + self::assertCount(7, $forms); + + self::assertArrayHasKey('Startup', $forms); + $form = $forms['Startup']; + self::assertSame('Startup', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + ['ShowCreateDb' => 'ShowCreateDb', 'ShowStats' => 'ShowStats', 'ShowServerInfo' => 'ShowServerInfo'], + $form->fields, + ); + + self::assertArrayHasKey('DbStructure', $forms); + $form = $forms['DbStructure']; + self::assertSame('DbStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ShowDbStructureCharset' => 'ShowDbStructureCharset', + 'ShowDbStructureComment' => 'ShowDbStructureComment', + 'ShowDbStructureCreation' => 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate' => 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck' => 'ShowDbStructureLastCheck', + ], + $form->fields, + ); + + self::assertArrayHasKey('TableStructure', $forms); + $form = $forms['TableStructure']; + self::assertSame('TableStructure', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'HideStructureActions' => 'HideStructureActions', + 'ShowColumnComments' => 'ShowColumnComments', + ':group:Default transformations' => ':group:Default transformations', + 'Hex' => 'DefaultTransformations/Hex', + 'Substring' => 'DefaultTransformations/Substring', + 'Bool2Text' => 'DefaultTransformations/Bool2Text', + 'External' => 'DefaultTransformations/External', + 'PreApPend' => 'DefaultTransformations/PreApPend', + 'DateFormat' => 'DefaultTransformations/DateFormat', + 'Inline' => 'DefaultTransformations/Inline', + 'TextImageLink' => 'DefaultTransformations/TextImageLink', + 'TextLink' => 'DefaultTransformations/TextLink', + ':group:end:0' => ':group:end:0', + ], + $form->fields, + ); + + self::assertArrayHasKey('Browse', $forms); + $form = $forms['Browse']; + self::assertSame('Browse', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TableNavigationLinksMode' => 'TableNavigationLinksMode', + 'ActionLinksMode' => 'ActionLinksMode', + 'ShowAll' => 'ShowAll', + 'MaxRows' => 'MaxRows', + 'Order' => 'Order', + 'BrowsePointerEnable' => 'BrowsePointerEnable', + 'BrowseMarkerEnable' => 'BrowseMarkerEnable', + 'GridEditing' => 'GridEditing', + 'SaveCellsAtOnce' => 'SaveCellsAtOnce', + 'RepeatCells' => 'RepeatCells', + 'LimitChars' => 'LimitChars', + 'RowActionLinks' => 'RowActionLinks', + 'RowActionLinksWithoutUnique' => 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder' => 'TablePrimaryKeyOrder', + 'RememberSorting' => 'RememberSorting', + 'RelationalDisplay' => 'RelationalDisplay', + ], + $form->fields, + ); + + self::assertArrayHasKey('Edit', $forms); + $form = $forms['Edit']; + self::assertSame('Edit', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ProtectBinary' => 'ProtectBinary', + 'ShowFunctionFields' => 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView' => 'ShowFieldTypesInDataEditView', + 'InsertRows' => 'InsertRows', + 'ForeignKeyDropdownOrder' => 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit' => 'ForeignKeyMaxLimit', + ], + $form->fields, + ); + + self::assertArrayHasKey('Tabs', $forms); + $form = $forms['Tabs']; + self::assertSame('Tabs', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'TabsMode' => 'TabsMode', + 'DefaultTabServer' => 'DefaultTabServer', + 'DefaultTabDatabase' => 'DefaultTabDatabase', + 'DefaultTabTable' => 'DefaultTabTable', + ], + $form->fields, + ); + + self::assertArrayHasKey('DisplayRelationalSchema', $forms); + $form = $forms['DisplayRelationalSchema']; + self::assertSame('DisplayRelationalSchema', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame(['PDFDefaultPageSize' => 'PDFDefaultPageSize'], $form->fields); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'ShowCreateDb', + 'ShowStats', + 'ShowServerInfo', + 'ShowDbStructureCharset', + 'ShowDbStructureComment', + 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck', + 'HideStructureActions', + 'ShowColumnComments', + ':group:Default transformations', + 'DefaultTransformations/Hex', + 'DefaultTransformations/Substring', + 'DefaultTransformations/Bool2Text', + 'DefaultTransformations/External', + 'DefaultTransformations/PreApPend', + 'DefaultTransformations/DateFormat', + 'DefaultTransformations/Inline', + 'DefaultTransformations/TextImageLink', + 'DefaultTransformations/TextLink', + ':group:end', + 'TableNavigationLinksMode', + 'ActionLinksMode', + 'ShowAll', + 'MaxRows', + 'Order', + 'BrowsePointerEnable', + 'BrowseMarkerEnable', + 'GridEditing', + 'SaveCellsAtOnce', + 'RepeatCells', + 'LimitChars', + 'RowActionLinks', + 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder', + 'RememberSorting', + 'RelationalDisplay', + 'ProtectBinary', + 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView', + 'InsertRows', + 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit', + 'TabsMode', + 'DefaultTabServer', + 'DefaultTabDatabase', + 'DefaultTabTable', + 'PDFDefaultPageSize', + ], + MainForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/User/NaviFormTest.php b/tests/unit/Config/Forms/User/NaviFormTest.php new file mode 100644 index 0000000000..4e2e7e9530 --- /dev/null +++ b/tests/unit/Config/Forms/User/NaviFormTest.php @@ -0,0 +1,148 @@ +getRegisteredForms(); + self::assertCount(5, $forms); + + self::assertArrayHasKey('Navi_panel', $forms); + $form = $forms['Navi_panel']; + self::assertSame('Navi_panel', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'ShowDatabasesNavigationAsTree' => 'ShowDatabasesNavigationAsTree', + 'NavigationLinkWithMainPanel' => 'NavigationLinkWithMainPanel', + 'NavigationDisplayLogo' => 'NavigationDisplayLogo', + 'NavigationLogoLink' => 'NavigationLogoLink', + 'NavigationLogoLinkWindow' => 'NavigationLogoLinkWindow', + 'NavigationTreePointerEnable' => 'NavigationTreePointerEnable', + 'FirstLevelNavigationItems' => 'FirstLevelNavigationItems', + 'NavigationTreeDisplayItemFilterMinimum' => 'NavigationTreeDisplayItemFilterMinimum', + 'NumRecentTables' => 'NumRecentTables', + 'NumFavoriteTables' => 'NumFavoriteTables', + 'NavigationWidth' => 'NavigationWidth', + ], + $form->fields, + ); + + self::assertArrayHasKey('Navi_tree', $forms); + $form = $forms['Navi_tree']; + self::assertSame('Navi_tree', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'MaxNavigationItems' => 'MaxNavigationItems', + 'NavigationTreeEnableGrouping' => 'NavigationTreeEnableGrouping', + 'NavigationTreeEnableExpansion' => 'NavigationTreeEnableExpansion', + 'NavigationTreeShowTables' => 'NavigationTreeShowTables', + 'NavigationTreeShowViews' => 'NavigationTreeShowViews', + 'NavigationTreeShowFunctions' => 'NavigationTreeShowFunctions', + 'NavigationTreeShowProcedures' => 'NavigationTreeShowProcedures', + 'NavigationTreeShowEvents' => 'NavigationTreeShowEvents', + 'NavigationTreeAutoexpandSingleDb' => 'NavigationTreeAutoexpandSingleDb', + ], + $form->fields, + ); + + self::assertArrayHasKey('Navi_servers', $forms); + $form = $forms['Navi_servers']; + self::assertSame('Navi_servers', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + ['NavigationDisplayServers' => 'NavigationDisplayServers', 'DisplayServersList' => 'DisplayServersList'], + $form->fields, + ); + + self::assertArrayHasKey('Navi_databases', $forms); + $form = $forms['Navi_databases']; + self::assertSame('Navi_databases', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'NavigationTreeDisplayDbFilterMinimum' => 'NavigationTreeDisplayDbFilterMinimum', + 'NavigationTreeDbSeparator' => 'NavigationTreeDbSeparator', + ], + $form->fields, + ); + + self::assertArrayHasKey('Navi_tables', $forms); + $form = $forms['Navi_tables']; + self::assertSame('Navi_tables', $form->name); + self::assertSame(1, $form->index); + self::assertSame([], $form->default); + self::assertSame( + [ + 'NavigationTreeDefaultTabTable' => 'NavigationTreeDefaultTabTable', + 'NavigationTreeDefaultTabTable2' => 'NavigationTreeDefaultTabTable2', + 'NavigationTreeTableSeparator' => 'NavigationTreeTableSeparator', + 'NavigationTreeTableLevel' => 'NavigationTreeTableLevel', + ], + $form->fields, + ); + } + + public function testGetFields(): void + { + self::assertSame( + [ + 'ShowDatabasesNavigationAsTree', + 'NavigationLinkWithMainPanel', + 'NavigationDisplayLogo', + 'NavigationLogoLink', + 'NavigationLogoLinkWindow', + 'NavigationTreePointerEnable', + 'FirstLevelNavigationItems', + 'NavigationTreeDisplayItemFilterMinimum', + 'NumRecentTables', + 'NumFavoriteTables', + 'NavigationWidth', + 'MaxNavigationItems', + 'NavigationTreeEnableGrouping', + 'NavigationTreeEnableExpansion', + 'NavigationTreeShowTables', + 'NavigationTreeShowViews', + 'NavigationTreeShowFunctions', + 'NavigationTreeShowProcedures', + 'NavigationTreeShowEvents', + 'NavigationTreeAutoexpandSingleDb', + 'NavigationDisplayServers', + 'DisplayServersList', + 'NavigationTreeDisplayDbFilterMinimum', + 'NavigationTreeDbSeparator', + 'NavigationTreeDefaultTabTable', + 'NavigationTreeDefaultTabTable2', + 'NavigationTreeTableSeparator', + 'NavigationTreeTableLevel', + ], + NaviForm::getFields(), + ); + } +} diff --git a/tests/unit/Config/Forms/User/SqlFormTest.php b/tests/unit/Config/Forms/User/SqlFormTest.php new file mode 100644 index 0000000000..285d1ad4bf --- /dev/null +++ b/tests/unit/Config/Forms/User/SqlFormTest.php @@ -0,0 +1,90 @@ +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', + ], + $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', + 'SQLQuery/Edit', + 'SQLQuery/Explain', + 'SQLQuery/ShowAsPHP', + 'SQLQuery/Refresh', + ], + SqlForm::getFields(), + ); + } +}