diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-02 07:47:45 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-29 09:21:09 +0000 |
commit | 7f91ace15d91c5780aa1dfd85aa97b41356849e2 (patch) | |
tree | cf8484e704ff5b61f44f7d5e325dbc83498367d8 | |
parent | ab049f05a3ffe967b3da20c3bf6270501f703051 (diff) |
tst_QTechniqueFilter: add parameter and filterKey bookkeeping tests
Change-Id: I3c1aa3c357ffaad43d15b8a620c972aa137660f0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp b/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp index 97fe917ae..4f6daae8c 100644 --- a/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp +++ b/tests/auto/render/qtechniquefilter/tst_qtechniquefilter.cpp @@ -225,6 +225,74 @@ private Q_SLOTS: arbiter.events.clear(); } + + void checkParameterBookkeeping() + { + // GIVEN + QScopedPointer<Qt3DRender::QTechniqueFilter> techniqueFilter(new Qt3DRender::QTechniqueFilter); + { + // WHEN + Qt3DRender::QParameter param; + techniqueFilter->addParameter(¶m); + + // THEN + QCOMPARE(param.parent(), techniqueFilter.data()); + QCOMPARE(techniqueFilter->parameters().size(), 1); + } + // THEN (Should not crash and parameter be unset) + QVERIFY(techniqueFilter->parameters().empty()); + + { + // WHEN + Qt3DRender::QTechniqueFilter someOtherTechniqueFilter; + QScopedPointer<Qt3DRender::QParameter> param(new Qt3DRender::QParameter(&someOtherTechniqueFilter)); + techniqueFilter->addParameter(param.data()); + + // THEN + QCOMPARE(param->parent(), &someOtherTechniqueFilter); + QCOMPARE(techniqueFilter->parameters().size(), 1); + + // WHEN + techniqueFilter.reset(); + param.reset(); + + // THEN Should not crash when the parameter is destroyed (tests for failed removal of destruction helper) + } + } + + void checkFilterKeyBookkeeping() + { + // GIVEN + QScopedPointer<Qt3DRender::QTechniqueFilter> techniqueFilter(new Qt3DRender::QTechniqueFilter); + { + // WHEN + Qt3DRender::QFilterKey filterKey; + techniqueFilter->addMatch(&filterKey); + + // THEN + QCOMPARE(filterKey.parent(), techniqueFilter.data()); + QCOMPARE(techniqueFilter->matchAll().size(), 1); + } + // THEN (Should not crash and parameter be unset) + QVERIFY(techniqueFilter->matchAll().empty()); + + { + // WHEN + Qt3DRender::QTechniqueFilter someOtherTechniqueFilter; + QScopedPointer<Qt3DRender::QFilterKey> filterKey(new Qt3DRender::QFilterKey(&someOtherTechniqueFilter)); + techniqueFilter->addMatch(filterKey.data()); + + // THEN + QCOMPARE(filterKey->parent(), &someOtherTechniqueFilter); + QCOMPARE(techniqueFilter->matchAll().size(), 1); + + // WHEN + techniqueFilter.reset(); + filterKey.reset(); + + // THEN Should not crash when the filterKey is destroyed (tests for failed removal of destruction helper) + } + } }; QTEST_MAIN(tst_QTechniqueFilter) |