From c16598a545c8ee2d36c183affbc2906cbef4f128 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 23 Jan 2019 13:27:40 +0300 Subject: quote formatting fixes and more test cases --- src/main/java/com/juick/util/MessageUtils.java | 9 ++++++--- src/test/java/com/juick/MessageTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/juick/util/MessageUtils.java b/src/main/java/com/juick/util/MessageUtils.java index 72c9bd04..dd9db293 100644 --- a/src/main/java/com/juick/util/MessageUtils.java +++ b/src/main/java/com/juick/util/MessageUtils.java @@ -144,12 +144,11 @@ public class MessageUtils { } public static String formatMessage(String msg) { + msg = msg.replaceAll("&", "&"); msg = msg.replaceAll("<", "<"); msg = msg.replaceAll(">", ">"); - // > citate - msg = msg.replaceAll(citateRegex, "$1"); - msg = msg.replaceAll("", "\n"); + // -- // — msg = msg.replaceAll("((?<=\\s)|(?<=\\A))\\-\\-?((?=\\s)|(?=\\Z))", "$1—$2"); @@ -207,6 +206,10 @@ public class MessageUtils { m.appendTail(sb); msg = sb.toString(); + // > citate + msg = msg.replaceAll(citateRegex, "$1"); + msg = msg.replaceAll("", "\n"); + msg = msg.replaceAll("\n", "
\n"); return msg; } diff --git a/src/test/java/com/juick/MessageTest.java b/src/test/java/com/juick/MessageTest.java index 0b48efa1..eabeeb0f 100644 --- a/src/test/java/com/juick/MessageTest.java +++ b/src/test/java/com/juick/MessageTest.java @@ -214,5 +214,18 @@ public class MessageTest { assertThat(MessageUtils.formatMessage(brokenComment), is("<!-- read next")); String url = "[ya](http://ya.ru)"; assertThat(MessageUtils.formatMessage(url), is("ya")); + String complexMessage = "У футболистов нет мозгов. Что в России, что в Беларуси:\n" + + "\n" + + ">Отец футболиста Лухвича, объехавшего пробку по тротуару: «Сына задержали, Infiniti арестовали» https://auto.onliner.by/2019/01/23/probka-9\n" + + "\n" + + "Вкратце: малолетний долбоёб ездил по встрече, по тротуарам, парковался где хотел и всё это выкладывал в сеть, мол, хули вы мне сделоете. Сделали. Ибо нехуй."; + String formattedMessage = "У футболистов нет мозгов. Что в России, что в Беларуси:
\n
\n" + + "Отец футболиста Лухвича, объехавшего пробку по тротуару: «Сына задержали, Infiniti арестовали» auto.onliner.by" + + "
\n" + + "Вкратце: малолетний долбоёб ездил по встрече, по тротуарам, парковался где хотел и всё это выкладывал в сеть, мол, хули вы мне сделоете. Сделали. Ибо нехуй."; + + assertThat(MessageUtils.formatMessage(complexMessage), is(formattedMessage)); + String multiQuote = "> quote line 1\n> quote line 2\nmessage"; + assertThat(MessageUtils.formatMessage(multiQuote), is("quote line 1
\nquote line 2
message")); } } -- cgit v1.2.3