summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text/qstatictext/tst_qstatictext.cpp')
-rw-r--r--tests/auto/gui/text/qstatictext/tst_qstatictext.cpp61
1 files changed, 38 insertions, 23 deletions
diff --git a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
index 7f4a11c5a5..ec30cc8b67 100644
--- a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
@@ -34,7 +34,9 @@
#include <qstatictext.h>
#include <qpaintengine.h>
+#ifdef QT_BUILD_INTERNAL
#include <private/qstatictext_p.h>
+#endif
// #define DEBUG_SAVE_IMAGE
@@ -89,8 +91,10 @@ private slots:
void unprintableCharacter_qtbug12614();
+#ifdef QT_BUILD_INTERNAL
void underlinedColor_qtbug20159();
void textDocumentColor();
+#endif
private:
bool supportsTransformations() const;
@@ -592,6 +596,29 @@ void tst_QStaticText::plainTextVsRichText()
QCOMPARE(imagePlainText, imageRichText);
}
+static bool checkPixels(const QImage &image,
+ Qt::GlobalColor expectedColor1, Qt::GlobalColor expectedColor2,
+ QByteArray *errorMessage)
+{
+ const QRgb expectedRgb1 = QColor(expectedColor1).rgba();
+ const QRgb expectedRgb2 = QColor(expectedColor2).rgba();
+
+ for (int x = 0, w = image.width(); x < w; ++x) {
+ for (int y = 0, h = image.height(); y < h; ++y) {
+ const QRgb pixel = image.pixel(x, y);
+ if (pixel != expectedRgb1 && pixel != expectedRgb2) {
+ QString message;
+ QDebug(&message) << "Color mismatch in image" << image
+ << "at" << x << ',' << y << ':' << showbase << hex << pixel
+ << "(expected: " << expectedRgb1 << ',' << expectedRgb2 << ')';
+ *errorMessage = message.toLocal8Bit();
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
void tst_QStaticText::setPenPlainText_data()
{
QTest::addColumn<QImage::Format>("format");
@@ -622,13 +649,9 @@ void tst_QStaticText::setPenPlainText()
p.drawStaticText(0, 0, staticText);
}
- for (int x=0; x<image.width(); ++x) {
- for (int y=0; y<image.height(); ++y) {
- QRgb pixel = image.pixel(x, y);
- QVERIFY(pixel == QColor(Qt::white).rgba()
- || pixel == QColor(Qt::yellow).rgba());
- }
- }
+ QByteArray errorMessage;
+ QVERIFY2(checkPixels(image, Qt::yellow, Qt::white, &errorMessage),
+ errorMessage.constData());
}
void tst_QStaticText::setPenRichText()
@@ -650,14 +673,9 @@ void tst_QStaticText::setPenRichText()
p.drawStaticText(0, 0, staticText);
}
- QImage img = image.toImage();
- for (int x=0; x<img.width(); ++x) {
- for (int y=0; y<img.height(); ++y) {
- QRgb pixel = img.pixel(x, y);
- QVERIFY(pixel == QColor(Qt::white).rgba()
- || pixel == QColor(Qt::green).rgba());
- }
- }
+ QByteArray errorMessage;
+ QVERIFY2(checkPixels(image.toImage(), Qt::green, Qt::white, &errorMessage),
+ errorMessage.constData());
}
void tst_QStaticText::richTextOverridesPen()
@@ -679,14 +697,9 @@ void tst_QStaticText::richTextOverridesPen()
p.drawStaticText(0, 0, staticText);
}
- QImage img = image.toImage();
- for (int x=0; x<img.width(); ++x) {
- for (int y=0; y<img.height(); ++y) {
- QRgb pixel = img.pixel(x, y);
- QVERIFY(pixel == QColor(Qt::white).rgba()
- || pixel == QColor(Qt::red).rgba());
- }
- }
+ QByteArray errorMessage;
+ QVERIFY2(checkPixels(image.toImage(), Qt::red, Qt::white, &errorMessage),
+ errorMessage.constData());
}
void tst_QStaticText::drawStruckOutText()
@@ -802,6 +815,7 @@ void tst_QStaticText::unprintableCharacter_qtbug12614()
QVERIFY(staticText.size().isValid()); // Force layout. Should not crash.
}
+#ifdef QT_BUILD_INTERNAL
void tst_QStaticText::underlinedColor_qtbug20159()
{
QString multiScriptText;
@@ -838,6 +852,7 @@ void tst_QStaticText::textDocumentColor()
QCOMPARE(d->items[1].color, QColor(Qt::red));
}
+#endif
QTEST_MAIN(tst_QStaticText)
#include "tst_qstatictext.moc"