summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-06-02 07:38:26 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-06-29 09:20:57 +0000
commitc75a2dda4ea7f0216b5f0fe4c04d56511e775700 (patch)
treebc523167756285b413fe38f706c641c510e1f28d /tests
parentf5c7d9fd88ce5d1d8f627034b04959136504f760 (diff)
tst_QGeometryRenderer: add tests for geometry bookkeeping
Change-Id: I2c3148c54bc59eb967920b94ddea497c5a162fb2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
index d88b63dd8..5aed3ef9b 100644
--- a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
+++ b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp
@@ -305,6 +305,40 @@ private Q_SLOTS:
arbiter.events.clear();
}
+
+ void checkGeometryBookkeeping()
+ {
+ // GIVEN
+ QScopedPointer<Qt3DRender::QGeometryRenderer> geometryRenderer(new Qt3DRender::QGeometryRenderer);
+ {
+ // WHEN
+ Qt3DRender::QGeometry geometry;
+ geometryRenderer->setGeometry(&geometry);
+
+ // THEN
+ QCOMPARE(geometry.parent(), geometryRenderer.data());
+ QCOMPARE(geometryRenderer->geometry(), &geometry);
+ }
+ // THEN (Should not crash and parameter be unset)
+ QVERIFY(geometryRenderer->geometry() == nullptr);
+
+ {
+ // WHEN
+ Qt3DRender::QGeometryRenderer someOtherGeometryRenderer;
+ QScopedPointer<Qt3DRender::QGeometry> geometry(new Qt3DRender::QGeometry(&someOtherGeometryRenderer));
+ geometryRenderer->setGeometry(geometry.data());
+
+ // THEN
+ QCOMPARE(geometry->parent(), &someOtherGeometryRenderer);
+ QCOMPARE(geometryRenderer->geometry(), geometry.data());
+
+ // WHEN
+ geometryRenderer.reset();
+ geometry.reset();
+
+ // THEN Should not crash when the geometry is destroyed (tests for failed removal of destruction helper)
+ }
+ }
};
QTEST_MAIN(tst_QGeometryRenderer)