diff options
Diffstat (limited to 'tests/auto/quick')
68 files changed, 375 insertions, 171 deletions
diff --git a/tests/auto/quick/examples/examples.pro b/tests/auto/quick/examples/examples.pro index e67120d7c2..5907ba291c 100644 --- a/tests/auto/quick/examples/examples.pro +++ b/tests/auto/quick/examples/examples.pro @@ -8,3 +8,5 @@ DEFINES += SRCDIR=\\\"$$PWD\\\" CONFIG += parallel_test #temporary QT += core-private gui-private qml-private quick-private widgets-private v8-private testlib + +cross_compile: DEFINES += QTEST_CROSS_COMPILED diff --git a/tests/auto/quick/examples/tst_examples.cpp b/tests/auto/quick/examples/tst_examples.cpp index 482053e158..c29da570c3 100644 --- a/tests/auto/quick/examples/tst_examples.cpp +++ b/tests/auto/quick/examples/tst_examples.cpp @@ -237,6 +237,10 @@ void tst_examples::sgexamples() { QFETCH(QString, file); +#if defined(QTEST_CROSS_COMPILED) + QSKIP("sources not available when cross compiled"); +#endif + QQmlComponent component(&engine, QUrl::fromLocalFile(file)); if (component.status() == QQmlComponent::Error) qWarning() << component.errors(); @@ -274,6 +278,10 @@ void tst_examples::sgsnippets() { QFETCH(QString, file); +#if defined(QTEST_CROSS_COMPILED) + QSKIP("sources not available when cross compiled"); +#endif + QQmlComponent component(&engine, QUrl::fromLocalFile(file)); if (component.status() == QQmlComponent::Error) qWarning() << component.errors(); diff --git a/tests/auto/quick/qquickaccessible/qquickaccessible.pro b/tests/auto/quick/qquickaccessible/qquickaccessible.pro index ca50f5d8af..1c811d75b7 100644 --- a/tests/auto/quick/qquickaccessible/qquickaccessible.pro +++ b/tests/auto/quick/qquickaccessible/qquickaccessible.pro @@ -8,13 +8,13 @@ SOURCES += tst_qquickaccessible.cpp include (../../shared/util.pri) +TESTDATA = data/* + OTHER_FILES += data/checkbuttons.qml OTHER_FILES += data/hittest.qml OTHER_FILES += data/pushbutton.qml OTHER_FILES += data/statictext.qml -DEFINES += SRCDIR=\\\"$$PWD\\\" - CONFIG += parallel_test wince*: { diff --git a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp index d65666162d..48c07c6e2c 100644 --- a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp +++ b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp @@ -129,8 +129,8 @@ void tst_QQuickAccessible::commonTests_data() { QTest::addColumn<QString>("accessibleRoleFileName"); - QTest::newRow("StaticText") << SRCDIR "/data/statictext.qml"; - QTest::newRow("PushButton") << SRCDIR "/data/pushbutton.qml"; + QTest::newRow("StaticText") << "statictext.qml"; + QTest::newRow("PushButton") << "pushbutton.qml"; } void tst_QQuickAccessible::commonTests() @@ -141,7 +141,7 @@ void tst_QQuickAccessible::commonTests() QQuickView *view = new QQuickView(); // view->setFixedSize(240,320); - view->setSource(QUrl::fromLocalFile(accessibleRoleFileName)); + view->setSource(testFileUrl(accessibleRoleFileName)); view->show(); // view->setFocus(); QVERIFY(view->rootObject() != 0); diff --git a/tests/auto/quick/qquickanchors/qquickanchors.pro b/tests/auto/quick/qquickanchors/qquickanchors.pro index 30e6e6dcf8..343f39b6f0 100644 --- a/tests/auto/quick/qquickanchors/qquickanchors.pro +++ b/tests/auto/quick/qquickanchors/qquickanchors.pro @@ -7,9 +7,7 @@ include (../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickanimatedimage/qquickanimatedimage.pro b/tests/auto/quick/qquickanimatedimage/qquickanimatedimage.pro index 468a3253f8..e2d68f191c 100644 --- a/tests/auto/quick/qquickanimatedimage/qquickanimatedimage.pro +++ b/tests/auto/quick/qquickanimatedimage/qquickanimatedimage.pro @@ -8,9 +8,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickanimatedsprite/qquickanimatedsprite.pro b/tests/auto/quick/qquickanimatedsprite/qquickanimatedsprite.pro index 3c20ccea66..04298673b6 100644 --- a/tests/auto/quick/qquickanimatedsprite/qquickanimatedsprite.pro +++ b/tests/auto/quick/qquickanimatedsprite/qquickanimatedsprite.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickanimationcontroller/qquickanimationcontroller.pro b/tests/auto/quick/qquickanimationcontroller/qquickanimationcontroller.pro index 72a09fcb9c..c09eb5c98c 100644 --- a/tests/auto/quick/qquickanimationcontroller/qquickanimationcontroller.pro +++ b/tests/auto/quick/qquickanimationcontroller/qquickanimationcontroller.pro @@ -5,6 +5,4 @@ TARGET=tst_qquickanimationcontroller CONFIG += warn_on qmltestcase SOURCES += tst_qquickanimationcontroller.cpp -importFiles.files = data -importFiles.path = . -DEPLOYMENT += importFiles +TESTDATA = data/* diff --git a/tests/auto/quick/qquickanimations/qquickanimations.pro b/tests/auto/quick/qquickanimations/qquickanimations.pro index 0e432ab9f1..d9c3ea28c1 100644 --- a/tests/auto/quick/qquickanimations/qquickanimations.pro +++ b/tests/auto/quick/qquickanimations/qquickanimations.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickbehaviors/qquickbehaviors.pro b/tests/auto/quick/qquickbehaviors/qquickbehaviors.pro index fc103ed4c2..dcffad6cd9 100644 --- a/tests/auto/quick/qquickbehaviors/qquickbehaviors.pro +++ b/tests/auto/quick/qquickbehaviors/qquickbehaviors.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickborderimage/qquickborderimage.pro b/tests/auto/quick/qquickborderimage/qquickborderimage.pro index f50149aead..c967d579e5 100644 --- a/tests/auto/quick/qquickborderimage/qquickborderimage.pro +++ b/tests/auto/quick/qquickborderimage/qquickborderimage.pro @@ -8,9 +8,7 @@ SOURCES += tst_qquickborderimage.cpp \ include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickcanvas/qquickcanvas.pro b/tests/auto/quick/qquickcanvas/qquickcanvas.pro index 7f27a05243..817eb2534f 100644 --- a/tests/auto/quick/qquickcanvas/qquickcanvas.pro +++ b/tests/auto/quick/qquickcanvas/qquickcanvas.pro @@ -9,9 +9,7 @@ macx:CONFIG -= app_bundle CONFIG += parallel_test QT += core-private gui-private qml-private quick-private testlib -testData.files = data -testData.path = . -DEPLOYMENT += testData +TESTDATA = data/* OTHER_FILES += \ data/AnimationsWhileHidden.qml \ diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_arc.qml b/tests/auto/quick/qquickcanvasitem/data/tst_arc.qml index 6006a5a4c0..ffe6583d2e 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_arc.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_arc.qml @@ -3,7 +3,7 @@ import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "arc"; when: windowShown function test_angle_1() { diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_arcto.qml b/tests/auto/quick/qquickcanvasitem/data/tst_arcto.qml index cc1d88672b..8609ad0332 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_arcto.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_arcto.qml @@ -3,7 +3,7 @@ import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "arcTo"; when: windowShown function test_coincide() { diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml index a00ccc3c3f..23d7b719ff 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml @@ -15,6 +15,8 @@ Rectangle { context.fillStyle = "red"; context.fillRect(0, 0, 100, 100); } + renderTarget:Canvas.Image + renderStrategy:Canvas.Threaded property int paintCount:spyPaint.count property int paintedCount:spyPainted.count property int canvasSizeChangedCount:spyCanvasSizeChanged.count @@ -228,7 +230,7 @@ Rectangle { c.toDataURL(); wait(100); - compare(c.paintedCount, 1); + compare(c.paintedCount, 2); compare(c.paintCount, 1); c.destroy(); diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_composite.qml b/tests/auto/quick/qquickcanvasitem/data/tst_composite.qml index 11e1dce902..bdc9d37663 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_composite.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_composite.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget:Canvas.Image + id:canvas; width:100;height:50; renderTarget:Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "composite"; when: windowShown function test_clearRect() { @@ -377,4 +377,4 @@ Canvas { } } -}
\ No newline at end of file +} diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_drawimage.qml b/tests/auto/quick/qquickcanvasitem/data/tst_drawimage.qml index 102217dc0c..75dd2b380c 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_drawimage.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_drawimage.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded Component.onCompleted: { canvas.loadImage('green.png'); canvas.loadImage('red.png'); diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_fillStyle.qml b/tests/auto/quick/qquickcanvasitem/data/tst_fillStyle.qml index 8f5a78cec0..153a1034c1 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_fillStyle.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_fillStyle.qml @@ -3,7 +3,7 @@ import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:1;height:1;renderTarget:Canvas.Image + id:canvas; width:1;height:1;renderTarget:Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "fillStyle"; when: windowShown function test_default() { diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_gradient.qml b/tests/auto/quick/qquickcanvasitem/data/tst_gradient.qml index d454c2efe1..10ee6a6313 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_gradient.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_gradient.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "gradient"; when: windowShown function test_basic() { diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_line.qml b/tests/auto/quick/qquickcanvasitem/data/tst_line.qml index baf9987ce3..f1c2820734 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_line.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_line.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import"testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50;renderTarget: Canvas.Image + id:canvas; width:100;height:50;renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "line"; when: windowShown function test_default() { @@ -828,4 +828,4 @@ Canvas { } } -}
\ No newline at end of file +} diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_path.qml b/tests/auto/quick/qquickcanvasitem/data/tst_path.qml index b04ccf5458..6aaecbdfa5 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_path.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_path.qml @@ -3,7 +3,7 @@ import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "path"; when: windowShown diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_pattern.qml b/tests/auto/quick/qquickcanvasitem/data/tst_pattern.qml index dd5b6628e8..29c8bc97fc 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_pattern.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_pattern.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { //TODO name: "pattern"; when: windowShown diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml b/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml index 1a3793d7a3..8fd390a36a 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_pixel.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { //TODO name: "pixel"; when: windowShown diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_shadow.qml b/tests/auto/quick/qquickcanvasitem/data/tst_shadow.qml index 4405ca6c0e..bcb602a31a 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_shadow.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_shadow.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { //TODO diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_state.qml b/tests/auto/quick/qquickcanvasitem/data/tst_state.qml index 8042cf6a1d..def312d1e5 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_state.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_state.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { id:testCase name: "state"; when: windowShown diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_strokeStyle.qml b/tests/auto/quick/qquickcanvasitem/data/tst_strokeStyle.qml index 6b42f8a770..2521643837 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_strokeStyle.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_strokeStyle.qml @@ -3,7 +3,7 @@ import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget:Canvas.Image + id:canvas; width:100;height:50; renderTarget:Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "strokeStyle"; when: windowShown function test_default() { diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_text.qml b/tests/auto/quick/qquickcanvasitem/data/tst_text.qml index baeb17c9fb..11618e95a9 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_text.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_text.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { //TODO name: "text"; when: windowShown diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_transform.qml b/tests/auto/quick/qquickcanvasitem/data/tst_transform.qml index 834a22f549..b8505c6452 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_transform.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_transform.qml @@ -2,7 +2,7 @@ import QtQuick 2.0 import QtTest 1.0 import "testhelper.js" as Helper Canvas { - id:canvas; width:100;height:50; renderTarget: Canvas.Image + id:canvas; width:100;height:50; renderTarget: Canvas.Image; renderStrategy:Canvas.Threaded TestCase { name: "transform"; when: windowShown function test_order() { diff --git a/tests/auto/quick/qquickcanvasitem/qquickcanvasitem.pro b/tests/auto/quick/qquickcanvasitem/qquickcanvasitem.pro index ccf894715f..b0122f997a 100644 --- a/tests/auto/quick/qquickcanvasitem/qquickcanvasitem.pro +++ b/tests/auto/quick/qquickcanvasitem/qquickcanvasitem.pro @@ -5,9 +5,7 @@ TARGET=tst_qquickcanvasitem CONFIG += warn_on qmltestcase SOURCES += tst_qquickcanvasitem.cpp -importFiles.files = data -importFiles.path = . -DEPLOYMENT += importFiles +TESTDATA = data/* OTHER_FILES += \ data/testhelper.js \ diff --git a/tests/auto/quick/qquickflickable/qquickflickable.pro b/tests/auto/quick/qquickflickable/qquickflickable.pro index 0ca03b2497..35d9b8cbb6 100644 --- a/tests/auto/quick/qquickflickable/qquickflickable.pro +++ b/tests/auto/quick/qquickflickable/qquickflickable.pro @@ -7,9 +7,7 @@ SOURCES += tst_qquickflickable.cpp include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private testlib diff --git a/tests/auto/quick/qquickflipable/qquickflipable.pro b/tests/auto/quick/qquickflipable/qquickflipable.pro index ca98cbe279..1198a1f646 100644 --- a/tests/auto/quick/qquickflipable/qquickflipable.pro +++ b/tests/auto/quick/qquickflipable/qquickflipable.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickflipable.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickfocusscope/qquickfocusscope.pro b/tests/auto/quick/qquickfocusscope/qquickfocusscope.pro index 34de32b173..7a4b7302d0 100644 --- a/tests/auto/quick/qquickfocusscope/qquickfocusscope.pro +++ b/tests/auto/quick/qquickfocusscope/qquickfocusscope.pro @@ -7,8 +7,6 @@ include (../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* QT += core-private gui-private qml-private quick-private testlib diff --git a/tests/auto/quick/qquickfontloader/qquickfontloader.pro b/tests/auto/quick/qquickfontloader/qquickfontloader.pro index 7c34c43d04..2eeb286e61 100644 --- a/tests/auto/quick/qquickfontloader/qquickfontloader.pro +++ b/tests/auto/quick/qquickfontloader/qquickfontloader.pro @@ -8,9 +8,7 @@ SOURCES += tst_qquickfontloader.cpp \ include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickgridview/data/displacedTransitions.qml b/tests/auto/quick/qquickgridview/data/displacedTransitions.qml index d9353c0639..2db06976fb 100644 --- a/tests/auto/quick/qquickgridview/data/displacedTransitions.qml +++ b/tests/auto/quick/qquickgridview/data/displacedTransitions.qml @@ -38,6 +38,7 @@ Rectangle { text: number } color: GridView.isCurrentItem ? "lightsteelblue" : "white" + border.width: 1 onXChanged: checkPos() onYChanged: checkPos() @@ -61,6 +62,17 @@ Rectangle { property int targetTransitionsDone property int displaceTransitionsDone + property var displacedTargetIndexes: new Array() + property var displacedTargetItems: new Array() + + // for QDeclarativeListProperty types + function copyList(propList) { + var temp = new Array() + for (var i=0; i<propList.length; i++) + temp.push(propList[i]) + return temp + } + objectName: "grid" focus: true anchors.centerIn: parent @@ -80,6 +92,12 @@ Rectangle { id: displaced enabled: displacedEnabled SequentialAnimation { + ScriptAction { + script: { + grid.displacedTargetIndexes.push(displaced.ViewTransition.targetIndexes) + grid.displacedTargetItems.push(grid.copyList(displaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: displaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: displaced_transitionVia.y; duration: root.duration } @@ -93,6 +111,12 @@ Rectangle { id: addDisplaced enabled: addDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + grid.displacedTargetIndexes.push(addDisplaced.ViewTransition.targetIndexes) + grid.displacedTargetItems.push(grid.copyList(addDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: addDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: addDisplaced_transitionVia.y; duration: root.duration } @@ -106,6 +130,12 @@ Rectangle { id: moveDisplaced enabled: moveDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + grid.displacedTargetIndexes.push(moveDisplaced.ViewTransition.targetIndexes) + grid.displacedTargetItems.push(grid.copyList(moveDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: moveDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: moveDisplaced_transitionVia.y; duration: root.duration } @@ -119,6 +149,12 @@ Rectangle { id: removeDisplaced enabled: removeDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + grid.displacedTargetIndexes.push(removeDisplaced.ViewTransition.targetIndexes) + grid.displacedTargetItems.push(grid.copyList(removeDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: removeDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: removeDisplaced_transitionVia.y; duration: root.duration } diff --git a/tests/auto/quick/qquickgridview/data/multipleTransitions.qml b/tests/auto/quick/qquickgridview/data/multipleTransitions.qml index 909ec3a0b7..f0d932082b 100644 --- a/tests/auto/quick/qquickgridview/data/multipleTransitions.qml +++ b/tests/auto/quick/qquickgridview/data/multipleTransitions.qml @@ -10,7 +10,7 @@ Rectangle { // interrupting transitions will still produce the correct result) property int timeBetweenActions: duration / 2 - property int duration: 300 + property int duration: 100 property int count: grid.count diff --git a/tests/auto/quick/qquickgridview/qquickgridview.pro b/tests/auto/quick/qquickgridview/qquickgridview.pro index cabf4396b4..b4a234e35a 100644 --- a/tests/auto/quick/qquickgridview/qquickgridview.pro +++ b/tests/auto/quick/qquickgridview/qquickgridview.pro @@ -7,9 +7,7 @@ SOURCES += tst_qquickgridview.cpp include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private opengl-private testlib widgets diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index c0f2b02a7e..66c98cda84 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -1274,8 +1274,6 @@ void tst_QQuickGridView::moved_data() void tst_QQuickGridView::multipleChanges() { - QSKIP("QTBUG-24523"); - QFETCH(int, startCount); QFETCH(QList<ListChange>, changes); QFETCH(int, newCount); @@ -1775,6 +1773,12 @@ void tst_QQuickGridView::currentIndex() QVERIFY(!gridview->highlightItem()); QVERIFY(!gridview->currentItem()); + // moving currentItem out of view should make it invisible + gridview->setCurrentIndex(0); + QTRY_VERIFY(gridview->currentItem()->isVisible()); + gridview->setContentY(200); + QTRY_VERIFY(!gridview->currentItem()->isVisible()); + delete canvas; } @@ -4639,11 +4643,26 @@ void tst_QQuickGridView::displacedTransitions() case ListChange::SetContentY: break; } + + QVariantList resultTargetIndexes = gridview->property("displacedTargetIndexes").toList(); + QVariantList resultTargetItems = gridview->property("displacedTargetItems").toList(); + if ((useDisplaced && displacedEnabled) || (useAddDisplaced && addDisplacedEnabled) || (useMoveDisplaced && moveDisplacedEnabled) || (useRemoveDisplaced && removeDisplacedEnabled)) { QTRY_VERIFY(gridview->property("displaceTransitionsDone").toBool()); + + // check the correct number of target items and indexes were received + QCOMPARE(resultTargetIndexes.count(), expectedDisplacedIndexes.count()); + for (int i=0; i<resultTargetIndexes.count(); i++) + QCOMPARE(resultTargetIndexes[i].value<QList<int> >().count(), change.count); + QCOMPARE(resultTargetItems.count(), expectedDisplacedIndexes.count()); + for (int i=0; i<resultTargetItems.count(); i++) + QCOMPARE(resultTargetItems[i].toList().count(), change.count); + } else { + QCOMPARE(resultTargetIndexes.count(), 0); + QCOMPARE(resultTargetItems.count(), 0); } if (change.type == ListChange::Inserted && useAddDisplaced && addDisplacedEnabled) @@ -4817,17 +4836,15 @@ void tst_QQuickGridView::multipleTransitions() int timeBetweenActions = canvas->rootObject()->property("timeBetweenActions").toInt(); - QList<QPair<QString, QString> > targetItems; for (int i=0; i<changes.count(); i++) { switch (changes[i].type) { case ListChange::Inserted: { + QList<QPair<QString, QString> > targetItems; for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) targetItems << qMakePair(QString("new item %1").arg(j), QString::number(j)); model.insertItems(changes[i].index, targetItems); QTRY_COMPARE(model.count(), gridview->count()); - QTRY_VERIFY(gridview->property("runningAddTargets").toBool()); - QTRY_VERIFY(gridview->property("runningAddDisplaced").toBool()); if (i == changes.count() - 1) { QTRY_VERIFY(!gridview->property("runningAddTargets").toBool()); QTRY_VERIFY(!gridview->property("runningAddDisplaced").toBool()); @@ -4837,12 +4854,8 @@ void tst_QQuickGridView::multipleTransitions() break; } case ListChange::Removed: - for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) - targetItems << qMakePair(model.name(i), model.number(i)); model.removeItems(changes[i].index, changes[i].count); QTRY_COMPARE(model.count(), gridview->count()); - QTRY_VERIFY(gridview->property("runningRemoveTargets").toBool()); - QTRY_VERIFY(gridview->property("runningRemoveDisplaced").toBool()); if (i == changes.count() - 1) { QTRY_VERIFY(!gridview->property("runningRemoveTargets").toBool()); QTRY_VERIFY(!gridview->property("runningRemoveDisplaced").toBool()); @@ -4851,11 +4864,8 @@ void tst_QQuickGridView::multipleTransitions() } break; case ListChange::Moved: - for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) - targetItems << qMakePair(model.name(i), model.number(i)); model.moveItems(changes[i].index, changes[i].to, changes[i].count); - QTRY_VERIFY(gridview->property("runningMoveTargets").toBool()); - QTRY_VERIFY(gridview->property("runningMoveDisplaced").toBool()); + QTRY_COMPARE(QQuickItemPrivate::get(gridview)->polishScheduled, false); if (i == changes.count() - 1) { QTRY_VERIFY(!gridview->property("runningMoveTargets").toBool()); QTRY_VERIFY(!gridview->property("runningMoveDisplaced").toBool()); diff --git a/tests/auto/quick/qquickimage/qquickimage.pro b/tests/auto/quick/qquickimage/qquickimage.pro index a68a7870d8..ad0097df08 100644 --- a/tests/auto/quick/qquickimage/qquickimage.pro +++ b/tests/auto/quick/qquickimage/qquickimage.pro @@ -9,9 +9,7 @@ SOURCES += tst_qquickimage.cpp \ include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private qml-private quick-private network testlib diff --git a/tests/auto/quick/qquickitem/qquickitem.pro b/tests/auto/quick/qquickitem/qquickitem.pro index cf24e63d05..cbbd6e586b 100644 --- a/tests/auto/quick/qquickitem/qquickitem.pro +++ b/tests/auto/quick/qquickitem/qquickitem.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private widgets testlib diff --git a/tests/auto/quick/qquickitem2/qquickitem2.pro b/tests/auto/quick/qquickitem2/qquickitem2.pro index 29897ba3c1..887c8796a8 100644 --- a/tests/auto/quick/qquickitem2/qquickitem2.pro +++ b/tests/auto/quick/qquickitem2/qquickitem2.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickitem.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickitemlayer/qquickitemlayer.pro b/tests/auto/quick/qquickitemlayer/qquickitemlayer.pro index a2d5f401ff..9ffdbe7454 100644 --- a/tests/auto/quick/qquickitemlayer/qquickitemlayer.pro +++ b/tests/auto/quick/qquickitemlayer/qquickitemlayer.pro @@ -4,9 +4,7 @@ SOURCES += tst_qquickitemlayer.cpp macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* include(../../shared/util.pri) diff --git a/tests/auto/quick/qquicklistview/data/displacedTransitions.qml b/tests/auto/quick/qquicklistview/data/displacedTransitions.qml index cc7892e930..964ded10ee 100644 --- a/tests/auto/quick/qquicklistview/data/displacedTransitions.qml +++ b/tests/auto/quick/qquicklistview/data/displacedTransitions.qml @@ -53,6 +53,17 @@ Rectangle { property int targetTransitionsDone property int displaceTransitionsDone + property var displacedTargetIndexes: new Array() + property var displacedTargetItems: new Array() + + // for QDeclarativeListProperty types + function copyList(propList) { + var temp = new Array() + for (var i=0; i<propList.length; i++) + temp.push(propList[i]) + return temp + } + objectName: "list" focus: true anchors.centerIn: parent @@ -70,6 +81,12 @@ Rectangle { id: displaced enabled: displacedEnabled SequentialAnimation { + ScriptAction { + script: { + list.displacedTargetIndexes.push(displaced.ViewTransition.targetIndexes) + list.displacedTargetItems.push(list.copyList(displaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: displaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: displaced_transitionVia.y; duration: root.duration } @@ -83,6 +100,12 @@ Rectangle { id: addDisplaced enabled: addDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + list.displacedTargetIndexes.push(addDisplaced.ViewTransition.targetIndexes) + list.displacedTargetItems.push(list.copyList(addDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: addDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: addDisplaced_transitionVia.y; duration: root.duration } @@ -96,6 +119,12 @@ Rectangle { id: moveDisplaced enabled: moveDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + list.displacedTargetIndexes.push(moveDisplaced.ViewTransition.targetIndexes) + list.displacedTargetItems.push(list.copyList(moveDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: moveDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: moveDisplaced_transitionVia.y; duration: root.duration } @@ -109,6 +138,12 @@ Rectangle { id: removeDisplaced enabled: removeDisplacedEnabled SequentialAnimation { + ScriptAction { + script: { + list.displacedTargetIndexes.push(removeDisplaced.ViewTransition.targetIndexes) + list.displacedTargetItems.push(list.copyList(removeDisplaced.ViewTransition.targetItems)) + } + } ParallelAnimation { NumberAnimation { properties: "x"; to: removeDisplaced_transitionVia.x; duration: root.duration } NumberAnimation { properties: "y"; to: removeDisplaced_transitionVia.y; duration: root.duration } diff --git a/tests/auto/quick/qquicklistview/data/flickBeyondBoundsBug.qml b/tests/auto/quick/qquicklistview/data/flickBeyondBoundsBug.qml new file mode 100644 index 0000000000..0a1b1a1b64 --- /dev/null +++ b/tests/auto/quick/qquicklistview/data/flickBeyondBoundsBug.qml @@ -0,0 +1,43 @@ +import QtQuick 2.0 + +Rectangle { + id: root + width: 240 + height: 320 + color: "#ffffff" + + Component { + id: myDelegate + Rectangle { + id: wrapper + objectName: "wrapper" + height: column.height + Column { + id: column + Text { + text: "index: " + index + ", delegate A" + Component.onCompleted: height = index % 2 ? 30 : 20 + } + Text { + x: 200 + text: wrapper.y + height: 25 + } + } + color: ListView.isCurrentItem ? "lightsteelblue" : "#EEEEEE" + } + } + ListView { + id: list + objectName: "list" + focus: true + width: 240 + height: 320 + model: 2 + delegate: myDelegate + highlightMoveSpeed: 1000 + highlightResizeSpeed: 1000 + cacheBuffer: 400 + } + Text { anchors.bottom: parent.bottom; text: list.contentY } +} diff --git a/tests/auto/quick/qquicklistview/data/multipleTransitions.qml b/tests/auto/quick/qquicklistview/data/multipleTransitions.qml index 8264b42b64..68efeea2ec 100644 --- a/tests/auto/quick/qquicklistview/data/multipleTransitions.qml +++ b/tests/auto/quick/qquicklistview/data/multipleTransitions.qml @@ -10,7 +10,7 @@ Rectangle { // interrupting transitions will still produce the correct result) property int timeBetweenActions: duration / 2 - property int duration: 300 + property int duration: 100 property int count: list.count diff --git a/tests/auto/quick/qquicklistview/qquicklistview.pro b/tests/auto/quick/qquicklistview/qquicklistview.pro index 4cac8e7665..d4d97e2106 100644 --- a/tests/auto/quick/qquicklistview/qquicklistview.pro +++ b/tests/auto/quick/qquicklistview/qquicklistview.pro @@ -9,8 +9,6 @@ SOURCES += tst_qquicklistview.cpp \ include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* QT += core-private gui-private qml-private quick-private widgets widgets-private v8-private opengl-private testlib diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index 9195aab632..dcc2e9dd16 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -184,6 +184,8 @@ private slots: void multipleTransitions(); void multipleTransitions_data(); + void flickBeyondBounds(); + private: template <class T> void items(const QUrl &source, bool forceLayout); template <class T> void changed(const QUrl &source, bool forceLayout); @@ -2351,6 +2353,11 @@ void tst_QQuickListView::currentIndex() QVERIFY(!listview->highlightItem()); QVERIFY(!listview->currentItem()); + listview->setCurrentIndex(0); + QTRY_VERIFY(listview->currentItem()->isVisible()); + listview->setContentY(200); + QTRY_VERIFY(!listview->currentItem()->isVisible()); + delete canvas; } @@ -5648,11 +5655,26 @@ void tst_QQuickListView::displacedTransitions() case ListChange::SetContentY: break; } + + QVariantList resultTargetIndexes = listview->property("displacedTargetIndexes").toList(); + QVariantList resultTargetItems = listview->property("displacedTargetItems").toList(); + if ((useDisplaced && displacedEnabled) || (useAddDisplaced && addDisplacedEnabled) || (useMoveDisplaced && moveDisplacedEnabled) || (useRemoveDisplaced && removeDisplacedEnabled)) { QTRY_VERIFY(listview->property("displaceTransitionsDone").toBool()); + + // check the correct number of target items and indexes were received + QCOMPARE(resultTargetIndexes.count(), expectedDisplacedIndexes.count()); + for (int i=0; i<resultTargetIndexes.count(); i++) + QCOMPARE(resultTargetIndexes[i].value<QList<int> >().count(), change.count); + QCOMPARE(resultTargetItems.count(), expectedDisplacedIndexes.count()); + for (int i=0; i<resultTargetItems.count(); i++) + QCOMPARE(resultTargetItems[i].toList().count(), change.count); + } else { + QCOMPARE(resultTargetIndexes.count(), 0); + QCOMPARE(resultTargetItems.count(), 0); } if (change.type == ListChange::Inserted && useAddDisplaced && addDisplacedEnabled) @@ -5779,8 +5801,6 @@ void tst_QQuickListView::displacedTransitions_data() void tst_QQuickListView::multipleTransitions() { - QSKIP("QTBUG-24523"); - // Tests that if you interrupt a transition in progress with another action that // cancels the previous transition, the resulting items are still placed correctly. @@ -5829,17 +5849,15 @@ void tst_QQuickListView::multipleTransitions() int timeBetweenActions = canvas->rootObject()->property("timeBetweenActions").toInt(); - QList<QPair<QString, QString> > targetItems; for (int i=0; i<changes.count(); i++) { switch (changes[i].type) { case ListChange::Inserted: { + QList<QPair<QString, QString> > targetItems; for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) targetItems << qMakePair(QString("new item %1").arg(j), QString::number(j)); model.insertItems(changes[i].index, targetItems); QTRY_COMPARE(model.count(), listview->count()); - QTRY_VERIFY(listview->property("runningAddTargets").toBool()); - QTRY_VERIFY(listview->property("runningAddDisplaced").toBool()); if (i == changes.count() - 1) { QTRY_VERIFY(!listview->property("runningAddTargets").toBool()); QTRY_VERIFY(!listview->property("runningAddDisplaced").toBool()); @@ -5849,12 +5867,8 @@ void tst_QQuickListView::multipleTransitions() break; } case ListChange::Removed: - for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) - targetItems << qMakePair(model.name(i), model.number(i)); model.removeItems(changes[i].index, changes[i].count); QTRY_COMPARE(model.count(), listview->count()); - QTRY_VERIFY(listview->property("runningRemoveTargets").toBool()); - QTRY_VERIFY(listview->property("runningRemoveDisplaced").toBool()); if (i == changes.count() - 1) { QTRY_VERIFY(!listview->property("runningRemoveTargets").toBool()); QTRY_VERIFY(!listview->property("runningRemoveDisplaced").toBool()); @@ -5863,11 +5877,8 @@ void tst_QQuickListView::multipleTransitions() } break; case ListChange::Moved: - for (int j=changes[i].index; j<changes[i].index + changes[i].count; ++j) - targetItems << qMakePair(model.name(i), model.number(i)); model.moveItems(changes[i].index, changes[i].to, changes[i].count); - QTRY_VERIFY(listview->property("runningMoveTargets").toBool()); - QTRY_VERIFY(listview->property("runningMoveDisplaced").toBool()); + QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false); if (i == changes.count() - 1) { QTRY_VERIFY(!listview->property("runningMoveTargets").toBool()); QTRY_VERIFY(!listview->property("runningMoveDisplaced").toBool()); @@ -5990,6 +6001,38 @@ void tst_QQuickListView::matchItemLists(const QVariantList &itemLists, const QLi } } +void tst_QQuickListView::flickBeyondBounds() +{ + QQuickView *canvas = createView(); + + canvas->setSource(testFileUrl("flickBeyondBoundsBug.qml")); + canvas->show(); + qApp->processEvents(); + + QQuickListView *listview = findItem<QQuickListView>(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QQuickItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false); + + // Flick view up beyond bounds + flick(canvas, QPoint(10, 10), QPoint(10, -1000), 180); + QTRY_VERIFY(findItems<QQuickItem>(contentItem, "wrapper").count() == 0); + + // We're really testing that we don't get stuck in a loop, + // but also confirm items positioned correctly. + QTRY_COMPARE(findItems<QQuickItem>(contentItem, "wrapper").count(), 2); + for (int i = 0; i < 2; ++i) { + QQuickItem *item = findItem<QQuickItem>(contentItem, "wrapper", i); + if (!item) qWarning() << "Item" << i << "not found"; + QTRY_VERIFY(item); + QTRY_VERIFY(item->y() == i*45); + } + + delete canvas; +} + QTEST_MAIN(tst_QQuickListView) diff --git a/tests/auto/quick/qquickloader/qquickloader.pro b/tests/auto/quick/qquickloader/qquickloader.pro index fd525351ab..2961ed9429 100644 --- a/tests/auto/quick/qquickloader/qquickloader.pro +++ b/tests/auto/quick/qquickloader/qquickloader.pro @@ -10,9 +10,7 @@ SOURCES += tst_qquickloader.cpp \ include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickmousearea/qquickmousearea.pro b/tests/auto/quick/qquickmousearea/qquickmousearea.pro index c75db5ea55..99e9b9a464 100644 --- a/tests/auto/quick/qquickmousearea/qquickmousearea.pro +++ b/tests/auto/quick/qquickmousearea/qquickmousearea.pro @@ -8,9 +8,7 @@ SOURCES += tst_qquickmousearea.cpp \ include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp index 0fb82a66bc..4375e835aa 100644 --- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp @@ -72,6 +72,7 @@ private slots: void hoverPosition(); void hoverPropagation(); void hoverVisible(); + void disableAfterPress(); private: QQuickView *createView(); @@ -801,6 +802,110 @@ void tst_QQuickMouseArea::hoverVisible() delete canvas; } +void tst_QQuickMouseArea::disableAfterPress() +{ + QQuickView *canvas = createView(); + canvas->setSource(testFileUrl("dragging.qml")); + canvas->show(); + canvas->requestActivateWindow(); + QTest::qWait(20); + QVERIFY(canvas->rootObject() != 0); + + QQuickMouseArea *mouseArea = canvas->rootObject()->findChild<QQuickMouseArea*>("mouseregion"); + QQuickDrag *drag = mouseArea->drag(); + QVERIFY(mouseArea != 0); + QVERIFY(drag != 0); + + QSignalSpy mousePositionSpy(mouseArea, SIGNAL(positionChanged(QQuickMouseEvent*))); + QSignalSpy mousePressSpy(mouseArea, SIGNAL(pressed(QQuickMouseEvent*))); + QSignalSpy mouseReleaseSpy(mouseArea, SIGNAL(released(QQuickMouseEvent*))); + + // target + QQuickItem *blackRect = canvas->rootObject()->findChild<QQuickItem*>("blackrect"); + QVERIFY(blackRect != 0); + QVERIFY(blackRect == drag->target()); + + QVERIFY(!drag->active()); + + QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(100,100)); + + QTRY_COMPARE(mousePressSpy.count(), 1); + + QVERIFY(!drag->active()); + QCOMPARE(blackRect->x(), 50.0); + QCOMPARE(blackRect->y(), 50.0); + + // First move event triggers drag, second is acted upon. + // This is due to possibility of higher stacked area taking precedence. + + QTest::mouseMove(canvas, QPoint(111,111)); + QTest::qWait(50); + QTest::mouseMove(canvas, QPoint(122,122)); + + QTRY_COMPARE(mousePositionSpy.count(), 2); + + QVERIFY(drag->active()); + QCOMPARE(blackRect->x(), 72.0); + QCOMPARE(blackRect->y(), 72.0); + + mouseArea->setEnabled(false); + + // move should still be acted upon + QTest::mouseMove(canvas, QPoint(133,133)); + QTest::qWait(50); + QTest::mouseMove(canvas, QPoint(144,144)); + + QTRY_COMPARE(mousePositionSpy.count(), 4); + + QVERIFY(drag->active()); + QCOMPARE(blackRect->x(), 94.0); + QCOMPARE(blackRect->y(), 94.0); + + QVERIFY(mouseArea->pressed()); + QVERIFY(mouseArea->hovered()); + + QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(144,144)); + + QTRY_COMPARE(mouseReleaseSpy.count(), 1); + + QVERIFY(!drag->active()); + QCOMPARE(blackRect->x(), 94.0); + QCOMPARE(blackRect->y(), 94.0); + + QVERIFY(!mouseArea->pressed()); + QVERIFY(!mouseArea->hovered()); // since hover is not enabled + + // Next press will be ignored + blackRect->setX(50); + blackRect->setY(50); + + mousePressSpy.clear(); + mousePositionSpy.clear(); + mouseReleaseSpy.clear(); + + QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(100,100)); + QTest::qWait(50); + QCOMPARE(mousePressSpy.count(), 0); + + QTest::mouseMove(canvas, QPoint(111,111)); + QTest::qWait(50); + QTest::mouseMove(canvas, QPoint(122,122)); + QTest::qWait(50); + + QCOMPARE(mousePositionSpy.count(), 0); + + QVERIFY(!drag->active()); + QCOMPARE(blackRect->x(), 50.0); + QCOMPARE(blackRect->y(), 50.0); + + QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(122,122)); + QTest::qWait(50); + + QCOMPARE(mouseReleaseSpy.count(), 0); + + delete canvas; +} + QTEST_MAIN(tst_QQuickMouseArea) #include "tst_qquickmousearea.moc" diff --git a/tests/auto/quick/qquickmultipointtoucharea/qquickmultipointtoucharea.pro b/tests/auto/quick/qquickmultipointtoucharea/qquickmultipointtoucharea.pro index 3c6f304284..8181eb8c5f 100644 --- a/tests/auto/quick/qquickmultipointtoucharea/qquickmultipointtoucharea.pro +++ b/tests/auto/quick/qquickmultipointtoucharea/qquickmultipointtoucharea.pro @@ -4,8 +4,6 @@ macx:CONFIG -= app_bundle SOURCES += tst_qquickmultipointtoucharea.cpp -importFiles.files = data -importFiles.path = . -DEPLOYMENT += importFiles +TESTDATA = data/* QT += core-private gui-private qml-private quick-private testlib diff --git a/tests/auto/quick/qquickpath/qquickpath.pro b/tests/auto/quick/qquickpath/qquickpath.pro index e1f0f7b278..59a165bb95 100644 --- a/tests/auto/quick/qquickpath/qquickpath.pro +++ b/tests/auto/quick/qquickpath/qquickpath.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickpath.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickpathview/qquickpathview.pro b/tests/auto/quick/qquickpathview/qquickpathview.pro index 52f00ce3f8..0f2ac8ff0e 100644 --- a/tests/auto/quick/qquickpathview/qquickpathview.pro +++ b/tests/auto/quick/qquickpathview/qquickpathview.pro @@ -7,9 +7,7 @@ SOURCES += tst_qquickpathview.cpp include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private widgets testlib diff --git a/tests/auto/quick/qquickpincharea/qquickpincharea.pro b/tests/auto/quick/qquickpincharea/qquickpincharea.pro index 514dd25a5a..31ce4da90a 100644 --- a/tests/auto/quick/qquickpincharea/qquickpincharea.pro +++ b/tests/auto/quick/qquickpincharea/qquickpincharea.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickpincharea.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickpixmapcache/qquickpixmapcache.pro b/tests/auto/quick/qquickpixmapcache/qquickpixmapcache.pro index 7611e37b49..a13b0b6f43 100644 --- a/tests/auto/quick/qquickpixmapcache/qquickpixmapcache.pro +++ b/tests/auto/quick/qquickpixmapcache/qquickpixmapcache.pro @@ -9,9 +9,7 @@ INCLUDEPATH += ../../shared/ include (../../shared/util.pri) -importFiles.files = data -importFiles.path = . -DEPLOYMENT += importFiles +TESTDATA = data/* # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage # LIBS += -lgcov diff --git a/tests/auto/quick/qquickpositioners/qquickpositioners.pro b/tests/auto/quick/qquickpositioners/qquickpositioners.pro index 563379652b..243d03484a 100644 --- a/tests/auto/quick/qquickpositioners/qquickpositioners.pro +++ b/tests/auto/quick/qquickpositioners/qquickpositioners.pro @@ -7,9 +7,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private opengl-private testlib diff --git a/tests/auto/quick/qquickrepeater/qquickrepeater.pro b/tests/auto/quick/qquickrepeater/qquickrepeater.pro index c3d96ee6d5..eb1c9fe9b1 100644 --- a/tests/auto/quick/qquickrepeater/qquickrepeater.pro +++ b/tests/auto/quick/qquickrepeater/qquickrepeater.pro @@ -7,9 +7,7 @@ SOURCES += tst_qquickrepeater.cpp include (../../shared/util.pri) include (../shared/util.pri) -testFiles.files = data -testFiles.path = . -DEPLOYMENT += testFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private qml-private quick-private testlib diff --git a/tests/auto/quick/qquicksmoothedanimation/qquicksmoothedanimation.pro b/tests/auto/quick/qquicksmoothedanimation/qquicksmoothedanimation.pro index 0d5567da8d..6f8273956a 100644 --- a/tests/auto/quick/qquicksmoothedanimation/qquicksmoothedanimation.pro +++ b/tests/auto/quick/qquicksmoothedanimation/qquicksmoothedanimation.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquicksmoothedanimation.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickspringanimation/qquickspringanimation.pro b/tests/auto/quick/qquickspringanimation/qquickspringanimation.pro index 8ad472f8cc..8db4c606c9 100644 --- a/tests/auto/quick/qquickspringanimation/qquickspringanimation.pro +++ b/tests/auto/quick/qquickspringanimation/qquickspringanimation.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickspringanimation.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickspriteimage/qquickspriteimage.pro b/tests/auto/quick/qquickspriteimage/qquickspriteimage.pro index 50613792de..02d45b97c4 100644 --- a/tests/auto/quick/qquickspriteimage/qquickspriteimage.pro +++ b/tests/auto/quick/qquickspriteimage/qquickspriteimage.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickspritesequence/qquickspritesequence.pro b/tests/auto/quick/qquickspritesequence/qquickspritesequence.pro index 3dabd065a0..d9b3a9120c 100644 --- a/tests/auto/quick/qquickspritesequence/qquickspritesequence.pro +++ b/tests/auto/quick/qquickspritesequence/qquickspritesequence.pro @@ -6,9 +6,7 @@ include (../../shared/util.pri) macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickstates/qquickstates.pro b/tests/auto/quick/qquickstates/qquickstates.pro index ec881680ea..5f2b8cd2de 100644 --- a/tests/auto/quick/qquickstates/qquickstates.pro +++ b/tests/auto/quick/qquickstates/qquickstates.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickstates.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test QT += core-private gui-private v8-private qml-private quick-private opengl-private testlib diff --git a/tests/auto/quick/qquicktext/qquicktext.pro b/tests/auto/quick/qquicktext/qquicktext.pro index 67e0b9fb90..53e170a115 100644 --- a/tests/auto/quick/qquicktext/qquicktext.pro +++ b/tests/auto/quick/qquicktext/qquicktext.pro @@ -10,9 +10,7 @@ SOURCES += ../../shared/testhttpserver.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquicktextedit/qquicktextedit.pro b/tests/auto/quick/qquicktextedit/qquicktextedit.pro index 39a5178c7d..23459f2a91 100644 --- a/tests/auto/quick/qquicktextedit/qquicktextedit.pro +++ b/tests/auto/quick/qquicktextedit/qquicktextedit.pro @@ -9,8 +9,6 @@ HEADERS += ../../shared/testhttpserver.h include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* QT += core-private gui-private v8-private qml-private quick-private opengl-private network widgets-private testlib diff --git a/tests/auto/quick/qquicktextinput/qquicktextinput.pro b/tests/auto/quick/qquicktextinput/qquicktextinput.pro index 78b39a2981..046e6abcad 100644 --- a/tests/auto/quick/qquicktextinput/qquicktextinput.pro +++ b/tests/auto/quick/qquicktextinput/qquicktextinput.pro @@ -6,8 +6,6 @@ SOURCES += tst_qquicktextinput.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* QT += core-private gui-private v8-private qml-private quick-private opengl-private testlib diff --git a/tests/auto/quick/qquickview/qquickview.pro b/tests/auto/quick/qquickview/qquickview.pro index 77b0f7d86a..1302908bf7 100644 --- a/tests/auto/quick/qquickview/qquickview.pro +++ b/tests/auto/quick/qquickview/qquickview.pro @@ -6,8 +6,6 @@ SOURCES += tst_qquickview.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* QT += core-private gui-private qml-private quick-private testlib diff --git a/tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro b/tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro index bfadf196f9..4ae678181a 100644 --- a/tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro +++ b/tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro @@ -7,9 +7,7 @@ SOURCES += tst_qquickvisualdatamodel.cpp include (../../shared/util.pri) include (../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/qquickxmllistmodel/qquickxmllistmodel.pro b/tests/auto/quick/qquickxmllistmodel/qquickxmllistmodel.pro index b18af50c9e..88975d8665 100644 --- a/tests/auto/quick/qquickxmllistmodel/qquickxmllistmodel.pro +++ b/tests/auto/quick/qquickxmllistmodel/qquickxmllistmodel.pro @@ -6,9 +6,7 @@ SOURCES += tst_qquickxmllistmodel.cpp include (../../shared/util.pri) -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* CONFIG += parallel_test diff --git a/tests/auto/quick/rendernode/rendernode.pro b/tests/auto/quick/rendernode/rendernode.pro index 8484d591e5..3e52cda676 100644 --- a/tests/auto/quick/rendernode/rendernode.pro +++ b/tests/auto/quick/rendernode/rendernode.pro @@ -4,9 +4,7 @@ SOURCES += tst_rendernode.cpp macx:CONFIG -= app_bundle -testDataFiles.files = data -testDataFiles.path = . -DEPLOYMENT += testDataFiles +TESTDATA = data/* include(../../shared/util.pri) |