From e09acc38d3af64c2136ee8b6ab4f01a83492ba17 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 18 Feb 2021 15:46:24 +0100 Subject: QJSValue: Allow casting integers to enums You can also cast enums to integers, after all. Change-Id: I283d3dd280eeb44ba22bb45ca9be69e5358d5781 Reviewed-by: Fabian Kosmale (cherry picked from commit 453be4e6065a323e7fc0ea93fa0bee845d2020cd) Reviewed-by: Qt Cherry-pick Bot --- tests/auto/qml/qjsvalue/tst_qjsvalue.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/auto/qml/qjsvalue/tst_qjsvalue.cpp') diff --git a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp index fd2eb40717..2b91ca0019 100644 --- a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp +++ b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp @@ -2872,4 +2872,21 @@ void tst_QJSValue::jsFunctionInVariant() } } +void tst_QJSValue::integerToEnum() +{ + QJSEngine engine; + + QJSValue enumVal = engine.toScriptValue(QQmlComponent::Error); + QJSValue intVal(static_cast(QQmlComponent::Error)); + + QVERIFY(enumVal.equals(intVal)); + QVERIFY(intVal.equals(enumVal)); + + QCOMPARE(qjsvalue_cast(intVal), QQmlComponent::Error); + QCOMPARE(qjsvalue_cast(enumVal), QQmlComponent::Error); + + QCOMPARE(qjsvalue_cast(intVal), static_cast(QQmlComponent::Error)); + QCOMPARE(qjsvalue_cast(enumVal), static_cast(QQmlComponent::Error)); +} + QTEST_MAIN(tst_QJSValue) -- cgit v1.2.3