diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-10-02 14:37:42 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-10-06 06:31:18 +0200 |
commit | 978039651e23629b58f35b0c011a8ea76a5a774e (patch) | |
tree | 1e64b4eaa9f1a33b9c21003c8917e1e0bea1ee2c /tests | |
parent | f0068e7b030c8a73f12e58ef9227aa68ba6388e5 (diff) |
Test end-date, not just its string representation, in QDTE test
In tst_QDateTimeEdit::dateEditCorrectSectionSize(), only the final
displayed date was tested; many of the tests checked day of week (by
name), which might well match despite actually selecting a different
date than the one intended. So test the date is as expected, too.
In the process, tidy up the code, give values more informative names,
turn a trivial static function into a lambda.
Change-Id: I0491159e9ee2f3cfdcf8a194c723be92c190c2a8
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp | 434 |
1 files changed, 264 insertions, 170 deletions
diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp index 7bc188cf19..ef813c3021 100644 --- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp +++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp @@ -3902,11 +3902,6 @@ typedef QPair<Qt::Key, Qt::KeyboardModifier> KeyPair; typedef QList<KeyPair> KeyPairList; Q_DECLARE_METATYPE(KeyPair) - -static inline KeyPair key(Qt::Key key, Qt::KeyboardModifier modifier = Qt::NoModifier) { - return KeyPair(key, modifier); -} - /* When a QDateEdit has its display format set to 'yyyy/MM/dd', its day set to 31 and its month set to 2, it will display 291 as the day until @@ -3925,16 +3920,15 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize_data() QTest::addColumn<QDate>("defaultDate"); QTest::addColumn<QString>("displayFormat"); QTest::addColumn<KeyPairList>("keyPresses"); + QTest::addColumn<QDate>("expectedDate"); QTest::addColumn<QString>("expectedDisplayString"); - const QDate defaultDate(2000, 1, 1); - const QLocale defaultLocale(QLocale::English, QLocale::Australia); - - KeyPairList thirtyUpKeypresses; - thirtyUpKeypresses.reserve(30); - for (int i = 0; i < 30; ++i) { - thirtyUpKeypresses << key(Qt::Key_Up); - } + const auto key = [](Qt::Key key, Qt::KeyboardModifier modifier = Qt::NoModifier) { + return KeyPair(key, modifier); + }; + const QDate y2kStart(2000, 1, 1), start2001(2001, 1, 1); + const QLocale ozzy(QLocale::English, QLocale::Australia); + const KeyPairList thirtyUpKeypresses(30, key(Qt::Key_Up)); // Make day the current section, set day to 31st (invalid for february), // move to month field, set month to february (2). @@ -4021,166 +4015,265 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize_data() KeyPairList shortAndLongNameIssueKeypresses; shortAndLongNameIssueKeypresses << key(Qt::Key_Tab) << key(Qt::Key_3) << key(Qt::Key_1) << key(Qt::Key_Up); - QTest::newRow("no fixday, leap, yy/M/dddd") << defaultLocale << defaultDate << QString::fromLatin1("yy/M/dddd") - << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/2/Tuesday"); - - QTest::newRow("no fixday, leap, yy/M/ddd") << defaultLocale << defaultDate << QString::fromLatin1("yy/M/ddd") - << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/2/Tue"); - - QTest::newRow("no fixday, leap, yy/MM/dddd") << defaultLocale << defaultDate << QString::fromLatin1("yy/MM/dddd") - << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("00/02/Tuesday"); - - QTest::newRow("fixday, leap, yy/MM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yy/MM/dd") - << threeDigitDayIssueKeypresses << QString::fromLatin1("00/02/29"); - - QTest::newRow("fixday, leap, yy/MM/d") << defaultLocale << defaultDate << QString::fromLatin1("yy/MM/d") - << threeDigitDayIssueKeypresses << QString::fromLatin1("00/02/29"); - - QTest::newRow("fixday, leap, yyyy/M/d") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/M/d") - << threeDigitDayIssueKeypresses << QString::fromLatin1("2000/2/29"); - - QTest::newRow("no fixday, yyyy/M/d") << defaultLocale << defaultDate.addYears(1) << QString::fromLatin1("yyyy/M/d") - << threeDigitDayIssueKeypresses_Nofixday << QString::fromLatin1("2001/2/28"); - - QTest::newRow("fixday, leap, 2-digit month, yyyy/M/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/M/dd") - << threeDigitDayIssueKeypresses_TwoDigitMonth << QString::fromLatin1("2000/11/30"); - - QTest::newRow("no fixday, leap, 1-digit day, yyyy/M/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/M/dd") - << threeDigitDayIssueKeypresses_OneDigitDay << QString::fromLatin1("2000/2/03"); - - QTest::newRow("fixday, leap, yyyy/MM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MM/dd") - << threeDigitDayIssueKeypresses << QString::fromLatin1("2000/02/29"); - - QTest::newRow("no fixday, yyyy/MM/dd") << defaultLocale << defaultDate.addYears(1) << QString::fromLatin1("yyyy/MM/dd") - << threeDigitDayIssueKeypresses_Nofixday << QString::fromLatin1("2001/02/28"); - - QTest::newRow("fixday, leap, 2-digit month, yyyy/MM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MM/dd") - << threeDigitDayIssueKeypresses_TwoDigitMonth << QString::fromLatin1("2000/11/30"); - - QTest::newRow("no fixday, leap, yyyy/M/dddd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/M/dddd") - << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("2000/2/Tuesday"); - - QTest::newRow("no fixday, leap, yyyy/MM/dddd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MM/dddd") - << threeDigitDayIssueKeypresses_DayName << QString::fromLatin1("2000/02/Tuesday"); - - QTest::newRow("fixday, leap, yyyy/dd/MM") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/dd/MM") - << threeDigitDayIssueKeypresses_YearDayMonth << QString::fromLatin1("2000/29/02"); - - QTest::newRow("fixday, leap, yyyy/dd/M") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/dd/M") - << threeDigitDayIssueKeypresses_YearDayMonth << QString::fromLatin1("2000/29/2"); - - QTest::newRow("fixday, leap, yyyy/d/M") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/d/M") - << threeDigitDayIssueKeypresses_YearDayMonth << QString::fromLatin1("2000/29/2"); - - QTest::newRow("fixday, leap, yyyy/MMM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MMM/dd") - << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb/29"); - - QTest::newRow("fixday, leap, yyyy/MMM/d") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/MMM/d") - << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("2000/Feb/29"); - - QTest::newRow("fixday, leap, yy/MMM/dd") << defaultLocale << defaultDate << QString::fromLatin1("yy/MMM/dd") - << threeDigitDayIssueKeypresses_ShortMonthName << QString::fromLatin1("00/Feb/29"); - - QTest::newRow("fixday, leap, yyyy/dddd/M") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/dddd/M") - << threeDigitDayIssueKeypresses_DayName_YearDayMonth << QString::fromLatin1("2000/Tuesday/2"); - - QTest::newRow("fixday, leap, yyyy/dddd/MM") << defaultLocale << defaultDate << QString::fromLatin1("yyyy/dddd/MM") - << threeDigitDayIssueKeypresses_DayName_YearDayMonth << QString::fromLatin1("2000/Tuesday/02"); - - QTest::newRow("fixday, leap, d/M/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("d/M/yyyy") - << reverseThreeDigitDayIssueKeypresses << QString::fromLatin1("29/2/2000"); - - QTest::newRow("fixday, leap, dd/MM/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("dd/MM/yyyy") - << reverseThreeDigitDayIssueKeypresses << QString::fromLatin1("29/02/2000"); - - QTest::newRow("fixday, dd/MM/yyyy") << defaultLocale << defaultDate.addYears(1) << QString::fromLatin1("dd/MM/yyyy") - << reverseThreeDigitDayIssueKeypresses << QString::fromLatin1("28/02/2001"); - - QTest::newRow("fixday, leap, dddd/MM/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("dddd/MM/yyyy") - << threeDigitDayIssueKeypresses_DayName_DayMonthYear << QString::fromLatin1("Tuesday/02/2000"); - - QTest::newRow("fixday, leap, d/yy/M") << defaultLocale << defaultDate << QString::fromLatin1("d/yy/M") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/00/2"); - - QTest::newRow("fixday, leap, d/yyyy/M") << defaultLocale << defaultDate << QString::fromLatin1("d/yyyy/M") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/2000/2"); - - QTest::newRow("fixday, leap, d/yyyy/MM") << defaultLocale << defaultDate << QString::fromLatin1("d/yyyy/MM") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/2000/02"); - - QTest::newRow("fixday, leap, dd/yy/MM") << defaultLocale << defaultDate << QString::fromLatin1("dd/yy/MM") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/00/02"); - - QTest::newRow("fixday, leap, dd/yyyy/M") << defaultLocale << defaultDate << QString::fromLatin1("dd/yyyy/M") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/2000/2"); - - QTest::newRow("fixday, leap, dd/yyyy/MM") << defaultLocale << defaultDate << QString::fromLatin1("dd/yyyy/MM") - << threeDigitDayIssueKeypresses_DayYearMonth << QString::fromLatin1("29/2000/02"); - - QTest::newRow("fixday, leap, dddd/yy/M") << defaultLocale << defaultDate << QString::fromLatin1("dddd/yy/M") - << threeDigitDayIssueKeypresses_DayName_DayYearMonth << QString::fromLatin1("Tuesday/00/2"); - - QTest::newRow("fixday, leap, dddd/yy/MM") << defaultLocale << defaultDate << QString::fromLatin1("dddd/yy/MM") - << threeDigitDayIssueKeypresses_DayName_DayYearMonth << QString::fromLatin1("Tuesday/00/02"); - - QTest::newRow("fixday, leap, M/d/yy") << defaultLocale << defaultDate << QString::fromLatin1("M/d/yy") - << threeDigitDayIssueKeypresses_MonthDayYear << QString::fromLatin1("2/29/00"); - - QTest::newRow("fixday, leap, M/d/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("M/d/yyyy") - << threeDigitDayIssueKeypresses_MonthDayYear << QString::fromLatin1("2/29/2000"); - - QTest::newRow("fixday, leap, M/dd/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("M/dd/yyyy") - << threeDigitDayIssueKeypresses_MonthDayYear << QString::fromLatin1("2/29/2000"); - - QTest::newRow("fixday, leap, M/dddd/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("M/dddd/yyyy") - << threeDigitDayIssueKeypresses_DayName_MonthDayYear << QString::fromLatin1("2/Tuesday/2000"); - - QTest::newRow("fixday, leap, MM/dd/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("MM/dd/yyyy") - << threeDigitDayIssueKeypresses_MonthDayYear << QString::fromLatin1("02/29/2000"); - - QTest::newRow("fixday, leap, MM/dddd/yyyy") << defaultLocale << defaultDate << QString::fromLatin1("MM/dddd/yyyy") - << threeDigitDayIssueKeypresses_DayName_MonthDayYear << QString::fromLatin1("02/Tuesday/2000"); - - QTest::newRow("fixday, leap, M/yyyy/dd") << defaultLocale << defaultDate << QString::fromLatin1("M/yyyy/dd") - << threeDigitDayIssueKeypresses_MonthYearDay << QString::fromLatin1("2/2000/29"); - - QTest::newRow("fixday, leap, M/yy/dd") << defaultLocale << defaultDate << QString::fromLatin1("M/yy/dd") - << threeDigitDayIssueKeypresses_MonthYearDay << QString::fromLatin1("2/00/29"); - - QTest::newRow("fixday, leap, M/yy/d") << defaultLocale << defaultDate << QString::fromLatin1("M/yy/d") - << threeDigitDayIssueKeypresses_MonthYearDay << QString::fromLatin1("2/00/29"); - - QTest::newRow("fixday, leap, MM/yyyy/dd") << defaultLocale << defaultDate << QString::fromLatin1("MM/yyyy/dd") - << threeDigitDayIssueKeypresses_MonthYearDay << QString::fromLatin1("02/2000/29"); - - QTest::newRow("fixday, leap, MMM/yy/d") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yy/d") - << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/00/29"); - - QTest::newRow("fixday, leap, MMM/yyyy/d") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yyyy/d") - << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2000/29"); - - QTest::newRow("fixday, MMM/yyyy/d") << defaultLocale << defaultDate.addYears(1) << QString::fromLatin1("MMM/yyyy/d") - << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2001/28"); - - QTest::newRow("fixday, leap, MMM/yyyy/dd") << defaultLocale << defaultDate << QString::fromLatin1("MMM/yyyy/dd") - << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay << QString::fromLatin1("Feb/2000/29"); - - QTest::newRow("fixday, leap, dddd, dd. MMMM yyyy") << defaultLocale - << defaultDate << QString::fromLatin1("dddd, dd. MMMM yyyy") - << shortAndLongNameIssueKeypresses << QString::fromLatin1("Tuesday, 29. February 2000"); - - QTest::newRow("fixday, leap, german, dddd, dd. MMMM yyyy") << QLocale(QLocale::German, QLocale::Germany) - << defaultDate << QString::fromLatin1("dddd, dd. MMMM yyyy") - << shortAndLongNameIssueKeypresses << QString::fromLatin1("Dienstag, 29. Februar 2000"); + QTest::newRow("no fixday, leap, yy/M/dddd") + << ozzy << y2kStart << QString::fromLatin1("yy/M/dddd") + << threeDigitDayIssueKeypresses_DayName + << QDate(2000, 2, 29) << QString::fromLatin1("00/2/Tuesday"); + + QTest::newRow("no fixday, leap, yy/M/ddd") + << ozzy << y2kStart << QString::fromLatin1("yy/M/ddd") + << threeDigitDayIssueKeypresses_DayName + << QDate(2000, 2, 29) << QString::fromLatin1("00/2/Tue"); + + QTest::newRow("no fixday, leap, yy/MM/dddd") + << ozzy << y2kStart << QString::fromLatin1("yy/MM/dddd") + << threeDigitDayIssueKeypresses_DayName + << QDate(2000, 2, 29) << QString::fromLatin1("00/02/Tuesday"); + + QTest::newRow("fixday, leap, yy/MM/dd") + << ozzy << y2kStart << QString::fromLatin1("yy/MM/dd") + << threeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("00/02/29"); + + QTest::newRow("fixday, leap, yy/MM/d") + << ozzy << y2kStart << QString::fromLatin1("yy/MM/d") + << threeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("00/02/29"); + + QTest::newRow("fixday, leap, yyyy/M/d") + << ozzy << y2kStart << QString::fromLatin1("yyyy/M/d") + << threeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("2000/2/29"); + + QTest::newRow("no fixday, yyyy/M/d") + << ozzy << start2001 << QString::fromLatin1("yyyy/M/d") + << threeDigitDayIssueKeypresses_Nofixday + << QDate(2001, 2, 28) << QString::fromLatin1("2001/2/28"); + + QTest::newRow("fixday, leap, 2-digit month, yyyy/M/dd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/M/dd") + << threeDigitDayIssueKeypresses_TwoDigitMonth + << QDate(2000, 11, 30) << QString::fromLatin1("2000/11/30"); + + QTest::newRow("no fixday, leap, 1-digit day, yyyy/M/dd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/M/dd") + << threeDigitDayIssueKeypresses_OneDigitDay + << QDate(2000, 2, 3) << QString::fromLatin1("2000/2/03"); + + QTest::newRow("fixday, leap, yyyy/MM/dd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/MM/dd") + << threeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("2000/02/29"); + + QTest::newRow("no fixday, yyyy/MM/dd") + << ozzy << start2001 << QString::fromLatin1("yyyy/MM/dd") + << threeDigitDayIssueKeypresses_Nofixday + << QDate(2001, 2, 28) << QString::fromLatin1("2001/02/28"); + + QTest::newRow("fixday, leap, 2-digit month, yyyy/MM/dd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/MM/dd") + << threeDigitDayIssueKeypresses_TwoDigitMonth + << QDate(2000, 11, 30) << QString::fromLatin1("2000/11/30"); + + QTest::newRow("no fixday, leap, yyyy/M/dddd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/M/dddd") + << threeDigitDayIssueKeypresses_DayName + << QDate(2000, 2, 29) << QString::fromLatin1("2000/2/Tuesday"); + + QTest::newRow("no fixday, leap, yyyy/MM/dddd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/MM/dddd") + << threeDigitDayIssueKeypresses_DayName + << QDate(2000, 2, 29) << QString::fromLatin1("2000/02/Tuesday"); + + QTest::newRow("fixday, leap, yyyy/dd/MM") + << ozzy << y2kStart << QString::fromLatin1("yyyy/dd/MM") + << threeDigitDayIssueKeypresses_YearDayMonth + << QDate(2000, 2, 29) << QString::fromLatin1("2000/29/02"); + + QTest::newRow("fixday, leap, yyyy/dd/M") + << ozzy << y2kStart << QString::fromLatin1("yyyy/dd/M") + << threeDigitDayIssueKeypresses_YearDayMonth + << QDate(2000, 2, 29) << QString::fromLatin1("2000/29/2"); + + QTest::newRow("fixday, leap, yyyy/d/M") + << ozzy << y2kStart << QString::fromLatin1("yyyy/d/M") + << threeDigitDayIssueKeypresses_YearDayMonth + << QDate(2000, 2, 29) << QString::fromLatin1("2000/29/2"); + + QTest::newRow("fixday, leap, yyyy/MMM/dd") + << ozzy << y2kStart << QString::fromLatin1("yyyy/MMM/dd") + << threeDigitDayIssueKeypresses_ShortMonthName + << QDate(2000, 2, 29) << QString::fromLatin1("2000/Feb/29"); + + QTest::newRow("fixday, leap, yyyy/MMM/d") + << ozzy << y2kStart << QString::fromLatin1("yyyy/MMM/d") + << threeDigitDayIssueKeypresses_ShortMonthName + << QDate(2000, 2, 29) << QString::fromLatin1("2000/Feb/29"); + + QTest::newRow("fixday, leap, yy/MMM/dd") + << ozzy << y2kStart << QString::fromLatin1("yy/MMM/dd") + << threeDigitDayIssueKeypresses_ShortMonthName + << QDate(2000, 2, 29) << QString::fromLatin1("00/Feb/29"); + + QTest::newRow("fixday, leap, yyyy/dddd/M") + << ozzy << y2kStart << QString::fromLatin1("yyyy/dddd/M") + << threeDigitDayIssueKeypresses_DayName_YearDayMonth + << QDate(2000, 2, 29) << QString::fromLatin1("2000/Tuesday/2"); + + QTest::newRow("fixday, leap, yyyy/dddd/MM") + << ozzy << y2kStart << QString::fromLatin1("yyyy/dddd/MM") + << threeDigitDayIssueKeypresses_DayName_YearDayMonth + << QDate(2000, 2, 29) << QString::fromLatin1("2000/Tuesday/02"); + + QTest::newRow("fixday, leap, d/M/yyyy") + << ozzy << y2kStart << QString::fromLatin1("d/M/yyyy") + << reverseThreeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("29/2/2000"); + + QTest::newRow("fixday, leap, dd/MM/yyyy") + << ozzy << y2kStart << QString::fromLatin1("dd/MM/yyyy") + << reverseThreeDigitDayIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("29/02/2000"); + + QTest::newRow("fixday, dd/MM/yyyy") + << ozzy << start2001 << QString::fromLatin1("dd/MM/yyyy") + << reverseThreeDigitDayIssueKeypresses + << QDate(2001, 2, 28) << QString::fromLatin1("28/02/2001"); + + QTest::newRow("fixday, leap, dddd/MM/yyyy") + << ozzy << y2kStart << QString::fromLatin1("dddd/MM/yyyy") + << threeDigitDayIssueKeypresses_DayName_DayMonthYear + << QDate(2000, 2, 29) << QString::fromLatin1("Tuesday/02/2000"); + + QTest::newRow("fixday, leap, d/yy/M") + << ozzy << y2kStart << QString::fromLatin1("d/yy/M") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/00/2"); + + QTest::newRow("fixday, leap, d/yyyy/M") + << ozzy << y2kStart << QString::fromLatin1("d/yyyy/M") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/2000/2"); + + QTest::newRow("fixday, leap, d/yyyy/MM") + << ozzy << y2kStart << QString::fromLatin1("d/yyyy/MM") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/2000/02"); + + QTest::newRow("fixday, leap, dd/yy/MM") + << ozzy << y2kStart << QString::fromLatin1("dd/yy/MM") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/00/02"); + + QTest::newRow("fixday, leap, dd/yyyy/M") + << ozzy << y2kStart << QString::fromLatin1("dd/yyyy/M") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/2000/2"); + + QTest::newRow("fixday, leap, dd/yyyy/MM") + << ozzy << y2kStart << QString::fromLatin1("dd/yyyy/MM") + << threeDigitDayIssueKeypresses_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("29/2000/02"); + + QTest::newRow("fixday, leap, dddd/yy/M") + << ozzy << y2kStart << QString::fromLatin1("dddd/yy/M") + << threeDigitDayIssueKeypresses_DayName_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("Tuesday/00/2"); + + QTest::newRow("fixday, leap, dddd/yy/MM") + << ozzy << y2kStart << QString::fromLatin1("dddd/yy/MM") + << threeDigitDayIssueKeypresses_DayName_DayYearMonth + << QDate(2000, 2, 29) << QString::fromLatin1("Tuesday/00/02"); + + QTest::newRow("fixday, leap, M/d/yy") + << ozzy << y2kStart << QString::fromLatin1("M/d/yy") + << threeDigitDayIssueKeypresses_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("2/29/00"); + + QTest::newRow("fixday, leap, M/d/yyyy") + << ozzy << y2kStart << QString::fromLatin1("M/d/yyyy") + << threeDigitDayIssueKeypresses_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("2/29/2000"); + + QTest::newRow("fixday, leap, M/dd/yyyy") + << ozzy << y2kStart << QString::fromLatin1("M/dd/yyyy") + << threeDigitDayIssueKeypresses_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("2/29/2000"); + + QTest::newRow("fixday, leap, M/dddd/yyyy") + << ozzy << y2kStart << QString::fromLatin1("M/dddd/yyyy") + << threeDigitDayIssueKeypresses_DayName_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("2/Tuesday/2000"); + + QTest::newRow("fixday, leap, MM/dd/yyyy") + << ozzy << y2kStart << QString::fromLatin1("MM/dd/yyyy") + << threeDigitDayIssueKeypresses_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("02/29/2000"); + + QTest::newRow("fixday, leap, MM/dddd/yyyy") + << ozzy << y2kStart << QString::fromLatin1("MM/dddd/yyyy") + << threeDigitDayIssueKeypresses_DayName_MonthDayYear + << QDate(2000, 2, 29) << QString::fromLatin1("02/Tuesday/2000"); + + QTest::newRow("fixday, leap, M/yyyy/dd") + << ozzy << y2kStart << QString::fromLatin1("M/yyyy/dd") + << threeDigitDayIssueKeypresses_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("2/2000/29"); + + QTest::newRow("fixday, leap, M/yy/dd") + << ozzy << y2kStart << QString::fromLatin1("M/yy/dd") + << threeDigitDayIssueKeypresses_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("2/00/29"); + + QTest::newRow("fixday, leap, M/yy/d") + << ozzy << y2kStart << QString::fromLatin1("M/yy/d") + << threeDigitDayIssueKeypresses_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("2/00/29"); + + QTest::newRow("fixday, leap, MM/yyyy/dd") + << ozzy << y2kStart << QString::fromLatin1("MM/yyyy/dd") + << threeDigitDayIssueKeypresses_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("02/2000/29"); + + QTest::newRow("fixday, leap, MMM/yy/d") + << ozzy << y2kStart << QString::fromLatin1("MMM/yy/d") + << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("Feb/00/29"); + + QTest::newRow("fixday, leap, MMM/yyyy/d") + << ozzy << y2kStart << QString::fromLatin1("MMM/yyyy/d") + << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("Feb/2000/29"); + + QTest::newRow("fixday, MMM/yyyy/d") + << ozzy << start2001 << QString::fromLatin1("MMM/yyyy/d") + << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay + << QDate(2001, 2, 28) << QString::fromLatin1("Feb/2001/28"); + + QTest::newRow("fixday, leap, MMM/yyyy/dd") + << ozzy << y2kStart << QString::fromLatin1("MMM/yyyy/dd") + << threeDigitDayIssueKeypresses_ShortMonthName_MonthYearDay + << QDate(2000, 2, 29) << QString::fromLatin1("Feb/2000/29"); + + QTest::newRow("fixday, leap, dddd, dd. MMMM yyyy") + << ozzy << y2kStart << QString::fromLatin1("dddd, dd. MMMM yyyy") + << shortAndLongNameIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("Tuesday, 29. February 2000"); + + QTest::newRow("fixday, leap, german, dddd, dd. MMMM yyyy") + << QLocale(QLocale::German, QLocale::Germany) << y2kStart + << QString::fromLatin1("dddd, dd. MMMM yyyy") << shortAndLongNameIssueKeypresses + << QDate(2000, 2, 29) << QString::fromLatin1("Dienstag, 29. Februar 2000"); } void tst_QDateTimeEdit::dateEditCorrectSectionSize() { - QFETCH(QLocale, locale); - QFETCH(QDate, defaultDate); - QFETCH(QString, displayFormat); - QFETCH(KeyPairList, keyPresses); - QFETCH(QString, expectedDisplayString); + QFETCH(const QLocale, locale); + QFETCH(const QDate, defaultDate); + QFETCH(const QString, displayFormat); + QFETCH(const KeyPairList, keyPresses); + QFETCH(const QDate, expectedDate); + QFETCH(const QString, expectedDisplayString); QDateEdit edit; edit.setLocale(locale); @@ -4193,9 +4286,10 @@ void tst_QDateTimeEdit::dateEditCorrectSectionSize() // selected text being replaced. This is not an issue for the yyyy/MM/dd format though... edit.setSelectedSection(edit.sectionAt(0)); - foreach (const KeyPair &keyPair, keyPresses) + for (const KeyPair &keyPair : keyPresses) QTest::keyClick(&edit, keyPair.first, keyPair.second); + QCOMPARE(edit.date(), expectedDate); QDateTimeEditPrivate* edit_d_ptr(static_cast<QDateTimeEditPrivate*>(qt_widget_private(&edit))); QCOMPARE(edit_d_ptr->QDateTimeParser::displayText(), expectedDisplayString); } |