summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/geometry/tst_geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/render/geometry/tst_geometry.cpp')
-rw-r--r--tests/auto/render/geometry/tst_geometry.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/render/geometry/tst_geometry.cpp b/tests/auto/render/geometry/tst_geometry.cpp
index 958edfd09..7e65d27aa 100644
--- a/tests/auto/render/geometry/tst_geometry.cpp
+++ b/tests/auto/render/geometry/tst_geometry.cpp
@@ -34,7 +34,9 @@
#include <Qt3DCore/qpropertyupdatedchange.h>
#include <Qt3DCore/qpropertynodeaddedchange.h>
#include <Qt3DCore/qpropertynoderemovedchange.h>
+#include <Qt3DCore/private/qbackendnode_p.h>
#include "testrenderer.h"
+#include "testpostmanarbiter.h"
class DummyAttribute : public Qt3DRender::QAttribute
{
@@ -187,6 +189,32 @@ private Q_SLOTS:
QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::GeometryDirty);
renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty);
}
+
+ void checkExtentTransmission()
+ {
+ // GIVEN
+ TestRenderer renderer;
+ TestArbiter arbiter;
+ Qt3DRender::Render::Geometry renderGeometry;
+
+ Qt3DCore::QBackendNodePrivate::get(&renderGeometry)->setArbiter(&arbiter);
+ renderGeometry.setRenderer(&renderer);
+
+ // WHEN
+ renderGeometry.updateExtent(QVector3D(-1.0f, -1.0f, -1.0f), QVector3D(1.0f, 1.0f, 1.0f));
+ renderGeometry.notifyExtentChanged();
+
+ // THEN
+ QCOMPARE(arbiter.events.count(), 1);
+
+ Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>();
+ QCOMPARE(change->propertyName(), "extent");
+ const QPair<QVector3D, QVector3D> v = change->value().value<QPair<QVector3D, QVector3D>>();
+ QCOMPARE(v.first, QVector3D(-1.0f, -1.0f, -1.0f));
+ QCOMPARE(v.second, QVector3D(1.0f, 1.0f, 1.0f));
+
+ arbiter.events.clear();
+ }
};