summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebengineview
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-03-15 15:00:15 +0100
committerKirill Burtsev <kirill.burtsev@qt.io>2022-03-24 22:03:53 +0100
commite8e381119ca5b08add50d13ab9d275d9ab55471c (patch)
tree2368fdc56a2032da866cad1f2b9a4e34bd0cdbe4 /tests/auto/widgets/qwebengineview
parent67a59057b107ed8bea4db818538f4d30b793a90e (diff)
Avoid crashing on context free web actions
If a web action that depends on a context is called, do nothing instead of crashing. Pick-to: 6.3 6.2 Fixes: QTBUG-101724 Change-Id: I7a0040a58e9dc7fa14f0cae71cf1bcd086b61c54 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebengineview')
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index bbd1fbd16..e4df3f711 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -173,6 +173,7 @@ private Q_SLOTS:
void setViewPreservesExplicitPage();
void closeDiscardsPage();
void loadAfterRendererCrashed();
+ void inspectElement();
};
// This will be called before the first test function is executed.
@@ -3481,5 +3482,36 @@ void tst_QWebEngineView::loadAfterRendererCrashed()
QVERIFY(loadSpy.first().first().toBool());
}
+void tst_QWebEngineView::inspectElement()
+{
+ QWebEngineView view;
+ view.resize(640, 480);
+ view.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&view));
+
+ auto page = view.page();
+ // shouldn't do anything until page is set
+ page->triggerAction(QWebEnginePage::InspectElement);
+ QTest::qWait(100);
+
+ QSignalSpy spy(&view, &QWebEngineView::loadFinished);
+ view.load(QUrl("data:text/plain,foobarbaz"));
+ QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 12000);
+
+ // shouldn't do anything since inspector is not attached
+ page->triggerAction(QWebEnginePage::InspectElement);
+ QTest::qWait(100);
+
+ QWebEngineView inspectorView;
+ inspectorView.resize(640, 480);
+ inspectorView.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&inspectorView));
+ inspectorView.page()->setInspectedPage(page);
+
+ page->triggerAction(QWebEnginePage::InspectElement);
+ // TODO verify somehow
+ QTest::qWait(100);
+}
+
QTEST_MAIN(tst_QWebEngineView)
#include "tst_qwebengineview.moc"