diff options
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 06b19216d..95e6f5374 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -20,6 +20,7 @@ */ #include "../util.h" +#include <QByteArray> #include <QClipboard> #include <QDir> #include <QGraphicsWidget> @@ -237,6 +238,8 @@ private Q_SLOTS: void toPlainTextLoadFinishedRace_data(); void toPlainTextLoadFinishedRace(); + void printToPdf(); + private: QWebEngineView* m_view; QWebEnginePage* m_page; @@ -3306,9 +3309,9 @@ void tst_QWebEnginePage::loadSignalsOrder() QFETCH(QUrl, url); QWebEnginePage page; SpyForLoadSignalsOrder loadSpy(&page); - waitForSignal(&loadSpy, SIGNAL(started())); + waitForSignal(&loadSpy, SIGNAL(started()), 500); page.load(url); - QTRY_VERIFY(loadSpy.isFinished()); + QTRY_VERIFY_WITH_TIMEOUT(loadSpy.isFinished(), 500); } void tst_QWebEnginePage::undoActionHaveCustomText() @@ -4980,5 +4983,36 @@ void tst_QWebEnginePage::toPlainTextLoadFinishedRace() QVERIFY(spy.count() == 3); } +void tst_QWebEnginePage::printToPdf() +{ + QTemporaryDir tempDir(QDir::tempPath() + "/tst_qwebengineview-XXXXXX"); + QVERIFY(tempDir.isValid()); + QWebEnginePage page; + QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); + page.load(QUrl("qrc:///resources/basic_printing_page.html")); + QTRY_VERIFY(spy.count() == 1); + + 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); + QTRY_VERIFY(QFile::exists(path)); + +#if !defined(Q_OS_WIN) + path = tempDir.path() + "/print_//2_failed.pdf"; +#else + path = tempDir.path() + "/print_|2_failed.pdf"; +#endif + page.printToPdf(path, QPageLayout()); + QTRY_VERIFY(!QFile::exists(path)); + + CallbackSpy<QByteArray> successfulSpy; + page.printToPdf(layout, successfulSpy.ref()); + QVERIFY(successfulSpy.waitForResult().length() > 0); + + CallbackSpy<QByteArray> failedInvalidLayoutSpy; + page.printToPdf(QPageLayout(), failedInvalidLayoutSpy.ref()); + QCOMPARE(failedInvalidLayoutSpy.waitForResult().length(), 0); +} + QTEST_MAIN(tst_QWebEnginePage) #include "tst_qwebenginepage.moc" |