diff options
author | Michal Klocek <michal.klocek@qt.io> | 2018-07-05 16:12:23 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2018-08-09 09:39:27 +0000 |
commit | 34a7c2cde9ea3fb2d4c297d60a4e16c9d99cdf9b (patch) | |
tree | fed925e2dd9eedc32d4010fa555b3e3194452fdc /tests/auto/widgets/printing | |
parent | d0f00b47cb91f1f6af920602f8bf8b263a8d7f88 (diff) |
Add printRequest()
Adds printRequested() signal for web content. This signal
is emitted on javascript window.print().
This change updates also qt printview manager implementation,
fixes a corner case and warnings about ipc unconsumed attachments.
Task-number: QTBUG-69237
Task-number: QTBUG-53745
Change-Id: I0c47b732e27e929ac6db237fb562b7d5f9b959c2
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'tests/auto/widgets/printing')
-rw-r--r-- | tests/auto/widgets/printing/tst_printing.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/widgets/printing/tst_printing.cpp b/tests/auto/widgets/printing/tst_printing.cpp index c29227c0c..2fd12b8ec 100644 --- a/tests/auto/widgets/printing/tst_printing.cpp +++ b/tests/auto/widgets/printing/tst_printing.cpp @@ -43,6 +43,7 @@ class tst_Printing : public QObject Q_OBJECT private slots: void printToPdfBasic(); + void printRequest(); #if QT_CONFIG(webengine_poppler_cpp) void printToPdfPoppler(); #endif @@ -88,6 +89,25 @@ void tst_Printing::printToPdfBasic() QCOMPARE(failedInvalidLayoutSpy.waitForResult().length(), 0); } +void tst_Printing::printRequest() +{ + QWebEnginePage webPage; + QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF(0.0, 0.0, 0.0, 0.0)); + QSignalSpy loadFinishedSpy(&webPage, &QWebEnginePage::loadFinished); + QSignalSpy printRequestedSpy(&webPage, &QWebEnginePage::printRequested); + QSignalSpy savePdfSpy(&webPage, &QWebEnginePage::pdfPrintingFinished); + CallbackSpy<QByteArray> resultSpy; + + webPage.load(QUrl("qrc:///resources/basic_printing_page.html")); + QTRY_VERIFY(loadFinishedSpy.count() == 1); + webPage.runJavaScript("window.print()"); + QTRY_VERIFY(printRequestedSpy.count() == 1); + //check if printing still works + webPage.printToPdf(resultSpy.ref(), layout); + const QByteArray data = resultSpy.waitForResult(); + QVERIFY(data.length() > 0); +} + #if QT_CONFIG(webengine_poppler_cpp) void tst_Printing::printToPdfPoppler() { |