コード例 #1
0
 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'
コード例 #2
0
 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'
コード例 #3
0
 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'
コード例 #4
0
 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'
コード例 #5
0
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 &lt;script&gt;alert("omg")&lt;/script&gt;'
    actual = from_string('{{ s|truncate(5) }}').render({'s': t})
    assert actual == 'safe ...'
コード例 #6
0
def test_cache_key():
    # Test that we are not taking the db into account when building our
    # cache keys for django-cache-machine. See bug 928881.
    eq_(Translation._cache_key(1, 'default'),
        Translation._cache_key(1, 'slave'))

    # Test that we are using the same cache no matter what Translation class
    # we use.
    eq_(PurifiedTranslation._cache_key(1, 'default'),
        Translation._cache_key(1, 'default'))
    eq_(LinkifiedTranslation._cache_key(1, 'default'),
        Translation._cache_key(1, 'default'))
コード例 #7
0
def test_cache_key():
    # Test that we are not taking the db into account when building our
    # cache keys for django-cache-machine. See bug 928881.
    assert Translation._cache_key(1, 'default') == (Translation._cache_key(
        1, 'slave'))

    # Test that we are using the same cache no matter what Translation class
    # we use.
    assert PurifiedTranslation._cache_key(
        1, 'default') == (Translation._cache_key(1, 'default'))
    assert LinkifiedTranslation._cache_key(
        1, 'default') == (Translation._cache_key(1, 'default'))
コード例 #8
0
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)
コード例 #9
0
 def test_forbidden_tags(self):
     s = u'<script>some naughty xss</script>'
     x = PurifiedTranslation(localized_string=s)
     eq_(x.__html__(), '&lt;script&gt;some naughty xss&lt;/script&gt;')
コード例 #10
0
 def test_allowed_tags(self):
     s = u'<b>bold text</b> or <code>code</code>'
     x = PurifiedTranslation(localized_string=s)
     eq_(x.__html__(), u'<b>bold text</b> or <code>code</code>')
コード例 #11
0
 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>'
コード例 #12
0
 def test_forbidden_tags(self):
     s = u'<script>some naughty xss</script>'
     x = PurifiedTranslation(localized_string=s)
     assert x.__html__() == '&lt;script&gt;some naughty xss&lt;/script&gt;'
コード例 #13
0
 def test_raw_text(self):
     s = u'   This is some text   '
     x = PurifiedTranslation(localized_string=s)
     assert x.__html__() == 'This is some text'
コード例 #14
0
 def test_output(self):
     assert isinstance(PurifiedTranslation().__html__(), unicode)
コード例 #15
0
 def test_output(self):
     assert isinstance(PurifiedTranslation().__html__(), six.text_type)
コード例 #16
0
 def test_raw_text(self):
     s = u'   This is some text   '
     x = PurifiedTranslation(localized_string=s)
     eq_(x.__html__(), 'This is some text')
コード例 #17
0
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