diff --git a/autotests/texthandlertest.cpp b/autotests/texthandlertest.cpp index dbe0ee98b..4fd8f91f1 100644 --- a/autotests/texthandlertest.cpp +++ b/autotests/texthandlertest.cpp @@ -84,11 +84,11 @@ void TextHandlerTest::initTestCase() void TextHandlerTest::allowedAttributes() { - const QString testInputString1 = QStringLiteral("
Test
"); - const QString testOutputString1 = QStringLiteral("Test
"); + const QString testInputString1 = QStringLiteral("Test"); + const QString testOutputString1 = QStringLiteral("Test"); // Handle urls where the href has either single (') or double (") quotes. - const QString testInputString2 = QStringLiteral(""); - const QString testOutputString2 = QStringLiteral(""); + const QString testInputString2 = QStringLiteral("linklink"); + const QString testOutputString2 = QStringLiteral("linklink"); TextHandler testTextHandler; testTextHandler.setData(testInputString1); @@ -116,7 +116,7 @@ void TextHandlerTest::stripDisallowedTags() void TextHandlerTest::stripDisallowedAttributes() { const QString testInputString = QStringLiteral("Test
"); - const QString testOutputString = QStringLiteral("Test
"); + const QString testOutputString = QStringLiteral("Test"); TextHandler testTextHandler; testTextHandler.setData(testInputString); @@ -143,8 +143,8 @@ void TextHandlerTest::emptyCodeTags() void TextHandlerTest::sendSimpleStringCase() { - const QString testInputString = QStringLiteral("This data should just be put in a paragraph."); - const QString testOutputString = QStringLiteral("This data should just be put in a paragraph.
"); + const QString testInputString = QStringLiteral("This data should just be left alone."); + const QString testOutputString = QStringLiteral("This data should just be left alone."); TextHandler testTextHandler; testTextHandler.setData(testInputString); @@ -157,8 +157,8 @@ void TextHandlerTest::sendSingleParaMarkup() const QString testInputString = QStringLiteral( "Text para with **bold**, *italic*, [link](https://kde.org), , `inline code`."); const QString testOutputString = QStringLiteral( - "Text para with bold, italic, link, ,
inline code.
inline code.");
TextHandler testTextHandler;
testTextHandler.setData(testInputString);
@@ -184,7 +184,7 @@ void TextHandlerTest::sendMultipleSectionMarkup()
void TextHandlerTest::sendBadLinks()
{
const QString testInputString = QStringLiteral("[link](kde.org), ");
- const QString testOutputString = QStringLiteral("link,
:test:
:test:");
QTest::newRow("block") << QStringLiteral("```\n:test:\n```") << QStringLiteral(":test:\n");
}
@@ -373,7 +373,7 @@ void TextHandlerTest::receivePlainStripMarkup()
void TextHandlerTest::receiveRichUserPill()
{
const QString testInputString = QStringLiteral("");
- const QString testOutputString = QStringLiteral("");
+ const QString testOutputString = QStringLiteral("@alice:example.org");
TextHandler testTextHandler;
testTextHandler.setData(testInputString);
@@ -384,7 +384,7 @@ void TextHandlerTest::receiveRichUserPill()
void TextHandlerTest::receiveRichStrikethrough()
{
const QString testInputString = QStringLiteral("Test
Test
"_ls) == 1 && handledText.count("
"_ls) == 1) { - handledText.remove(""_ls); - handledText.remove("
"_ls); - } - if (handledText.length() == 0) { return; } diff --git a/src/texthandler.cpp b/src/texthandler.cpp index 4fc6004d1..dcfbfc02f 100644 --- a/src/texthandler.cpp +++ b/src/texthandler.cpp @@ -20,6 +20,8 @@ #include "models/customemojimodel.h" #include "utils.h" +using namespace Qt::StringLiterals; + static const QStringList allowedTags = { QStringLiteral("font"), QStringLiteral("del"), QStringLiteral("h1"), QStringLiteral("h2"), QStringLiteral("h3"), QStringLiteral("h4"), QStringLiteral("h5"), QStringLiteral("h6"), QStringLiteral("blockquote"), QStringLiteral("p"), QStringLiteral("a"), QStringLiteral("ul"), @@ -93,6 +95,12 @@ QString TextHandler::handleSendText() m_nextTokenType = nextTokenType(m_dataBuffer, m_pos, m_nextToken, m_nextTokenType); } + + if (outputString.count(""_L1) == 1 && outputString.count("
"_L1) == 1 && outputString.startsWith(""_L1) && outputString.endsWith("
"_L1)) { + outputString.remove(""_L1); + outputString.remove("
"_L1); + } + return outputString; } @@ -170,6 +178,12 @@ TextHandler::handleRecieveRichText(Qt::TextFormat inputFormat, const NeoChatRoom * convert as that is what is needed for Qt::RichText. */ outputString.replace(TextRegex::strikethrough, QStringLiteral(""_L1) == 1 && outputString.count("
"_L1) == 1 && outputString.startsWith(""_L1) && outputString.endsWith("
"_L1)) { + outputString.remove(""_L1); + outputString.remove("
"_L1); + } + return outputString; }