File indexing completed on 2024-12-01 04:35:24

0001 /*
0002    SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "messageattachmenttest.h"
0008 #include "messages/messageattachment.h"
0009 #include <QJsonObject>
0010 #include <QStandardPaths>
0011 #include <QTest>
0012 QTEST_GUILESS_MAIN(MessageAttachmentTest)
0013 
0014 MessageAttachmentTest::MessageAttachmentTest(QObject *parent)
0015     : QObject(parent)
0016 {
0017     QStandardPaths::setTestModeEnabled(true);
0018 }
0019 
0020 void MessageAttachmentTest::shouldHaveDefaultValue()
0021 {
0022     MessageAttachment attachment;
0023     QVERIFY(attachment.description().isEmpty());
0024     QVERIFY(attachment.title().isEmpty());
0025     QVERIFY(attachment.link().isEmpty());
0026     QVERIFY(!attachment.isValid());
0027     QVERIFY(attachment.color().isEmpty());
0028     QVERIFY(attachment.mimeType().isEmpty());
0029     QVERIFY(attachment.authorName().isEmpty());
0030     QCOMPARE(attachment.imageHeight(), -1);
0031     QCOMPARE(attachment.imageWidth(), -1);
0032     QVERIFY(!attachment.isAnimatedImage());
0033     QVERIFY(attachment.attachmentFields().isEmpty());
0034     QVERIFY(!attachment.collapsed());
0035     QVERIFY(!attachment.showAttachment());
0036     QVERIFY(!attachment.hasDescription());
0037 }
0038 
0039 void MessageAttachmentTest::shouldSerializeData()
0040 {
0041     {
0042         MessageAttachment input;
0043         input.setColor(QStringLiteral("foo1"));
0044         input.setDescription(QStringLiteral("foo2"));
0045         input.setTitle(QStringLiteral("foo3"));
0046         input.setLink(QStringLiteral("foo4"));
0047         input.setImageHeight(53);
0048         input.setImageWidth(83);
0049         input.setAuthorName(QStringLiteral("auth"));
0050         const QJsonObject ba = MessageAttachment::serialize(input);
0051         const MessageAttachment output = MessageAttachment::deserialize(ba);
0052         QCOMPARE(input, output);
0053     }
0054 
0055     {
0056         MessageAttachment input;
0057         input.setDescription(QStringLiteral("foo2"));
0058         input.setTitle(QStringLiteral("foo3"));
0059         input.setLink(QStringLiteral("foo4"));
0060         const QJsonObject ba = MessageAttachment::serialize(input);
0061         const MessageAttachment output = MessageAttachment::deserialize(ba);
0062         QCOMPARE(input, output);
0063     }
0064 
0065     {
0066         MessageAttachment input;
0067         input.setColor(QStringLiteral("foo1"));
0068         input.setDescription(QStringLiteral("foo2"));
0069         input.setTitle(QStringLiteral("foo3"));
0070         input.setLink(QStringLiteral("foo4"));
0071         input.setAuthorName(QStringLiteral("auth"));
0072         const QJsonObject ba = MessageAttachment::serialize(input);
0073         const MessageAttachment output = MessageAttachment::deserialize(ba);
0074         QCOMPARE(input, output);
0075     }
0076 }
0077 
0078 void MessageAttachmentTest::shouldAllowToDownloadAttachment()
0079 {
0080     MessageAttachment input;
0081     input.setColor(QStringLiteral("foo1"));
0082     input.setDescription(QStringLiteral("foo2"));
0083     input.setTitle(QStringLiteral("foo3"));
0084     input.setLink(QStringLiteral("http://www.kde.org"));
0085     input.setAuthorName(QStringLiteral("auth"));
0086     QVERIFY(!input.canDownloadAttachment());
0087     input.setLink(QStringLiteral("bla"));
0088     QVERIFY(input.canDownloadAttachment());
0089 }
0090 
0091 #include "moc_messageattachmenttest.cpp"