diff options
Diffstat (limited to 'tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp')
-rw-r--r-- | tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp b/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp index 4181f46551..dc3a783600 100644 --- a/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp +++ b/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp @@ -46,6 +46,8 @@ #include "../../shared/util.h" #include "../shared/visualtestutil.h" +Q_LOGGING_CATEGORY(lcTests, "qt.quick.tests") + Q_DECLARE_METATYPE(QQuickImageBase::Status) class tst_qquickborderimage : public QQmlDataTest @@ -615,6 +617,10 @@ void tst_qquickborderimage::multiFrame_data() void tst_qquickborderimage::multiFrame() { + if ((QGuiApplication::platformName() == QLatin1String("offscreen")) + || (QGuiApplication::platformName() == QLatin1String("minimal"))) + QSKIP("Skipping due to grabWindow not functional on offscreen/minimimal platforms"); + QFETCH(QString, qmlfile); QFETCH(bool, asynchronous); Q_UNUSED(asynchronous) @@ -634,24 +640,30 @@ void tst_qquickborderimage::multiFrame() QCOMPARE(image->currentFrame(), 0); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); + QCoreApplication::processEvents(); // Process all queued events QImage contents = view.grabWindow(); - // The first frame looks blue, approximately qRgba(0x43, 0x7e, 0xd6, 0xff) - QRgb color = contents.pixel(60, 60); - QVERIFY(qRed(color) < 0xc0); - QVERIFY(qGreen(color) < 0xc0); - QVERIFY(qBlue(color) > 0xc0); + if (contents.width() < 160) + QSKIP("Skipping due to grabWindow not functional"); + + // The middle of the first frame looks blue, approximately qRgba(0x43, 0x7e, 0xd6, 0xff) + QColor color = contents.pixelColor(60, 60); + qCDebug(lcTests) << "expected bluish color, got" << color; + QVERIFY(color.redF() < 0.75); + QVERIFY(color.greenF() < 0.75); + QVERIFY(color.blueF() > 0.75); image->setCurrentFrame(1); QTRY_COMPARE(image->status(), QQuickImageBase::Ready); QCOMPARE(currentSpy.count(), 1); QCOMPARE(image->currentFrame(), 1); contents = view.grabWindow(); - // The second frame looks green, approximately qRgba(0x3a, 0xd2, 0x31, 0xff) - color = contents.pixel(60, 60); - QVERIFY(qRed(color) < 0xc0); - QVERIFY(qGreen(color) > 0xc0); - QVERIFY(qBlue(color) < 0xc0); + // The middle of the second frame looks green, approximately qRgba(0x3a, 0xd2, 0x31, 0xff) + color = contents.pixelColor(60, 60); + qCDebug(lcTests) << "expected greenish color, got" << color; + QVERIFY(color.redF() < 0.75); + QVERIFY(color.green() > 0.75); + QVERIFY(color.blueF() < 0.75); } QTEST_MAIN(tst_qquickborderimage) |