summaryrefslogtreecommitdiffstats
path: root/tests/auto/render
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-06-02 07:41:17 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-06-29 09:21:00 +0000
commitceabe37b857917aac11df5412eba65d3e9eb3baf (patch)
tree90909ee9b82dbf24b5cf50c63ae0cd7e5b7ffd7d /tests/auto/render
parentc75a2dda4ea7f0216b5f0fe4c04d56511e775700 (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.cpp34
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)