diff options
Diffstat (limited to 'tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp')
-rw-r--r-- | tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp | 51 |
1 files changed, 18 insertions, 33 deletions
diff --git a/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp b/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp index 1a3109c47..6b6e849d7 100644 --- a/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp +++ b/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp @@ -30,8 +30,10 @@ #include <Qt3DCore/private/qnode_p.h> #include <Qt3DCore/private/qscene_p.h> #include <Qt3DCore/qentity.h> +#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> #include <Qt3DRender/qtechniquefilter.h> +#include <Qt3DRender/private/qtechniquefilter_p.h> #include <Qt3DRender/qparameter.h> #include <Qt3DRender/qfilterkey.h> @@ -41,16 +43,9 @@ #include "testpostmanarbiter.h" -// We need to call QNode::clone which is protected -// So we sublcass QNode instead of QObject -class tst_QTechniqueFilter: public Qt3DCore::QNode +class tst_QTechniqueFilter: public QObject { Q_OBJECT -public: - ~tst_QTechniqueFilter() - { - QMetaObject::invokeMethod(this, "_q_cleanup", Qt::DirectConnection); - } private Q_SLOTS: @@ -121,37 +116,34 @@ private Q_SLOTS: QCOMPARE(techniqueFilter->matchAll(), filterKeys); // WHEN - Qt3DRender::QTechniqueFilter *clone = static_cast<Qt3DRender::QTechniqueFilter *>(QNode::clone(techniqueFilter)); + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(techniqueFilter); + QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges(); // THEN - QVERIFY(clone != Q_NULLPTR); - QCOMPARE(techniqueFilter->id(), clone->id()); + QCOMPARE(creationChanges.size(), 1 + parameters.size() + filterKeys.size()); + + const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QTechniqueFilterData> creationChangeData = + qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QTechniqueFilterData>>(creationChanges.first()); + const Qt3DRender::QTechniqueFilterData &cloneData = creationChangeData->data; + + QCOMPARE(techniqueFilter->id(), creationChangeData->subjectId()); + QCOMPARE(techniqueFilter->isEnabled(), creationChangeData->isNodeEnabled()); + QCOMPARE(techniqueFilter->metaObject(), creationChangeData->metaObject()); - QCOMPARE(techniqueFilter->matchAll().count(), clone->matchAll().count()); - QCOMPARE(techniqueFilter->parameters().count(), clone->parameters().count()); + QCOMPARE(techniqueFilter->matchAll().count(), cloneData.matchIds.count()); + QCOMPARE(techniqueFilter->parameters().count(), cloneData.parameterIds.count()); for (int i = 0, m = parameters.count(); i < m; ++i) { - Qt3DRender::QParameter *pClone = clone->parameters().at(i); Qt3DRender::QParameter *pOrig = parameters.at(i); - QCOMPARE(pOrig->id(),pClone->id()); - QCOMPARE(pOrig->name(), pClone->name()); - QCOMPARE(pOrig->value(), pClone->value()); - QVERIFY(pClone->parent() == clone); - QVERIFY(pOrig->parent() == techniqueFilter); + QCOMPARE(pOrig->id(), cloneData.parameterIds.at(i)); } for (int i = 0, m = filterKeys.count(); i < m; ++i) { - Qt3DRender::QFilterKey *aClone = clone->matchAll().at(i); Qt3DRender::QFilterKey *aOrig = filterKeys.at(i); - QCOMPARE(aOrig->id(),aClone->id()); - QCOMPARE(aOrig->name(), aClone->name()); - QCOMPARE(aOrig->value(), aClone->value()); - QVERIFY(aClone->parent() == clone); - QVERIFY(aOrig->parent() == techniqueFilter); + QCOMPARE(aOrig->id(), cloneData.matchIds.at(i)); } delete techniqueFilter; - delete clone; } void checkPropertyUpdates() @@ -232,13 +224,6 @@ private Q_SLOTS: arbiter.events.clear(); } - -protected: - Qt3DCore::QNode *doClone() const Q_DECL_OVERRIDE - { - return Q_NULLPTR; - } - }; QTEST_MAIN(tst_QTechniqueFilter) |