diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-04-13 17:25:16 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-04-13 17:25:16 +0200 |
commit | 2dce0008ce53d27d281ad2dc00eb32d25ae5fc84 (patch) | |
tree | 55d97b68f56b78f3388cdaaa4ae69648b7057f68 /tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | |
parent | 919dd97e835f469609a0710eb91f829a6d70e88c (diff) | |
parent | 8fe660ecbbe1f126ce0da694adff956ad7159870 (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: Ia01415e5a44b1df9ed8b3966ff3b39a414b1563c
Diffstat (limited to 'tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index fd17f401b..7af08dbde 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -42,6 +42,7 @@ #include <QQuickItem> #include <QQuickWidget> #include <QtWebEngineCore/qwebenginehttprequest.h> +#include <QScopeGuard> #include <QTcpServer> #include <QTcpSocket> #include <QStyle> @@ -161,6 +162,7 @@ private Q_SLOTS: void jsKeyboardEvent_data(); void jsKeyboardEvent(); void deletePage(); + void autoDeleteOnExternalPageDelete(); void closeOpenerTab(); void switchPage(); void setPageDeletesImplicitPage(); @@ -3137,7 +3139,7 @@ void tst_QWebEngineView::webUIURLs_data() QTest::newRow("media-engagement") << QUrl("chrome://media-engagement") << false; QTest::newRow("media-internals") << QUrl("chrome://media-internals") << true; QTest::newRow("net-export") << QUrl("chrome://net-export") << false; - QTest::newRow("net-internals") << QUrl("chrome://net-internals") << false; + QTest::newRow("net-internals") << QUrl("chrome://net-internals") << true; QTest::newRow("network-error") << QUrl("chrome://network-error") << false; QTest::newRow("network-errors") << QUrl("chrome://network-errors") << true; QTest::newRow("ntp-tiles-internals") << QUrl("chrome://ntp-tiles-internals") << false; @@ -3288,6 +3290,26 @@ void tst_QWebEngineView::deletePage() QTRY_VERIFY(spy.count()); } +void tst_QWebEngineView::autoDeleteOnExternalPageDelete() +{ + QPointer<QWebEngineView> view = new QWebEngineView; + QPointer<QWebEnginePage> page = new QWebEnginePage; + auto sg = qScopeGuard([&] () { delete view; delete page; }); + + QSignalSpy spy(page, &QWebEnginePage::loadFinished); + view->setPage(page); + view->show(); + view->resize(320, 240); + page->load(QUrl("about:blank")); + QTRY_VERIFY(spy.count()); + QVERIFY(page->parent() != view); + + auto sc = QObject::connect(page, &QWebEnginePage::destroyed, view, &QWebEngineView::deleteLater); + QTimer::singleShot(0, page, &QObject::deleteLater); + QTRY_VERIFY(!page); + QTRY_VERIFY(!view); +} + class TestView : public QWebEngineView { Q_OBJECT public: |