File indexing completed on 2024-12-01 04:35:22
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "customemojitest.h" 0008 #include "emoticons/customemoji.h" 0009 #include "ruqola_autotest_helper.h" 0010 #include <QJsonObject> 0011 0012 QTEST_GUILESS_MAIN(CustomEmojiTest) 0013 0014 CustomEmojiTest::CustomEmojiTest(QObject *parent) 0015 : QObject(parent) 0016 { 0017 } 0018 0019 void CustomEmojiTest::shouldHaveDefaultValue() 0020 { 0021 CustomEmoji j; 0022 QVERIFY(j.extension().isEmpty()); 0023 QVERIFY(j.identifier().isEmpty()); 0024 QVERIFY(j.name().isEmpty()); 0025 QVERIFY(j.aliases().isEmpty()); 0026 QCOMPARE(j.updatedAt(), 0); 0027 QVERIFY(j.emojiIdentifier().isEmpty()); 0028 QCOMPARE(j.isAnimatedImage(), false); 0029 } 0030 0031 void CustomEmojiTest::shouldAssignValue() 0032 { 0033 CustomEmoji j; 0034 const QString ext{QStringLiteral("foo")}; 0035 const QString id{QStringLiteral("bla")}; 0036 const QString name{QStringLiteral("bli")}; 0037 const QStringList aliases{QStringLiteral(":foo:"), QStringLiteral(":bla:")}; 0038 const qint64 updatedAt = 500; 0039 0040 j.setExtension(ext); 0041 j.setName(name); 0042 j.setIdentifier(id); 0043 j.setAliases(aliases); 0044 j.setUpdatedAt(updatedAt); 0045 0046 const QString emojiId = QLatin1Char(':') + name + QLatin1Char(':'); 0047 j.setEmojiIdentifier(emojiId); 0048 0049 QCOMPARE(j.extension(), ext); 0050 QCOMPARE(j.identifier(), id); 0051 QCOMPARE(j.name(), name); 0052 QCOMPARE(j.aliases(), aliases); 0053 QCOMPARE(j.emojiIdentifier(), emojiId); 0054 QCOMPARE(j.updatedAt(), updatedAt); 0055 } 0056 0057 void CustomEmojiTest::shouldCopyValue() 0058 { 0059 CustomEmoji j; 0060 const QString ext{QStringLiteral("foo")}; 0061 const QString id{QStringLiteral("bla")}; 0062 const QString name{QStringLiteral("bli")}; 0063 const QStringList aliases{QStringLiteral(":foo:"), QStringLiteral(":bla:")}; 0064 const qint64 updatedAt = 500; 0065 0066 j.setExtension(ext); 0067 j.setName(name); 0068 j.setIdentifier(id); 0069 j.setAliases(aliases); 0070 j.setUpdatedAt(updatedAt); 0071 const QString emojiId = QLatin1Char(':') + name + QLatin1Char(':'); 0072 j.setEmojiIdentifier(emojiId); 0073 0074 CustomEmoji copy = j; 0075 QCOMPARE(copy, j); 0076 } 0077 0078 // void CustomEmojiTest::shouldClearCachedHtml() 0079 //{ 0080 // CustomEmoji emojiRef; 0081 // emojiRef.setExtension(QStringLiteral("gif")); 0082 // emojiRef.setName(QStringLiteral("clapping")); 0083 // emojiRef.setIdentifier(QStringLiteral("scSbxNPzm9xWrNqCG")); 0084 // emojiRef.setAliases(QStringList{QStringLiteral(":clap:")}); 0085 // emojiRef.setEmojiIdentifier(QStringLiteral(":clapping:")); 0086 // emojiRef.setUpdatedAt(50); 0087 0088 // const QString cachedHtml = emojiRef.generateHtmlFromCustomEmoji(QStringLiteral("www.kde.org")); 0089 // QVERIFY(!cachedHtml.isEmpty()); 0090 // QCOMPARE(emojiRef.cachedHtml(), cachedHtml); 0091 // emojiRef.clearCachedHtml(); 0092 // QVERIFY(emojiRef.cachedHtml().isEmpty()); 0093 // QCOMPARE(emojiRef.generateHtmlFromCustomEmoji(QStringLiteral("www.kde.org")), cachedHtml); 0094 // QCOMPARE(emojiRef.cachedHtml(), cachedHtml); 0095 //} 0096 0097 void CustomEmojiTest::shouldParseEmoji_data() 0098 { 0099 QTest::addColumn<QString>("name"); 0100 QTest::addColumn<CustomEmoji>("expectedEmoji"); 0101 { 0102 CustomEmoji emojiRef; 0103 emojiRef.setExtension(QStringLiteral("jpg")); 0104 emojiRef.setName(QStringLiteral("troll")); 0105 emojiRef.setIdentifier(QStringLiteral("2cgzHwKP6Cq3iZCob")); 0106 emojiRef.setEmojiIdentifier(QStringLiteral(":troll:")); 0107 emojiRef.setUpdatedAt(1485546740427); 0108 0109 QTest::addRow("emoji") << QStringLiteral("emoji") << emojiRef; 0110 } 0111 } 0112 0113 void CustomEmojiTest::shouldParseEmoji() 0114 { 0115 QFETCH(QString, name); 0116 QFETCH(CustomEmoji, expectedEmoji); 0117 const QString originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/json/restapi/") + name + QLatin1String(".json"); 0118 const QJsonObject obj = AutoTestHelper::loadJsonObject(originalJsonFile); 0119 CustomEmoji originalEmoji; 0120 originalEmoji.parseEmoji(obj); 0121 const bool emojiIsEqual = (originalEmoji == expectedEmoji); 0122 if (!emojiIsEqual) { 0123 qDebug() << "originalEmoji " << originalEmoji; 0124 qDebug() << "ExpectedEmoji " << expectedEmoji; 0125 } 0126 QVERIFY(emojiIsEqual); 0127 } 0128 0129 // void CustomEmojiTest::shouldGenerateHtml_data() 0130 //{ 0131 // QTest::addColumn<CustomEmoji>("emoji"); 0132 // QTest::addColumn<QString>("serverUrl"); 0133 // QTest::addColumn<QString>("expectedFileName"); 0134 // QTest::addColumn<QString>("expectedUrl"); 0135 // QTest::addColumn<QString>("html"); 0136 0137 // { 0138 // CustomEmoji emojiRef; 0139 // emojiRef.setExtension(QStringLiteral("gif")); 0140 // emojiRef.setName(QStringLiteral("clapping")); 0141 // emojiRef.setIdentifier(QStringLiteral("scSbxNPzm9xWrNqCG")); 0142 // emojiRef.setAliases(QStringList{QStringLiteral("clap")}); 0143 // emojiRef.setEmojiIdentifier(QStringLiteral(":clapping:")); 0144 // emojiRef.setUpdatedAt(1514915356313); 0145 // QTest::addRow("emoji") << emojiRef << QStringLiteral("www.kde.org") 0146 // << QStringLiteral("/emoji-custom/clapping.gif") 0147 // << QStringLiteral("http://www.kde.org/emoji-custom/clapping.gif") 0148 // << QStringLiteral("<img height='22' width='22' src='http://www.kde.org/emoji-custom/clapping.gif' title=':clapping:'/>"); 0149 // } 0150 //} 0151 0152 // void CustomEmojiTest::shouldGenerateHtml() 0153 //{ 0154 // QFETCH(CustomEmoji, emoji); 0155 // QFETCH(QString, serverUrl); 0156 // QFETCH(QString, expectedFileName); 0157 // QFETCH(QString, expectedUrl); 0158 // QFETCH(QString, html); 0159 0160 // QCOMPARE(emoji.emojiFileName(), expectedFileName); 0161 // QCOMPARE(emoji.emojiUrl(serverUrl), expectedUrl); 0162 //} 0163 0164 #include "moc_customemojitest.cpp"