diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-22 16:12:38 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-09-05 14:43:55 +0000 |
commit | 1e11575a32685f7ac01f8b0cd425fa8d3ce3de33 (patch) | |
tree | 8e9182bd8eb9866b35ed9507275428f184bf2665 /tests | |
parent | ed1c711532227a7504fe6a700d9051a443c3a61b (diff) |
Avoid reattach of page before deleting it
Also fixes potential double delete if you do delete a view's implied
page.
Change-Id: Ib74128c0801f992694f4a5d8c148974039a6c7b2
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Zakor Tamas <ztamas@inf.u-szeged.hu>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 15 |
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 5f30fa6b9..1499a5f05 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -188,6 +188,7 @@ private Q_SLOTS: void webUIURLs(); void visibilityState(); void jsKeyboardEvent(); + void deletePage(); }; // This will be called before the first test function is executed. @@ -2793,5 +2794,19 @@ void tst_QWebEngineView::jsKeyboardEvent() QCOMPARE(evaluateJavaScriptSync(view.page(), "log"), expected); } +void tst_QWebEngineView::deletePage() +{ + QWebEngineView view; + QWebEnginePage *page = view.page(); + QVERIFY(page); + QCOMPARE(page->parent(), &view); + delete page; + // Test that a new page is created and that it is useful: + QVERIFY(view.page()); + QSignalSpy spy(view.page(), &QWebEnginePage::loadFinished); + view.page()->load(QStringLiteral("about:blank")); + QTRY_VERIFY(spy.count()); +} + QTEST_MAIN(tst_QWebEngineView) #include "tst_qwebengineview.moc" |