diff options
Diffstat (limited to 'tests/auto/render/qattribute/tst_qattribute.cpp')
-rw-r--r-- | tests/auto/render/qattribute/tst_qattribute.cpp | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/tests/auto/render/qattribute/tst_qattribute.cpp b/tests/auto/render/qattribute/tst_qattribute.cpp index d0a468a4d..7c05927f2 100644 --- a/tests/auto/render/qattribute/tst_qattribute.cpp +++ b/tests/auto/render/qattribute/tst_qattribute.cpp @@ -29,15 +29,15 @@ #include <QtTest/QTest> #include <Qt3DCore/private/qnode_p.h> #include <Qt3DCore/private/qscene_p.h> +#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> #include <Qt3DRender/QAttribute> +#include <Qt3DRender/private/qattribute_p.h> #include <Qt3DRender/QBuffer> #include "testpostmanarbiter.h" -// We need to call QNode::clone which is protected -// So we sublcass QNode instead of QObject -class tst_QAttribute: public Qt3DCore::QNode +class tst_QAttribute: public QObject { Q_OBJECT public: @@ -46,11 +46,6 @@ public: qRegisterMetaType<Qt3DRender::QBuffer*>("Qt3DCore::QBuffer*"); } - ~tst_QAttribute() - { - QMetaObject::invokeMethod(this, "_q_cleanup", Qt::DirectConnection); - } - private Q_SLOTS: void checkCloning_data() @@ -93,27 +88,28 @@ private Q_SLOTS: QFETCH(Qt3DRender::QAttribute *, attribute); // WHEN - Qt3DRender::QAttribute *clone = static_cast<Qt3DRender::QAttribute *>(QNode::clone(attribute)); - QCoreApplication::processEvents(); + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(attribute); + QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges(); // THEN - QVERIFY(clone != Q_NULLPTR); - - QCOMPARE(attribute->id(), clone->id()); - QCOMPARE(attribute->name(), clone->name()); - QCOMPARE(attribute->count(), clone->count()); - QCOMPARE(attribute->byteStride(), clone->byteStride()); - QCOMPARE(attribute->byteOffset(), clone->byteOffset()); - QCOMPARE(attribute->divisor(), clone->divisor()); - QCOMPARE(attribute->vertexBaseType(), clone->vertexBaseType()); - QCOMPARE(attribute->vertexSize(), clone->vertexSize()); - QVERIFY(attribute->attributeType() == clone->attributeType()); - - if (attribute->buffer() != Q_NULLPTR) { - QVERIFY(clone->buffer() != Q_NULLPTR); - QVERIFY(attribute->buffer()->id() == clone->buffer()->id()); - QVERIFY(attribute->buffer()->type() == clone->buffer()->type()); - } + QCOMPARE(creationChanges.size(), 1 + (attribute->buffer() ? 1 : 0)); + + const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QAttributeData> creationChangeData = + qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QAttributeData>>(creationChanges.first()); + const Qt3DRender::QAttributeData &cloneData = creationChangeData->data; + + QCOMPARE(attribute->id(), creationChangeData->subjectId()); + QCOMPARE(attribute->isEnabled(), creationChangeData->isNodeEnabled()); + QCOMPARE(attribute->metaObject(), creationChangeData->metaObject()); + QCOMPARE(attribute->name(), cloneData.name); + QCOMPARE(attribute->count(), cloneData.count); + QCOMPARE(attribute->byteStride(), cloneData.byteStride); + QCOMPARE(attribute->byteOffset(), cloneData.byteOffset); + QCOMPARE(attribute->divisor(), cloneData.divisor); + QCOMPARE(attribute->vertexBaseType(), cloneData.dataType); + QCOMPARE(attribute->vertexSize(), cloneData.dataSize); + QVERIFY(attribute->attributeType() == cloneData.attributeType); + QCOMPARE(attribute->buffer() ? attribute->buffer()->id() : Qt3DCore::QNodeId(), cloneData.bufferId); } void checkPropertyUpdates() @@ -253,13 +249,6 @@ private Q_SLOTS: QCOMPARE(change->type(), Qt3DCore::NodeUpdated); } - -protected: - Qt3DCore::QNode *doClone() const Q_DECL_OVERRIDE - { - return Q_NULLPTR; - } - }; QTEST_MAIN(tst_QAttribute) |