aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-05-12 12:04:56 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2021-05-18 16:24:32 +0200
commit08d029d6d32850d9c1e850ec21e9d655b1f4e952 (patch)
tree387ff2058d7f75517381cca3472e24cb67535119 /tests
parent85d090e84b5892256de818f3cb0a2274f1fea8a5 (diff)
Report what failed in a QML test's JavaScript
I needed it while debugging QDate <-> Date conversions, so we might as well keep the more informative form of it to make life easier for anyone else doing similar. Change-Id: I99057535f2f3b2783997102cc7db98290e40c220 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/assignDate.qml142
1 files changed, 114 insertions, 28 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/assignDate.qml b/tests/auto/qml/qqmlecmascript/data/assignDate.qml
index 60a3d72fa1..ca4b34d6b9 100644
--- a/tests/auto/qml/qqmlecmascript/data/assignDate.qml
+++ b/tests/auto/qml/qqmlecmascript/data/assignDate.qml
@@ -3,36 +3,122 @@ import QtQuick 2.0
MyTypeObject {
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")
+ var dateVar = new Date("2009-05-12");
+ var dateTimeEarly = new Date("2009-05-12T00:00:01");
+ var dateTimeLate = new Date("2009-05-12T23:59:59");
- // Date, with no zone specified, is implicitly UTC
- dateProperty = dateVar
+ // Date, with no zone specified, is implicitly UTC, but is converted to QDate using LocalTime
+ dateProperty = dateVar;
// Date-time, with no zone, is implicitly local-time
- dateTimeProperty = dateTimeVar
- dateTimeProperty2 = dateTimeVar2
+ dateTimeProperty = dateTimeEarly;
+ dateTimeProperty2 = dateTimeLate;
- boolProperty = (dateProperty.getTime() == dateVar.getTime()) &&
- (dateProperty.getUTCFullYear() == 2009) &&
- (dateProperty.getUTCMonth() == 5-1) &&
- (dateProperty.getUTCDate() == 12) &&
- (dateProperty.getUTCHours() == 0) &&
- (dateProperty.getUTCMinutes() == 0) &&
- (dateProperty.getUTCSeconds() == 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)
+ var check = true;
+ if (dateProperty.getTime() != dateVar.getTime()) {
+ console.warn("Date epoch delta differs:",
+ dateProperty.getTime(), "!=", dateVar.getTime());
+ check = false;
+ }
+ if (dateProperty.getUTCFullYear() != 2009) {
+ console.warn("Date's year is wrong:",
+ dateProperty.getUTCFullYear(), "!= 2009");
+ check = false;
+ }
+ if (dateProperty.getUTCMonth() != 5-1) {
+ console.warn("Date's month is wrong:",
+ dateProperty.getUTCMonth(), "!= 4 (May)");
+ check = false;
+ }
+ if (dateProperty.getUTCDate() != 12) {
+ console.warn("Date's day is wrong:",
+ dateProperty.getUTCDate(), "!= 12");
+ check = false;
+ }
+ if (dateProperty.getUTCHours() != 0) {
+ console.warn("Date's hour is wrong:",
+ dateProperty.getUTCHours(), "!= 0");
+ check = false;
+ }
+ if (dateProperty.getUTCMinutes() != 0) {
+ console.warn("Date's minute is wrong:",
+ dateProperty.getUTCMinutes(), "!= 0");
+ check = false;
+ }
+ if (dateProperty.getUTCSeconds() != 0) {
+ console.warn("Date's second is wrong:",
+ dateProperty.getUTCSeconds(), "!= 0");
+ check = false;
+ }
+ if (dateTimeProperty.getTime() != dateTimeEarly.getTime()) {
+ console.warn("Early date-time epoch delta differs:",
+ dateTimeProperty.getTime(), "!=", dateTimeEarly.getTime());
+ check = false;
+ }
+ if (dateTimeProperty.getFullYear() != 2009) {
+ console.warn("Early date-time's year is wrong:",
+ dateTimeProperty.getFullYear(), "!= 2009");
+ check = false;
+ }
+ if (dateTimeProperty.getMonth() != 5-1) {
+ console.warn("Early date-time's month is wrong:",
+ dateTimeProperty.getMonth(), "!= 4 (May)");
+ check = false;
+ }
+ if (dateTimeProperty.getDate() != 12) {
+ console.warn("Early date-time's day is wrong:",
+ dateTimeProperty.getDate(), "!= 12");
+ check = false;
+ }
+ if (dateTimeProperty.getHours() != 0) {
+ console.warn("Early date-time's hour is wrong:",
+ dateTimeProperty.getHours(), "!= 0");
+ check = false;
+ }
+ if (dateTimeProperty.getMinutes() != 0) {
+ console.warn("Early date-time's minute is wrong:",
+ dateTimeProperty.getMinutes(), "!= 0");
+ check = false;
+ }
+ if (dateTimeProperty.getSeconds() != 1) {
+ console.warn("Early date-time's second is wrong:",
+ dateTimeProperty.getSeconds(), "!= 1");
+ check = false;
+ }
+ if (dateTimeProperty2.getTime() != dateTimeLate.getTime()) {
+ console.warn("Late date-time epoch delta differs:",
+ dateTimeProperty2.getTime(), "!=", dateTimeLate.getTime());
+ check = false;
+ }
+ if (dateTimeProperty2.getFullYear() != 2009) {
+ console.warn("Late date-time's year is wrong:",
+ dateTimeProperty2.getFullYear(), "!= 2009");
+ check = false;
+ }
+ if (dateTimeProperty2.getMonth() != 5-1) {
+ console.warn("Late date-time's month is wrong:",
+ dateTimeProperty2.getMonth(), "!= 4 (May)");
+ check = false;
+ }
+ if (dateTimeProperty2.getDate() != 12) {
+ console.warn("Late date-time's day is wrong:",
+ dateTimeProperty2.getDate(), "!= 12");
+ check = false;
+ }
+ if (dateTimeProperty2.getHours() != 23) {
+ console.warn("Late date-time's hour is wrong:",
+ dateTimeProperty2.getHours(), "!= 23");
+ check = false;
+ }
+ if (dateTimeProperty2.getMinutes() != 59) {
+ console.warn("Late date-time's minute is wrong:",
+ dateTimeProperty2.getMinutes(), "!= 59");
+ check = false;
+ }
+ if (dateTimeProperty2.getSeconds() != 59) {
+ console.warn("Late date-time's second is wrong:",
+ dateTimeProperty2.getSeconds(), "!= 59");
+ check = false;
+ }
+ boolProperty = check;
}
}