summaryrefslogtreecommitdiffstats
path: root/tests/auto/qgraphicseffect
diff options
context:
space:
mode:
authorAriya Hidayat <ariya.hidayat@nokia.com>2009-09-14 15:47:06 +0200
committerAriya Hidayat <ariya.hidayat@nokia.com>2009-09-14 16:58:08 +0200
commitb590ed186b38491dd338e55372f509e7c3feb2b4 (patch)
tree7cbd49b531cb4f7d7a0a5b31b6a912643a96c8ca /tests/auto/qgraphicseffect
parentef0f72e2ed861982fdcbf620c88f188b009b0cf1 (diff)
Add simple autotest for QGraphicsGrayscaleEffect.
Reviewed-by: Bjørn Erik Nilsen
Diffstat (limited to 'tests/auto/qgraphicseffect')
-rw-r--r--tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
index b36cf73209..c0d23eb4a5 100644
--- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
+++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
@@ -63,6 +63,7 @@ private slots:
void boundingRect();
void draw();
void opacity();
+ void grayscale();
};
void tst_QGraphicsEffect::initTestCase()
@@ -365,6 +366,29 @@ void tst_QGraphicsEffect::opacity()
QCOMPARE(effect->m_opacity, qreal(0.5));
}
+void tst_QGraphicsEffect::grayscale()
+{
+ QGraphicsScene scene(0, 0, 100, 100);
+
+ QGraphicsRectItem *item = scene.addRect(0, 0, 50, 50);
+ item->setPen(Qt::NoPen);
+ item->setBrush(QColor(122, 193, 66)); // Qt light green
+
+ QGraphicsGrayscaleEffect *effect = new QGraphicsGrayscaleEffect;
+ item->setGraphicsEffect(effect);
+
+ QPainter painter;
+ QImage image(100, 100, QImage::Format_ARGB32_Premultiplied);
+
+ image.fill(0);
+ painter.begin(&image);
+ painter.setRenderHint(QPainter::Antialiasing);
+ scene.render(&painter);
+ painter.end();
+
+ QCOMPARE(image.pixel(10, 10), qRgb(148, 148, 148));
+}
+
QTEST_MAIN(tst_QGraphicsEffect)
#include "tst_qgraphicseffect.moc"