File indexing completed on 2025-02-23 05:00:15

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "webengineexportpdfpagejobtest.h"
0008 #include "webengineexportpdfpagejob.h"
0009 #include <QSignalSpy>
0010 #include <QStandardPaths>
0011 #include <QTest>
0012 #include <QWebEngineView>
0013 QTEST_MAIN(WebEngineExportPdfPageJobTest)
0014 WebEngineExportPdfPageJobTest::WebEngineExportPdfPageJobTest(QObject *parent)
0015     : QObject(parent)
0016 {
0017     QStandardPaths::setTestModeEnabled(true);
0018 }
0019 
0020 void WebEngineExportPdfPageJobTest::shouldHaveDefaultValue()
0021 {
0022     WebEngineViewer::WebEngineExportPdfPageJob job;
0023     QVERIFY(!job.engineView());
0024     QVERIFY(job.pdfPath().isEmpty());
0025     QVERIFY(!job.canStart());
0026 }
0027 
0028 void WebEngineExportPdfPageJobTest::shouldBeAbleToExport()
0029 {
0030     WebEngineViewer::WebEngineExportPdfPageJob job;
0031     QVERIFY(!job.canStart());
0032     job.setPdfPath(QStringLiteral("foo"));
0033     QVERIFY(!job.canStart());
0034     auto webEngine = new QWebEngineView;
0035 
0036     job.setEngineView(webEngine);
0037     QVERIFY(job.canStart());
0038     delete webEngine;
0039 }
0040 
0041 void WebEngineExportPdfPageJobTest::shouldEmitSignalFailed()
0042 {
0043     WebEngineViewer::WebEngineExportPdfPageJob job;
0044     QSignalSpy spyFailed(&job, &WebEngineViewer::WebEngineExportPdfPageJob::exportPdfFailed);
0045     QSignalSpy spySuccess(&job, &WebEngineViewer::WebEngineExportPdfPageJob::exportToPdfSuccess);
0046     QVERIFY(!job.engineView());
0047     job.start();
0048     QCOMPARE(spyFailed.count(), 1);
0049     QCOMPARE(spySuccess.count(), 0);
0050 }
0051 
0052 void WebEngineExportPdfPageJobTest::shouldEmitSignalSuccess()
0053 {
0054     WebEngineViewer::WebEngineExportPdfPageJob job;
0055     QSignalSpy spyFailed(&job, &WebEngineViewer::WebEngineExportPdfPageJob::exportPdfFailed);
0056     QSignalSpy spySuccess(&job, &WebEngineViewer::WebEngineExportPdfPageJob::exportToPdfSuccess);
0057     job.setPdfPath(QDir::tempPath() + QStringLiteral("/test-webengine-export-test.pdf"));
0058     auto webEngine = new QWebEngineView;
0059     job.setEngineView(webEngine);
0060 
0061     job.start();
0062     QVERIFY(spySuccess.wait());
0063 
0064     QCOMPARE(spyFailed.count(), 0);
0065     QCOMPARE(spySuccess.count(), 1);
0066     delete webEngine;
0067 }
0068 
0069 #include "moc_webengineexportpdfpagejobtest.cpp"