summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarc Abonce Seguin <marc-abonce@mailbox.org>2021-02-03 01:02:21 -0700
committerMarc Abonce Seguin <marc-abonce@mailbox.org>2021-02-04 19:53:59 -0700
commitc937a9e85f510820f7d9b98666dcf83f72f80ceb (patch)
tree6c79284801233a2edc14716e82c0df46516794a6 /tests
parent321788f14a8a674984b9884094dd9626d6162a33 (diff)
[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')
-rw-r--r--tests/unit/test_webapp.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/unit/test_webapp.py b/tests/unit/test_webapp.py
index 32aa22fb..a488faf5 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)