aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-10-10 13:59:00 +0200
committerLiang Qi <liang.qi@qt.io>2019-10-10 13:59:00 +0200
commitaa057451b35953018c4f94d0a4bd5e813767cbc9 (patch)
tree8fd40c6d230e7e6171bca10e58178744326d5a5d /tests
parent3fde977a817498817e98ce350d493658b0ed4458 (diff)
parentb418c2fe6c97aa63e990ce5ee349aa33266b6579 (diff)
Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts: src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp tests/auto/quick/qquickpathview/tst_qquickpathview.cpp Change-Id: I117c8d62b21800329d1035021d312d9924f83a1b
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-October.qml12
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-denormal-Feb.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-denormal-March.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-denormal-leap.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-denormal-wrap.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDate-denormal-year.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-October.qml16
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-March.qml15
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-hours.qml15
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-leap.qml15
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-minutes.qml15
-rw-r--r--tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-seconds.qml15
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp80
-rw-r--r--tests/auto/quick/qquicklistview/tst_qquicklistview.cpp25
-rw-r--r--tests/auto/quick/qquickpathview/tst_qquickpathview.cpp39
15 files changed, 302 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-October.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-October.qml
new file mode 100644
index 0000000000..6686831e1c
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-October.qml
@@ -0,0 +1,12 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ // QTBUG-78996
+ dateProperty = new Date(2019, 9, 3)
+ boolProperty = (dateProperty.getFullYear() == 2019
+ && dateProperty.getMonth() == 9
+ && dateProperty.getDate() == 3)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-Feb.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-Feb.qml
new file mode 100644
index 0000000000..29ec40ffbd
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-Feb.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateProperty = new Date(2019, 2, 0) // Feb 28th
+ boolProperty = (dateProperty.getFullYear() == 2019
+ && dateProperty.getMonth() == 1
+ && dateProperty.getDate() == 28)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-March.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-March.qml
new file mode 100644
index 0000000000..7fc8bf43bd
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-March.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateProperty = new Date(2019, 1, 29) // March 1st
+ boolProperty = (dateProperty.getFullYear() == 2019
+ && dateProperty.getMonth() == 2
+ && dateProperty.getDate() == 1)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-leap.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-leap.qml
new file mode 100644
index 0000000000..6dd84810e6
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-leap.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateProperty = new Date(2020, 2, 0) // Feb 29th
+ boolProperty = (dateProperty.getFullYear() == 2020
+ && dateProperty.getMonth() == 1
+ && dateProperty.getDate() == 29)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-wrap.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-wrap.qml
new file mode 100644
index 0000000000..ddb79727ef
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-wrap.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateProperty = new Date(2017, 40, -61) // 2020, Feb 29th
+ boolProperty = (dateProperty.getFullYear() == 2020
+ && dateProperty.getMonth() == 1
+ && dateProperty.getDate() == 29)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-year.qml b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-year.qml
new file mode 100644
index 0000000000..90514c39c8
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDate-denormal-year.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateProperty = new Date(2019, 12, 0) // Dec 31
+ boolProperty = (dateProperty.getFullYear() == 2019
+ && dateProperty.getMonth() == 11
+ && dateProperty.getDate() == 31)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-October.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-October.qml
new file mode 100644
index 0000000000..c97076f887
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-October.qml
@@ -0,0 +1,16 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ // QTBUG-78996
+ dateTimeProperty = new Date(2019, 9, 3, 12)
+ boolProperty = (dateTimeProperty.getFullYear() == 2019
+ && dateTimeProperty.getMonth() == 9
+ && dateTimeProperty.getDate() == 3
+ && dateTimeProperty.getHours() == 12
+ && dateTimeProperty.getMinutes() == 0
+ && dateTimeProperty.getSeconds() == 0
+ && dateTimeProperty.getMilliseconds() == 0)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-March.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-March.qml
new file mode 100644
index 0000000000..2b6b9af3e1
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-March.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateTimeProperty = new Date(2019, 1, 28, 23, 59, 59, 1001) // 2019-3-1 0:0:0.001
+ boolProperty = (dateTimeProperty.getFullYear() == 2019
+ && dateTimeProperty.getMonth() == 2
+ && dateTimeProperty.getDate() == 1
+ && dateTimeProperty.getHours() == 0
+ && dateTimeProperty.getMinutes() == 0
+ && dateTimeProperty.getSeconds() == 0
+ && dateTimeProperty.getMilliseconds() == 1)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-hours.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-hours.qml
new file mode 100644
index 0000000000..7d018e2904
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-hours.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateTimeProperty = new Date(2019, 11, 31, 1440) // 2020-2-29 0:0:0
+ boolProperty = (dateTimeProperty.getFullYear() == 2020
+ && dateTimeProperty.getMonth() == 1
+ && dateTimeProperty.getDate() == 29
+ && dateTimeProperty.getHours() == 0
+ && dateTimeProperty.getMinutes() == 0
+ && dateTimeProperty.getSeconds() == 0
+ && dateTimeProperty.getMilliseconds() == 0)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-leap.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-leap.qml
new file mode 100644
index 0000000000..0a7687c669
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-leap.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateTimeProperty = new Date(2020, 2, 1, 0, 0, 0, -1) // 2020-2-29 23:59:59.999
+ boolProperty = (dateTimeProperty.getFullYear() == 2020
+ && dateTimeProperty.getMonth() == 1
+ && dateTimeProperty.getDate() == 29
+ && dateTimeProperty.getHours() == 23
+ && dateTimeProperty.getMinutes() == 59
+ && dateTimeProperty.getSeconds() == 59
+ && dateTimeProperty.getMilliseconds() == 999)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-minutes.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-minutes.qml
new file mode 100644
index 0000000000..738d603b4b
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-minutes.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateTimeProperty = new Date(2020, 1, 28, 0, 1440) // 2020-2-29 0:0:0
+ boolProperty = (dateTimeProperty.getFullYear() == 2020
+ && dateTimeProperty.getMonth() == 1
+ && dateTimeProperty.getDate() == 29
+ && dateTimeProperty.getHours() == 0
+ && dateTimeProperty.getMinutes() == 0
+ && dateTimeProperty.getSeconds() == 0
+ && dateTimeProperty.getMilliseconds() == 0)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-seconds.qml b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-seconds.qml
new file mode 100644
index 0000000000..d48534f0d0
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/checkDateTime-denormal-seconds.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ dateTimeProperty = new Date(2020, 1, 28, 23, 0, 3600) // 2020-2-29 0:0:0
+ boolProperty = (dateTimeProperty.getFullYear() == 2020
+ && dateTimeProperty.getMonth() == 1
+ && dateTimeProperty.getDate() == 29
+ && dateTimeProperty.getHours() == 0
+ && dateTimeProperty.getMinutes() == 0
+ && dateTimeProperty.getSeconds() == 0
+ && dateTimeProperty.getMilliseconds() == 0)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
index 05ad5e2f22..8824dfd019 100644
--- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -79,6 +79,10 @@ private slots:
void assignDate();
void exportDate_data();
void exportDate();
+ void checkDate_data();
+ void checkDate();
+ void checkDateTime_data();
+ void checkDateTime();
void idShortcutInvalidates();
void boolPropertiesEvaluateAsBool();
void methods();
@@ -568,6 +572,82 @@ void tst_qqmlecmascript::exportDate()
QCOMPARE(object->boolProperty(), true);
}
+void tst_qqmlecmascript::checkDate_data()
+{
+ QTest::addColumn<QUrl>("source");
+ QTest::addColumn<QDate>("date");
+ // NB: JavaScript month-indices are Jan = 0 to Dec = 11; QDate's are Jan = 1 to Dec = 12.
+ QTest::newRow("denormal-March")
+ << testFileUrl("checkDate-denormal-March.qml")
+ << QDate(2019, 3, 1);
+ QTest::newRow("denormal-leap")
+ << testFileUrl("checkDate-denormal-leap.qml")
+ << QDate(2020, 2, 29);
+ QTest::newRow("denormal-Feb")
+ << testFileUrl("checkDate-denormal-Feb.qml")
+ << QDate(2019, 2, 28);
+ QTest::newRow("denormal-year")
+ << testFileUrl("checkDate-denormal-year.qml")
+ << QDate(2019, 12, 31);
+ QTest::newRow("denormal-wrap")
+ << testFileUrl("checkDate-denormal-wrap.qml")
+ << QDate(2020, 2, 29);
+ QTest::newRow("October")
+ << testFileUrl("checkDate-October.qml")
+ << QDate(2019, 10, 3);
+}
+
+void tst_qqmlecmascript::checkDate()
+{
+ QFETCH(const QUrl, source);
+ QFETCH(const QDate, date);
+ QQmlEngine e;
+ QQmlComponent component(&e, source);
+ QScopedPointer<QObject> obj(component.create());
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(obj.data());
+ QVERIFY(object != nullptr);
+ QCOMPARE(object->dateProperty(), date);
+ QVERIFY(object->boolProperty());
+}
+
+void tst_qqmlecmascript::checkDateTime_data()
+{
+ QTest::addColumn<QUrl>("source");
+ QTest::addColumn<QDateTime>("when");
+ // NB: JavaScript month-indices are Jan = 0 to Dec = 11; QDate's are Jan = 1 to Dec = 12.
+ QTest::newRow("denormal-March")
+ << testFileUrl("checkDateTime-denormal-March.qml")
+ << QDateTime(QDate(2019, 3, 1), QTime(0, 0, 0, 1), Qt::LocalTime);
+ QTest::newRow("denormal-leap")
+ << testFileUrl("checkDateTime-denormal-leap.qml")
+ << QDateTime(QDate(2020, 2, 29), QTime(23, 59, 59, 999), Qt::LocalTime);
+ QTest::newRow("denormal-hours")
+ << testFileUrl("checkDateTime-denormal-hours.qml")
+ << QDateTime(QDate(2020, 2, 29), QTime(0, 0), Qt::LocalTime);
+ QTest::newRow("denormal-minutes")
+ << testFileUrl("checkDateTime-denormal-minutes.qml")
+ << QDateTime(QDate(2020, 2, 29), QTime(0, 0), Qt::LocalTime);
+ QTest::newRow("denormal-seconds")
+ << testFileUrl("checkDateTime-denormal-seconds.qml")
+ << QDateTime(QDate(2020, 2, 29), QTime(0, 0), Qt::LocalTime);
+ QTest::newRow("October")
+ << testFileUrl("checkDateTime-October.qml")
+ << QDateTime(QDate(2019, 10, 3), QTime(12, 0), Qt::LocalTime);
+}
+
+void tst_qqmlecmascript::checkDateTime()
+{
+ QFETCH(const QUrl, source);
+ QFETCH(const QDateTime, when);
+ QQmlEngine e;
+ QQmlComponent component(&e, source);
+ QScopedPointer<QObject> obj(component.create());
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(obj.data());
+ QVERIFY(object != nullptr);
+ QCOMPARE(object->dateTimeProperty(), when);
+ QVERIFY(object->boolProperty());
+}
+
void tst_qqmlecmascript::idShortcutInvalidates()
{
QQmlEngine engine;
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
index 08149a1786..ca438a9cd5 100644
--- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
@@ -1943,6 +1943,31 @@ void tst_QQuickListView::enforceRange()
QTRY_COMPARE(listview->currentIndex(), 6);
+ // Test for [QTBUG-77418] {
+ // explicit set current index
+ listview->setCurrentIndex(5);
+ QTRY_COMPARE(listview->contentY(), 0);
+
+ // then check if contentY changes if the highlight range is changed
+ listview->setPreferredHighlightBegin(80);
+ listview->setPreferredHighlightEnd(80);
+ QTRY_COMPARE(listview->contentY(), 20);
+
+ // verify that current index does not change with no highlight
+ listview->setHighlightRangeMode(QQuickListView::NoHighlightRange);
+ listview->setContentY(100);
+ QTRY_COMPARE(listview->currentIndex(), 5);
+
+ // explicit set current index, contentY should not change now
+ listview->setCurrentIndex(6);
+ QTRY_COMPARE(listview->contentY(), 100);
+ QTest::qWait(50); // This was needed in order to reproduce a failure for the following test
+
+ // verify that contentY changes if we turn on highlight again
+ listview->setHighlightRangeMode(QQuickListView::StrictlyEnforceRange);
+ QTRY_COMPARE(listview->contentY(), 40);
+ // } Test for [QTBUG-77418]
+
// change model
QaimModel model2;
for (int i = 0; i < 5; i++)
diff --git a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
index 8a1ab40475..4498548d45 100644
--- a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
+++ b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
@@ -1614,16 +1614,55 @@ void tst_QQuickPathView::flickNClick() // QTBUG-77173
QQuickPathView *pathview = qobject_cast<QQuickPathView*>(window->rootObject());
QVERIFY(pathview != nullptr);
+ QSignalSpy movingChangedSpy(pathview, SIGNAL(movingChanged()));
+ QSignalSpy draggingSpy(pathview, SIGNAL(draggingChanged()));
+ QSignalSpy dragStartedSpy(pathview, SIGNAL(dragStarted()));
+ QSignalSpy dragEndedSpy(pathview, SIGNAL(dragEnded()));
+ QSignalSpy currentIndexSpy(pathview, SIGNAL(currentIndexChanged()));
+ QSignalSpy moveStartedSpy(pathview, SIGNAL(movementStarted()));
+ QSignalSpy moveEndedSpy(pathview, SIGNAL(movementEnded()));
+ QSignalSpy flickingSpy(pathview, SIGNAL(flickingChanged()));
+ QSignalSpy flickStartedSpy(pathview, SIGNAL(flickStarted()));
+ QSignalSpy flickEndedSpy(pathview, SIGNAL(flickEnded()));
for (int duration = 100; duration > 0; duration -= 20) {
+ movingChangedSpy.clear();
+ draggingSpy.clear();
+ dragStartedSpy.clear();
+ dragEndedSpy.clear();
+ currentIndexSpy.clear();
+ moveStartedSpy.clear();
+ moveEndedSpy.clear();
+ flickingSpy.clear();
+ flickStartedSpy.clear();
+ flickEndedSpy.clear();
// Dragging the child mouse area should animate the PathView (MA has no drag target)
flick(window.data(), QPoint(200,200), QPoint(400,200), duration);
QVERIFY(pathview->isMoving());
+ QCOMPARE(movingChangedSpy.count(), 1);
+ QCOMPARE(draggingSpy.count(), 2);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 1);
+ QVERIFY(currentIndexSpy.count() > 0);
+ QCOMPARE(moveStartedSpy.count(), 1);
+ QCOMPARE(moveEndedSpy.count(), 0);
+ QCOMPARE(flickingSpy.count(), 1);
+ QCOMPARE(flickStartedSpy.count(), 1);
+ QCOMPARE(flickEndedSpy.count(), 0);
// Now while it's still moving, click it.
// The PathView should stop at a position such that offset is a whole number.
QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier, QPoint(200, 200));
QTRY_VERIFY(!pathview->isMoving());
+ QCOMPARE(movingChangedSpy.count(), 2); // QTBUG-78926
+ QCOMPARE(draggingSpy.count(), 2);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 1);
+ QCOMPARE(moveStartedSpy.count(), 1);
+ QCOMPARE(moveEndedSpy.count(), 1);
+ QCOMPARE(flickingSpy.count(), 2);
+ QCOMPARE(flickStartedSpy.count(), 1);
+ QCOMPARE(flickEndedSpy.count(), 1);
QVERIFY(qFuzzyIsNull(pathview->offset() - int(pathview->offset())));
}
}