aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp')
-rw-r--r--tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
index d8a90309bb..c4c3846513 100644
--- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
+++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
@@ -198,6 +198,7 @@ private slots:
void methodOnListLookup();
void methods();
void modulePrefix();
+ void multiAdjust();
void multiDirectory_data();
void multiDirectory();
void multiForeign();
@@ -4042,6 +4043,54 @@ void tst_QmlCppCodegen::modulePrefix()
QCOMPARE(rootObject->property("baz").toString(), QStringLiteral("ItIsTheSingleton"));
}
+void tst_QmlCppCodegen::multiAdjust()
+{
+ QQmlEngine engine;
+ QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/multiAdjust.qml"_s));
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
+
+ QScopedPointer<QObject> rootObject(component.create());
+ QVERIFY(rootObject);
+
+ QCOMPARE(rootObject->property("calledFoo"), 0);
+ QCOMPARE(rootObject->property("calledBar"), 0);
+
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Left));
+ QCOMPARE(rootObject->property("calledFoo"), 1);
+ QCOMPARE(rootObject->property("calledBar"), 0);
+
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Right));
+ QCOMPARE(rootObject->property("calledFoo"), 2);
+ QCOMPARE(rootObject->property("calledBar"), 1);
+
+ rootObject->setProperty("a", 3);
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Left));
+ QCOMPARE(rootObject->property("calledFoo"), 2);
+ QCOMPARE(rootObject->property("calledBar"), 1);
+
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Right));
+ QCOMPARE(rootObject->property("calledFoo"), 2);
+ QCOMPARE(rootObject->property("calledBar"), 2);
+
+ rootObject->setObjectName("a");
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Left));
+ QCOMPARE(rootObject->property("calledFoo"), 2);
+ QCOMPARE(rootObject->property("calledBar"), 2);
+
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Right));
+ QCOMPARE(rootObject->property("calledFoo"), 2);
+ QCOMPARE(rootObject->property("calledBar"), 2);
+
+ rootObject->setProperty("a", 1);
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Left));
+ QCOMPARE(rootObject->property("calledFoo"), 3);
+ QCOMPARE(rootObject->property("calledBar"), 2);
+
+ QMetaObject::invokeMethod(rootObject.data(), "event", Q_ARG(int, Qt::Key_Right));
+ QCOMPARE(rootObject->property("calledFoo"), 4);
+ QCOMPARE(rootObject->property("calledBar"), 2);
+}
+
void tst_QmlCppCodegen::multiDirectory_data()
{
QTest::addColumn<QUrl>("url");