summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-09-05 15:38:49 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-11-24 09:08:06 +0000
commite30657704345a52c11f06536a56442a0c4fb06d3 (patch)
treefd0c7b70490a2528e75b06a022fb4256932cd7f8
parent7517071e3a92334bb8a8da4f10a4327fb95d515f (diff)
Complete RenderPass unit tests
Change-Id: I9aa61a3af5670f9ebfc48f4ec20ed9d3f6365fed Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--tests/auto/render/renderpass/tst_renderpass.cpp57
1 files changed, 55 insertions, 2 deletions
diff --git a/tests/auto/render/renderpass/tst_renderpass.cpp b/tests/auto/render/renderpass/tst_renderpass.cpp
index 8b178eca7..a4a2762ba 100644
--- a/tests/auto/render/renderpass/tst_renderpass.cpp
+++ b/tests/auto/render/renderpass/tst_renderpass.cpp
@@ -85,12 +85,47 @@ private slots:
RenderPass backend;
// THEN
+ QVERIFY(!backend.isEnabled());
QVERIFY(backend.shaderProgram().isNull());
QVERIFY(backend.filterKeys().isEmpty());
QVERIFY(backend.renderStates().isEmpty());
QVERIFY(backend.parameters().isEmpty());
}
+ void checkCleanupState()
+ {
+ // GIVEN
+ RenderPass backend;
+
+ // WHEN
+ backend.setEnabled(true);
+
+ {
+ QRenderPass frontend;
+ QShaderProgram program;
+ QBlendEquationArguments state;
+ QParameter parameter;
+ QFilterKey filterKey;
+
+ frontend.addFilterKey(&filterKey);
+ frontend.addParameter(&parameter);
+ frontend.addRenderState(&state);
+ frontend.setShaderProgram(&program);
+
+ simulateInitialization(&frontend, &backend);
+ }
+
+ backend.cleanup();
+
+ // THEN
+ QVERIFY(!backend.isEnabled());
+ QVERIFY(backend.shaderProgram().isNull());
+ QVERIFY(backend.filterKeys().isEmpty());
+ QVERIFY(backend.renderStates().isEmpty());
+ QVERIFY(backend.parameters().isEmpty());
+ QVERIFY(!backend.hasRenderStates());
+ }
+
void shouldHavePropertiesMirroringItsPeer()
{
// GIVEN
@@ -124,6 +159,7 @@ private slots:
QCOMPARE(backend.renderStates().size(), 1);
QCOMPARE(backend.renderStates().first(), backendState->peerId());
+ QVERIFY(backend.hasRenderStates());
}
void shouldHandleShaderPropertyChangeEvents()
@@ -209,10 +245,9 @@ private slots:
QVERIFY(backend.parameters().isEmpty());
}
- void shouldHandlePropertyChangeEvents()
+ void shouldHandleRenderStatePropertyChangeEvents()
{
QRenderState *frontendState = new QBlendEquationArguments();
- QNodePtr frontendStatePtr(frontendState);
RenderPass backend;
TestRenderer renderer;
@@ -240,6 +275,24 @@ private slots:
QVERIFY(backend.renderStates().isEmpty());
}
+ void shouldHandleShaderProgramPropertyChangeEvents()
+ {
+ // GIVEN
+ RenderPass backend;
+ TestRenderer renderer;
+ backend.setRenderer(&renderer);
+
+ // WHEN
+ Qt3DCore::QNodeId shaderId = Qt3DCore::QNodeId::createId();
+ const auto shaderChange = Qt3DCore::QPropertyUpdatedChangePtr::create(Qt3DCore::QNodeId());
+ shaderChange->setPropertyName("shaderProgram");
+ shaderChange->setValue(QVariant::fromValue(shaderId));
+ backend.sceneChangeEvent(shaderChange);
+
+ // THEN
+ QCOMPARE(backend.shaderProgram(), shaderId);
+ }
+
private:
RenderStateManager *m_renderStateManager;
};