aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2018-01-25 10:08:19 +0100
committerUlf Hermann <ulf.hermann@qt.io>2018-01-25 12:47:12 +0000
commitc66c0ba4ddd3a58a9428f6fe6917457a4321831a (patch)
tree6ee21d12a1a70638080cc4579f713bcdaf298bb4 /tests
parentbc36eb420e509cddc0faa27860666e80e2513e7e (diff)
Match QQmlEngineDebugServiceTest to the service
The fact that the service transmits QObject properties by their objectNames, rather than as proper references is not very useful and in fact the reason for some strange behavior in QtCreator. However, it's been that way for a long time and we should test what the service actually does. Task-number: QTBUG-65852 Change-Id: I6e489bb9877fae129432b5b3d5d4c7bfb5deaa9b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp20
-rw-r--r--tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp2
2 files changed, 17 insertions, 5 deletions
diff --git a/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp b/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp
index dbefb3bab5..bdd691732a 100644
--- a/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp
+++ b/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp
@@ -229,8 +229,18 @@ void tst_QQmlEngineDebugService::recursiveObjectTest(
QCOMPARE(p.name, QString::fromUtf8(pmeta.name()));
- // TODO test complex types
- if (pmeta.type() < QVariant::UserType && pmeta.userType() != QMetaType::QVariant) {
+ if (pmeta.userType() == QMetaType::QObjectStar) {
+ const QmlDebugObjectReference ref = qvariant_cast<QmlDebugObjectReference>(p.value);
+ QObject *pobj = qvariant_cast<QObject *>(pmeta.read(o));
+ if (pobj) {
+ if (pobj->objectName().isEmpty())
+ QCOMPARE(ref.name, QString("<unnamed object>"));
+ else
+ QCOMPARE(ref.name, pobj->objectName());
+ } else {
+ QCOMPARE(ref.name, QString("<unknown value>"));
+ }
+ } else if (pmeta.type() < QVariant::UserType && pmeta.userType() != QMetaType::QVariant) {
const QVariant expected = pmeta.read(o);
QVERIFY2(p.value == expected, QString::fromLatin1("%1 != %2. Details: %3/%4/%5/%6")
.arg(QTest::toString(p.value)).arg(QTest::toString(expected)).arg(p.name)
@@ -1262,7 +1272,8 @@ void tst_QQmlEngineDebugService::queryObjectTree()
QmlDebugObjectReference targetReference = qvariant_cast<QmlDebugObjectReference>(propertyChangeTarget.value);
QVERIFY(!targetReference.className.isEmpty());
- QVERIFY(targetReference.debugId != -1);
+ QCOMPARE(targetReference.debugId, -1);
+ QCOMPARE(targetReference.name, QString("<unnamed object>"));
// check transition
QmlDebugObjectReference transition = obj.children[0];
@@ -1280,7 +1291,8 @@ void tst_QQmlEngineDebugService::queryObjectTree()
targetReference = qvariant_cast<QmlDebugObjectReference>(animationTarget.value);
QVERIFY(!targetReference.className.isEmpty());
- QVERIFY(targetReference.debugId != -1);
+ QCOMPARE(targetReference.debugId, -1);
+ QCOMPARE(targetReference.name, QString("<unnamed object>"));
QCOMPARE(findProperty(animation.properties,"property").value.toString(), QString("width"));
QCOMPARE(findProperty(animation.properties,"duration").value.toInt(), 100);
diff --git a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
index c0252a0290..7e736ec400 100644
--- a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
+++ b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
@@ -385,7 +385,7 @@ void QQmlEngineDebugClient::decode(QPacket &ds,
case QmlObjectProperty::Object:
{
QmlDebugObjectReference obj;
- obj.debugId = prop.value.toInt();
+ obj.name = data.value.toString();
obj.className = prop.valueTypeName;
prop.value = qVariantFromValue(obj);
break;