summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-02-04 13:50:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-02-04 14:13:39 +0100
commit6722bbbf4ea2ddcdd9194f26a883029ec3afc39a (patch)
treec3290b82fac21c4990be8472ae6cb4ca043205cf /tests/auto/quick
parent41d69eb0fa2375f0da6ba9b35136f5598be4b3a4 (diff)
parent82f4d13a13b40d9cb7710f6dd4190175a272a394 (diff)
Merge branch '5.6' into dev
Diffstat (limited to 'tests/auto/quick')
-rw-r--r--tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp32
-rw-r--r--tests/auto/quick/qquickwebengineviewgraphics/tst_qquickwebengineviewgraphics.cpp7
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));
}