aboutsummaryrefslogtreecommitdiff
path: root/third_party/catapult/devil/devil/utils/markdown_test.py
blob: 323776ca1ae7c757f9fa8dfd86ad17eaf6a791b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#! /usr/bin/env python
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import sys
import textwrap
import unittest

if __name__ == '__main__':
  sys.path.append(
      os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')))

from devil.utils import markdown


class MarkdownTest(unittest.TestCase):

  def testBold(self):
    raw = 'foo'
    self.assertEquals('**foo**', markdown.md_bold(raw))

  def testBoldContainsStars(self):
    raw = '*foo*'
    self.assertEquals('**\\*foo\\***', markdown.md_bold(raw))

  def testCode(self):
    raw = textwrap.dedent("""\
        class MarkdownTest(unittest.TestCase):
          def testCode(self):
            pass""")

    expected = textwrap.dedent("""\
        ```python
        class MarkdownTest(unittest.TestCase):
          def testCode(self):
            pass
        ```
        """)
    actual = markdown.md_code(raw, language='python')
    self.assertEquals(expected, actual)

  def testCodeContainsTicks(self):
    raw = textwrap.dedent("""\
        This is sample markdown.
        ```c
        // This is a sample code block.
        int main(int argc, char** argv) {
          return 0;
        }
        ```""")

    expected = textwrap.dedent("""\
        ```
        This is sample markdown.
        \\`\\`\\`c
        // This is a sample code block.
        int main(int argc, char** argv) {
          return 0;
        }
        \\`\\`\\`
        ```
        """)
    actual = markdown.md_code(raw, language=None)
    self.assertEquals(expected, actual)

  def testEscape(self):
    raw = 'text_with_underscores *and stars*'
    expected = 'text\\_with\\_underscores \\*and stars\\*'
    actual = markdown.md_escape(raw)
    self.assertEquals(expected, actual)

  def testHeading1(self):
    raw = 'Heading 1'
    self.assertEquals('# Heading 1', markdown.md_heading(raw, level=1))

  def testHeading5(self):
    raw = 'Heading 5'
    self.assertEquals('##### Heading 5', markdown.md_heading(raw, level=5))

  def testHeading10(self):
    raw = 'Heading 10'
    self.assertEquals('###### Heading 10', markdown.md_heading(raw, level=10))

  def testInlineCode(self):
    raw = 'devil.utils.markdown_test'
    self.assertEquals(
        '`devil.utils.markdown_test`', markdown.md_inline_code(raw))

  def testInlineCodeContainsTicks(self):
    raw = 'this contains `backticks`'
    self.assertEquals(
        '`this contains \\`backticks\\``', markdown.md_inline_code(raw))

  def testItalic(self):
    raw = 'bar'
    self.assertEquals('*bar*', markdown.md_italic(raw))

  def testItalicContainsStars(self):
    raw = '*bar*'
    self.assertEquals('*\\*bar\\**', markdown.md_italic(raw))

  def testLink(self):
    link_text = 'Devil home'
    link_target = (
        'https://github.com/catapult-project/catapult/tree/master/devil')
    expected = (
        '[Devil home]'
        '(https://github.com/catapult-project/catapult/tree/master/devil)')
    self.assertEquals(expected, markdown.md_link(link_text, link_target))

  def testLinkTextContainsBracket(self):
    link_text = 'foo [] bar'
    link_target = 'https://www.google.com'
    expected = '[foo [\\] bar](https://www.google.com)'
    self.assertEquals(expected, markdown.md_link(link_text, link_target))


if __name__ == '__main__':
  unittest.main(verbosity=2)