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)