diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-09-05 15:38:49 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-11-24 09:08:06 +0000 |
commit | e30657704345a52c11f06536a56442a0c4fb06d3 (patch) | |
tree | fd0c7b70490a2528e75b06a022fb4256932cd7f8 | |
parent | 7517071e3a92334bb8a8da4f10a4327fb95d515f (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.cpp | 57 |
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(¶meter); + 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; }; |