summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-04-19 17:16:52 +0100
committerPaul Lemire <paul.lemire@kdab.com>2016-04-29 16:22:24 +0000
commit948d0357850918596b56f38a6dc6e25cd186f5a0 (patch)
tree2a522442757660b6eadecd3a6decde1f34ab5740 /tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp
parentae5ac1128bc61176f797f6e248d18b9ced051ad9 (diff)
Strip out cloning subsystem
Change-Id: I4def54a11de0f9c676ef6b2d7bd8e723ded25ab9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp')
-rw-r--r--tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp64
1 files changed, 22 insertions, 42 deletions
diff --git a/tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp b/tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp
index 4e3b217dc..3d4d885d6 100644
--- a/tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp
+++ b/tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.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/qrenderpassfilter.h>
+#include <Qt3DRender/private/qrenderpassfilter_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_QRenderPassFilter: public Qt3DCore::QNode
+class tst_QRenderPassFilter: public QObject
{
Q_OBJECT
-public:
- ~tst_QRenderPassFilter()
- {
- QMetaObject::invokeMethod(this, "_q_cleanup", Qt::DirectConnection);
- }
private Q_SLOTS:
@@ -109,6 +104,7 @@ private Q_SLOTS:
QTest::newRow("renderPassFilterWithParamsAndAnnotations") << renderPassFilterWithParamsAndAnnotations << params2 << filterKeys2 ;
}
+ // TODO: Avoid cloning here
void checkCloning()
{
// GIVEN
@@ -121,37 +117,28 @@ private Q_SLOTS:
QCOMPARE(renderPassFilter->matchAny(), filterKeys);
// WHEN
- Qt3DRender::QRenderPassFilter *clone = static_cast<Qt3DRender::QRenderPassFilter *>(QNode::clone(renderPassFilter));
+ // WHEN
+ Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(renderPassFilter);
+ QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges();
+
+ // THEN
+ QCOMPARE(creationChanges.size(), 1 + renderPassFilter->parameters().size() + renderPassFilter->matchAny().size());
+
+ const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QRenderPassFilterData> creationChangeData =
+ qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QRenderPassFilterData>>(creationChanges.first());
+ const Qt3DRender::QRenderPassFilterData &cloneData = creationChangeData->data;
// THEN
- QVERIFY(clone != Q_NULLPTR);
- QCOMPARE(renderPassFilter->id(), clone->id());
-
- QCOMPARE(renderPassFilter->matchAny().count(), clone->matchAny().count());
- QCOMPARE(renderPassFilter->parameters().count(), clone->parameters().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() == renderPassFilter);
- }
-
- for (int i = 0, m = filterKeys.count(); i < m; ++i) {
- Qt3DRender::QFilterKey *aClone = clone->matchAny().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() == renderPassFilter);
- }
+ QCOMPARE(renderPassFilter->id(), creationChangeData->subjectId());
+ QCOMPARE(renderPassFilter->isEnabled(), creationChangeData->isNodeEnabled());
+ QCOMPARE(renderPassFilter->metaObject(), creationChangeData->metaObject());
+
+ QCOMPARE(renderPassFilter->matchAny().count(), cloneData.matchIds.count());
+ QCOMPARE(renderPassFilter->parameters().count(), cloneData.parameterIds.count());
+
+ // TO DO: Add unit tests for QParameter / QFilterKey
delete renderPassFilter;
- delete clone;
}
void checkPropertyUpdates()
@@ -232,13 +219,6 @@ private Q_SLOTS:
arbiter.events.clear();
}
-
-protected:
- Qt3DCore::QNode *doClone() const Q_DECL_OVERRIDE
- {
- return Q_NULLPTR;
- }
-
};
QTEST_MAIN(tst_QRenderPassFilter)