diff options
author | Marc Abonce Seguin <marc-abonce@mailbox.org> | 2021-02-03 01:02:21 -0700 |
---|---|---|
committer | Marc Abonce Seguin <marc-abonce@mailbox.org> | 2021-02-04 19:53:59 -0700 |
commit | c937a9e85f510820f7d9b98666dcf83f72f80ceb (patch) | |
tree | 6c79284801233a2edc14716e82c0df46516794a6 /tests/unit | |
parent | 321788f14a8a674984b9884094dd9626d6162a33 (diff) | |
download | searxng-c937a9e85f510820f7d9b98666dcf83f72f80ceb.tar.gz searxng-c937a9e85f510820f7d9b98666dcf83f72f80ceb.zip |
[fix] get correct locale with country from browser
Some of our interface locales include uppercase country codes,
which are separated by `_` instead of the more common `-`.
Also, a browser's `Accept-Language` header could be in lowercase.
This commit attempts to normalize those cases so a browser's
language+country codes can better match with our locales.
This solution assumes that our UI locales have nothing more than
language and optionally country. If we ever add a script specific
locale like `zh-Hant-TW` this would have to change to accomodate
that, but the idea would be pretty much the same as this fix.
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/test_webapp.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/unit/test_webapp.py b/tests/unit/test_webapp.py index 32aa22fb5..a488faf58 100644 --- a/tests/unit/test_webapp.py +++ b/tests/unit/test_webapp.py @@ -198,6 +198,20 @@ class ViewsTestCase(SearxTestCase): result.data ) + def test_browser_locale(self): + result = self.app.get('/preferences', headers={'Accept-Language': 'zh-tw;q=0.8'}) + self.assertEqual(result.status_code, 200) + self.assertIn( + b'<option value="zh_TW" selected="selected">', + result.data, + 'Interface locale ignored browser preference.' + ) + self.assertIn( + b'<option value="zh-TW" selected="selected">', + result.data, + 'Search language ignored browser preference.' + ) + def test_stats(self): result = self.app.get('/stats') self.assertEqual(result.status_code, 200) |