diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-02 07:24:42 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-29 09:20:46 +0000 |
commit | c5d7df13132ad714dfaf62fa983cbfe67e3930d1 (patch) | |
tree | b1eec3045a418a01fe829169d6711321e6e81c31 /tests/auto/render/qmaterial | |
parent | e3bbc117308f11e33641e408af24b3fcf4a7071e (diff) |
tst_QMaterial: add bookkeeping tests for effect and parameters
Change-Id: I5b9e8b736dd68fd3a5a81db53171e94d78666f22
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render/qmaterial')
-rw-r--r-- | tests/auto/render/qmaterial/tst_qmaterial.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/auto/render/qmaterial/tst_qmaterial.cpp b/tests/auto/render/qmaterial/tst_qmaterial.cpp index 2dfe6637c..dc6fe7789 100644 --- a/tests/auto/render/qmaterial/tst_qmaterial.cpp +++ b/tests/auto/render/qmaterial/tst_qmaterial.cpp @@ -452,6 +452,74 @@ private Q_SLOTS: arbiter.events.clear(); } + + void checkEffectBookkeeping() + { + // GIVEN + QScopedPointer<Qt3DRender::QMaterial> material(new Qt3DRender::QMaterial); + { + // WHEN + Qt3DRender::QEffect effect; + material->setEffect(&effect); + + // THEN + QCOMPARE(effect.parent(), material.data()); + QCOMPARE(material->effect(), &effect); + } + // THEN (Should not crash and effect be unset) + QVERIFY(material->effect() == nullptr); + + { + // WHEN + Qt3DRender::QMaterial someOtherMaterial; + QScopedPointer<Qt3DRender::QEffect> effect(new Qt3DRender::QEffect(&someOtherMaterial)); + material->setEffect(effect.data()); + + // THEN + QCOMPARE(effect->parent(), &someOtherMaterial); + QCOMPARE(material->effect(), effect.data()); + + // WHEN + material.reset(); + effect.reset(); + + // THEN Should not crash when the effect is destroyed (tests for failed removal of destruction helper) + } + } + + void checkParametersBookkeeping() + { + // GIVEN + QScopedPointer<Qt3DRender::QMaterial> material(new Qt3DRender::QMaterial); + { + // WHEN + Qt3DRender::QParameter param; + material->addParameter(¶m); + + // THEN + QCOMPARE(param.parent(), material.data()); + QCOMPARE(material->parameters().size(), 1); + } + // THEN (Should not crash and parameter be unset) + QVERIFY(material->parameters().empty()); + + { + // WHEN + Qt3DRender::QMaterial someOtherMaterial; + QScopedPointer<Qt3DRender::QParameter> param(new Qt3DRender::QParameter(&someOtherMaterial)); + material->addParameter(param.data()); + + // THEN + QCOMPARE(param->parent(), &someOtherMaterial); + QCOMPARE(material->parameters().size(), 1); + + // WHEN + material.reset(); + param.reset(); + + // THEN Should not crash when the parameter is destroyed (tests for failed removal of destruction helper) + } + } }; QTEST_MAIN(tst_QMaterial) |