diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-02 07:41:17 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-29 09:21:00 +0000 |
commit | ceabe37b857917aac11df5412eba65d3e9eb3baf (patch) | |
tree | 90909ee9b82dbf24b5cf50c63ae0cd7e5b7ffd7d /tests/auto/render | |
parent | c75a2dda4ea7f0216b5f0fe4c04d56511e775700 (diff) |
tst_QCameraSelector: add test for camera bookkeeping
Change-Id: I21911a777c6b7574f2bfeb3dd83513ff48b19d5f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render')
-rw-r--r-- | tests/auto/render/qcameraselector/tst_qcameraselector.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/render/qcameraselector/tst_qcameraselector.cpp b/tests/auto/render/qcameraselector/tst_qcameraselector.cpp index 1cb3eaabf..c11dde57f 100644 --- a/tests/auto/render/qcameraselector/tst_qcameraselector.cpp +++ b/tests/auto/render/qcameraselector/tst_qcameraselector.cpp @@ -136,6 +136,40 @@ private Q_SLOTS: arbiter.events.clear(); } + + void checkCameraBookkeeping() + { + // GIVEN + QScopedPointer<Qt3DRender::QCameraSelector> cameraSelector(new Qt3DRender::QCameraSelector); + { + // WHEN + Qt3DCore::QEntity camera; + cameraSelector->setCamera(&camera); + + // THEN + QCOMPARE(camera.parent(), cameraSelector.data()); + QCOMPARE(cameraSelector->camera(), &camera); + } + // THEN (Should not crash and parameter be unset) + QVERIFY(cameraSelector->camera() == nullptr); + + { + // WHEN + Qt3DRender::QCameraSelector someOtherCameraSelector; + QScopedPointer<Qt3DCore::QEntity> camera(new Qt3DCore::QEntity(&someOtherCameraSelector)); + cameraSelector->setCamera(camera.data()); + + // THEN + QCOMPARE(camera->parent(), &someOtherCameraSelector); + QCOMPARE(cameraSelector->camera(), camera.data()); + + // WHEN + cameraSelector.reset(); + camera.reset(); + + // THEN Should not crash when the camera is destroyed (tests for failed removal of destruction helper) + } + } }; QTEST_MAIN(tst_QCameraSelector) |