from django.test import SimpleTestCase from helpdesk.models import get_markdown class MarkDown(SimpleTestCase): """Test work Markdown functional""" def test_markdown_html_tab(self): expected_value = "
<div>test<div>
" input_value = "Line 1
\n Line 2
# import os\n
'
input_value = """
# Title
```python
# import os
```
"""
output_value = get_markdown(input_value)
self.assertEqual(output_value, expected_value)
def test_markdown_link_correct_protocol(self):
expected_value = ''
input_value = "[www.google.com](http://www.yahoo.ru)"
output_value = get_markdown(input_value)
self.assertEqual(output_value, expected_value)
def test_markdown_link_not_correct_protocol(self):
expected_value = ''
input_value = "[www.google.com](aaaa://www.yahoo.ru)"
output_value = get_markdown(input_value)
self.assertEqual(output_value, expected_value)
def test_multiline_markdown_link_with_correct_and_incorrect_protocol(self):
expected_value = 'ThisXSS
\nLine 2: TEST
' input_value = "This[XSS](http://alert.javascript.test)\n\nLine 2: [TEST](javascript:alert(document.domain);)" output_value = get_markdown(input_value) self.assertEqual(output_value, expected_value) def test_multiline_markdown_link_with_correct_and_incorrect_protocol_twice_declared( self, ): expected_value = 'ThisXSS
\nFAKE IT TILL YOU MAKE IT: TEST
' input_value = "This[XSS](http://alert.javascript.test)\n\nFAKE IT TILL YOU MAKE IT: [TEST](javascript:javascript:alert(document.domain);)" output_value = get_markdown(input_value) self.assertEqual(output_value, expected_value) def test_markdown_link_with__multiple_incorrect_protocols(self): expected_value = '' input_value = "First one:[XSS1](javascript:alert(document.domain);) ...try again: [XSS2](javascript:javascript:alert(document.domain);)" output_value = get_markdown(input_value) self.assertEqual(output_value, expected_value)