File indexing completed on 2024-04-28 05:02:16
0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 #include <QtTest/QtTest> 0005 0006 #include "utils/customemoji.h" 0007 0008 class CustomEmojiTest : public QObject 0009 { 0010 Q_OBJECT 0011 0012 private Q_SLOTS: 0013 void initTestCase() 0014 { 0015 QFile emojiFile(QLatin1String(DATA_DIR) + QLatin1Char('/') + QStringLiteral("emoji.json")); 0016 emojiFile.open(QFile::ReadOnly); 0017 0018 doc = QJsonDocument::fromJson(emojiFile.readAll()); 0019 } 0020 0021 void testCustomEmojiParsing() 0022 { 0023 QVERIFY(doc.isArray()); 0024 0025 auto emojis = CustomEmoji::parseCustomEmojis(doc.array()); 0026 QCOMPARE(emojis.size(), 2); 0027 QCOMPARE(emojis[0].shortcode, QStringLiteral("artaww")); 0028 QCOMPARE(emojis[0].url, QStringLiteral("https://cdn.masto.host/mastodonart/custom_emojis/images/000/181/127/static/63bd6a0097df7bbf.png")); 0029 QVERIFY(emojis[0].isCustom); 0030 } 0031 0032 void testCustomEmojiReplacement() 0033 { 0034 auto emojis = CustomEmoji::parseCustomEmojis(doc.array()); 0035 0036 QString content{QStringLiteral(":artaww: :meowybara:")}; 0037 0038 content = CustomEmoji::replaceCustomEmojis(emojis, content); 0039 QCOMPARE(content, 0040 QStringLiteral( 0041 "<img height=\"16\" align=\"middle\" width=\"16\" " 0042 "src=\"https://cdn.masto.host/mastodonart/custom_emojis/images/000/181/127/static/63bd6a0097df7bbf.png\"> <img height=\"16\" " 0043 "align=\"middle\" width=\"16\" src=\"https://cdn.masto.host/mastodonart/custom_emojis/images/000/389/600/static/4dd38081c3f8f04c.png\">")); 0044 } 0045 0046 private: 0047 QJsonDocument doc; 0048 }; 0049 0050 QTEST_MAIN(CustomEmojiTest) 0051 #include "customemojitest.moc"