diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-08-12 10:03:53 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-08-12 10:04:33 +0200 |
commit | 61f72d32b4fddc6e87f21d0243d9f0a32ca61987 (patch) | |
tree | b166541b885e33666bc3dffbde937b5dc0e93bc5 /tests | |
parent | 430853836f9c17154ef3ee4cac6b03b90ee493a9 (diff) | |
parent | 01c6af3fc940378e8eee41a9fb8273420ef5a7e1 (diff) |
Merge remote-tracking branch 'origin/5.3' into 5.4
Conflicts:
src/qml/jsruntime/qv4include.cpp
src/quick/items/qquickrendercontrol.cpp
src/quick/items/qquickrendercontrol_p.h
src/quickwidgets/qquickwidget.cpp
Change-Id: Ib2dc0051a38cd283a37a7665eb4a76f6f7ec8b15
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/qqmlecmascript.pro | 2 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/qqmlecmascript.qrc | 8 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 17 | ||||
-rw-r--r-- | tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.errors.txt | 1 | ||||
-rw-r--r-- | tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 1 | ||||
-rw-r--r-- | tests/auto/quick/qquickpathview/data/flickableDelegate.qml | 78 | ||||
-rw-r--r-- | tests/auto/quick/qquickpathview/data/nestedInFlickable.qml (renamed from tests/auto/quick/qquickpathview/data/incorrectSteal.qml) | 0 | ||||
-rw-r--r-- | tests/auto/quick/qquickpathview/tst_qquickpathview.cpp | 63 |
10 files changed, 171 insertions, 8 deletions
diff --git a/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro b/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro index 6193ee7c88..6f3f765aba 100644 --- a/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro +++ b/tests/auto/qml/qqmlecmascript/qqmlecmascript.pro @@ -9,6 +9,8 @@ HEADERS += testtypes.h \ ../../shared/testhttpserver.h INCLUDEPATH += ../../shared +RESOURCES += qqmlecmascript.qrc + include (../../shared/util.pri) # QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage diff --git a/tests/auto/qml/qqmlecmascript/qqmlecmascript.qrc b/tests/auto/qml/qqmlecmascript/qqmlecmascript.qrc new file mode 100644 index 0000000000..e0e29ad4a5 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/qqmlecmascript.qrc @@ -0,0 +1,8 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> +<file>data/include.qml</file> +<file>data/include.js</file> +<file>data/js/include2.js</file> +<file>data/js/include3.js</file> +</qresource> +</RCC> diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index c68f1190dd..2550dd5473 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -6051,6 +6051,23 @@ void tst_qqmlecmascript::include() delete o; } + + // include from resources + { + QQmlComponent component(&engine, QUrl("qrc:///data/include.qml")); + QObject *o = component.create(); + QVERIFY(o != 0); + + QCOMPARE(o->property("test0").toInt(), 99); + QCOMPARE(o->property("test1").toBool(), true); + QCOMPARE(o->property("test2").toBool(), true); + QCOMPARE(o->property("test2_1").toBool(), true); + QCOMPARE(o->property("test3").toBool(), true); + QCOMPARE(o->property("test3_1").toBool(), true); + + delete o; + } + } void tst_qqmlecmascript::includeRemoteSuccess() diff --git a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp index 0b9872f94c..75b10ed804 100644 --- a/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp +++ b/tests/auto/qml/qqmlincubator/tst_qqmlincubator.cpp @@ -171,10 +171,6 @@ void tst_qqmlincubator::objectDeleted() controller.incubateWhile(&b); } - // We have to cheat and manually remove it from the creator->allCreatedObjects - // otherwise we will do a double delete - QQmlIncubatorPrivate *incubatorPriv = QQmlIncubatorPrivate::get(&incubator); - incubatorPriv->creator->allCreatedObjects().pop(); delete SelfRegisteringType::me(); { diff --git a/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.errors.txt b/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.errors.txt new file mode 100644 index 0000000000..b60b59b111 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.errors.txt @@ -0,0 +1 @@ +4:24:Cannot assign to non-existent property "root" diff --git a/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.qml b/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.qml new file mode 100644 index 0000000000..86c5f3bd7d --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/nonexistantProperty.8.qml @@ -0,0 +1,5 @@ +import QtQuick 2.0 +Item { + id: root + NumberAnimation on root.opacity { duration: 1000 } +} diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index 6364a8ebdd..8bc937d2bc 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -348,6 +348,7 @@ void tst_qqmllanguage::errors_data() QTest::newRow("nonexistantProperty.5") << "nonexistantProperty.5.qml" << "nonexistantProperty.5.errors.txt" << false; QTest::newRow("nonexistantProperty.6") << "nonexistantProperty.6.qml" << "nonexistantProperty.6.errors.txt" << false; QTest::newRow("nonexistantProperty.7") << "nonexistantProperty.7.qml" << "nonexistantProperty.7.errors.txt" << false; + QTest::newRow("nonexistantProperty.8") << "nonexistantProperty.8.qml" << "nonexistantProperty.8.errors.txt" << false; QTest::newRow("wrongType (string for int)") << "wrongType.1.qml" << "wrongType.1.errors.txt" << false; QTest::newRow("wrongType (int for bool)") << "wrongType.2.qml" << "wrongType.2.errors.txt" << false; diff --git a/tests/auto/quick/qquickpathview/data/flickableDelegate.qml b/tests/auto/quick/qquickpathview/data/flickableDelegate.qml new file mode 100644 index 0000000000..ed9c34161f --- /dev/null +++ b/tests/auto/quick/qquickpathview/data/flickableDelegate.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 + +PathView { + id: pathView + objectName: "pathView" + width: 400 + height: 200 + + dragMargin: 400 + preferredHighlightBegin: 0.3 + preferredHighlightEnd: 0.3 + + model: 3 + path: Path { + startX: -pathView.width/2 + startY: pathView.height / 2 + PathLine { x: pathView.width + pathView.width/2; y: pathView.height / 2 } + } + + delegate: Flickable { + clip: true + flickableDirection: Qt.Horizontal + width: 200; height: 200 + contentWidth: 400 + contentX: 100 + Rectangle { + y: 50 + x: 50 + width: 300 + height: 100 + color: "purple" + } +Text { text: index } + MouseArea { + anchors.fill: parent + } + } +} diff --git a/tests/auto/quick/qquickpathview/data/incorrectSteal.qml b/tests/auto/quick/qquickpathview/data/nestedInFlickable.qml index bcd6923b73..bcd6923b73 100644 --- a/tests/auto/quick/qquickpathview/data/incorrectSteal.qml +++ b/tests/auto/quick/qquickpathview/data/nestedInFlickable.qml diff --git a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp index 1960775ad3..0575d8626f 100644 --- a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp +++ b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp @@ -143,8 +143,9 @@ private slots: void indexAt_itemAt(); void indexAt_itemAt_data(); void cacheItemCount(); - void incorrectSteal(); void changePathDuringRefill(); + void nestedinFlickable(); + void flickableDelegate(); }; class TestObject : public QObject @@ -2165,11 +2166,11 @@ void tst_QQuickPathView::changePathDuringRefill() testCurrentIndexChange(pathView, QStringList() << "delegateA" << "delegateB" << "delegateC"); } -void tst_QQuickPathView::incorrectSteal() +void tst_QQuickPathView::nestedinFlickable() { QScopedPointer<QQuickView> window(createView()); QQuickViewTestUtil::moveMouseAway(window.data()); - window->setSource(testFileUrl("incorrectSteal.qml")); + window->setSource(testFileUrl("nestedInFlickable.qml")); window->show(); window->requestActivate(); QVERIFY(QTest::qWaitForWindowActive(window.data())); @@ -2215,12 +2216,66 @@ void tst_QQuickPathView::incorrectSteal() QTRY_COMPARE(moveEndedSpy.count(), 1); QCOMPARE(moveStartedSpy.count(), 1); // Flickable should not handle this - QEXPECT_FAIL("", "QTBUG-37859", Abort); QCOMPARE(fflickingSpy.count(), 0); QCOMPARE(fflickStartedSpy.count(), 0); QCOMPARE(fflickEndedSpy.count(), 0); } +void tst_QQuickPathView::flickableDelegate() +{ + QScopedPointer<QQuickView> window(createView()); + QQuickViewTestUtil::moveMouseAway(window.data()); + window->setSource(testFileUrl("flickableDelegate.qml")); + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window.data())); + QCOMPARE(window.data(), qGuiApp->focusWindow()); + + QQuickPathView *pathview = qobject_cast<QQuickPathView*>(window->rootObject()); + QVERIFY(pathview != 0); + + QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(pathview->currentItem()); + QVERIFY(flickable != 0); + + QSignalSpy movingSpy(pathview, SIGNAL(movingChanged())); + QSignalSpy moveStartedSpy(pathview, SIGNAL(movementStarted())); + QSignalSpy moveEndedSpy(pathview, SIGNAL(movementEnded())); + + QSignalSpy fflickingSpy(flickable, SIGNAL(flickingChanged())); + QSignalSpy fflickStartedSpy(flickable, SIGNAL(flickStarted())); + QSignalSpy fflickEndedSpy(flickable, SIGNAL(flickEnded())); + + int waitInterval = 5; + + QTest::mousePress(window.data(), Qt::LeftButton, 0, QPoint(23,100)); + + QTest::mouseMove(window.data(), QPoint(25,100), waitInterval); + QTest::mouseMove(window.data(), QPoint(26,100), waitInterval); + QTest::mouseMove(window.data(), QPoint(28,100), waitInterval); + QTest::mouseMove(window.data(), QPoint(31,100), waitInterval); + QTest::mouseMove(window.data(), QPoint(39,100), waitInterval); + + // first move beyond threshold does not trigger drag + QVERIFY(!flickable->isMoving()); + QVERIFY(!flickable->isDragging()); + QCOMPARE(movingSpy.count(), 0); + QCOMPARE(moveStartedSpy.count(), 0); + QCOMPARE(moveEndedSpy.count(), 0); + QCOMPARE(fflickingSpy.count(), 0); + QCOMPARE(fflickStartedSpy.count(), 0); + QCOMPARE(fflickEndedSpy.count(), 0); + + // no further moves after the initial move beyond threshold + QTest::mouseRelease(window.data(), Qt::LeftButton, 0, QPoint(53,100)); + QTRY_COMPARE(fflickingSpy.count(), 2); + QTRY_COMPARE(fflickStartedSpy.count(), 1); + QCOMPARE(fflickEndedSpy.count(), 1); + // PathView should not handle this + QTRY_COMPARE(movingSpy.count(), 0); + QTRY_COMPARE(moveEndedSpy.count(), 0); + QCOMPARE(moveStartedSpy.count(), 0); +} + QTEST_MAIN(tst_QQuickPathView) #include "tst_qquickpathview.moc" |