blob: b58fe1cf8254e778addbb3ca0ec11e9387651ba5 [file] [log] [blame]
#include <QtTest/QTest>
#include <poppler-qt5.h>
class TestPassword : public QObject
{
Q_OBJECT
public:
explicit TestPassword(QObject *parent = nullptr) : QObject(parent) { }
private slots:
void password1();
void password1a();
void password2();
void password2a();
void password2b();
void password3();
void password4();
void password4b();
void password5();
};
// BUG:4557
void TestPassword::password1()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/Gday garçon - open.pdf"), "", QString::fromUtf8("garçon").toLatin1()); // clazy:exclude=qstring-allocations
QVERIFY(doc);
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password1a()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/Gday garçon - open.pdf")); // clazy:exclude=qstring-allocations
QVERIFY(doc);
QVERIFY(doc->isLocked());
QVERIFY(!doc->unlock("", QString::fromUtf8("garçon").toLatin1())); // clazy:exclude=qstring-allocations
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password2()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/Gday garçon - owner.pdf"), QString::fromUtf8("garçon").toLatin1(), ""); // clazy:exclude=qstring-allocations
QVERIFY(doc);
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password2a()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/Gday garçon - owner.pdf"), QString::fromUtf8("garçon").toLatin1()); // clazy:exclude=qstring-allocations
QVERIFY(doc);
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password2b()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/Gday garçon - owner.pdf"));
QVERIFY(doc);
QVERIFY(!doc->isLocked());
QVERIFY(!doc->unlock(QString::fromUtf8("garçon").toLatin1(), "")); // clazy:exclude=qstring-allocations
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password3()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/PasswordEncrypted.pdf"));
QVERIFY(doc);
QVERIFY(doc->isLocked());
QVERIFY(!doc->unlock("", "password"));
QVERIFY(!doc->isLocked());
delete doc;
}
// issue 690
void TestPassword::password4()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/encrypted-256.pdf"));
QVERIFY(doc);
QVERIFY(doc->isLocked());
QVERIFY(!doc->unlock("owner-secret", ""));
QVERIFY(!doc->isLocked());
delete doc;
}
// issue 690
void TestPassword::password4b()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/encrypted-256.pdf"));
QVERIFY(doc);
QVERIFY(doc->isLocked());
QVERIFY(!doc->unlock("", "user-secret"));
QVERIFY(!doc->isLocked());
delete doc;
}
void TestPassword::password5()
{
Poppler::Document *doc;
doc = Poppler::Document::load(QString::fromUtf8(TESTDATADIR "/unittestcases/PasswordEncryptedReconstructed.pdf"));
QVERIFY(doc);
QVERIFY(doc->isLocked());
QVERIFY(!doc->unlock("", "test"));
QVERIFY(!doc->isLocked());
delete doc;
}
QTEST_GUILESS_MAIN(TestPassword)
#include "check_password.moc"