summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/printing
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2018-07-02 13:34:17 +0200
committerMichal Klocek <michal.klocek@qt.io>2018-08-09 09:39:21 +0000
commitd0f00b47cb91f1f6af920602f8bf8b263a8d7f88 (patch)
treeda12438af1e90c20a9b6c9184f62b01beeec2626 /tests/auto/widgets/printing
parent9cbe64c54dee8451794e29f4357ccfac6d883e6b (diff)
Add printToPdfPoppler test
Task-number: QTBUG-69550 Change-Id: I38fb8a32ad1967fc8a8568ad6c02ca3ca3000354 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'tests/auto/widgets/printing')
-rw-r--r--tests/auto/widgets/printing/printing.pro10
-rw-r--r--tests/auto/widgets/printing/tst_printing.cpp50
2 files changed, 54 insertions, 6 deletions
diff --git a/tests/auto/widgets/printing/printing.pro b/tests/auto/widgets/printing/printing.pro
index 4926103e7..92f5d611c 100644
--- a/tests/auto/widgets/printing/printing.pro
+++ b/tests/auto/widgets/printing/printing.pro
@@ -1,2 +1,10 @@
+include($$QTWEBENGINE_OUT_ROOT/src/core/qtwebenginecore-config.pri) # workaround for QTBUG-68093
+QT_FOR_CONFIG += webenginecore-private
+
include(../tests.pri)
-QT *= core-private
+QT *= core-private webenginecore-private
+
+qtConfig(webengine-poppler-cpp) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += poppler-cpp
+}
diff --git a/tests/auto/widgets/printing/tst_printing.cpp b/tests/auto/widgets/printing/tst_printing.cpp
index aa8b70c4c..c29227c0c 100644
--- a/tests/auto/widgets/printing/tst_printing.cpp
+++ b/tests/auto/widgets/printing/tst_printing.cpp
@@ -26,30 +26,38 @@
**
****************************************************************************/
+#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h>
#include <QWebEnginePage>
#include <QTemporaryDir>
#include <QTest>
#include <QSignalSpy>
#include <util.h>
+#if QT_CONFIG(webengine_poppler_cpp)
+#include <poppler-document.h>
+#include <poppler-page.h>
+#endif
+
class tst_Printing : public QObject
{
Q_OBJECT
private slots:
- void printToPdf();
+ void printToPdfBasic();
+#if QT_CONFIG(webengine_poppler_cpp)
+ void printToPdfPoppler();
+#endif
};
-
-void tst_Printing::printToPdf()
+void tst_Printing::printToPdfBasic()
{
QTemporaryDir tempDir(QDir::tempPath() + "/tst_qwebengineview-XXXXXX");
QVERIFY(tempDir.isValid());
QWebEnginePage page;
- QSignalSpy spy(&page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spy(&page, &QWebEnginePage::loadFinished);
page.load(QUrl("qrc:///resources/basic_printing_page.html"));
QTRY_VERIFY(spy.count() == 1);
- QSignalSpy savePdfSpy(&page, SIGNAL(pdfPrintingFinished(const QString&, bool)));
+ QSignalSpy savePdfSpy(&page, &QWebEnginePage::pdfPrintingFinished);
QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0.0, 0.0, 0.0, 0.0));
QString path = tempDir.path() + "/print_1_success.pdf";
page.printToPdf(path, layout);
@@ -80,5 +88,37 @@ void tst_Printing::printToPdf()
QCOMPARE(failedInvalidLayoutSpy.waitForResult().length(), 0);
}
+#if QT_CONFIG(webengine_poppler_cpp)
+void tst_Printing::printToPdfPoppler()
+{
+ // check if generated pdf is correct by searching for a know string on the page
+ using namespace poppler;
+ QWebEnginePage webPage;
+ QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0.0, 0.0, 0.0, 0.0));
+
+ QSignalSpy spy(&webPage, &QWebEnginePage::loadFinished);
+ QSignalSpy savePdfSpy(&webPage, &QWebEnginePage::pdfPrintingFinished);
+ CallbackSpy<QByteArray> resultSpy;
+
+ webPage.load(QUrl("qrc:///resources/basic_printing_page.html"));
+ QTRY_VERIFY(spy.count() == 1);
+ webPage.printToPdf(resultSpy.ref(), layout);
+ const QByteArray data = resultSpy.waitForResult();
+ QVERIFY(data.length() > 0);
+
+ QScopedPointer<document> pdf(document::load_from_raw_data(data.constData(), data.length()));
+ QVERIFY(pdf);
+
+ const int pages = pdf->pages();
+ QVERIFY(pages == 1);
+
+ QScopedPointer<page> pdfPage(pdf->create_page(0));
+ rectf rect;
+ QVERIFY2(pdfPage->search(ustring::from_latin1("Hello Paper World"), rect, page::search_from_top,
+ case_sensitive ), "Could not find text");
+}
+#endif
+
+
QTEST_MAIN(tst_Printing)
#include "tst_printing.moc"