summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp')
-rw-r--r--tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp
index 9b41014394..5da69e76a5 100644
--- a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp
+++ b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2018 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
@@ -40,6 +40,8 @@ private:
private slots:
void basic_data();
void basic();
+ void unspecified_data() { basic_data(); }
+ void unspecified();
void nameCase();
void specific_data();
void specific();
@@ -145,6 +147,27 @@ void tst_QCalendar::basic()
NORMALYEAR(cal, year);
}
+void tst_QCalendar::unspecified()
+{
+ QFETCH(QCalendar::System, system);
+ QCalendar cal(system);
+
+ const QDate today = QDate::currentDate();
+ const int thisYear = today.year();
+ QCOMPARE(cal.monthsInYear(QCalendar::Unspecified), cal.maximumMonthsInYear());
+ for (int month = cal.maximumMonthsInYear(); month > 0; month--) {
+ const int days = cal.daysInMonth(month);
+ int count = 0;
+ // 19 years = one Metonic cycle (used by some lunar calendars)
+ for (int i = 19; i > 0; --i) {
+ if (cal.daysInMonth(month, thisYear - i) == days)
+ count++;
+ }
+ // Require a majority of the years tested:
+ QVERIFY2(count > 9, "Default daysInMonth() should be for a normal year");
+ }
+}
+
void tst_QCalendar::nameCase()
{
QVERIFY(QCalendar::availableCalendars().contains(QStringLiteral("Gregorian")));