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 = "
test
" output_value = get_markdown(input_value) self.assertEqual(output_value, expected_value) def test_markdown_nl2br(self): """warning, after Line 1 - two withespace, esle did't work""" expected_value = "

Line 1
\n Line 2

" input_value = """Line 1 Line 2""" output_value = get_markdown(input_value) self.assertEqual(output_value, expected_value) def test_markdown_fenced_code(self): expected_value = '

Title

\n
# 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 = '

www.google.com

' 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 = '

www.google.com

' 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

\n

Line 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

\n

FAKE 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 = '

First one:XSS1 ...try again: XSS2

' 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)