summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp')
-rw-r--r--tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp51
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)