summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-10-16 17:08:30 +0200
committerSean Harmer <sean.harmer@kdab.com>2015-10-24 14:05:26 +0000
commit00d22187d851e0e12d699179c9cfb168b0541d73 (patch)
tree22ef01125121451198caa2a2faa6d4b57a021e14 /tests
parent55f3c9d03d6005c86dcc6539fcc8b3635c5806bf (diff)
QObjectPicker unit tests completed
Change-Id: I4329143d1df30872c35e9b82cb2e1fc3fd676dfe Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp50
1 files changed, 45 insertions, 5 deletions
diff --git a/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp b/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp
index 714a3e0bd..2a7ca4afc 100644
--- a/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp
+++ b/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp
@@ -35,11 +35,13 @@
****************************************************************************/
#include <QtTest/QTest>
+#include <QtTest/QSignalSpy>
#include <Qt3DCore/private/qnode_p.h>
#include <Qt3DCore/private/qscene_p.h>
-
+#include <Qt3DCore/qbackendscenepropertychange.h>
#include <Qt3DRender/QObjectPicker>
#include <Qt3DRender/QAttribute>
+#include <Qt3DRender/QPickEvent>
#include "testpostmanarbiter.h"
@@ -51,8 +53,14 @@ public:
: Qt3DRender::QObjectPicker(parent)
{}
+ void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) Q_DECL_FINAL
+ {
+ Qt3DRender::QObjectPicker::sceneChangeEvent(change);
+ }
+
private:
friend class tst_ObjectPicker;
+
};
// We need to call QNode::clone which is protected
@@ -64,6 +72,7 @@ public:
tst_QObjectPicker()
{
qRegisterMetaType<Qt3DRender::QAttribute*>("Qt3DRender::QAttribute*");
+ qRegisterMetaType<Qt3DRender::QPickEvent*>("Qt3DRender::QPickEvent*");
}
~tst_QObjectPicker()
@@ -146,18 +155,49 @@ private Q_SLOTS:
}
+ void checkBackendUpdates_data()
+ {
+ QTest::addColumn<QByteArray>("signalPrototype");
+ QTest::addColumn<QByteArray>("propertyName");
+
+ QTest::newRow("clicked")
+ << QByteArray(SIGNAL(clicked(QPickEvent *)))
+ << QByteArrayLiteral("clicked");
+
+ QTest::newRow("pressed")
+ << QByteArray(SIGNAL(pressed(QPickEvent *)))
+ << QByteArrayLiteral("pressed");
+
+ QTest::newRow("released")
+ << QByteArray(SIGNAL(released(QPickEvent *)))
+ << QByteArrayLiteral("released");
+
+ QTest::newRow("entered")
+ << QByteArray(SIGNAL(entered()))
+ << QByteArrayLiteral("entered");
+
+ QTest::newRow("exited")
+ << QByteArray(SIGNAL(exited()))
+ << QByteArrayLiteral("exited");
+ }
+
void checkBackendUpdates()
{
// GIVEN
- //QScopedPointer<MyObjectPicker> objectPicker(new MyObjectPicker());
+ QFETCH(QByteArray, signalPrototype);
+ QFETCH(QByteArray, propertyName);
+ QScopedPointer<MyObjectPicker> objectPicker(new MyObjectPicker());
+ QSignalSpy spy(objectPicker.data(), signalPrototype.constData());
- // TO DO: Complete
// WHEN
// Create Backend Change and distribute it to frontend node
- // objectPicker->sceneChangeEvent();
+ Qt3DCore::QBackendScenePropertyChangePtr e(new Qt3DCore::QBackendScenePropertyChange(Qt3DCore::NodeUpdated, objectPicker->id()));
+ e->setPropertyName(propertyName.constData());
+ objectPicker->sceneChangeEvent(e);
// THEN
- // Check that the QOjectPicker triggers the expected signal
+ // Check that the QObjectPicker triggers the expected signal
+ QCOMPARE(spy.count(), 1);
}