summaryrefslogtreecommitdiffstats
path: root/tests/auto/core/qpostman/tst_qpostman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/core/qpostman/tst_qpostman.cpp')
-rw-r--r--tests/auto/core/qpostman/tst_qpostman.cpp116
1 files changed, 65 insertions, 51 deletions
diff --git a/tests/auto/core/qpostman/tst_qpostman.cpp b/tests/auto/core/qpostman/tst_qpostman.cpp
index e51c21b59..612db6257 100644
--- a/tests/auto/core/qpostman/tst_qpostman.cpp
+++ b/tests/auto/core/qpostman/tst_qpostman.cpp
@@ -38,21 +38,22 @@
#include <Qt3DCore/private/qpropertyupdatedchangebase_p.h>
#include "testpostmanarbiter.h"
+using namespace Qt3DCore;
namespace {
-class NodeChangeReceiver: public Qt3DCore::QNode
+class NodeChangeReceiver: public QNode
{
public:
- NodeChangeReceiver(Qt3DCore::QNode *parent = nullptr)
- : Qt3DCore::QNode(parent)
+ NodeChangeReceiver(QNode *parent = nullptr)
+ : QNode(parent)
, m_hasReceivedChange(false)
{}
inline bool hasReceivedChange() const { return m_hasReceivedChange; }
protected:
- void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &) Q_DECL_OVERRIDE
+ void sceneChangeEvent(const QSceneChangePtr &) Q_DECL_OVERRIDE
{
m_hasReceivedChange = true;
}
@@ -72,42 +73,42 @@ private Q_SLOTS:
void checkSetScene()
{
// GIVEN
- Qt3DCore::QPostman postman;
+ QPostman postman;
// THEN
- QVERIFY(Qt3DCore::QPostmanPrivate::get(&postman)->m_scene == nullptr);
+ QVERIFY(QPostmanPrivate::get(&postman)->m_scene == nullptr);
// WHEN
- Qt3DCore::QScene scene;
+ QScene scene;
postman.setScene(&scene);
// THEN
- QCOMPARE(Qt3DCore::QPostmanPrivate::get(&postman)->m_scene, &scene);
+ QCOMPARE(QPostmanPrivate::get(&postman)->m_scene, &scene);
}
void checkSceneChangeEvent()
{
// GIVEN
- QScopedPointer<Qt3DCore::QScene> scene(new Qt3DCore::QScene);
- Qt3DCore::QPostman postman;
+ QScopedPointer<QScene> scene(new QScene);
+ QPostman postman;
TestArbiter arbiter;
- Qt3DCore::QNode rootNode;
+ QNode rootNode;
NodeChangeReceiver *receiverNode = new NodeChangeReceiver();
- Qt3DCore::QNodePrivate::get(&rootNode)->m_scene = scene.data();
+ QNodePrivate::get(&rootNode)->m_scene = scene.data();
scene->setArbiter(&arbiter);
postman.setScene(scene.data());
// Setting the parent (which has a scene) adds the node into the observable lookup
// table of the scene which is needed by the postman to distribute changes
- static_cast<Qt3DCore::QNode *>(receiverNode)->setParent(&rootNode);
+ static_cast<QNode *>(receiverNode)->setParent(&rootNode);
QCoreApplication::processEvents();
// THEN
QCOMPARE(receiverNode->hasReceivedChange(), false);
- QCOMPARE(Qt3DCore::QNodePrivate::get(receiverNode)->m_scene, scene.data());
+ QCOMPARE(QNodePrivate::get(receiverNode)->m_scene, scene.data());
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ QPropertyUpdatedChangePtr updateChange(new QPropertyUpdatedChange(receiverNode->id()));
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
postman.sceneChangeEvent(updateChange);
@@ -120,8 +121,8 @@ private Q_SLOTS:
void checkNotifyBackend()
{
// GIVEN
- QScopedPointer<Qt3DCore::QScene> scene(new Qt3DCore::QScene);
- Qt3DCore::QPostman postman;
+ QScopedPointer<QScene> scene(new QScene);
+ QPostman postman;
TestArbiter arbiter;
scene->setArbiter(&arbiter);
@@ -131,7 +132,7 @@ private Q_SLOTS:
QCOMPARE(arbiter.events.size(), 0);
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId()));
+ QPropertyUpdatedChangePtr updateChange(new QPropertyUpdatedChange(QNodeId()));
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
postman.notifyBackend(updateChange);
@@ -145,62 +146,72 @@ private Q_SLOTS:
void checkShouldNotifyFrontend()
{
// GIVEN
- QScopedPointer<Qt3DCore::QScene> scene(new Qt3DCore::QScene);
- Qt3DCore::QPostman postman;
+ QScopedPointer<QScene> scene(new QScene);
+ QPostman postman;
TestArbiter arbiter;
- Qt3DCore::QNode rootNode;
+ QNode rootNode;
NodeChangeReceiver *receiverNode = new NodeChangeReceiver();
- Qt3DCore::QNodePrivate::get(&rootNode)->m_scene = scene.data();
+ QNodePrivate::get(&rootNode)->m_scene = scene.data();
scene->setArbiter(&arbiter);
postman.setScene(scene.data());
// Setting the parent (which has a scene) adds the node into the observable lookup
// table of the scene which is needed by the postman to distribute changes
- static_cast<Qt3DCore::QNode *>(receiverNode)->setParent(&rootNode);
+ static_cast<QNode *>(receiverNode)->setParent(&rootNode);
QCoreApplication::processEvents();
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
- // THEN -> we don't track properties by default Qt3DCore::QNode::DontTrackProperties
- QCOMPARE(postman.shouldNotifyFrontend(updateChange), false);
+
+ // THEN -> we do track properties by default QNode::DefaultTrackMode
+ // (unless marked as an intermediate change)
+ QCOMPARE(postman.shouldNotifyFrontend(updateChange), true);
}
{
// WHEN
- receiverNode->setPropertyTrackMode(Qt3DCore::QNode::TrackAllPropertiesMode);
+ receiverNode->setDefaultPropertyTrackingMode(QNode::TrackAllValues);
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
+ QPropertyUpdatedChangeBasePrivate::get(updateChange.data())->m_isIntermediate
+ = true;
- // THEN -> we don't track properties by default
+ // THEN -> we do track properties marked as intermediate when
+ // using TrackAllPropertiesMode
QCOMPARE(postman.shouldNotifyFrontend(updateChange), true);
}
{
// GIVEN
- receiverNode->setPropertyTrackMode(Qt3DCore::QNode::TrackNamedPropertiesMode);
- receiverNode->setTrackedProperties(QStringList() << QStringLiteral("vette"));
+ receiverNode->setDefaultPropertyTrackingMode(QNode::DontTrackValues);
+ receiverNode->setPropertyTracking(QStringLiteral("vette"), Qt3DCore::QNode::TrackAllValues);
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
+ QPropertyUpdatedChangeBasePrivate::get(updateChange.data())->m_isIntermediate
+ = true;
- // THEN -> we don't track properties by default
+ // THEN -> we don't track properties by default, unless named when
+ // using TrackNamedPropertiesMode
QCOMPARE(postman.shouldNotifyFrontend(updateChange), false);
}
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("vette");
+ QPropertyUpdatedChangeBasePrivate::get(updateChange.data())->m_isIntermediate
+ = true;
// THEN
QCOMPARE(postman.shouldNotifyFrontend(updateChange), true);
@@ -209,12 +220,12 @@ private Q_SLOTS:
{
// GIVEN
- receiverNode->setTrackedProperties(QStringList() << QStringLiteral("vette"));
- receiverNode->setPropertyTrackMode(Qt3DCore::QNode::TrackAllPropertiesMode);
+ receiverNode->setPropertyTracking(QStringLiteral("vette"), Qt3DCore::QNode::TrackAllValues);
+ receiverNode->setDefaultPropertyTrackingMode(QNode::TrackAllValues);
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
@@ -224,7 +235,7 @@ private Q_SLOTS:
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("vette");
@@ -235,29 +246,31 @@ private Q_SLOTS:
{
// GIVEN
- receiverNode->setTrackedProperties(QStringList());
- receiverNode->setPropertyTrackMode(Qt3DCore::QNode::DefaultTrackMode);
+ receiverNode->clearPropertyTrackings();
+ receiverNode->setDefaultPropertyTrackingMode(QNode::TrackFinalValues);
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
- // THEN -> we don't track properties by default
- QCOMPARE(postman.shouldNotifyFrontend(updateChange), false);
+ // THEN -> we do track properties by default, unless marked as intermediate
+ QCOMPARE(postman.shouldNotifyFrontend(updateChange), true);
}
{
// WHEN
- Qt3DCore::QPropertyNodeAddedChangePtr addedChange(new Qt3DCore::QPropertyNodeAddedChange(receiverNode->id(), receiverNode));
+ auto addedChange
+ = QPropertyNodeAddedChangePtr::create(receiverNode->id(), receiverNode);
// THEN -> only QPropertyUpdatedChangePtr are filtered
QCOMPARE(postman.shouldNotifyFrontend(addedChange), true);
}
{
// WHEN
- Qt3DCore::QPropertyNodeRemovedChangePtr removedChange(new Qt3DCore::QPropertyNodeRemovedChange(receiverNode->id(), receiverNode));
+ auto removedChange
+ = QPropertyNodeRemovedChangePtr::create(receiverNode->id(), receiverNode);
// THEN -> only QPropertyUpdatedChangePtr are filtered
QCOMPARE(postman.shouldNotifyFrontend(removedChange), true);
@@ -266,25 +279,26 @@ private Q_SLOTS:
{
// GIVEN
- receiverNode->setTrackedProperties(QStringList());
- receiverNode->setPropertyTrackMode(Qt3DCore::QNode::DefaultTrackMode);
+ receiverNode->clearPropertyTrackings();
+ receiverNode->setDefaultPropertyTrackingMode(QNode::TrackFinalValues);
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
+ QPropertyUpdatedChangeBasePrivate::get(updateChange.data())->m_isIntermediate
+ = true;
- // THEN -> we don't track properties by default
+ // THEN -> we don't track intermediate properties by default
QCOMPARE(postman.shouldNotifyFrontend(updateChange), false);
}
{
// WHEN
- Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(receiverNode->id()));
+ auto updateChange = QPropertyUpdatedChangePtr::create(receiverNode->id());
updateChange->setValue(1584);
updateChange->setPropertyName("someName");
- Qt3DCore::QPropertyUpdatedChangeBasePrivate::get(updateChange.data())->m_isFinal = true;
// THEN
QCOMPARE(postman.shouldNotifyFrontend(updateChange), true);