summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-06-02 07:47:45 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-06-29 09:21:09 +0000
commit7f91ace15d91c5780aa1dfd85aa97b41356849e2 (patch)
treecf8484e704ff5b61f44f7d5e325dbc83498367d8
parentab049f05a3ffe967b3da20c3bf6270501f703051 (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.cpp68
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(&param);
+
+ // 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)