import unittest
from kojiweb.util import formatMode, formatLink, escapeHTML
class TestFormatMode(unittest.TestCase):
def test_format_mode(self):
formats = (
('drwxrwxr-x', 0x41fd), # dir
('-rw-------', 0x8180), # reg. file
('crw--w----', 0x2190), # /dev/tty0
('brw-rw----', 0x61b0), # /dev/sda
('lrwxrwxrwx', 0xa1ff), # symlink
('srwxr-xr-x', 0xc1ed), # socket
('-rwsrwsr--', 0x8db4), # suid
)
for s, mode in formats:
self.assertEqual(formatMode(mode), s)
def test_format_link(self):
formats = (
('test me', 'test me'),
(' test ', 'test'),
('', '<script>hack</script>'),
('not://valid', 'not://valid'),
('https://foo.com', 'https://foo.com'),
('http://bar.com/', 'http://bar.com/'),
('HTtP://BaR.CoM/', 'HTtP://BaR.CoM/'),
('https://baz.com/baz&t=1', 'https://baz.com/baz&t=1'),
('ssh://git@pagure.io/foo', 'ssh://git@pagure.io/foo'),
('git://git@pagure.io/foo', 'git://git@pagure.io/foo'),
('obs://build.opensuse.org/foo', 'obs://build.opensuse.org/foo'),
)
for input, output in formats:
self.assertEqual(str(formatLink(input)), output)
def test_escape_html(self):
tests = (
('test me', 'test me'),
('test ', 'test <danger>'),
('test ', 'test <danger="true">'),
("test ", 'test <danger='true'>'),
('test&test', 'test&test'),
('test&test', 'test&test'),
)
for input, output in tests:
self.assertEqual(escapeHTML(input), output)