diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-02-04 13:50:57 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-02-04 14:13:39 +0100 |
commit | 6722bbbf4ea2ddcdd9194f26a883029ec3afc39a (patch) | |
tree | c3290b82fac21c4990be8472ae6cb4ca043205cf /tests/auto/quick | |
parent | 41d69eb0fa2375f0da6ba9b35136f5598be4b3a4 (diff) | |
parent | 82f4d13a13b40d9cb7710f6dd4190175a272a394 (diff) |
Merge branch '5.6' into dev
Change-Id: I0bb971f01ee1e02da768f336680c8ec0254ab2b0
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp | 32 | ||||
-rw-r--r-- | tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp | 7 |
2 files changed, 30 insertions, 9 deletions
diff --git a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp index cb566c254..a1900a77d 100644 --- a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp +++ b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp @@ -21,10 +21,13 @@ #include "util.h" #include <QScopedPointer> +#include <QtCore/qelapsedtimer.h> #include <QtQml/QQmlEngine> #include <QtTest/QtTest> #include <private/qquickwebengineview_p.h> +#include <functional> + class tst_QQuickWebEngineView : public QObject { Q_OBJECT public: @@ -313,6 +316,21 @@ void tst_QQuickWebEngineView::multipleWebEngineViews() QTest::qWait(200); } +QImage tryToGrabWindowUntil(QQuickWindow *window, std::function<bool(const QImage &)> checkImage, + int timeout = 5000) +{ + QImage grabbed; + QElapsedTimer t; + t.start(); + do { + QTest::qWait(200); + grabbed = window->grabWindow(); + if (checkImage(grabbed)) + break; + } while (!t.hasExpired(timeout)); + return grabbed; +} + void tst_QQuickWebEngineView::basicRenderingSanity() { showWebEngineView(); @@ -322,9 +340,12 @@ void tst_QQuickWebEngineView::basicRenderingSanity() // This should not crash. webEngineView()->setVisible(true); - QTest::qWait(200); - QImage grabbedWindow = m_window->grabWindow(); + QRgb testColor = qRgba(0, 0xff, 0, 0xff); + const QImage grabbedWindow = tryToGrabWindowUntil(m_window.data(), + [testColor] (const QImage &image) { + return image.pixel(10, 10) == testColor; + }); QVERIFY(grabbedWindow.pixel(10, 10) == testColor); QVERIFY(grabbedWindow.pixel(100, 10) == testColor); QVERIFY(grabbedWindow.pixel(10, 100) == testColor); @@ -370,12 +391,11 @@ void tst_QQuickWebEngineView::transparentWebEngineViews() webEngineView2->setSize(QSizeF(300, 400)); webEngineView2->setUrl(urlFromTestPath("/html/basic_page.html")); QVERIFY(waitForLoadSucceeded(webEngineView2.data())); - webEngineView2->setVisible(true); - - QTest::qWait(200); // Result image: black text on red background. - QImage grabbedWindow = m_window->grabWindow(); + const QImage grabbedWindow = tryToGrabWindowUntil(m_window.data(), [] (const QImage &image) { + return image.pixelColor(0, 0) == QColor(Qt::red); + }); QSet<int> redComponents; for (int i = 0, width = grabbedWindow.width(); i < width; i++) { diff --git a/tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp b/tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp index 2e85ab802..cd1d1ac44 100644 --- a/tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp +++ b/tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp @@ -178,13 +178,14 @@ void tst_QQuickWebEngineViewGraphics::reparentToOtherWindow() void tst_QQuickWebEngineViewGraphics::setHtml(const QString &html) { QString htmlData = QUrl::toPercentEncoding(html); - QString qmlData = QUrl::toPercentEncoding(QStringLiteral("import QtQuick 2.0; import QtWebEngine 1.2; WebEngineView { width: 150; height: 150; url: loadUrl }")); - m_view->rootContext()->setContextProperty("loadUrl", QUrl(QStringLiteral("data:text/html,%1").arg(htmlData))); + QString qmlData = QUrl::toPercentEncoding(QStringLiteral("import QtQuick 2.0; import QtWebEngine 1.2; WebEngineView { width: 150; height: 150 }")); m_view->setSource(QUrl(QStringLiteral("data:text/plain,%1").arg(qmlData))); m_view->create(); QQuickWebEngineView *webEngineView = static_cast<QQuickWebEngineView *>(m_view->rootObject()); - QVERIFY(waitForSignal(reinterpret_cast<QObject *>(webEngineView->experimental()), SIGNAL(loadVisuallyCommitted()))); + QSignalSpy spy(reinterpret_cast<QObject *>(webEngineView->experimental()), SIGNAL(loadVisuallyCommitted())); + webEngineView->setProperty("url", QUrl(QStringLiteral("data:text/html,%1").arg(htmlData))); + QVERIFY(!spy.isEmpty() || spy.wait()); QCOMPARE(m_view->rootObject()->property("loading"), QVariant(false)); } |