9 #include "clang/Basic/LLVM.h" 10 #include "llvm/ADT/StringRef.h" 11 #include "llvm/Support/raw_ostream.h" 12 #include "gmock/gmock.h" 13 #include "gtest/gtest.h" 20 TEST(Render, Escaping) {
24 EXPECT_EQ(P.asMarkdown(),
"\\*\\!\\`");
28 std::string
Punctuation = R
"txt(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)txt"; 30 std::string EscapedPunctuation;
31 EscapedPunctuation.reserve(2 * Punctuation.size());
32 for (
char C : Punctuation)
33 EscapedPunctuation += std::string(
"\\") + C;
34 P.appendText(Punctuation);
35 EXPECT_EQ(P.asMarkdown(), EscapedPunctuation);
39 P.appendCode(
"* foo !+ bar * baz");
40 EXPECT_EQ(P.asMarkdown(),
"`* foo !+ bar * baz`");
44 P.appendCode(
"foo`bar`baz");
45 EXPECT_EQ(P.asMarkdown(),
"`foo``bar``baz`");
50 EXPECT_EQ(P.asMarkdown(),
"` ``foo `");
53 EXPECT_EQ(P.asMarkdown(),
"` foo`` `");
55 P.appendCode(
"`foo`");
56 EXPECT_EQ(P.asMarkdown(),
"` ``foo`` `");
60 D.addCodeBlock(
"foobarbaz `\nqux");
61 EXPECT_EQ(D.asMarkdown(),
"```cpp\n" 65 D.addCodeBlock(
"foobarbaz ``\nqux");
66 EXPECT_THAT(D.asMarkdown(),
"```cpp\n" 70 D.addCodeBlock(
"foobarbaz ```\nqux");
71 EXPECT_EQ(D.asMarkdown(),
"````cpp\n" 72 "foobarbaz ```\nqux\n" 75 D.addCodeBlock(
"foobarbaz ` `` ``` ```` `\nqux");
76 EXPECT_EQ(D.asMarkdown(),
"`````cpp\n" 77 "foobarbaz ` `` ``` ```` `\nqux\n" 81 TEST(Paragraph, SeparationOfChunks) {
87 P.appendText(
"after");
88 EXPECT_EQ(P.asMarkdown(),
"after");
89 EXPECT_EQ(P.asPlainText(),
"after");
91 P.appendCode(
"foobar");
92 EXPECT_EQ(P.asMarkdown(),
"after `foobar`");
93 EXPECT_EQ(P.asPlainText(),
"after foobar");
96 EXPECT_EQ(P.asMarkdown(),
"after `foobar` bat");
97 EXPECT_EQ(P.asPlainText(),
"after foobar bat");
100 TEST(Paragraph, ExtraSpaces) {
103 P.appendText(
"foo\n \t baz");
104 P.appendCode(
" bar\n");
105 EXPECT_EQ(P.asMarkdown(),
"foo baz `bar`");
106 EXPECT_EQ(P.asPlainText(),
"foo baz bar");
109 TEST(Paragraph, NewLines) {
112 P.appendText(
" \n foo\nbar\n ");
113 P.appendCode(
" \n foo\nbar \n ");
114 EXPECT_EQ(P.asMarkdown(),
"foo bar `foo bar`");
115 EXPECT_EQ(P.asPlainText(),
"foo bar foo bar");
118 TEST(Document, Separators) {
120 D.addParagraph().appendText(
"foo");
121 D.addCodeBlock(
"test");
122 D.addParagraph().appendText(
"bar");
124 const char ExpectedMarkdown[] = R
"md(foo 129 EXPECT_EQ(D.asMarkdown(), ExpectedMarkdown); 131 const char ExpectedText[] = R
"pt(foo 136 EXPECT_EQ(D.asPlainText(), ExpectedText); 139 TEST(Document, Ruler) { 141 D.addParagraph().appendText("foo");
145 D.addParagraph().appendText(
"bar");
146 EXPECT_EQ(D.asMarkdown(),
"foo \n\n---\nbar");
147 EXPECT_EQ(D.asPlainText(),
"foo\n\nbar");
150 D.addParagraph().appendText(
"foo");
152 D.addCodeBlock(
"bar");
154 EXPECT_EQ(D.asMarkdown(),
"foo \n\n---\n```cpp\nbar\n```");
155 EXPECT_EQ(D.asPlainText(),
"foo\n\nbar");
159 D.addParagraph().appendText(
"foo");
162 EXPECT_EQ(D.asMarkdown(),
"foo");
163 EXPECT_EQ(D.asPlainText(),
"foo");
167 D.addParagraph().appendText(
"foo");
168 EXPECT_EQ(D.asMarkdown(),
"foo \n\n---\nfoo");
169 EXPECT_EQ(D.asPlainText(),
"foo\n\nfoo");
172 TEST(Document, Heading) {
174 D.addHeading(1).appendText(
"foo");
175 D.addHeading(2).appendText(
"bar");
176 D.addParagraph().appendText(
"baz");
177 EXPECT_EQ(D.asMarkdown(),
"# foo \n## bar \nbaz");
178 EXPECT_EQ(D.asPlainText(),
"foo\nbar\nbaz");
181 TEST(CodeBlock, Render) {
184 D.addCodeBlock(
"foo\n bar\n baz");
186 llvm::StringRef ExpectedMarkdown =
192 llvm::StringRef ExpectedPlainText = 196 EXPECT_EQ(D.asMarkdown(), ExpectedMarkdown); 197 EXPECT_EQ(D.asPlainText(), ExpectedPlainText); 198 D.addCodeBlock("foo");
208 EXPECT_EQ(D.asMarkdown(), ExpectedMarkdown); 215 EXPECT_EQ(D.asPlainText(), ExpectedPlainText); 218 TEST(BulletList, Render) { 221 L.addItem().addParagraph().appendText(
"foo");
222 EXPECT_EQ(L.asMarkdown(),
"- foo");
223 EXPECT_EQ(L.asPlainText(),
"- foo");
225 L.addItem().addParagraph().appendText(
"bar");
226 llvm::StringRef
Expected = R
"md(- foo 228 EXPECT_EQ(L.asMarkdown(), Expected); 229 EXPECT_EQ(L.asPlainText(), Expected); 232 Document &D = L.addItem();
234 D.addParagraph().appendText(
"foo");
235 D.addParagraph().appendText(
"baz");
238 Document &Inner = D.addBulletList().addItem();
239 Inner.addParagraph().appendText(
"foo");
242 BulletList &InnerList = Inner.addBulletList();
244 Document &DeepDoc = InnerList.addItem();
245 DeepDoc.addParagraph().appendText(
"baz");
246 DeepDoc.addParagraph().appendText(
"baz");
247 StringRef ExpectedMarkdown = R
"md(- foo 254 EXPECT_EQ(L.asMarkdown(), ExpectedMarkdown); 255 StringRef ExpectedPlainText = R"pt(- foo 262 EXPECT_EQ(L.asPlainText(), ExpectedPlainText); 265 Inner.addParagraph().appendText(
"after");
266 ExpectedMarkdown = R
"md(- foo 275 EXPECT_EQ(L.asMarkdown(), ExpectedMarkdown); 276 ExpectedPlainText = R"pt(- foo 284 EXPECT_EQ(L.asPlainText(), ExpectedPlainText);
TEST(BackgroundQueueTest, Priority)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
std::vector< const char * > Expected