@@ -1,4 +1,4 @@
1−from searx.preferences import (EnumStringSetting, MapSetting, MissingArgumentException,
1+from searx.preferences import (EnumStringSetting, MapSetting, MissingArgumentException, SearchLanguageSetting,
22 MultipleChoiceSetting, PluginsSetting, ValidationException)
33from searx.testing import SearxTestCase
44
@@ -88,6 +88,27 @@ class TestSettings(SearxTestCase):
8888 setting.parse('2')
8989 self.assertEquals(setting.get_value(), ['2'])
9090
91+ # search language settings
92+ def test_lang_setting_valid_choice(self):
93+ setting = SearchLanguageSetting('all', choices=['all', 'de', 'en'])
94+ setting.parse('de')
95+ self.assertEquals(setting.get_value(), 'de')
96+
97+ def test_lang_setting_invalid_choice(self):
98+ setting = SearchLanguageSetting('all', choices=['all', 'de', 'en'])
99+ setting.parse('xx')
100+ self.assertEquals(setting.get_value(), 'all')
101+
102+ def test_lang_setting_old_cookie_choice(self):
103+ setting = SearchLanguageSetting('all', choices=['all', 'es', 'es-ES'])
104+ setting.parse('es_XA')
105+ self.assertEquals(setting.get_value(), 'es')
106+
107+ def test_lang_setting_old_cookie_format(self):
108+ setting = SearchLanguageSetting('all', choices=['all', 'es', 'es-ES'])
109+ setting.parse('es_ES')
110+ self.assertEquals(setting.get_value(), 'es-ES')
111+
91112 # plugins settings
92113 def test_plugins_setting_all_default_enabled(self):
93114 plugin1 = PluginStub('plugin1', True)