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