summaryrefslogtreecommitdiff
path: root/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-04-21 11:10:10 +0200
committerLiang Qi <liang.qi@qt.io>2017-04-21 11:10:10 +0200
commit1ef3d38562f686cf06b7a62be13cf9d3a23d0e41 (patch)
tree886e5c76aeabbb9b229bd64b9cb090e2a6bb395f /tests/auto/qsvggenerator/tst_qsvggenerator.cpp
parent4a9470e55ce08752501868c60762268fdf2c44af (diff)
parent0b48e0821b9691ff369ad7b401cbf1f63c6397a9 (diff)
downloadqtsvg-1ef3d38562f686cf06b7a62be13cf9d3a23d0e41.tar.gz
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: I855627bf0387be820d97bbc0226fed07fd1db64a
Diffstat (limited to 'tests/auto/qsvggenerator/tst_qsvggenerator.cpp')
-rw-r--r--tests/auto/qsvggenerator/tst_qsvggenerator.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/qsvggenerator/tst_qsvggenerator.cpp b/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
index 4795b55..b55b687 100644
--- a/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
+++ b/tests/auto/qsvggenerator/tst_qsvggenerator.cpp
@@ -58,6 +58,7 @@ private slots:
void fractionalFontSize();
void titleAndDescription();
void gradientInterpolation();
+ void patternBrush();
};
tst_QSvgGenerator::tst_QSvgGenerator()
@@ -423,5 +424,46 @@ void tst_QSvgGenerator::gradientInterpolation()
QVERIFY(sqrImageDiff(image, refImage) < 2); // pixel error < 1.41 (L2-norm)
}
+void tst_QSvgGenerator::patternBrush()
+{
+ { // Pattern brush should create mask and pattern used as fill
+ QSvgGenerator generator;
+ QByteArray byteArray;
+ QBuffer buffer(&byteArray);
+ generator.setOutputDevice(&buffer);
+ QPainter painter(&generator);
+ painter.setBrush(Qt::CrossPattern);
+ painter.drawRect(0, 0, 100, 100);
+ painter.end();
+
+ QVERIFY(byteArray.contains("<mask id=\"patternmask"));
+ QVERIFY(byteArray.contains("<pattern id=\"fillpattern"));
+ QVERIFY(byteArray.contains("<g fill=\"url(#fillpattern"));
+ }
+
+ { // Masks and patterns should be reused, not regenerated
+ QSvgGenerator generator;
+ QByteArray byteArray;
+ QBuffer buffer(&byteArray);
+ generator.setOutputDevice(&buffer);
+ QPainter painter(&generator);
+ painter.setBrush(QBrush(Qt::red, Qt::Dense3Pattern));
+ painter.drawRect(0, 0, 100, 100);
+ painter.drawEllipse(200, 50, 50, 50);
+ painter.setBrush(QBrush(Qt::green, Qt::Dense3Pattern));
+ painter.drawRoundedRect(0, 200, 100, 100, 10, 10);
+ painter.setBrush(QBrush(Qt::blue, Qt::Dense4Pattern));
+ painter.drawRect(200, 200, 100, 100);
+ painter.setBrush(QBrush(Qt::red, Qt::Dense3Pattern));
+ painter.drawRoundedRect(120, 120, 60, 60, 5, 5);
+ painter.end();
+
+ QCOMPARE(byteArray.count("<mask id=\"patternmask"), 2);
+ QCOMPARE(byteArray.count("<pattern id=\"fillpattern"), 3);
+ QVERIFY(byteArray.count("<g fill=\"url(#fillpattern") >= 4);
+ }
+
+}
+
QTEST_MAIN(tst_QSvgGenerator)
#include "tst_qsvggenerator.moc"