aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-04-13 16:12:55 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-24 00:33:00 +0200
commita8e017fbc22d8ec445fc9202479a775bdac4d5b0 (patch)
tree6980d3a6815ecd75b4ab92d978adaf29252c2ad6 /tests
parenta36f220e1554c15c4a5808479a4af90b39075e6a (diff)
Record current status of date conversion from QML
Ensure that the qqmlecmascript test is not broken by changes in the time zone of the test environment. This test documents the existing situation with convertibility of date information between QML and JS. Task-number: QTBUG-25262 Change-Id: I42716e0b34ef26daa391fdb4aebc1f31340fcea0 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.1.qml35
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.2.qml34
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.3.qml34
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.4.qml34
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.5.qml34
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.6.qml34
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.qml30
-rw-r--r--tests/auto/qml/qqmlecmascript/testtypes.h9
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp17
9 files changed, 246 insertions, 15 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.1.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.1.qml
new file mode 100644
index 0000000000..efca6cdb80
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.1.qml
@@ -0,0 +1,35 @@
+import Qt.test 1.0
+import QtQuick 2.0
+
+MyTypeObject {
+ Component.onCompleted: {
+ var dateVar = new Date(Date.UTC(2009, 4, 12))
+ var dateTimeVar = new Date(Date.UTC(2009, 4, 12, 0, 0, 1))
+ var dateTimeVar2 = new Date(Date.UTC(2009, 4, 12, 23, 59, 59))
+
+ dateProperty = dateVar
+ dateTimeProperty = dateTimeVar
+ dateTimeProperty2 = dateTimeVar2
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.2.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.2.qml
index 578701844c..71dd188f05 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.2.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.2.qml
@@ -1,6 +1,36 @@
import Qt.test 1.0
+import QtQuick 2.0
MyTypeObject {
- dateProperty: if(1) new Date("1982-11-25")
- dateTimeProperty: if(1) new Date("2009-05-12T13:22:01")
+ dateProperty: if (1) new Date("2009-05-12")
+ dateTimeProperty: if (1) new Date("2009-05-12T00:00:01")
+ dateTimeProperty2: if (1) new Date("2009-05-12T23:59:59")
+
+ boolProperty: false
+ Component.onCompleted: {
+ var dateVar = new Date("2009-05-12")
+ var dateTimeVar = new Date("2009-05-12T00:00:01")
+ var dateTimeVar2 = new Date("2009-05-12T23:59:59")
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.3.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.3.qml
index 32b88d0183..2cf740645c 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.3.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.3.qml
@@ -1,6 +1,36 @@
import Qt.test 1.0
+import QtQuick 2.0
MyTypeObject {
- dateProperty: if(1) "1982-11-25Z"
- dateTimeProperty: if(1) "2009-05-12T13:22:01Z"
+ dateProperty: if (1) "2009-05-12Z"
+ dateTimeProperty: if (1) "2009-05-12T00:00:01Z"
+ dateTimeProperty2: if (1) "2009-05-12T23:59:59Z"
+
+ boolProperty: false
+ Component.onCompleted: {
+ var dateVar = new Date("2009-05-12Z")
+ var dateTimeVar = new Date("2009-05-12T00:00:01Z")
+ var dateTimeVar2 = new Date("2009-05-12T23:59:59Z")
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.4.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.4.qml
index 16213c691f..9b4975c833 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.4.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.4.qml
@@ -1,6 +1,36 @@
import Qt.test 1.0
+import QtQuick 2.0
MyTypeObject {
- dateProperty: if(1) new Date("1982-11-25Z")
- dateTimeProperty: if(1) new Date("2009-05-12T13:22:01Z")
+ dateProperty: if (1) new Date("2009-05-12Z")
+ dateTimeProperty: if (1) new Date("2009-05-12T00:00:01Z")
+ dateTimeProperty2: if (1) new Date("2009-05-12T23:59:59Z")
+
+ boolProperty: false
+ Component.onCompleted: {
+ var dateVar = new Date("2009-05-12Z")
+ var dateTimeVar = new Date("2009-05-12T00:00:01Z")
+ var dateTimeVar2 = new Date("2009-05-12T23:59:59Z")
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.5.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.5.qml
index ff1d85fbef..2cf740645c 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.5.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.5.qml
@@ -1,6 +1,36 @@
import Qt.test 1.0
+import QtQuick 2.0
MyTypeObject {
- dateProperty: if(1) "1982-11-25Z"
- dateTimeProperty: if(1) "2009-05-12T15:22:01+02:00"
+ dateProperty: if (1) "2009-05-12Z"
+ dateTimeProperty: if (1) "2009-05-12T00:00:01Z"
+ dateTimeProperty2: if (1) "2009-05-12T23:59:59Z"
+
+ boolProperty: false
+ Component.onCompleted: {
+ var dateVar = new Date("2009-05-12Z")
+ var dateTimeVar = new Date("2009-05-12T00:00:01Z")
+ var dateTimeVar2 = new Date("2009-05-12T23:59:59Z")
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.6.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.6.qml
index 859c02f79c..73e26db0c8 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.6.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.6.qml
@@ -1,6 +1,36 @@
import Qt.test 1.0
+import QtQuick 2.0
MyTypeObject {
- dateProperty: if(1) new Date("1982-11-25")
- dateTimeProperty: if(1) new Date("2009-05-12T15:22:01+02:00")
+ dateProperty: if (1) new Date("2009-05-12")
+ dateTimeProperty: if (1) new Date("2009-05-12T02:00:01+02:00")
+ dateTimeProperty2: if (1) new Date("2009-05-13T01:59:59+02:00")
+
+ boolProperty: false
+ Component.onCompleted: {
+ var dateVar = new Date("2009-05-12")
+ var dateTimeVar = new Date("2009-05-12T02:00:01+02:00")
+ var dateTimeVar2 = new Date("2009-05-13T01:59:59+02:00")
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
+ }
}
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.qml
index 07a638d50f..14fe20787b 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.qml
@@ -3,7 +3,33 @@ import QtQuick 2.0
MyTypeObject {
Component.onCompleted: {
- dateProperty = new Date("1982-11-25")
- dateTimeProperty = new Date("2009-05-12T13:22:01")
+ var dateVar = new Date("2009-05-12")
+ var dateTimeVar = new Date("2009-05-12T00:00:01")
+ var dateTimeVar2 = new Date("2009-05-12T23:59:59")
+
+ dateProperty = dateVar
+ dateTimeProperty = dateTimeVar
+ dateTimeProperty2 = dateTimeVar2
+
+ // Commented properties do not currently test true:
+ boolProperty = //(dateProperty.getTime() == dateVar.getTime()) &&
+ (dateProperty.getFullYear() == 2009) &&
+ (dateProperty.getMonth() == 5-1) &&
+ //(dateProperty.getDate() == 12) &&
+ (dateProperty.getHours() == 0) &&
+ (dateTimeProperty.getTime() == dateTimeVar.getTime()) &&
+ (dateTimeProperty.getFullYear() == 2009) &&
+ (dateTimeProperty.getMonth() == 5-1) &&
+ //(dateTimeProperty.getDate() == 12) &&
+ //(dateTimeProperty.getHours() == 0) &&
+ (dateTimeProperty.getMinutes() == 0) &&
+ (dateTimeProperty.getSeconds() == 1) &&
+ (dateTimeProperty2.getTime() == dateTimeVar2.getTime()) &&
+ (dateTimeProperty2.getFullYear() == 2009) &&
+ (dateTimeProperty2.getMonth() == 5-1) &&
+ //(dateTimeProperty2.getDate() == 12) &&
+ //(dateTimeProperty2.getHours() == 23) &&
+ (dateTimeProperty2.getMinutes() == 59) &&
+ (dateTimeProperty2.getSeconds() == 59)
}
}
diff --git a/tests/auto/qml/qqmlecmascript/testtypes.h b/tests/auto/qml/qqmlecmascript/testtypes.h
index 167e944aa6..b0d7e0f723 100644
--- a/tests/auto/qml/qqmlecmascript/testtypes.h
+++ b/tests/auto/qml/qqmlecmascript/testtypes.h
@@ -360,6 +360,7 @@ class MyTypeObject : public QObject
Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty)
Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty)
Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty)
+ Q_PROPERTY(QDateTime dateTimeProperty2 READ dateTimeProperty2 WRITE setDateTimeProperty2)
Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty)
Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty)
Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty)
@@ -501,6 +502,14 @@ public:
dateTimePropertyValue = v;
}
+ QDateTime dateTimePropertyValue2;
+ QDateTime dateTimeProperty2() const {
+ return dateTimePropertyValue2;
+ }
+ void setDateTimeProperty2(const QDateTime &v) {
+ dateTimePropertyValue2 = v;
+ }
+
QPoint pointPropertyValue;
QPoint pointProperty() const {
return pointPropertyValue;
diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
index c2d490e3c5..4e7da76d5e 100644
--- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -332,7 +332,9 @@ void tst_qqmlecmascript::assignBasicTypes()
void tst_qqmlecmascript::assignDate_data()
{
QTest::addColumn<QUrl>("source");
- QTest::newRow("Component.onComplete JS") << testFileUrl("assignDate.qml");
+
+ QTest::newRow("Component.onComplete JS Parse") << testFileUrl("assignDate.qml");
+ QTest::newRow("Component.onComplete JS") << testFileUrl("assignDate.1.qml");
QTest::newRow("Binding JS") << testFileUrl("assignDate.2.qml");
QTest::newRow("Binding UTC") << testFileUrl("assignDate.3.qml");
QTest::newRow("Binding JS UTC") << testFileUrl("assignDate.4.qml");
@@ -343,12 +345,21 @@ void tst_qqmlecmascript::assignDate_data()
void tst_qqmlecmascript::assignDate()
{
QFETCH(QUrl, source);
+
QQmlComponent component(&engine, source);
QScopedPointer<QObject> obj(component.create());
MyTypeObject *object = qobject_cast<MyTypeObject *>(obj.data());
QVERIFY(object != 0);
- QCOMPARE(object->dateProperty(), QDate(1982, 11, 25));
- QCOMPARE(object->dateTimeProperty(), QDateTime(QDate(2009, 5, 12), QTime(13, 22, 1), Qt::UTC));
+
+ // Dates received from JS are automatically converted to local time
+ QDate expectedDate(QDateTime(QDate(2009, 5, 12), QTime(0, 0, 0), Qt::UTC).toLocalTime().date());
+ QDateTime expectedDateTime(QDateTime(QDate(2009, 5, 12), QTime(0, 0, 1), Qt::UTC).toLocalTime());
+ QDateTime expectedDateTime2(QDateTime(QDate(2009, 5, 12), QTime(23, 59, 59), Qt::UTC).toLocalTime());
+
+ QCOMPARE(object->dateProperty(), expectedDate);
+ QCOMPARE(object->dateTimeProperty(), expectedDateTime);
+ QCOMPARE(object->dateTimeProperty2(), expectedDateTime2);
+ QCOMPARE(object->boolProperty(), true);
}
void tst_qqmlecmascript::idShortcutInvalidates()