Page MenuHome GnuPG

classifytest.cpp
No OneTemporary

classifytest.cpp

/*
This file is part of libkleopatra's test suite.
SPDX-FileCopyrightText: 2023 g10 Code GmbH
SPDX-FileContributor: Carl Schwan <carl@carlschwan.eu>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include <Libkleo/Classify>
#include <QTemporaryDir>
#include <QTemporaryFile>
#include <QTest>
class ClassifyTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void initTestCase()
{
}
void cleanupTestCase()
{
}
void identifyFileName()
{
QTemporaryDir dir;
const auto fileName = dir.filePath(QStringLiteral("msg.asc"));
const auto fileName1 = dir.filePath(QStringLiteral("msg(1).asc"));
{
QFile asc(fileName);
QVERIFY(asc.open(QIODevice::WriteOnly));
QFile asc1(fileName1);
QVERIFY(asc1.open(QIODevice::WriteOnly));
}
QVERIFY(Kleo::isMimeFile(Kleo::classify(fileName)));
QVERIFY(Kleo::isMimeFile(fileName1));
}
void identifyMimeFileExtensionTest()
{
QTemporaryFile mbox;
mbox.setFileTemplate("XXXXXX.mbox");
QVERIFY(mbox.open());
QVERIFY(Kleo::mayBeMimeFile(Kleo::classify(mbox.fileName())));
QTemporaryFile eml;
eml.setFileTemplate("XXXXXX.eml");
QVERIFY(eml.open());
QVERIFY(Kleo::mayBeMimeFile(eml.fileName()));
QCOMPARE(QStringLiteral("Ascii, MimeFile"), Kleo::printableClassification(Kleo::classify(eml.fileName())));
}
void identifyCertificateStoreExtensionTest()
{
QTemporaryFile crl;
crl.setFileTemplate("XXXXXX.crl");
QVERIFY(crl.open());
QVERIFY(Kleo::isCertificateRevocationList(crl.fileName()));
}
void findSignaturesTest()
{
QTemporaryFile sig;
sig.setFileTemplate("XXXXXX.sig");
QVERIFY(sig.open());
QFileInfo fi(sig.fileName());
const auto signatures = Kleo::findSignatures(fi.baseName());
QCOMPARE(1, signatures.count());
QCOMPARE(fi.baseName() + QStringLiteral(".sig"), signatures[0]);
}
void findOutputFileNameNotFoundTest()
{
QTemporaryFile unknown;
unknown.setFileTemplate("XXXXXX.unknown");
QVERIFY(unknown.open());
QCOMPARE(unknown.fileName() + QStringLiteral(".out"), Kleo::outputFileName(unknown.fileName()));
}
void findOutputFileNameTest()
{
QTemporaryFile sig;
sig.setFileTemplate("XXXXXX.sig");
QVERIFY(sig.open());
QFileInfo fi(sig.fileName());
QCOMPARE(fi.path() + QLatin1Char('/') + fi.baseName(), Kleo::outputFileName(sig.fileName()));
}
void test_outputFileExtension()
{
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::CipherText | Kleo::Class::Binary, false), QStringLiteral("gpg"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::CipherText | Kleo::Class::Binary, true), QStringLiteral("pgp"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::CipherText | Kleo::Class::Ascii, false), QStringLiteral("asc"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::CipherText | Kleo::Class::Ascii, true), QStringLiteral("asc"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::DetachedSignature | Kleo::Class::Binary, false), QStringLiteral("sig"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::DetachedSignature | Kleo::Class::Binary, true), QStringLiteral("pgp"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::DetachedSignature | Kleo::Class::Ascii, false), QStringLiteral("asc"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::OpenPGP | Kleo::Class::DetachedSignature | Kleo::Class::Ascii, true), QStringLiteral("asc"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::CMS | Kleo::Class::CipherText | Kleo::Class::Binary, false), QStringLiteral("p7m"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::CMS | Kleo::Class::CipherText | Kleo::Class::Ascii, false), QStringLiteral("p7m"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::CMS | Kleo::Class::DetachedSignature | Kleo::Class::Binary, false), QStringLiteral("p7s"));
QCOMPARE(Kleo::outputFileExtension(Kleo::Class::CMS | Kleo::Class::DetachedSignature | Kleo::Class::Ascii, false), QStringLiteral("p7s"));
}
};
QTEST_MAIN(ClassifyTest)
#include "classifytest.moc"

File Metadata

Mime Type
text/x-c
Expires
Tue, Dec 30, 5:45 PM (1 d, 14 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
3e/0f/36f5fd50c6dbb0a44856d9e8c77f

Event Timeline