aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser/tests.rs
blob: 6b37b07d8738e63d43a9f53735e34ad8f96a6b7e (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
use pest::consumes_to;
use pest::parses_to;
use super::{RstParser, Rule};

#[test]
fn plain() {
    parses_to! {
        parser: RstParser,
        input: "line\n",
        rule: Rule::paragraph,
        tokens: [
            paragraph(0, 5, [
                line(0, 5)
            ])
        ]
    };
}

#[test]
fn title() {
    parses_to! {
        parser: RstParser,
        input: "\
Title
=====
",
        rule: Rule::title,
        tokens: [
            title(0, 12, [
                line(0, 6),
                adornments(6, 11),
            ])
        ]
    };
}

#[test]
fn title_overline() {
    parses_to! {
        parser: RstParser,
        input: "\
-----
Title
-----
",
        rule: Rule::title,
        tokens: [
            title(0, 17, [
                adornments(0, 5),
                line(6, 12),
            ])
        ]
    };
}

#[test]
fn two_targets() {
    parses_to! {
        parser: RstParser,
        input: "\
.. _a: http://example.com
.. _`b_`: https://example.org
",
        rule: Rule::document,
        tokens: [
            target(0, 26, [
                target_name_uq(4, 5),
                link_target(7, 25),
            ]),
            target(26, 56, [
                target_name_qu(31, 33),
                link_target(36, 55),
            ]),
        ]
    };

}

#[test]
fn nested_lists() {
    parses_to! {
        parser: RstParser,
        input: "\
paragraph

-  item 1
-  item 2
   more text
   more text 2
   more text 3
   - nested item 1
   - nested item 2
   - nested item 3
",
        rule: Rule::document,
        tokens: [
            paragraph(0, 10, [ line(0, 10) ]),
            bullet_list(11, 131, [
                bullet_item(11, 21, [ line(14, 21) ]),
                bullet_item(21, 131, [
                    line(24, 31),
                    paragraph(34, 74, [
                        line(34, 44),
                        line(47, 59),
                        line(62, 74),
                    ]),
                    bullet_list(77, 131, [
                        bullet_item(77, 93, [ line(79, 93) ]),
                        bullet_item(96, 112, [ line(98, 112) ]),
                        bullet_item(115, 131, [ line(117, 131) ]),
                    ]),
                ]),
            ]),
        ]
    }
}