File indexing completed on 2025-05-04 04:59:01
0001 /* 0002 SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only 0005 */ 0006 0007 #include "viewertest.h" 0008 #include "messageviewer/viewer.h" 0009 #include <KActionCollection> 0010 #include <QTest> 0011 #include <qtestmouse.h> 0012 0013 ViewerTest::ViewerTest() = default; 0014 0015 void ViewerTest::shouldHaveDefaultValuesOnCreation() 0016 { 0017 auto viewer = new MessageViewer::Viewer(nullptr, nullptr, new KActionCollection(this)); 0018 viewer->show(); 0019 QVERIFY(QTest::qWaitForWindowExposed(viewer)); 0020 0021 auto mViewer = viewer->findChild<QWidget *>(QStringLiteral("mViewer")); 0022 QVERIFY(mViewer); 0023 QCOMPARE(mViewer->isVisible(), true); 0024 0025 auto sliderContainer = viewer->findChild<QWidget *>(QStringLiteral("slidercontainer")); 0026 QVERIFY(sliderContainer); 0027 QCOMPARE(sliderContainer->isVisible(), false); 0028 0029 auto colorBar = viewer->findChild<QWidget *>(QStringLiteral("mColorBar")); 0030 QVERIFY(colorBar); 0031 0032 auto scandetectionWidget = viewer->findChild<QWidget *>(QStringLiteral("scandetectionwarning")); 0033 QVERIFY(!scandetectionWidget); // loaded on demand 0034 0035 auto opensavefilefolderwidget = viewer->findChild<QWidget *>(QStringLiteral("opensavefilefolderwidget")); 0036 QVERIFY(!opensavefilefolderwidget); // loaded on demand 0037 0038 QVERIFY(viewer->toggleFixFontAction()); 0039 QVERIFY(viewer->toggleMimePartTreeAction()); 0040 QVERIFY(viewer->selectAllAction()); 0041 QVERIFY(viewer->copyURLAction()); 0042 QVERIFY(viewer->copyAction()); 0043 QVERIFY(viewer->urlOpenAction()); 0044 QVERIFY(viewer->speakTextAction()); 0045 QVERIFY(viewer->copyImageLocation()); 0046 QVERIFY(viewer->viewSourceAction()); 0047 QVERIFY(viewer->findInMessageAction()); 0048 QVERIFY(viewer->saveAsAction()); 0049 QVERIFY(viewer->saveMessageDisplayFormatAction()); 0050 QVERIFY(viewer->resetMessageDisplayFormatAction()); 0051 QVERIFY(viewer->urlClicked().isEmpty()); 0052 QVERIFY(viewer->imageUrlClicked().isEmpty()); 0053 QCOMPARE(viewer->isFixedFont(), false); 0054 QVERIFY(viewer->shareServiceUrlMenu()); 0055 delete viewer; 0056 } 0057 0058 static const char s_mail1[] = 0059 "From: Konqui <konqui@kde.org>\n" 0060 "To: Friends <friends@kde.org>\n" 0061 "Date: Sun, 21 Mar 1993 23:56:48 -0800 (PST)\n" 0062 "Subject: Sample message\n" 0063 "MIME-Version: 1.0\n" 0064 "Content-type: text/plain; charset=us-ascii\n" 0065 "\n" 0066 "\n" 0067 "This is a test message.\n" 0068 "\n"; 0069 0070 static const char s_mail2[] = 0071 "From: David Faure <dfaure@example.com>\n" 0072 "To: Friends <friends@example.com>\n" 0073 "Date: Sun, 31 Aug 2016 23:56:48 +0200 (CEST)\n" 0074 "Subject: Second mail\n" 0075 "MIME-Version: 1.0\n" 0076 "Content-type: text/plain; charset=\"us-ascii\"\n" 0077 "\n" 0078 "\n" 0079 "This is the second message.\n" 0080 "\n"; 0081 0082 KMime::Message::Ptr createMsg(const char *data) 0083 { 0084 KMime::Message::Ptr msgPtr(new KMime::Message()); 0085 msgPtr->setContent(QByteArray(data)); 0086 msgPtr->parse(); 0087 return msgPtr; 0088 } 0089 0090 void ViewerTest::shouldDisplayMessage() 0091 { 0092 MessageViewer::Viewer viewer(nullptr, nullptr, new KActionCollection(this)); 0093 viewer.setMessage(createMsg(s_mail1), MimeTreeParser::Force); 0094 // not sure what to check, but at least we check it neither crashes nor hangs 0095 // TODO: retrieve message text and check it 0096 } 0097 0098 void ViewerTest::shouldSwitchToAnotherMessage() 0099 { 0100 MessageViewer::Viewer viewer(nullptr, nullptr, new KActionCollection(this)); 0101 viewer.setMessage(createMsg(s_mail1), MimeTreeParser::Force); 0102 0103 viewer.setMessage(createMsg(s_mail2), MimeTreeParser::Force); 0104 } 0105 0106 QTEST_MAIN(ViewerTest) 0107 0108 #include "moc_viewertest.cpp"