summaryrefslogtreecommitdiffstats
path: root/tests/auto/qstylesheetstyle
diff options
context:
space:
mode:
authorJens Bache-Wiig <jens.bache-wiig@nokia.com>2010-08-25 13:49:29 +0200
committerJens Bache-Wiig <jens.bache-wiig@nokia.com>2010-08-25 13:53:22 +0200
commit37e1bea301d3e4c4346fad16244067d62a093af6 (patch)
tree908a70224d1c9e919f9ab3a4e6f16d2c4d20d4be /tests/auto/qstylesheetstyle
parent41532e38ff2b5153b79374032112d435b42e48a2 (diff)
Fixed item view background color in Gtk style
Autotests were modified to check for 50% color coverage as well. Before they were not really testing the bgcolor since they would accept only the red grid color as a valid test pass. Task-number: QTBUG-13125 Reviewed-by: ogoffart
Diffstat (limited to 'tests/auto/qstylesheetstyle')
-rw-r--r--tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
index e370309716..04b1e79f09 100644
--- a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
+++ b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
@@ -698,20 +698,25 @@ void tst_QStyleSheetStyle::fontPrecedence()
QCOMPARE(FONTSIZE(edit2), 26);
}
-static bool testForColors(const QImage& image, const QColor& color)
+// Ensure primary will only return true if the color covers more than 50% of pixels
+static bool testForColors(const QImage& image, const QColor& color, bool ensurePrimary=false)
{
int count = 0;
QRgb rgb = color.rgba();
+ int totalCount = image.height()*image.width();
for (int y = 0; y < image.height(); ++y) {
for (int x = 0; x < image.width(); ++x) {
// Because of antialiasing we allow a certain range of errors here.
QRgb pixel = image.pixel(x, y);
+
if (qAbs((int)(pixel & 0xff) - (int)(rgb & 0xff)) +
qAbs((int)((pixel & 0xff00) >> 8) - (int)((rgb & 0xff00) >> 8)) +
qAbs((int)((pixel & 0xff0000) >> 16) - (int)((rgb & 0xff0000) >> 16)) <= 50) {
- if (++count >= 10) {
+ count++;
+ if (!ensurePrimary && count >=10 )
+ return true;
+ else if (count > totalCount/2)
return true;
- }
}
}
}
@@ -1528,6 +1533,15 @@ void tst_QStyleSheetStyle::task188195_baseBackground()
tree.render(&image);
QVERIFY(testForColors(image, tree.palette().base().color()));
QVERIFY(!testForColors(image, QColor(0xab, 0x12, 0x51)));
+
+ QTableWidget table(12, 12);
+ table.setItem(0, 0, new QTableWidgetItem());
+ table.setStyleSheet( "QTableView {background-color: #ff0000}" );
+ table.show();
+ QTest::qWait(20);
+ image = QImage(table.width(), table.height(), QImage::Format_ARGB32);
+ table.render(&image);
+ QVERIFY(testForColors(image, Qt::red, true));
}
void tst_QStyleSheetStyle::task232085_spinBoxLineEditBg()