summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-04-17 10:37:46 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-04-17 10:37:46 +0200
commit99218c5fc00d6124fdcef1a3e1954e658d10db28 (patch)
tree1891cc34fabc325b772d84ae99839aea72eb5605 /tests
parent11c985829493f3aed8e7894e5f9fdd44891ec249 (diff)
parentfd12ae24b4542cf2f0df1a34187c4b8c0a408e01 (diff)
downloadqtsvg-99218c5fc00d6124fdcef1a3e1954e658d10db28.tar.gz
Merge remote-tracking branch 'origin/5.12.3' into 5.12
Change-Id: I73662000d1b52a4b61a9bd0a58af2fb9a7dc7b22
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
index 5b359b9..aa28ca9 100644
--- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
+++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
@@ -67,6 +67,8 @@ private slots:
void boundsOnElement() const;
void gradientStops() const;
void gradientRefs();
+ void recursiveRefs_data();
+ void recursiveRefs();
void fillRule();
void opacity();
void paths();
@@ -674,6 +676,43 @@ void tst_QSvgRenderer::gradientRefs()
}
}
+void tst_QSvgRenderer::recursiveRefs_data()
+{
+ QTest::addColumn<QByteArray>("svg");
+
+ QTest::newRow("single") << QByteArray("<svg>"
+ "<linearGradient id='0' xlink:href='#0'/>"
+ "<rect x='0' y='0' width='20' height='20' fill='url(#0)'/>"
+ "</svg>");
+
+ QTest::newRow("double") << QByteArray("<svg>"
+ "<linearGradient id='0' xlink:href='#1'/>"
+ "<linearGradient id='1' xlink:href='#0'/>"
+ "<rect x='0' y='0' width='20' height='20' fill='url(#0)'/>"
+ "</svg>");
+
+ QTest::newRow("triple") << QByteArray("<svg>"
+ "<linearGradient id='0' xlink:href='#1'/>"
+ "<linearGradient id='1' xlink:href='#2'/>"
+ "<linearGradient id='2' xlink:href='#0'/>"
+ "<rect x='0' y='0' width='20' height='20' fill='url(#0)'/>"
+ "</svg>");
+}
+
+void tst_QSvgRenderer::recursiveRefs()
+{
+ QFETCH(QByteArray, svg);
+
+ QImage image(20, 20, QImage::Format_ARGB32_Premultiplied);
+ image.fill(Qt::green);
+ QImage refImage = image.copy();
+
+ QSvgRenderer renderer(svg);
+ QPainter painter(&image);
+ renderer.render(&painter);
+ QCOMPARE(image, refImage);
+}
+
#ifndef QT_NO_COMPRESS
void tst_QSvgRenderer::testGzLoading()