aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-12-03 14:37:49 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-12-07 15:53:32 +0100
commite8596de70e46e98a851ac8204e294e5ef4994b96 (patch)
tree06a2555357d5b6ceea929d3a43383eed09b07f5d /tests/auto/qml
parentc8d98dc206714abd5c0dc76008ffa729973d3a8f (diff)
Allow checking for and catching errors from QJSEngine
As you can manually throw an error, you should be able to catch it again, too. Change-Id: I82475df1969a1fd76f4cf5fc0a8d921dfafaef89 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/qml')
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index 4f2e6f1866..a5316dce21 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -243,6 +243,7 @@ private slots:
void throwError();
void throwErrorObject();
void returnError();
+ void catchError();
void mathMinMax();
void importModule();
@@ -4810,6 +4811,19 @@ void tst_QJSEngine::returnError()
QVERIFY(!result.property("stack").isUndefined());
}
+void tst_QJSEngine::catchError()
+{
+ QJSEngine engine;
+ QVERIFY(!engine.hasError());
+ engine.throwError(QJSValue::GenericError, "some error");
+ QVERIFY(engine.hasError());
+ const QJSValue error = engine.catchError();
+ QVERIFY(error.isError());
+ QCOMPARE(error.errorType(), QJSValue::GenericError);
+ QCOMPARE(error.property("message").toString(), "some error");
+ QVERIFY(!engine.hasError());
+}
+
QJSValue tst_QJSEngine::throwingCppMethod1()
{
qjsEngine(this)->throwError("blub");