summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebengineview
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-04-29 15:28:53 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-04-30 08:42:18 +0000
commite44b509bad1f06d7e257bf09e80dfb5440cdbf9e (patch)
treebcc7e76650eeca4175db2fe664654df47bcdc607 /tests/auto/widgets/qwebengineview
parent26ac59af2306b4f6f83e791bb3e828b9f7b1a721 (diff)
Handle corner case of assigning an implicit page to a new view
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 <juri.valdmann@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebengineview')
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp15
1 files changed, 15 insertions, 0 deletions
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<QWebEnginePage> 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;