Skip to content

Commit

Permalink
Fix bold and italics not getting escaped properly in MarkdownSanitizer (
Browse files Browse the repository at this point in the history
#1087)

closes #1086
  • Loading branch information
V-ed authored and MinnDevelopment committed Aug 22, 2019
1 parent 489ed4e commit ca60790
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 11 deletions.
7 changes: 6 additions & 1 deletion build.gradle.kts
Expand Up @@ -101,7 +101,7 @@ val javadoc: Javadoc by tasks
val jar: Jar by tasks
val build: Task by tasks
val clean: Task by tasks
val test: Task by tasks
val test: Test by tasks
val check: Task by tasks

shadowJar.classifier = "withDependencies"
Expand Down Expand Up @@ -259,6 +259,11 @@ bintrayUpload.apply {
onlyIf { System.getenv("BUILD_NUMBER") != null }
}

test.apply {
useJUnitPlatform()
failFast = true
}

publishing {
publications {
register("BintrayRelease", MavenPublication::class) {
Expand Down
Expand Up @@ -416,6 +416,10 @@ private void applyStrategy(int region, @Nonnull String seq, @Nonnull StringBuild
throw new IllegalStateException("Found illegal region for strategy ESCAPE '" + region + "' with no known format token!");
if (region == UNDERLINE)
token = "_\\_"; // UNDERLINE needs special handling because the client thinks its ITALICS_U if you only escape once
else if (region == BOLD)
token = "*\\*"; // BOLD needs special handling because the client thinks its ITALICS_A if you only escape once
else if (region == (BOLD | ITALICS_A))
token = "*\\*\\*"; // BOLD | ITALICS_A needs special handling because the client thinks its BOLD if you only escape once
builder.append("\\").append(token)
.append(seq)
.append("\\").append(token);
Expand Down
18 changes: 9 additions & 9 deletions src/test/java/MarkdownTest.java
Expand Up @@ -277,13 +277,13 @@ public void setup()
@Test
public void testComplex()
{
Assertions.assertEquals("\\**A\\_B\\||C\\~~D\\_\\_E\\`F\\`\\_\\_\\~~\\||\\_\\**", markdown.compute("**A_B||C~~D__E`F`__~~||_**"));
Assertions.assertEquals("\\*\\*A\\_B\\||C\\~~D\\_\\_E\\`F\\`\\_\\_\\~~\\||\\_\\*\\*", markdown.compute("**A_B||C~~D__E`F`__~~||_**"));
}

@Test
public void testBold()
{
Assertions.assertEquals("\\**Hello\\**", markdown.compute("**Hello**"));
Assertions.assertEquals("\\*\\*Hello\\*\\*", markdown.compute("**Hello**"));
Assertions.assertEquals("**Hello", markdown.compute("**Hello"));
Assertions.assertEquals("\\**Hello**", markdown.compute("\\**Hello**"));
}
Expand All @@ -304,7 +304,7 @@ public void testItalics()
@Test
public void testBoldItalics()
{
Assertions.assertEquals("\\***Hello\\***", markdown.compute("***Hello***"));
Assertions.assertEquals("\\*\\*\\*Hello\\*\\*\\*", markdown.compute("***Hello***"));
Assertions.assertEquals("***Hello", markdown.compute("***Hello"));
Assertions.assertEquals("\\***Hello***", markdown.compute("\\***Hello***"));
}
Expand Down Expand Up @@ -341,8 +341,8 @@ public void testMono()
Assertions.assertEquals("\\`Hello`", markdown.compute("\\`Hello`"));

Assertions.assertEquals("\\`Hello **World**\\`", markdown.compute("`Hello **World**`"));
Assertions.assertEquals("`Hello \\**World\\**", markdown.compute("`Hello **World**"));
Assertions.assertEquals("\\`Hello \\**World\\**`", markdown.compute("\\`Hello **World**`"));
Assertions.assertEquals("`Hello \\*\\*World\\*\\*", markdown.compute("`Hello **World**"));
Assertions.assertEquals("\\`Hello \\*\\*World\\*\\*`", markdown.compute("\\`Hello **World**`"));

}

Expand All @@ -354,8 +354,8 @@ public void testMonoTwo()
Assertions.assertEquals("\\``Hello``", markdown.compute("\\``Hello``"));

Assertions.assertEquals("\\``Hello **World**\\``", markdown.compute("``Hello **World**``"));
Assertions.assertEquals("``Hello \\**World\\**", markdown.compute("``Hello **World**"));
Assertions.assertEquals("\\``Hello \\**World\\**``", markdown.compute("\\``Hello **World**``"));
Assertions.assertEquals("``Hello \\*\\*World\\*\\*", markdown.compute("``Hello **World**"));
Assertions.assertEquals("\\``Hello \\*\\*World\\*\\*``", markdown.compute("\\``Hello **World**``"));

Assertions.assertEquals("\\``Hello `to` World\\``", markdown.compute("``Hello `to` World``"));
Assertions.assertEquals("``Hello \\`to\\` World", markdown.compute("``Hello `to` World"));
Expand All @@ -370,8 +370,8 @@ public void testBlock()
Assertions.assertEquals("\\```Hello", markdown.compute("\\```Hello"));

Assertions.assertEquals("\\```Hello **World**\\```", markdown.compute("```Hello **World**```"));
Assertions.assertEquals("```Hello \\**World\\**", markdown.compute("```Hello **World**"));
Assertions.assertEquals("\\```Hello \\**World\\**", markdown.compute("\\```Hello **World**"));
Assertions.assertEquals("```Hello \\*\\*World\\*\\*", markdown.compute("```Hello **World**"));
Assertions.assertEquals("\\```Hello \\*\\*World\\*\\*", markdown.compute("\\```Hello **World**"));

Assertions.assertEquals("\\```Hello `to` World\\```", markdown.compute("```Hello `to` World```"));
Assertions.assertEquals("```Hello \\`to\\` World", markdown.compute("```Hello `to` World"));
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/MarkdownUtilTest.java
Expand Up @@ -25,7 +25,7 @@ public class MarkdownUtilTest
public void testBold()
{
Assertions.assertEquals("**Hello World**", bold("Hello World"));
Assertions.assertEquals("**Hello \\**Test\\** World**", bold("Hello **Test** World"));
Assertions.assertEquals("**Hello \\*\\*Test\\*\\* World**", bold("Hello **Test** World"));
Assertions.assertEquals("**Hello *Test* World**", bold("Hello *Test* World"));
}

Expand Down

0 comments on commit ca60790

Please sign in to comment.