diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-19 17:16:52 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-04-29 16:22:24 +0000 |
commit | 948d0357850918596b56f38a6dc6e25cd186f5a0 (patch) | |
tree | 2a522442757660b6eadecd3a6decde1f34ab5740 /tests/auto/render/qrenderpassfilter/tst_qrenderpassfilter.cpp | |
parent | ae5ac1128bc61176f797f6e248d18b9ced051ad9 (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.cpp | 64 |
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) |