diff --git a/tests/unit/Config/SettingsTest.php b/tests/unit/Config/SettingsTest.php index 05b993b27d..0c3b396361 100644 --- a/tests/unit/Config/SettingsTest.php +++ b/tests/unit/Config/SettingsTest.php @@ -38,16 +38,9 @@ class SettingsTest extends TestCase { private const DEFAULT_VALUES = [ 'MemoryLimit' => '-1', - 'ShowSQL' => true, - 'CodemirrorEnable' => true, - 'LintEnable' => true, - 'Confirm' => true, 'CookieSameSite' => 'Strict', - 'LoginCookieRecall' => true, 'LoginCookieValidity' => 1440, 'LoginCookieStore' => 0, - 'LoginCookieDeleteAll' => true, - 'UseDbSearch' => true, 'URLQueryEncryptionSecretKey' => '', 'ArbitraryServerRegexp' => '', 'CaptchaMethod' => 'invisible', @@ -59,45 +52,25 @@ class SettingsTest extends TestCase 'CaptchaLoginPublicKey' => '', 'CaptchaLoginPrivateKey' => '', 'CaptchaSiteVerifyURL' => '', - 'enable_drag_drop_import' => true, - 'ShowDatabasesNavigationAsTree' => true, 'FirstLevelNavigationItems' => 100, 'MaxNavigationItems' => 50, - 'NavigationTreeEnableGrouping' => true, 'NavigationTreeDbSeparator' => '_', 'NavigationTreeTableSeparator' => '__', 'NavigationTreeTableLevel' => 1, - 'NavigationLinkWithMainPanel' => true, - 'NavigationDisplayLogo' => true, 'NavigationLogoLink' => 'index.php', 'NavigationLogoLinkWindow' => 'main', 'NumRecentTables' => 10, 'NumFavoriteTables' => 10, 'NavigationTreeDisplayItemFilterMinimum' => 30, - 'NavigationDisplayServers' => true, 'NavigationTreeDisplayDbFilterMinimum' => 30, 'NavigationTreeDefaultTabTable' => 'structure', 'NavigationTreeDefaultTabTable2' => '', - 'NavigationTreeEnableExpansion' => true, - 'NavigationTreeShowTables' => true, - 'NavigationTreeShowViews' => true, - 'NavigationTreeShowFunctions' => true, - 'NavigationTreeShowProcedures' => true, - 'NavigationTreeShowEvents' => true, 'NavigationWidth' => 240, - 'NavigationTreeAutoexpandSingleDb' => true, - 'ShowStats' => true, - 'ShowChgPassword' => true, - 'ShowCreateDb' => true, - 'HideStructureActions' => true, - 'ShowColumnComments' => true, 'TableNavigationLinksMode' => 'icons', 'Order' => 'SMART', 'GridEditing' => 'double-click', 'RelationalDisplay' => 'K', 'ProtectBinary' => 'blob', - 'ShowFunctionFields' => true, - 'ShowFieldTypesInDataEditView' => true, 'CharEditing' => 'input', 'MinSizeForInputField' => 4, 'MaxSizeForInputField' => 60, @@ -105,10 +78,6 @@ class SettingsTest extends TestCase 'ForeignKeyDropdownOrder' => ['content-id', 'id-content'], 'ForeignKeyMaxLimit' => 100, 'DefaultForeignKeyChecks' => 'default', - 'ZipDump' => true, - 'GZipDump' => true, - 'BZipDump' => true, - 'CompressOnFly' => true, 'TabsMode' => 'both', 'ActionLinksMode' => 'both', 'PropertiesNumColumns' => 1, @@ -162,42 +131,29 @@ class SettingsTest extends TestCase 'SJIS', 'SJIS-win', ], - 'NavigationTreePointerEnable' => true, - 'BrowsePointerEnable' => true, - 'BrowseMarkerEnable' => true, 'TextareaCols' => 40, 'TextareaRows' => 15, - 'LongtextDoubleTextarea' => true, 'CharTextareaCols' => 40, 'CharTextareaRows' => 7, 'RowActionLinks' => 'left', - 'RememberSorting' => true, - 'ShowBrowseComments' => true, - 'ShowPropertyComments' => true, 'QueryHistoryMax' => 25, - 'AllowSharedBookmarks' => true, - 'BrowseMIME' => true, 'MaxExactCount' => 50000, 'MaxExactCountViews' => 0, - 'NaturalOrder' => true, 'InitialSlidersState' => 'closed', 'UserprefsDisallow' => [], 'TitleTable' => '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@', 'TitleDatabase' => '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@', 'TitleServer' => '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@', 'TitleDefault' => '@HTTP_HOST@ | @PHPMYADMIN@', - 'ThemeManager' => true, 'ThemeDefault' => 'pmahomme', 'DefaultQueryTable' => 'SELECT * FROM @TABLE@ WHERE 1', 'DefaultQueryDatabase' => '', 'SQLQuery' => null, - 'EnableAutocompleteForTablesAndColumns' => true, 'UploadDir' => '', 'SaveDir' => '', 'TempDir' => ROOT_PATH . 'tmp' . DIRECTORY_SEPARATOR, 'GD2Available' => 'auto', 'TrustedProxies' => [], - 'CheckConfigurationPermissions' => true, 'LinkLengthLimit' => 1000, 'CSPAllow' => '', 'SendErrorReports' => 'ask', @@ -211,7 +167,6 @@ class SettingsTest extends TestCase 'first_timestamp' => 'NOW', ], 'maxRowPlotLimit' => 500, - 'ShowGitRevision' => true, 'Console' => null, 'DefaultTransformations' => null, 'FirstDayOfCalendar' => 0, @@ -284,16 +239,9 @@ class SettingsTest extends TestCase 'null values' => [ [ ['MemoryLimit', null, '-1'], - ['ShowSQL', null, true], - ['CodemirrorEnable', null, true], - ['LintEnable', null, true], - ['Confirm', null, true], ['CookieSameSite', null, 'Strict'], - ['LoginCookieRecall', null, true], ['LoginCookieValidity', null, 1440], ['LoginCookieStore', null, 0], - ['LoginCookieDeleteAll', null, true], - ['UseDbSearch', null, true], ['URLQueryEncryptionSecretKey', null, ''], ['ArbitraryServerRegexp', null, ''], ['CaptchaMethod', null, 'invisible'], @@ -304,45 +252,25 @@ class SettingsTest extends TestCase ['CaptchaLoginPublicKey', null, ''], ['CaptchaLoginPrivateKey', null, ''], ['CaptchaSiteVerifyURL', null, ''], - ['enable_drag_drop_import', null, true], - ['ShowDatabasesNavigationAsTree', null, true], ['FirstLevelNavigationItems', null, 100], ['MaxNavigationItems', null, 50], - ['NavigationTreeEnableGrouping', null, true], ['NavigationTreeDbSeparator', null, '_'], ['NavigationTreeTableSeparator', null, '__'], ['NavigationTreeTableLevel', null, 1], - ['NavigationLinkWithMainPanel', null, true], - ['NavigationDisplayLogo', null, true], ['NavigationLogoLink', null, 'index.php'], ['NavigationLogoLinkWindow', null, 'main'], ['NumRecentTables', null, 10], ['NumFavoriteTables', null, 10], ['NavigationTreeDisplayItemFilterMinimum', null, 30], - ['NavigationDisplayServers', null, true], ['NavigationTreeDisplayDbFilterMinimum', null, 30], ['NavigationTreeDefaultTabTable', null, '/table/structure'], ['NavigationTreeDefaultTabTable2', null, ''], - ['NavigationTreeEnableExpansion', null, true], - ['NavigationTreeShowTables', null, true], - ['NavigationTreeShowViews', null, true], - ['NavigationTreeShowFunctions', null, true], - ['NavigationTreeShowProcedures', null, true], - ['NavigationTreeShowEvents', null, true], ['NavigationWidth', null, 240], - ['NavigationTreeAutoexpandSingleDb', null, true], - ['ShowStats', null, true], - ['ShowChgPassword', null, true], - ['ShowCreateDb', null, true], - ['HideStructureActions', null, true], - ['ShowColumnComments', null, true], ['TableNavigationLinksMode', null, 'icons'], ['Order', null, 'SMART'], ['GridEditing', null, 'double-click'], ['RelationalDisplay', null, 'K'], ['ProtectBinary', null, 'blob'], - ['ShowFunctionFields', null, true], - ['ShowFieldTypesInDataEditView', null, true], ['CharEditing', null, 'input'], ['MinSizeForInputField', null, 4], ['MaxSizeForInputField', null, 60], @@ -350,10 +278,6 @@ class SettingsTest extends TestCase ['ForeignKeyDropdownOrder', null, ['content-id', 'id-content']], ['ForeignKeyMaxLimit', null, 100], ['DefaultForeignKeyChecks', null, 'default'], - ['ZipDump', null, true], - ['GZipDump', null, true], - ['BZipDump', null, true], - ['CompressOnFly', null, true], ['TabsMode', null, 'both'], ['ActionLinksMode', null, 'both'], ['PropertiesNumColumns', null, 1], @@ -373,49 +297,35 @@ class SettingsTest extends TestCase ['RecodingEngine', null, 'auto'], ['IconvExtraParams', null, '//TRANSLIT'], ['AvailableCharsets', null, ['iso-8859-1', 'iso-8859-2', 'iso-8859-3', 'iso-8859-4', 'iso-8859-5', 'iso-8859-6', 'iso-8859-7', 'iso-8859-8', 'iso-8859-9', 'iso-8859-10', 'iso-8859-11', 'iso-8859-12', 'iso-8859-13', 'iso-8859-14', 'iso-8859-15', 'windows-1250', 'windows-1251', 'windows-1252', 'windows-1256', 'windows-1257', 'koi8-r', 'big5', 'gb2312', 'utf-16', 'utf-8', 'utf-7', 'x-user-defined', 'euc-jp', 'ks_c_5601-1987', 'tis-620', 'SHIFT_JIS', 'SJIS', 'SJIS-win']], - ['NavigationTreePointerEnable', null, true], - ['BrowsePointerEnable', null, true], - ['BrowseMarkerEnable', null, true], ['TextareaCols', null, 40], ['TextareaRows', null, 15], - ['LongtextDoubleTextarea', null, true], ['CharTextareaCols', null, 40], ['CharTextareaRows', null, 7], ['RowActionLinks', null, 'left'], - ['RememberSorting', null, true], - ['ShowBrowseComments', null, true], - ['ShowPropertyComments', null, true], ['QueryHistoryMax', null, 25], - ['AllowSharedBookmarks', null, true], - ['BrowseMIME', null, true], ['MaxExactCount', null, 50000], ['MaxExactCountViews', null, 0], - ['NaturalOrder', null, true], ['InitialSlidersState', null, 'closed'], ['UserprefsDisallow', null, []], ['TitleTable', null, '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'], ['TitleDatabase', null, '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'], ['TitleServer', null, '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'], ['TitleDefault', null, '@HTTP_HOST@ | @PHPMYADMIN@'], - ['ThemeManager', null, true], ['ThemeDefault', null, 'pmahomme'], ['DefaultQueryTable', null, 'SELECT * FROM @TABLE@ WHERE 1'], ['DefaultQueryDatabase', null, ''], ['SQLQuery', null, null], - ['EnableAutocompleteForTablesAndColumns', null, true], ['UploadDir', null, ''], ['SaveDir', null, ''], ['TempDir', null, ROOT_PATH . 'tmp' . DIRECTORY_SEPARATOR], ['GD2Available', null, 'auto'], ['TrustedProxies', null, []], - ['CheckConfigurationPermissions', null, true], ['LinkLengthLimit', null, 1000], ['CSPAllow', null, ''], ['SendErrorReports', null, 'ask'], ['environment', null, 'production'], ['DefaultFunctions', null, ['FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'NOW']], ['maxRowPlotLimit', null, 500], - ['ShowGitRevision', null, true], ['Console', null, null], ['DefaultTransformations', null, null], ['FirstDayOfCalendar', null, 0], @@ -424,16 +334,9 @@ class SettingsTest extends TestCase 'valid values' => [ [ ['MemoryLimit', '16M', '16M'], - ['ShowSQL', false, false], - ['CodemirrorEnable', false, false], - ['LintEnable', false, false], - ['Confirm', false, false], ['CookieSameSite', 'Lax', 'Lax'], - ['LoginCookieRecall', false, false], ['LoginCookieValidity', 1, 1], ['LoginCookieStore', 0, 0], - ['LoginCookieDeleteAll', false, false], - ['UseDbSearch', false, false], ['URLQueryEncryptionSecretKey', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'], ['ArbitraryServerRegexp', 'test', 'test'], ['CaptchaMethod', 'checkbox', 'checkbox'], @@ -444,45 +347,25 @@ class SettingsTest extends TestCase ['CaptchaLoginPublicKey', 'test', 'test'], ['CaptchaLoginPrivateKey', 'test', 'test'], ['CaptchaSiteVerifyURL', 'test', 'test'], - ['enable_drag_drop_import', false, false], - ['ShowDatabasesNavigationAsTree', false, false], ['FirstLevelNavigationItems', 1, 1], ['MaxNavigationItems', 1, 1], - ['NavigationTreeEnableGrouping', false, false], ['NavigationTreeDbSeparator', 'test', 'test'], ['NavigationTreeTableSeparator', 'test', 'test'], ['NavigationTreeTableLevel', 1, 1], - ['NavigationLinkWithMainPanel', false, false], - ['NavigationDisplayLogo', false, false], ['NavigationLogoLink', 'test', 'test'], ['NavigationLogoLinkWindow', 'new', 'new'], ['NumRecentTables', 0, 0], ['NumFavoriteTables', 0, 0], ['NavigationTreeDisplayItemFilterMinimum', 1, 1], - ['NavigationDisplayServers', false, false], ['NavigationTreeDisplayDbFilterMinimum', 1, 1], ['NavigationTreeDefaultTabTable', 'browse', '/sql'], ['NavigationTreeDefaultTabTable2', 'browse', '/sql'], - ['NavigationTreeEnableExpansion', false, false], - ['NavigationTreeShowTables', false, false], - ['NavigationTreeShowViews', false, false], - ['NavigationTreeShowFunctions', false, false], - ['NavigationTreeShowProcedures', false, false], - ['NavigationTreeShowEvents', false, false], ['NavigationWidth', 0, 0], - ['NavigationTreeAutoexpandSingleDb', false, false], - ['ShowStats', false, false], - ['ShowChgPassword', false, false], - ['ShowCreateDb', false, false], - ['HideStructureActions', false, false], - ['ShowColumnComments', false, false], ['TableNavigationLinksMode', 'text', 'text'], ['Order', 'ASC', 'ASC'], ['GridEditing', 'click', 'click'], ['RelationalDisplay', 'D', 'D'], ['ProtectBinary', 'noblob', 'noblob'], - ['ShowFunctionFields', false, false], - ['ShowFieldTypesInDataEditView', false, false], ['CharEditing', 'textarea', 'textarea'], ['MinSizeForInputField', 0, 0], ['MaxSizeForInputField', 1, 1], @@ -490,10 +373,6 @@ class SettingsTest extends TestCase ['ForeignKeyDropdownOrder', ['id-content', 'content-id'], ['id-content', 'content-id']], ['ForeignKeyMaxLimit', 1, 1], ['DefaultForeignKeyChecks', 'enable', 'enable'], - ['ZipDump', false, false], - ['GZipDump', false, false], - ['BZipDump', false, false], - ['CompressOnFly', false, false], ['TabsMode', 'icons', 'icons'], ['ActionLinksMode', 'icons', 'icons'], ['PropertiesNumColumns', 1, 1], @@ -513,49 +392,35 @@ class SettingsTest extends TestCase ['RecodingEngine', 'none', 'none'], ['IconvExtraParams', '//IGNORE', '//IGNORE'], ['AvailableCharsets', ['utf-8', 'iso-8859-1'], ['utf-8', 'iso-8859-1']], - ['NavigationTreePointerEnable', false, false], - ['BrowsePointerEnable', false, false], - ['BrowseMarkerEnable', false, false], ['TextareaCols', 1, 1], ['TextareaRows', 1, 1], - ['LongtextDoubleTextarea', false, false], ['CharTextareaCols', 1, 1], ['CharTextareaRows', 1, 1], ['RowActionLinks', 'none', 'none'], - ['RememberSorting', false, false], - ['ShowBrowseComments', false, false], - ['ShowPropertyComments', false, false], ['QueryHistoryMax', 1, 1], - ['AllowSharedBookmarks', false, false], - ['BrowseMIME', false, false], ['MaxExactCount', 1, 1], ['MaxExactCountViews', 0, 0], - ['NaturalOrder', false, false], ['InitialSlidersState', 'open', 'open'], ['UserprefsDisallow', ['DisableMultiTableMaintenance', 'Export/lock_tables'], ['DisableMultiTableMaintenance', 'Export/lock_tables']], ['TitleTable', '@PHPMYADMIN@', '@PHPMYADMIN@'], ['TitleDatabase', '@PHPMYADMIN@', '@PHPMYADMIN@'], ['TitleServer', '@PHPMYADMIN@', '@PHPMYADMIN@'], ['TitleDefault', '@PHPMYADMIN@', '@PHPMYADMIN@'], - ['ThemeManager', false, false], ['ThemeDefault', 'test', 'test'], ['DefaultQueryTable', 'test', 'test'], ['DefaultQueryDatabase', 'test', 'test'], ['SQLQuery', [], null], - ['EnableAutocompleteForTablesAndColumns', false, false], ['UploadDir', 'test', 'test'], ['SaveDir', 'test', 'test'], ['TempDir', 'test', 'test'], ['GD2Available', 'yes', 'yes'], ['TrustedProxies', ['1.2.3.4' => 'HTTP_X_FORWARDED_FOR', 'key' => 'value'], ['1.2.3.4' => 'HTTP_X_FORWARDED_FOR', 'key' => 'value']], - ['CheckConfigurationPermissions', false, false], ['LinkLengthLimit', 1, 1], ['CSPAllow', 'phpmyadmin.net', 'phpmyadmin.net'], ['SendErrorReports', 'never', 'never'], ['environment', 'development', 'development'], ['DefaultFunctions', ['key' => 'value', 'key2' => 'value2'], ['FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'NOW', 'key' => 'value', 'key2' => 'value2']], ['maxRowPlotLimit', 1, 1], - ['ShowGitRevision', false, false], ['Console', [], null], ['DefaultTransformations', [], null], ['FirstDayOfCalendar', 7, 7], @@ -688,15 +553,8 @@ class SettingsTest extends TestCase 'valid values with type coercion' => [ [ ['MemoryLimit', 1234, '1234'], - ['ShowSQL', 0, false], - ['CodemirrorEnable', 0, false], - ['LintEnable', 0, false], - ['Confirm', 0, false], - ['LoginCookieRecall', 0, false], ['LoginCookieValidity', '1', 1], ['LoginCookieStore', '1', 1], - ['LoginCookieDeleteAll', 0, false], - ['UseDbSearch', 0, false], ['ArbitraryServerRegexp', 1234, '1234'], ['CaptchaApi', 1234, '1234'], ['CaptchaCsp', 1234, '1234'], @@ -705,45 +563,21 @@ class SettingsTest extends TestCase ['CaptchaLoginPublicKey', 1234, '1234'], ['CaptchaLoginPrivateKey', 1234, '1234'], ['CaptchaSiteVerifyURL', 1234, '1234'], - ['enable_drag_drop_import', 0, false], - ['ShowDatabasesNavigationAsTree', 0, false], ['FirstLevelNavigationItems', '1', 1], ['MaxNavigationItems', '1', 1], - ['NavigationTreeEnableGrouping', 0, false], ['NavigationTreeDbSeparator', 1234, '1234'], ['NavigationTreeTableSeparator', true, '1'], ['NavigationTreeTableLevel', '2', 2], - ['NavigationLinkWithMainPanel', 0, false], - ['NavigationDisplayLogo', 0, false], ['NavigationLogoLink', 1234, '1234'], ['NumRecentTables', '1', 1], ['NumFavoriteTables', '1', 1], ['NavigationTreeDisplayItemFilterMinimum', '1', 1], - ['NavigationDisplayServers', 0, false], ['NavigationTreeDisplayDbFilterMinimum', '1', 1], - ['NavigationTreeEnableExpansion', 0, false], - ['NavigationTreeShowTables', 0, false], - ['NavigationTreeShowViews', 0, false], - ['NavigationTreeShowFunctions', 0, false], - ['NavigationTreeShowProcedures', 0, false], - ['NavigationTreeShowEvents', 0, false], ['NavigationWidth', '1', 1], - ['NavigationTreeAutoexpandSingleDb', 0, false], - ['ShowStats', 0, false], - ['ShowChgPassword', 0, false], - ['ShowCreateDb', 0, false], - ['HideStructureActions', 0, false], - ['ShowColumnComments', 0, false], - ['ShowFunctionFields', 0, false], - ['ShowFieldTypesInDataEditView', 0, false], ['MinSizeForInputField', '0', 0], ['MaxSizeForInputField', '1', 1], ['InsertRows', '1', 1], ['ForeignKeyMaxLimit', '1', 1], - ['ZipDump', 0, false], - ['GZipDump', 0, false], - ['BZipDump', 0, false], - ['CompressOnFly', 0, false], ['PropertiesNumColumns', '2', 2], ['PDFPageSizes', [1234 => 1234, 'test' => 'test'], ['1234', 'test']], ['PDFDefaultPageSize', 1234, '1234'], @@ -753,43 +587,29 @@ class SettingsTest extends TestCase ['FilterLanguages', 1234, '1234'], ['IconvExtraParams', 1234, '1234'], ['AvailableCharsets', [1234 => 1234, 'test' => 'test'], ['1234', 'test']], - ['NavigationTreePointerEnable', 0, false], - ['BrowsePointerEnable', 0, false], - ['BrowseMarkerEnable', 0, false], ['TextareaCols', '1', 1], ['TextareaRows', '1', 1], - ['LongtextDoubleTextarea', 0, false], ['CharTextareaCols', '1', 1], ['CharTextareaRows', '1', 1], - ['RememberSorting', 0, false], - ['ShowBrowseComments', 0, false], - ['ShowPropertyComments', 0, false], ['QueryHistoryMax', '1', 1], - ['AllowSharedBookmarks', 0, false], - ['BrowseMIME', 0, false], ['MaxExactCount', '1', 1], ['MaxExactCountViews', '1', 1], - ['NaturalOrder', 0, false], ['UserprefsDisallow', [1234 => 1234, 'test' => 'test'], ['1234', 'test']], ['TitleTable', 1234, '1234'], ['TitleDatabase', 1234, '1234'], ['TitleServer', 1234, '1234'], ['TitleDefault', 1234, '1234'], - ['ThemeManager', 0, false], ['ThemeDefault', 1234, '1234'], ['DefaultQueryTable', 1234, '1234'], ['DefaultQueryDatabase', 1234, '1234'], - ['EnableAutocompleteForTablesAndColumns', 0, false], ['UploadDir', 1234, '1234'], ['SaveDir', 1234, '1234'], ['TempDir', 1234, '1234'], ['TrustedProxies', ['test' => 1234], ['test' => '1234']], - ['CheckConfigurationPermissions', 0, false], ['LinkLengthLimit', '1', 1], ['CSPAllow', 1234, '1234'], ['DefaultFunctions', ['FUNC_UUID' => 1234], ['FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => '1234', 'first_timestamp' => 'NOW']], ['maxRowPlotLimit', '1', 1], - ['ShowGitRevision', 0, false], ['FirstDayOfCalendar', '1', 1], ], ], @@ -844,7 +664,6 @@ class SettingsTest extends TestCase ['InitialSlidersState', 'invalid', 'closed'], ['UserprefsDisallow', 'invalid', []], ['SQLQuery', 'invalid', null], - ['EnableAutocompleteForTablesAndColumns', null, true], ['GD2Available', 'invalid', 'auto'], ['TrustedProxies', 'invalid', []], ['LinkLengthLimit', 0, 1000], @@ -1622,6 +1441,411 @@ class SettingsTest extends TestCase self::assertSame($expected, $settingsArray['DisableShortcutKeys']); } + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowSQL(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowSQL' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowSQL); + self::assertSame($expected, $settingsArray['ShowSQL']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testCodemirrorEnable(mixed $actual, bool $expected): void + { + $settings = new Settings(['CodemirrorEnable' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->CodemirrorEnable); + self::assertSame($expected, $settingsArray['CodemirrorEnable']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testLintEnable(mixed $actual, bool $expected): void + { + $settings = new Settings(['LintEnable' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->LintEnable); + self::assertSame($expected, $settingsArray['LintEnable']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testConfirm(mixed $actual, bool $expected): void + { + $settings = new Settings(['Confirm' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->Confirm); + self::assertSame($expected, $settingsArray['Confirm']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testLoginCookieRecall(mixed $actual, bool $expected): void + { + $settings = new Settings(['LoginCookieRecall' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->LoginCookieRecall); + self::assertSame($expected, $settingsArray['LoginCookieRecall']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testLoginCookieDeleteAll(mixed $actual, bool $expected): void + { + $settings = new Settings(['LoginCookieDeleteAll' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->LoginCookieDeleteAll); + self::assertSame($expected, $settingsArray['LoginCookieDeleteAll']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testUseDbSearch(mixed $actual, bool $expected): void + { + $settings = new Settings(['UseDbSearch' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->UseDbSearch); + self::assertSame($expected, $settingsArray['UseDbSearch']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testEnableDragDropImport(mixed $actual, bool $expected): void + { + $settings = new Settings(['enable_drag_drop_import' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->enable_drag_drop_import); + self::assertSame($expected, $settingsArray['enable_drag_drop_import']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowDatabasesNavigationAsTree(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowDatabasesNavigationAsTree' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowDatabasesNavigationAsTree); + self::assertSame($expected, $settingsArray['ShowDatabasesNavigationAsTree']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeEnableGrouping(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeEnableGrouping' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeEnableGrouping); + self::assertSame($expected, $settingsArray['NavigationTreeEnableGrouping']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationLinkWithMainPanel(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationLinkWithMainPanel' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationLinkWithMainPanel); + self::assertSame($expected, $settingsArray['NavigationLinkWithMainPanel']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationDisplayLogo(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationDisplayLogo' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationDisplayLogo); + self::assertSame($expected, $settingsArray['NavigationDisplayLogo']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationDisplayServers(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationDisplayServers' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationDisplayServers); + self::assertSame($expected, $settingsArray['NavigationDisplayServers']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeEnableExpansion(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeEnableExpansion' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeEnableExpansion); + self::assertSame($expected, $settingsArray['NavigationTreeEnableExpansion']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeShowTables(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeShowTables' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeShowTables); + self::assertSame($expected, $settingsArray['NavigationTreeShowTables']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeShowViews(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeShowViews' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeShowViews); + self::assertSame($expected, $settingsArray['NavigationTreeShowViews']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeShowFunctions(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeShowFunctions' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeShowFunctions); + self::assertSame($expected, $settingsArray['NavigationTreeShowFunctions']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeShowProcedures(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeShowProcedures' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeShowProcedures); + self::assertSame($expected, $settingsArray['NavigationTreeShowProcedures']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeShowEvents(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeShowEvents' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeShowEvents); + self::assertSame($expected, $settingsArray['NavigationTreeShowEvents']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreeAutoexpandSingleDb(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreeAutoexpandSingleDb' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreeAutoexpandSingleDb); + self::assertSame($expected, $settingsArray['NavigationTreeAutoexpandSingleDb']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowStats(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowStats' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowStats); + self::assertSame($expected, $settingsArray['ShowStats']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowChgPassword(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowChgPassword' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowChgPassword); + self::assertSame($expected, $settingsArray['ShowChgPassword']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowCreateDb(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowCreateDb' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowCreateDb); + self::assertSame($expected, $settingsArray['ShowCreateDb']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testHideStructureActions(mixed $actual, bool $expected): void + { + $settings = new Settings(['HideStructureActions' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->HideStructureActions); + self::assertSame($expected, $settingsArray['HideStructureActions']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowColumnComments(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowColumnComments' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowColumnComments); + self::assertSame($expected, $settingsArray['ShowColumnComments']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowFunctionFields(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowFunctionFields' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowFunctionFields); + self::assertSame($expected, $settingsArray['ShowFunctionFields']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowFieldTypesInDataEditView(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowFieldTypesInDataEditView' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowFieldTypesInDataEditView); + self::assertSame($expected, $settingsArray['ShowFieldTypesInDataEditView']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testZipDump(mixed $actual, bool $expected): void + { + $settings = new Settings(['ZipDump' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ZipDump); + self::assertSame($expected, $settingsArray['ZipDump']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testGZipDump(mixed $actual, bool $expected): void + { + $settings = new Settings(['GZipDump' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->GZipDump); + self::assertSame($expected, $settingsArray['GZipDump']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testBZipDump(mixed $actual, bool $expected): void + { + $settings = new Settings(['BZipDump' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->BZipDump); + self::assertSame($expected, $settingsArray['BZipDump']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testCompressOnFly(mixed $actual, bool $expected): void + { + $settings = new Settings(['CompressOnFly' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->CompressOnFly); + self::assertSame($expected, $settingsArray['CompressOnFly']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNavigationTreePointerEnable(mixed $actual, bool $expected): void + { + $settings = new Settings(['NavigationTreePointerEnable' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NavigationTreePointerEnable); + self::assertSame($expected, $settingsArray['NavigationTreePointerEnable']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testBrowsePointerEnable(mixed $actual, bool $expected): void + { + $settings = new Settings(['BrowsePointerEnable' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->BrowsePointerEnable); + self::assertSame($expected, $settingsArray['BrowsePointerEnable']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testBrowseMarkerEnable(mixed $actual, bool $expected): void + { + $settings = new Settings(['BrowseMarkerEnable' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->BrowseMarkerEnable); + self::assertSame($expected, $settingsArray['BrowseMarkerEnable']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testLongtextDoubleTextarea(mixed $actual, bool $expected): void + { + $settings = new Settings(['LongtextDoubleTextarea' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->LongtextDoubleTextarea); + self::assertSame($expected, $settingsArray['LongtextDoubleTextarea']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testRememberSorting(mixed $actual, bool $expected): void + { + $settings = new Settings(['RememberSorting' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->RememberSorting); + self::assertSame($expected, $settingsArray['RememberSorting']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowBrowseComments(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowBrowseComments' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowBrowseComments); + self::assertSame($expected, $settingsArray['ShowBrowseComments']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowPropertyComments(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowPropertyComments' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowPropertyComments); + self::assertSame($expected, $settingsArray['ShowPropertyComments']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testAllowSharedBookmarks(mixed $actual, bool $expected): void + { + $settings = new Settings(['AllowSharedBookmarks' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->AllowSharedBookmarks); + self::assertSame($expected, $settingsArray['AllowSharedBookmarks']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testBrowseMIME(mixed $actual, bool $expected): void + { + $settings = new Settings(['BrowseMIME' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->BrowseMIME); + self::assertSame($expected, $settingsArray['BrowseMIME']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testNaturalOrder(mixed $actual, bool $expected): void + { + $settings = new Settings(['NaturalOrder' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->NaturalOrder); + self::assertSame($expected, $settingsArray['NaturalOrder']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testThemeManager(mixed $actual, bool $expected): void + { + $settings = new Settings(['ThemeManager' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ThemeManager); + self::assertSame($expected, $settingsArray['ThemeManager']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testEnableAutocompleteForTablesAndColumns(mixed $actual, bool $expected): void + { + $settings = new Settings(['EnableAutocompleteForTablesAndColumns' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->EnableAutocompleteForTablesAndColumns); + self::assertSame($expected, $settingsArray['EnableAutocompleteForTablesAndColumns']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testCheckConfigurationPermissions(mixed $actual, bool $expected): void + { + $settings = new Settings(['CheckConfigurationPermissions' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->CheckConfigurationPermissions); + self::assertSame($expected, $settingsArray['CheckConfigurationPermissions']); + } + + #[DataProvider('booleanWithDefaultTrueProvider')] + public function testShowGitRevision(mixed $actual, bool $expected): void + { + $settings = new Settings(['ShowGitRevision' => $actual]); + $settingsArray = $settings->asArray(); + self::assertSame($expected, $settings->ShowGitRevision); + self::assertSame($expected, $settingsArray['ShowGitRevision']); + } + #[DataProvider('valuesForShowServerInfoProvider')] public function testShowServerInfo(mixed $actual, bool|string $expected): void {