aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-02-07 17:06:03 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-02-07 17:07:44 +0100
commitb907a01b467b551756b108f6c9a04d7e7382ae64 (patch)
tree2d21d785186ce485f615034e6667d9673b62a4fc /tests/auto/quick
parent4f8537ff8c9427705e3587861a62fe81cf3e503b (diff)
parent1d29d8edf8e4e709ca2f27791cdf8672c15488f3 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: examples/quick/textureprovider/etcprovider.h src/plugins/qmltooling/qmldbg_ost/qmlostplugin.cpp src/qml/doc/qtqml.qdocconf src/quick/doc/qtquick.qdocconf tests/auto/quick/qquickflickable/tst_qquickflickable.cpp Change-Id: I5027b0ee024e00b9525bd45516b7f401ff7d4ae4
Diffstat (limited to 'tests/auto/quick')
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml8
-rw-r--r--tests/auto/quick/qquickflickable/tst_qquickflickable.cpp4
-rw-r--r--tests/auto/quick/qquickimage/data/correctStatus.qml26
-rw-r--r--tests/auto/quick/qquickimage/tst_qquickimage.cpp51
-rw-r--r--tests/auto/quick/qquickmousearea/qquickmousearea.pro2
-rw-r--r--tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp26
-rw-r--r--tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp8
-rw-r--r--tests/auto/quick/qquickview/tst_qquickview.cpp3
8 files changed, 112 insertions, 16 deletions
diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml b/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml
index 469ff2398d..487f7dc903 100644
--- a/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml
+++ b/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml
@@ -1,4 +1,5 @@
import QtQuick 2.0
+import QtTest 1.0
CanvasTestCase {
id:testCase
@@ -7,6 +8,13 @@ CanvasTestCase {
function test_createImageData(row) {
var canvas = createCanvasObject(row);
var ctx = canvas.getContext('2d');
+ var imageData = ctx.createImageData(1, 1);
+ var imageDataValues = imageData.data;
+ imageDataValues[0] = 255;
+ imageDataValues[0] = 0;
+ if (imageDataValues[0] != 0)
+ qtest_fail('ImageData value access fail, expecting 0, got ' + imageDataValues[0]);
+
ctx.reset();
canvas.destroy()
}
diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
index 5226434c14..9645aaaab3 100644
--- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
+++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
@@ -999,7 +999,7 @@ void tst_qquickflickable::pressWhileFlicking()
// flicking == false, moving == true;
flick(window.data(), QPoint(20,190), QPoint(20, 50), 200);
QVERIFY(flickable->verticalVelocity() > 0.0);
- QVERIFY(flickable->isFlicking());
+ QTRY_VERIFY(flickable->isFlicking());
QVERIFY(flickable->isFlickingVertically());
QVERIFY(!flickable->isFlickingHorizontally());
QVERIFY(flickable->isMoving());
@@ -1254,7 +1254,7 @@ void tst_qquickflickable::flickTwiceUsingTouches()
window->setSource(testFileUrl("longList.qml"));
window->show();
window->requestActivate();
- QTest::qWaitForWindowActive(window);
+ QVERIFY(QTest::qWaitForWindowActive(window));
QVERIFY(window->rootObject() != 0);
QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(window->rootObject());
diff --git a/tests/auto/quick/qquickimage/data/correctStatus.qml b/tests/auto/quick/qquickimage/data/correctStatus.qml
new file mode 100644
index 0000000000..2326078657
--- /dev/null
+++ b/tests/auto/quick/qquickimage/data/correctStatus.qml
@@ -0,0 +1,26 @@
+import QtQuick 2.0
+
+Item {
+ property alias status: image1.status
+
+ Image {
+ id: image1
+ asynchronous: true
+ source: "image://test/first-image.png"
+ }
+
+ Image {
+ id: image2
+ asynchronous: true
+ source: "image://test/first-image.png"
+ }
+
+ Timer {
+ interval: 50
+ running: true
+ repeat: false
+ onTriggered: {
+ image1.source = "image://test/second-image.png"
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickimage/tst_qquickimage.cpp b/tests/auto/quick/qquickimage/tst_qquickimage.cpp
index 7f3f0d5cbc..51ac5c640a 100644
--- a/tests/auto/quick/qquickimage/tst_qquickimage.cpp
+++ b/tests/auto/quick/qquickimage/tst_qquickimage.cpp
@@ -56,6 +56,7 @@
#include <QtGui/QPainter>
#include <QtGui/QImageReader>
#include <QQuickWindow>
+#include <QQuickImageProvider>
#include "../../shared/util.h"
#include "../../shared/testhttpserver.h"
@@ -102,6 +103,7 @@ private slots:
void sourceSize();
void progressAndStatusChanges();
void sourceSizeChanges();
+ void correctStatus();
private:
QQmlEngine engine;
@@ -868,6 +870,55 @@ void tst_qquickimage::progressAndStatusChanges()
delete obj;
}
+class TestQImageProvider : public QQuickImageProvider
+{
+public:
+ TestQImageProvider() : QQuickImageProvider(Image) {}
+
+ QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize)
+ {
+ if (id == QLatin1String("first-image.png")) {
+ QTest::qWait(50);
+ int width = 100;
+ int height = 100;
+ QImage image(width, height, QImage::Format_RGB32);
+ image.fill(QColor("yellow").rgb());
+ if (size)
+ *size = QSize(width, height);
+ return image;
+ }
+
+ QTest::qWait(400);
+ int width = 100;
+ int height = 100;
+ QImage image(width, height, QImage::Format_RGB32);
+ image.fill(QColor("green").rgb());
+ if (size)
+ *size = QSize(width, height);
+ return image;
+ }
+};
+
+void tst_qquickimage::correctStatus()
+{
+ QQmlEngine engine;
+ engine.addImageProvider(QLatin1String("test"), new TestQImageProvider());
+
+ QQmlComponent component(&engine, testFileUrl("correctStatus.qml"));
+ QObject *obj = component.create();
+ QVERIFY(obj);
+
+ QTest::qWait(200);
+
+ // at this point image1 should be attempting to load second-image.png,
+ // and should be in the loading state. Without a clear prior to that load,
+ // the status can mistakenly be in the ready state.
+ QCOMPARE(obj->property("status").toInt(), int(QQuickImage::Loading));
+
+ QTest::qWait(400);
+ delete obj;
+}
+
QTEST_MAIN(tst_qquickimage)
#include "tst_qquickimage.moc"
diff --git a/tests/auto/quick/qquickmousearea/qquickmousearea.pro b/tests/auto/quick/qquickmousearea/qquickmousearea.pro
index 957b04a558..dd7b434898 100644
--- a/tests/auto/quick/qquickmousearea/qquickmousearea.pro
+++ b/tests/auto/quick/qquickmousearea/qquickmousearea.pro
@@ -10,7 +10,5 @@ include (../../shared/util.pri)
TESTDATA = data/*
-CONFIG += parallel_test
-
QT += core-private gui-private qml-private quick-private network testlib
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
index 9fd42373e2..ffe7b51537 100644
--- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
+++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
@@ -248,7 +248,7 @@ void tst_QQuickMouseArea::dragging()
window->setSource(testFileUrl("dragging.qml"));
window->show();
window->requestActivate();
- QTest::qWait(20);
+ QVERIFY(QTest::qWaitForWindowExposed(window));
QVERIFY(window->rootObject() != 0);
QQuickMouseArea *mouseRegion = window->rootObject()->findChild<QQuickMouseArea*>("mouseregion");
@@ -274,19 +274,17 @@ void tst_QQuickMouseArea::dragging()
// First move event triggers drag, second is acted upon.
// This is due to possibility of higher stacked area taking precedence.
- QTest::mouseMove(window, QPoint(111,111));
- QTest::qWait(50);
- QTest::mouseMove(window, QPoint(122,122));
- QTest::qWait(50);
+ QTest::mouseMove(window, QPoint(111,111), 50);
+ QTest::mouseMove(window, QPoint(116,116), 50);
+ QTest::mouseMove(window, QPoint(122,122), 50);
- QVERIFY(drag->active());
- QCOMPARE(blackRect->x(), 72.0);
+ QTRY_VERIFY(drag->active());
+ QTRY_COMPARE(blackRect->x(), 72.0);
QCOMPARE(blackRect->y(), 72.0);
QTest::mouseRelease(window, button, 0, QPoint(122,122));
- QTest::qWait(50);
- QVERIFY(!drag->active());
+ QTRY_VERIFY(!drag->active());
QCOMPARE(blackRect->x(), 72.0);
QCOMPARE(blackRect->y(), 72.0);
@@ -477,20 +475,28 @@ void tst_QQuickMouseArea::noOnClickedWithPressAndHold()
window->show();
window->requestActivate();
QVERIFY(window->rootObject() != 0);
+ QQuickMouseArea *mouseArea = qobject_cast<QQuickMouseArea*>(window->rootObject()->children().first());
+ QVERIFY(mouseArea);
QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
QGuiApplication::sendEvent(window, &pressEvent);
+ QVERIFY(mouseArea->pressedButtons() == Qt::LeftButton);
QVERIFY(!window->rootObject()->property("clicked").toBool());
QVERIFY(!window->rootObject()->property("held").toBool());
+ // timeout is 800 (in qquickmousearea.cpp)
QTest::qWait(1000);
+ QCoreApplication::processEvents();
+
+ QVERIFY(!window->rootObject()->property("clicked").toBool());
+ QVERIFY(window->rootObject()->property("held").toBool());
QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
QGuiApplication::sendEvent(window, &releaseEvent);
+ QTRY_VERIFY(window->rootObject()->property("held").toBool());
QVERIFY(!window->rootObject()->property("clicked").toBool());
- QVERIFY(window->rootObject()->property("held").toBool());
delete window;
}
diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
index 2714ce47f6..8e63b6207f 100644
--- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
+++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
@@ -3089,6 +3089,14 @@ void tst_qquicktextinput::cursorRectangle()
input.setHAlign(leftToRight ? QQuickTextInput::AlignRight : QQuickTextInput::AlignLeft);
r = input.cursorRectangle();
QCOMPARE(r.left(), leftToRight ? input.width() : 0);
+
+ QSignalSpy cursorRectangleSpy(&input, SIGNAL(cursorRectangleChanged()));
+
+ QString widerText = shortText;
+ widerText[1] = 'W'; // Assumes shortText is at least two characters long.
+ input.setText(widerText);
+
+ QCOMPARE(cursorRectangleSpy.count(), 1);
}
void tst_qquicktextinput::readOnly()
diff --git a/tests/auto/quick/qquickview/tst_qquickview.cpp b/tests/auto/quick/qquickview/tst_qquickview.cpp
index 64b108cbec..e2e20a6516 100644
--- a/tests/auto/quick/qquickview/tst_qquickview.cpp
+++ b/tests/auto/quick/qquickview/tst_qquickview.cpp
@@ -153,8 +153,7 @@ void tst_QQuickView::resizemodeitem()
// size update from view
view->resize(QSize(200,300));
- QTest::qWait(50);
- QCOMPARE(item->width(), 200.0);
+ QTRY_COMPARE(item->width(), 200.0);
QCOMPARE(item->height(), 300.0);
QCOMPARE(view->size(), QSize(200, 300));
QCOMPARE(view->size(), view->sizeHint());