diff --git a/build.gradle.kts b/build.gradle.kts index bfcb0e852f..df58c7aaef 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -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" @@ -259,6 +259,11 @@ bintrayUpload.apply { onlyIf { System.getenv("BUILD_NUMBER") != null } } +test.apply { + useJUnitPlatform() + failFast = true +} + publishing { publications { register("BintrayRelease", MavenPublication::class) { diff --git a/src/main/java/net/dv8tion/jda/api/utils/MarkdownSanitizer.java b/src/main/java/net/dv8tion/jda/api/utils/MarkdownSanitizer.java index d7c02f346a..56169ca1c8 100644 --- a/src/main/java/net/dv8tion/jda/api/utils/MarkdownSanitizer.java +++ b/src/main/java/net/dv8tion/jda/api/utils/MarkdownSanitizer.java @@ -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); diff --git a/src/test/java/MarkdownTest.java b/src/test/java/MarkdownTest.java index daa6d50532..608499bd5b 100644 --- a/src/test/java/MarkdownTest.java +++ b/src/test/java/MarkdownTest.java @@ -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**")); } @@ -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***")); } @@ -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**`")); } @@ -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")); @@ -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")); diff --git a/src/test/java/MarkdownUtilTest.java b/src/test/java/MarkdownUtilTest.java index 0765a2a276..dfb56f4094 100644 --- a/src/test/java/MarkdownUtilTest.java +++ b/src/test/java/MarkdownUtilTest.java @@ -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")); }