From e44b509bad1f06d7e257bf09e80dfb5440cdbf9e Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 29 Apr 2019 15:28:53 +0200 Subject: Handle corner case of assigning an implicit page to a new view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pass the ownership on to the the new view, so it is still handled like an implicit page. Change-Id: I76ad3cb349a492e60e3ad2bdd4aebaabed07bd4f Reviewed-by: Jüri Valdmann --- tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp') diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 6ab63b54e..b9337cbee 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -196,6 +196,7 @@ private Q_SLOTS: void closeOpenerTab(); void switchPage(); void setPageDeletesImplicitPage(); + void setPageDeletesImplicitPage2(); void setViewDeletesImplicitPage(); void setPagePreservesExplicitPage(); void setViewPreservesExplicitPage(); @@ -3210,6 +3211,20 @@ void tst_QWebEngineView::setPageDeletesImplicitPage() QVERIFY(!implicitPage); // should be deleted } +void tst_QWebEngineView::setPageDeletesImplicitPage2() +{ + QWebEngineView view1; + QWebEngineView view2; + QPointer implicitPage = view1.page(); + view2.setPage(view1.page()); + QVERIFY(implicitPage); + QVERIFY(view1.page() != implicitPage); + QWebEnginePage explicitPage; + view2.setPage(&explicitPage); + QCOMPARE(view2.page(), &explicitPage); + QVERIFY(!implicitPage); // should be deleted +} + void tst_QWebEngineView::setViewDeletesImplicitPage() { QWebEngineView view; -- cgit v1.2.3