diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-06-13 23:10:03 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-06-13 23:10:03 +0200 |
commit | 9932617582470d717c97f8161a65133293c185c5 (patch) | |
tree | 1df48d67c6e5ca4aa8b7810fc9e717083b4199e3 /tests/auto/qml/qjsengine/tst_qjsengine.cpp | |
parent | 7fde8a8d20da7fa00d974286fa903b3fee76d466 (diff) | |
parent | 17ee404f2678684674b9c5c0c523602953146e37 (diff) |
Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
src/quickwidgets/qquickwidget.cpp
Change-Id: Id4b080aea713df68608847bb82570231e37ce536
Diffstat (limited to 'tests/auto/qml/qjsengine/tst_qjsengine.cpp')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 9183c37df1..feef9d27f8 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -206,6 +206,7 @@ signals: void slotWithSingleArgCalled(const QString &arg); void slotWithArgumentsCalled(const QString &arg1, const QString &arg2, const QString &arg3); void slotWithOverloadedArgumentsCalled(const QString &arg, Qt::KeyboardModifier modifier, Qt::KeyboardModifiers moreModifiers); + void slotWithTwoOverloadedArgumentsCalled(const QString &arg, Qt::KeyboardModifiers moreModifiers, Qt::KeyboardModifier modifier); public slots: void slotToCall() { emit slotWithoutArgCalled(); } @@ -218,6 +219,10 @@ public slots: { emit slotWithOverloadedArgumentsCalled(arg, modifier, blah); } + void slotToCallTwoDefault(const QString &arg, Qt::KeyboardModifiers modifiers = Qt::ShiftModifier | Qt::ControlModifier, Qt::KeyboardModifier modifier = Qt::AltModifier) + { + emit slotWithTwoOverloadedArgumentsCalled(arg, modifiers, modifier); + } }; void tst_QJSEngine::callQObjectSlot() @@ -275,6 +280,50 @@ void tst_QJSEngine::callQObjectSlot() QCOMPARE(int(qvariant_cast<Qt::KeyboardModifiers>(arguments.at(2))), int(Qt::ShiftModifier)); } + + { + QSignalSpy spy(&dummy, SIGNAL(slotWithTwoOverloadedArgumentsCalled(QString, Qt::KeyboardModifiers, Qt::KeyboardModifier))); + QJSValue v = eng.evaluate(QStringLiteral("dummy.slotToCallTwoDefault('arg', %1);").arg(QString::number(Qt::MetaModifier | Qt::KeypadModifier))); + QCOMPARE(spy.count(), 1); + + const QList<QVariant> arguments = spy.first(); + QCOMPARE(arguments.at(0).toString(), QString("arg")); + QCOMPARE(int(qvariant_cast<Qt::KeyboardModifiers>(arguments.at(1))), int(Qt::MetaModifier | Qt::KeypadModifier)); + QCOMPARE(int(qvariant_cast<Qt::KeyboardModifier>(arguments.at(2))), int(Qt::AltModifier)); + } + + QJSValue jsArray = eng.newArray(); + jsArray.setProperty(QStringLiteral("MetaModifier"), QJSValue(Qt::MetaModifier)); + jsArray.setProperty(QStringLiteral("ShiftModifier"), QJSValue(Qt::ShiftModifier)); + jsArray.setProperty(QStringLiteral("ControlModifier"), QJSValue(Qt::ControlModifier)); + jsArray.setProperty(QStringLiteral("KeypadModifier"), QJSValue(Qt::KeypadModifier)); + + QJSValue value = eng.newQObject(new QObject); + value.setPrototype(jsArray); + eng.globalObject().setProperty(QStringLiteral("Qt"), value); + + { + QSignalSpy spy(&dummy, SIGNAL(slotWithOverloadedArgumentsCalled(QString, Qt::KeyboardModifier, Qt::KeyboardModifiers))); + QJSValue v = eng.evaluate(QStringLiteral("dummy.slotToCall('arg', Qt.ControlModifier);")); + QCOMPARE(spy.count(), 1); + + const QList<QVariant> arguments = spy.first(); + QCOMPARE(arguments.at(0).toString(), QString("arg")); + QCOMPARE(arguments.at(1).toInt(), int(Qt::ControlModifier)); + QCOMPARE(int(qvariant_cast<Qt::KeyboardModifiers>(arguments.at(2))), int(Qt::ShiftModifier)); + } + + { + QSignalSpy spy(&dummy, SIGNAL(slotWithTwoOverloadedArgumentsCalled(QString, Qt::KeyboardModifiers, Qt::KeyboardModifier))); + QJSValue v = eng.evaluate(QStringLiteral("dummy.slotToCallTwoDefault('arg', Qt.MetaModifier | Qt.KeypadModifier);")); + QCOMPARE(spy.count(), 1); + + const QList<QVariant> arguments = spy.first(); + QCOMPARE(arguments.at(0).toString(), QString("arg")); + QCOMPARE(int(qvariant_cast<Qt::KeyboardModifiers>(arguments.at(1))), int(Qt::MetaModifier | Qt::KeypadModifier)); + QCOMPARE(int(qvariant_cast<Qt::KeyboardModifier>(arguments.at(2))), int(Qt::AltModifier)); + } + } void tst_QJSEngine::constructWithParent() |