File: messageparserbenchmark.cpp

package info (click to toggle)
kmime 25.12.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,548 kB
  • sloc: cpp: 10,880; sh: 36; xml: 20; makefile: 16; perl: 12
file content (35 lines) | stat: -rw-r--r-- 990 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
    SPDX-FileCopyrightText: 2024 Volker Krause <vkrause@kde.org>
    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#include <KMime/Message>

#include <QFile>
#include <QTest>
using namespace Qt::Literals;

class MessageParserBenchmark : public QObject
{
    Q_OBJECT
private Q_SLOTS:
    void testPlainTextParse()
    {
        QFile file(QLatin1StringView(TEST_DATA_DIR "/plain-text-body.mbox"));
        QVERIFY(file.open(QIODevice::ReadOnly));
        const QByteArray data = KMime::CRLFtoLF(file.readAll());

        QBENCHMARK {
            auto msg = std::make_unique<KMime::Message>();
            msg->setContent(data);
            msg->parse();
            QVERIFY(msg->subject(false));
            QCOMPARE(msg->subject()->asUnicodeString(), "New Project: Kool Desktop Environment (KDE)"_L1);
            QVERIFY(msg->decodedText().contains("Kool Desktop Environment"_L1));
        }
    }
};

QTEST_GUILESS_MAIN(MessageParserBenchmark)

#include "messageparserbenchmark.moc"