diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-02 07:38:26 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-29 09:20:57 +0000 |
commit | c75a2dda4ea7f0216b5f0fe4c04d56511e775700 (patch) | |
tree | bc523167756285b413fe38f706c641c510e1f28d /tests | |
parent | f5c7d9fd88ce5d1d8f627034b04959136504f760 (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.cpp | 34 |
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) |