Skip to content

Commit f58ef83

Browse files
committed
test: 添加测试
1 parent ed5e7f6 commit f58ef83

1 file changed

Lines changed: 117 additions & 1 deletion

File tree

test/test_parser.cpp

Lines changed: 117 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,17 @@ TEST(ParseInlineLatexTest, Only) {
5454
auto link = p->children().at(0);
5555
ASSERT_EQ(link->type(), NodeType::inline_latex);
5656
}
57+
TEST(ParseItalicTest, Only) {
58+
Parser parser;
59+
auto nodes = parser.parse("*666*");
60+
ASSERT_EQ(nodes.size(), 1);
61+
auto node = nodes[0];
62+
ASSERT_EQ(node->type(), NodeType::paragraph);
63+
auto p = (Paragraph*)node;
64+
ASSERT_EQ(p->children().size(), 1);
65+
auto link = p->children().at(0);
66+
ASSERT_EQ(link->type(), NodeType::italic);
67+
}
5768
TEST(ParseBoldTest, Only) {
5869
Parser parser;
5970
auto nodes = parser.parse("**666**");
@@ -64,4 +75,109 @@ TEST(ParseBoldTest, Only) {
6475
ASSERT_EQ(p->children().size(), 1);
6576
auto link = p->children().at(0);
6677
ASSERT_EQ(link->type(), NodeType::bold);
67-
}
78+
}
79+
80+
TEST(ParseItalicBoldBoldTest, Only) {
81+
Parser parser;
82+
auto nodes = parser.parse("***666***");
83+
ASSERT_EQ(nodes.size(), 1);
84+
auto node = nodes[0];
85+
ASSERT_EQ(node->type(), NodeType::paragraph);
86+
auto p = (Paragraph*)node;
87+
ASSERT_EQ(p->children().size(), 1);
88+
auto link = p->children().at(0);
89+
ASSERT_EQ(link->type(), NodeType::italic_bold);
90+
}
91+
92+
TEST(ParseLinkTest, Middle) {
93+
Parser parser;
94+
auto nodes = parser.parse("before[666](http://www.666.com)after");
95+
ASSERT_EQ(nodes.size(), 1);
96+
auto node = nodes[0];
97+
ASSERT_EQ(node->type(), NodeType::paragraph);
98+
auto p = (Paragraph*)node;
99+
ASSERT_EQ(p->children().size(), 3);
100+
auto before = p->children().at(0);
101+
ASSERT_EQ(before->type(), NodeType::text);
102+
auto link = p->children().at(1);
103+
ASSERT_EQ(link->type(), NodeType::link);
104+
auto after = p->children().at(2);
105+
ASSERT_EQ(after->type(), NodeType::text);
106+
}
107+
TEST(ParseInlineCodeTest, Middle) {
108+
Parser parser;
109+
auto nodes = parser.parse("before`#include`after");
110+
ASSERT_EQ(nodes.size(), 1);
111+
auto node = nodes[0];
112+
ASSERT_EQ(node->type(), NodeType::paragraph);
113+
auto p = (Paragraph*)node;
114+
ASSERT_EQ(p->children().size(), 3);
115+
auto before = p->children().at(0);
116+
ASSERT_EQ(before->type(), NodeType::text);
117+
auto ic = p->children().at(1);
118+
ASSERT_EQ(ic->type(), NodeType::inline_code);
119+
auto after = p->children().at(2);
120+
ASSERT_EQ(after->type(), NodeType::text);
121+
}
122+
TEST(ParseInlineLatexTest, Middle) {
123+
Parser parser;
124+
auto nodes = parser.parse("before$a^2$after");
125+
ASSERT_EQ(nodes.size(), 1);
126+
auto node = nodes[0];
127+
ASSERT_EQ(node->type(), NodeType::paragraph);
128+
auto p = (Paragraph*)node;
129+
ASSERT_EQ(p->children().size(), 3);
130+
auto before = p->children().at(0);
131+
ASSERT_EQ(before->type(), NodeType::text);
132+
auto il = p->children().at(1);
133+
ASSERT_EQ(il->type(), NodeType::inline_latex);
134+
auto after = p->children().at(2);
135+
ASSERT_EQ(after->type(), NodeType::text);
136+
}
137+
TEST(ParseItalicTest, Middle) {
138+
Parser parser;
139+
auto nodes = parser.parse("before*666*after");
140+
ASSERT_EQ(nodes.size(), 1);
141+
auto node = nodes[0];
142+
ASSERT_EQ(node->type(), NodeType::paragraph);
143+
auto p = (Paragraph*)node;
144+
ASSERT_EQ(p->children().size(), 3);
145+
auto before = p->children().at(0);
146+
ASSERT_EQ(before->type(), NodeType::text);
147+
auto i = p->children().at(1);
148+
ASSERT_EQ(i->type(), NodeType::italic);
149+
auto after = p->children().at(2);
150+
ASSERT_EQ(after->type(), NodeType::text);
151+
}
152+
TEST(ParseBoldTest, Middle) {
153+
Parser parser;
154+
auto nodes = parser.parse("before**666**after");
155+
ASSERT_EQ(nodes.size(), 1);
156+
auto node = nodes[0];
157+
ASSERT_EQ(node->type(), NodeType::paragraph);
158+
auto p = (Paragraph*)node;
159+
ASSERT_EQ(p->children().size(), 3);
160+
auto before = p->children().at(0);
161+
ASSERT_EQ(before->type(), NodeType::text);
162+
auto b = p->children().at(1);
163+
ASSERT_EQ(b->type(), NodeType::bold);
164+
auto after = p->children().at(2);
165+
ASSERT_EQ(after->type(), NodeType::text);
166+
}
167+
168+
TEST(ParseItalicBoldBoldTest, Middle) {
169+
Parser parser;
170+
auto nodes = parser.parse("before***666***after");
171+
ASSERT_EQ(nodes.size(), 1);
172+
auto node = nodes[0];
173+
ASSERT_EQ(node->type(), NodeType::paragraph);
174+
auto p = (Paragraph*)node;
175+
ASSERT_EQ(p->children().size(), 3);
176+
auto before = p->children().at(0);
177+
ASSERT_EQ(before->type(), NodeType::text);
178+
auto it = p->children().at(1);
179+
ASSERT_EQ(it->type(), NodeType::italic_bold);
180+
auto after = p->children().at(2);
181+
ASSERT_EQ(after->type(), NodeType::text);
182+
}
183+

0 commit comments

Comments
 (0)