summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/qmaterial
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/qmaterial
parentae5ac1128bc61176f797f6e248d18b9ced051ad9 (diff)
Strip out cloning subsystem
Change-Id: I4def54a11de0f9c676ef6b2d7bd8e723ded25ab9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests/auto/render/qmaterial')
-rw-r--r--tests/auto/render/qmaterial/tst_qmaterial.cpp42
1 files changed, 26 insertions, 16 deletions
diff --git a/tests/auto/render/qmaterial/tst_qmaterial.cpp b/tests/auto/render/qmaterial/tst_qmaterial.cpp
index b831589f5..638f774e3 100644
--- a/tests/auto/render/qmaterial/tst_qmaterial.cpp
+++ b/tests/auto/render/qmaterial/tst_qmaterial.cpp
@@ -33,6 +33,7 @@
#include <Qt3DCore/private/qnode_p.h>
#include <Qt3DCore/private/qscene_p.h>
#include <Qt3DRender/private/qrenderstate_p.h>
+#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h>
#include <Qt3DRender/QEffect>
#include <Qt3DRender/QMaterial>
@@ -47,6 +48,8 @@
#include <Qt3DExtras/QNormalDiffuseMapAlphaMaterial>
#include <Qt3DExtras/QNormalDiffuseSpecularMapMaterial>
+#include <Qt3DRender/private/qmaterial_p.h>
+
#include "testpostmanarbiter.h"
class TestMaterial : public Qt3DRender::QMaterial
@@ -71,14 +74,12 @@ public:
Qt3DRender::QShaderProgram *m_shaderProgram;
};
-// We need to call QNode::clone which is protected
-// So we sublcass QNode instead of QObject
-class tst_QMaterial : public Qt3DCore::QNode
+class tst_QMaterial : public QObject
{
Q_OBJECT
public:
tst_QMaterial()
- : Qt3DCore::QNode()
+ : QObject()
{
qRegisterMetaType<Qt3DRender::QEffect*>("Qt3DRender::QEffect*");
}
@@ -216,13 +217,29 @@ private Q_SLOTS:
QFETCH(Qt3DRender::QMaterial *, material);
// WHEN
- Qt3DRender::QMaterial *clone = static_cast<Qt3DRender::QMaterial *>(QNode::clone(material));
- QCoreApplication::processEvents();
+ Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(material);
+ QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges();
+
+ // THEN
+ QVERIFY(creationChanges.size() >= 1);
+
+ const Qt3DCore::QNodeCreatedChangePtr<Qt3DRender::QMaterialData> creationChangeData =
+ qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QMaterialData>>(creationChanges.first());
+ const Qt3DRender::QMaterialData &cloneData = creationChangeData->data;
// THEN
- QVERIFY(clone != Q_NULLPTR);
- compareParameters(material->parameters(), clone->parameters());
- compareEffects(material->effect(), clone->effect());
+ QCOMPARE(material->id(), creationChangeData->subjectId());
+ QCOMPARE(material->isEnabled(), creationChangeData->isNodeEnabled());
+ QCOMPARE(material->metaObject(), creationChangeData->metaObject());
+ QCOMPARE(material->effect() ? material->effect()->id() : Qt3DCore::QNodeId(), cloneData.effectId);
+ QCOMPARE(material->parameters().size(), cloneData.parameterIds.size());
+
+ for (int i = 0, m = material->parameters().size(); i < m; ++i)
+ QCOMPARE(material->parameters().at(i)->id(), cloneData.parameterIds.at(i));
+
+ // TO DO: Add unit tests for parameter and effect that do check this
+ // compareParameters(material->parameters(), clone->parameters());
+ // compareEffects(material->effect(), clone->effect());
}
void checkEffectUpdate()
@@ -414,13 +431,6 @@ private Q_SLOTS:
arbiter.events.clear();
}
-
-protected:
- Qt3DCore::QNode *doClone() const Q_DECL_OVERRIDE
- {
- return Q_NULLPTR;
- }
-
};
QTEST_MAIN(tst_QMaterial)