1 /*
2 SPDX-FileCopyrightText: 2014-2021 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-only
5 */
6
7 #include "viewertest.h"
8 #include "messageviewer/viewer.h"
9 #include <KActionCollection>
10 #include <QTest>
11 #include <qtestmouse.h>
12
ViewerTest()13 ViewerTest::ViewerTest()
14 {
15 }
16
shouldHaveDefaultValuesOnCreation()17 void ViewerTest::shouldHaveDefaultValuesOnCreation()
18 {
19 auto viewer = new MessageViewer::Viewer(nullptr, nullptr, new KActionCollection(this));
20 viewer->show();
21 QVERIFY(QTest::qWaitForWindowExposed(viewer));
22
23 auto mViewer = viewer->findChild<QWidget *>(QStringLiteral("mViewer"));
24 QVERIFY(mViewer);
25 QCOMPARE(mViewer->isVisible(), true);
26
27 auto sliderContainer = viewer->findChild<QWidget *>(QStringLiteral("slidercontainer"));
28 QVERIFY(sliderContainer);
29 QCOMPARE(sliderContainer->isVisible(), false);
30
31 auto colorBar = viewer->findChild<QWidget *>(QStringLiteral("mColorBar"));
32 QVERIFY(colorBar);
33
34 auto scandetectionWidget = viewer->findChild<QWidget *>(QStringLiteral("scandetectionwarning"));
35 QVERIFY(scandetectionWidget);
36 QCOMPARE(scandetectionWidget->isVisible(), false);
37
38 auto opensavefilefolderwidget = viewer->findChild<QWidget *>(QStringLiteral("opensavefilefolderwidget"));
39 QVERIFY(opensavefilefolderwidget);
40 QCOMPARE(opensavefilefolderwidget->isVisible(), false);
41
42 QVERIFY(viewer->toggleFixFontAction());
43 QVERIFY(viewer->toggleMimePartTreeAction());
44 QVERIFY(viewer->selectAllAction());
45 QVERIFY(viewer->copyURLAction());
46 QVERIFY(viewer->copyAction());
47 QVERIFY(viewer->urlOpenAction());
48 QVERIFY(viewer->speakTextAction());
49 QVERIFY(viewer->copyImageLocation());
50 QVERIFY(viewer->viewSourceAction());
51 QVERIFY(viewer->findInMessageAction());
52 QVERIFY(viewer->saveAsAction());
53 QVERIFY(viewer->saveMessageDisplayFormatAction());
54 QVERIFY(viewer->resetMessageDisplayFormatAction());
55 QVERIFY(viewer->urlClicked().isEmpty());
56 QVERIFY(viewer->imageUrlClicked().isEmpty());
57 QCOMPARE(viewer->isFixedFont(), false);
58 QVERIFY(viewer->shareServiceUrlMenu());
59 delete viewer;
60 }
61
62 static const char s_mail1[] =
63 "From: Konqui <konqui@kde.org>\n"
64 "To: Friends <friends@kde.org>\n"
65 "Date: Sun, 21 Mar 1993 23:56:48 -0800 (PST)\n"
66 "Subject: Sample message\n"
67 "MIME-Version: 1.0\n"
68 "Content-type: text/plain; charset=us-ascii\n"
69 "\n"
70 "\n"
71 "This is a test message.\n"
72 "\n";
73
74 static const char s_mail2[] =
75 "From: David Faure <dfaure@example.com>\n"
76 "To: Friends <friends@example.com>\n"
77 "Date: Sun, 31 Aug 2016 23:56:48 +0200 (CEST)\n"
78 "Subject: Second mail\n"
79 "MIME-Version: 1.0\n"
80 "Content-type: text/plain; charset=\"us-ascii\"\n"
81 "\n"
82 "\n"
83 "This is the second message.\n"
84 "\n";
85
createMsg(const char * data)86 KMime::Message::Ptr createMsg(const char *data)
87 {
88 KMime::Message::Ptr msgPtr(new KMime::Message());
89 msgPtr->setContent(QByteArray(data));
90 msgPtr->parse();
91 return msgPtr;
92 }
93
shouldDisplayMessage()94 void ViewerTest::shouldDisplayMessage()
95 {
96 MessageViewer::Viewer viewer(nullptr, nullptr, new KActionCollection(this));
97 viewer.setMessage(createMsg(s_mail1), MimeTreeParser::Force);
98 // not sure what to check, but at least we check it neither crashes nor hangs
99 // TODO: retrieve message text and check it
100 }
101
shouldSwitchToAnotherMessage()102 void ViewerTest::shouldSwitchToAnotherMessage()
103 {
104 MessageViewer::Viewer viewer(nullptr, nullptr, new KActionCollection(this));
105 viewer.setMessage(createMsg(s_mail1), MimeTreeParser::Force);
106
107 viewer.setMessage(createMsg(s_mail2), MimeTreeParser::Force);
108 }
109
110 QTEST_MAIN(ViewerTest)
111