mirror of
https://github.com/HelloZeroNet/ZeroNet.git
synced 2023-12-14 04:33:03 +01:00
61 lines
2.5 KiB
Python
61 lines
2.5 KiB
Python
from Translate import Translate
|
|
|
|
class TestTranslate:
|
|
def testTranslateStrict(self):
|
|
translate = Translate()
|
|
data = """
|
|
translated = _("original")
|
|
not_translated = "original"
|
|
"""
|
|
data_translated = translate.translateData(data, {"_(original)": "translated"})
|
|
assert 'translated = _("translated")' in data_translated
|
|
assert 'not_translated = "original"' in data_translated
|
|
|
|
def testTranslateStrictNamed(self):
|
|
translate = Translate()
|
|
data = """
|
|
translated = _("original", "original named")
|
|
translated_other = _("original", "original other named")
|
|
not_translated = "original"
|
|
"""
|
|
data_translated = translate.translateData(data, {"_(original, original named)": "translated"})
|
|
assert 'translated = _("translated")' in data_translated
|
|
assert 'not_translated = "original"' in data_translated
|
|
|
|
def testTranslateUtf8(self):
|
|
translate = Translate()
|
|
data = """
|
|
greeting = "Hi again árvztűrőtökörfúrógép!"
|
|
"""
|
|
data_translated = translate.translateData(data, {"Hi again árvztűrőtökörfúrógép!": "Üdv újra árvztűrőtökörfúrógép!"})
|
|
assert data_translated == """
|
|
greeting = "Üdv újra árvztűrőtökörfúrógép!"
|
|
"""
|
|
|
|
def testTranslateEscape(self):
|
|
_ = Translate()
|
|
_["Hello"] = "Szia"
|
|
|
|
# Simple escaping
|
|
data = "{_[Hello]} {username}!"
|
|
username = "Hacker<script>alert('boom')</script>"
|
|
data_translated = _(data)
|
|
assert 'Szia' in data_translated
|
|
assert '<' not in data_translated
|
|
assert data_translated == "Szia Hacker<script>alert('boom')</script>!"
|
|
|
|
# Escaping dicts
|
|
user = {"username": "Hacker<script>alert('boom')</script>"}
|
|
data = "{_[Hello]} {user[username]}!"
|
|
data_translated = _(data)
|
|
assert 'Szia' in data_translated
|
|
assert '<' not in data_translated
|
|
assert data_translated == "Szia Hacker<script>alert('boom')</script>!"
|
|
|
|
# Escaping lists
|
|
users = [{"username": "Hacker<script>alert('boom')</script>"}]
|
|
data = "{_[Hello]} {users[0][username]}!"
|
|
data_translated = _(data)
|
|
assert 'Szia' in data_translated
|
|
assert '<' not in data_translated
|
|
assert data_translated == "Szia Hacker<script>alert('boom')</script>!"
|