def test_internal_link(self): s = u'<b>markup</b> <a href="http://addons.mozilla.org/foo">bar</a>' x = PurifiedTranslation(localized_string=s) doc = pq(x.__html__()) links = doc('a[href="http://addons.mozilla.org/foo"][rel="nofollow"]') assert links[0].text == 'bar' assert doc('b')[0].text == 'markup'
def test_external_text_link(self, get_outgoing_url_mock): get_outgoing_url_mock.return_value = 'http://external.url' s = u'<b>markup</b> http://example.com' x = PurifiedTranslation(localized_string=s) doc = pq(x.__html__()) links = doc('a[href="http://external.url"][rel="nofollow"]') assert links[0].text == 'http://example.com' assert doc('b')[0].text == 'markup'
def test_truncate_purified_field_xss(): """Truncating should not introduce xss issues.""" s = 'safe <script>alert("omg")</script>' t = PurifiedTranslation(localized_string=s) actual = from_string('{{ s|truncate(100) }}').render({'s': t}) assert actual == 'safe <script>alert("omg")</script>' actual = from_string('{{ s|truncate(5) }}').render({'s': t}) assert actual == 'safe ...'
def test_forbidden_tags(self): s = u'<script>some naughty xss</script>' x = PurifiedTranslation(localized_string=s) assert x.__html__() == '<script>some naughty xss</script>'
def test_allowed_tags(self): s = u'<b>bold text</b> or <code>code</code>' x = PurifiedTranslation(localized_string=s) assert x.__html__() == u'<b>bold text</b> or <code>code</code>'
def test_raw_text(self): s = u' This is some text ' x = PurifiedTranslation(localized_string=s) assert x.__html__() == 'This is some text'
def test_output(self): assert isinstance(PurifiedTranslation().__html__(), unicode)
def test_output(self): assert isinstance(PurifiedTranslation().__html__(), six.text_type)
def test_truncate_purified_field(): s = '<i>one</i><i>two</i>' t = PurifiedTranslation(localized_string=s) actual = from_string('{{ s|truncate(6) }}').render({'s': t}) assert actual == s
def test_truncate_purified_field(): s = '<i>one</i><i>two</i>' t = PurifiedTranslation(localized_string=s) env = jingo.get_env() actual = env.from_string('{{ s|truncate(6) }}').render({'s': t}) eq_(actual, s)