diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 9ba242e68f30a9c93999b57046578cb973b1e2a1..19f9b6df15757cec7ca4c5ec820aab28d8f27d6e 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -200,6 +200,7 @@ private Q_SLOTS: void notificationRequest_data(); void notificationRequest(); void sendNotification(); + void contentsSize(); private: static QPoint elementCenter(QWebEnginePage *page, const QString &id); @@ -3357,6 +3358,34 @@ void tst_QWebEnginePage::sendNotification() QTRY_VERIFY2(page.messages.contains("onclose"), page.messages.join("\n").toLatin1().constData()); } +void tst_QWebEnginePage::contentsSize() +{ + m_view->resize(800, 600); + m_view->show(); + + QSignalSpy loadSpy(m_page, &QWebEnginePage::loadFinished); + QSignalSpy contentsSizeChangedSpy(m_page, &QWebEnginePage::contentsSizeChanged); + + m_view->setHtml(QString("<html><body style=\"width: 1600px; height: 1200px;\"><p>hi</p></body></html>")); + + QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE(contentsSizeChangedSpy.count(), 1); + + // Verify the page's contents size is not limited by the view's size. + QCOMPARE(m_page->contentsSize().width(), 1608); + QCOMPARE(m_page->contentsSize().height(), 1216); + + // Verify resizing the view does not affect the contents size. + m_view->resize(2400, 1800); + QCOMPARE(m_page->contentsSize().width(), 1608); + QCOMPARE(m_page->contentsSize().height(), 1216); + + // Verify resizing the view does not affect the contents size. + m_view->resize(1600, 1200); + QCOMPARE(m_page->contentsSize().width(), 1608); + QCOMPARE(m_page->contentsSize().height(), 1216); +} + static QByteArrayList params = {QByteArrayLiteral("--use-fake-device-for-media-stream")}; W_QTEST_MAIN(tst_QWebEnginePage, params)