summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2018-12-05 12:12:03 +0100
committerAndy Shaw <andy.shaw@qt.io>2019-01-14 07:30:35 +0000
commitb1b68aa279275e93b867c29fa42350f42b9d9728 (patch)
treec659c0ebb560d015f497ecce54cda8bf3c39fe4f /tests
parent08b418078217b1c7c8756358810773f492a0df35 (diff)
Calendar: Ignore any time specified for a minimum and maximum date
Since Calendar only cares about the date part and not the time, we should ignore the time part when it is set as the minimum and maximum and manually set it to 0:00:00 and 23:59:59 respectively. This ensures that the day itself is still seen as valid irrespective of what time was passed to Date(). Change-Id: I57c311ffe7d3fb1ab69c59296a067a66f1007137 Fixes: QTBUG-71997 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/controls/data/tst_calendar.qml24
-rw-r--r--tests/auto/controls/data/tst_rangeddate.qml64
2 files changed, 50 insertions, 38 deletions
diff --git a/tests/auto/controls/data/tst_calendar.qml b/tests/auto/controls/data/tst_calendar.qml
index 17b2b9b41..1f8d9a8d8 100644
--- a/tests/auto/controls/data/tst_calendar.qml
+++ b/tests/auto/controls/data/tst_calendar.qml
@@ -124,11 +124,19 @@ Item {
}
function test_defaultConstructed() {
- calendar.minimumDate = new Date(1, 0, 1);
- calendar.maximumDate = new Date(4000, 0, 1);
-
- compare(calendar.minimumDate, new Date(1, 0, 1));
- compare(calendar.maximumDate, new Date(4000, 0, 1));
+ // Minimum date needs to be at least 1921-05-01 due to date problems in < JS7 which
+ // causes problems with the Finnish timezone in CI. So use 1922 to avoid those
+ // causing an invalid failure
+
+ // The minimum and maximum are set with "different" times
+ // to confirm that they have no bearing from what it will
+ // return later on as we only care about the date part
+ // and not the specific time in the range.
+ calendar.minimumDate = new Date(22, 0, 1, 23, 59, 59, 999);
+ calendar.maximumDate = new Date(4000, 0, 1, 0, 0, 0, 0);
+
+ compare(calendar.minimumDate, new Date(22, 0, 1));
+ compare(calendar.maximumDate, new Date(4000, 0, 1, 23, 59, 59, 999));
var expectedDate = new Date();
compare(calendar.selectedDate.getFullYear(), expectedDate.getFullYear());
compare(calendar.selectedDate.getMonth(), expectedDate.getMonth());
@@ -139,15 +147,15 @@ Item {
}
function test_setAfterConstructed() {
- calendar.minimumDate = new Date(1900, 0, 1);
+ calendar.minimumDate = new Date(1922, 0, 1);
calendar.maximumDate = new Date(1999, 11, 31);
calendar.selectedDate = new Date(1980, 0, 1);
calendar.frameVisible = false;
calendar.dayOfWeekFormat = Locale.NarrowFormat;
calendar.locale = Qt.locale("de_DE");
- compare(calendar.minimumDate, new Date(1900, 0, 1));
- compare(calendar.maximumDate, new Date(1999, 11, 31));
+ compare(calendar.minimumDate, new Date(1922, 0, 1));
+ compare(calendar.maximumDate, new Date(1999, 11, 31, 23, 59, 59, 999));
compare(calendar.selectedDate, new Date(1980, 0, 1));
compare(calendar.frameVisible, false);
compare(calendar.locale, Qt.locale("de_DE"));
diff --git a/tests/auto/controls/data/tst_rangeddate.qml b/tests/auto/controls/data/tst_rangeddate.qml
index a18744415..a7d48d85f 100644
--- a/tests/auto/controls/data/tst_rangeddate.qml
+++ b/tests/auto/controls/data/tst_rangeddate.qml
@@ -86,45 +86,49 @@ Item {
}
function test_constructionPropertyOrder() {
+ // Minimum date needs to be at least 1921-05-01 due to date problems in < JS7 which
+ // causes problems with the Finnish timezone in CI. So use 1922 to avoid those
+ // causing an invalid failure
+
// All values are valid; fine.
rangedDate = Qt.createQmlObject(importsStr + " RangedDate { "
- + "date: new Date(1900, 0, 2); "
- + "minimumDate: new Date(1900, 0, 1); "
- + "maximumDate: new Date(1900, 0, 3); "
+ + "date: new Date(1922, 0, 2); "
+ + "minimumDate: new Date(1922, 0, 1); "
+ + "maximumDate: new Date(1922, 0, 3); "
+ " }", container, "");
- compare(rangedDate.date.getTime(), new Date(1900, 0, 2).getTime());
- compare(rangedDate.minimumDate.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.maximumDate.getTime(), new Date(1900, 0, 3).getTime());
+ compare(rangedDate.date.getTime(), new Date(1922, 0, 2).getTime());
+ compare(rangedDate.minimumDate.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1922, 0, 3, 23, 59, 59, 999).getTime());
// All values are the same; doesn't make sense, but is fine [1].
rangedDate = Qt.createQmlObject(importsStr + " RangedDate { "
- + "date: new Date(1900, 0, 1);"
- + "minimumDate: new Date(1900, 0, 1);"
- + "maximumDate: new Date(1900, 0, 1);"
+ + "date: new Date(1922, 0, 1);"
+ + "minimumDate: new Date(1922, 0, 1);"
+ + "maximumDate: new Date(1922, 0, 1);"
+ " }", container, "");
- compare(rangedDate.date.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.minimumDate.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.maximumDate.getTime(), new Date(1900, 0, 1).getTime());
+ compare(rangedDate.date.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.minimumDate.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1922, 0, 1, 23, 59, 59, 999).getTime());
// date is lower than min - should be clamped to min.
rangedDate = Qt.createQmlObject(importsStr + " RangedDate { "
+ "date: new Date(1899, 0, 1);"
- + "minimumDate: new Date(1900, 0, 1);"
- + "maximumDate: new Date(1900, 0, 1);"
+ + "minimumDate: new Date(1922, 0, 1);"
+ + "maximumDate: new Date(1922, 0, 1);"
+ " }", container, "");
- compare(rangedDate.date.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.minimumDate.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.maximumDate.getTime(), new Date(1900, 0, 1).getTime());
+ compare(rangedDate.date.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.minimumDate.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1922, 0, 1, 23, 59, 59, 999).getTime());
// date is higher than max - should be clamped to max.
rangedDate = Qt.createQmlObject(importsStr + " RangedDate { "
- + "date: new Date(1900, 0, 2);"
- + "minimumDate: new Date(1900, 0, 1);"
- + "maximumDate: new Date(1900, 0, 1);"
+ + "date: new Date(1922, 0, 2);"
+ + "minimumDate: new Date(1922, 0, 1);"
+ + "maximumDate: new Date(1922, 0, 1);"
+ " }", container, "");
- compare(rangedDate.date.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.minimumDate.getTime(), new Date(1900, 0, 1).getTime());
- compare(rangedDate.maximumDate.getTime(), new Date(1900, 0, 1).getTime());
+ compare(rangedDate.date.getTime(), new Date(1922, 0, 1, 23, 59, 59, 999).getTime());
+ compare(rangedDate.minimumDate.getTime(), new Date(1922, 0, 1).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1922, 0, 1, 23, 59, 59, 999).getTime());
// If the order of property construction is undefined (as it should be if it's declarative),
// then is min considered higher than max or max lower than min? Which should be changed?
@@ -132,13 +136,13 @@ Item {
// For now, max will always be the one that's changed. It will be set to min,
// as min may already be the largest possible date (See [1]).
rangedDate = Qt.createQmlObject(importsStr + " RangedDate { "
- + "date: new Date(1900, 0, 1);"
- + "minimumDate: new Date(1900, 0, 2);"
- + "maximumDate: new Date(1900, 0, 1);"
+ + "date: new Date(1922, 0, 1);"
+ + "minimumDate: new Date(1922, 0, 2);"
+ + "maximumDate: new Date(1922, 0, 1);"
+ " }", container, "");
- compare(rangedDate.date.getTime(), new Date(1900, 0, 2).getTime());
- compare(rangedDate.minimumDate.getTime(), new Date(1900, 0, 2).getTime());
- compare(rangedDate.maximumDate.getTime(), new Date(1900, 0, 2).getTime());
+ compare(rangedDate.date.getTime(), new Date(1922, 0, 2).getTime());
+ compare(rangedDate.minimumDate.getTime(), new Date(1922, 0, 2).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1922, 0, 2, 23, 59, 59, 999).getTime());
// [1] Do we want to enforce min and max being different? E.g. if min
// is (1900, 0, 1) and max is (1900, 0, 1), max should be set (1900, 0, 2).
@@ -159,7 +163,7 @@ Item {
rangedDate.minimumDate = new Date(1990, 0, 1);
compare(rangedDate.minimumDate.getTime(), new Date(1990, 0, 1).getTime());
rangedDate.maximumDate = new Date(1999, 0, 1);
- compare(rangedDate.maximumDate.getTime(), new Date(1999, 0, 1).getTime());
+ compare(rangedDate.maximumDate.getTime(), new Date(1999, 0, 1, 23, 59, 59, 999).getTime());
// MIN DATE MAX
// [ 1996 | 1996 | 1999 ]