diff options
author | Mike FABIAN <mike.fabian@basyskom.de> | 2010-07-13 16:12:25 +0300 |
---|---|---|
committer | Mike FABIAN <mike.fabian@basyskom.de> | 2010-07-16 17:09:18 +0300 |
commit | c1b638a691f477070ff778131f1d592930aa314c (patch) | |
tree | 0573701013ae4f57b104dc56a69e54ffc028de9c /tests | |
parent | 9ebc352f85af70d2b89676dc4d8eb8be9b25738d (diff) |
Changes: improve coverage of ut_mcalendar unit test
RevBy: John Tapsell
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ut_mcalendar/ut_mcalendar.cpp | 162 | ||||
-rw-r--r-- | tests/ut_mcalendar/ut_mcalendar.h | 8 |
2 files changed, 147 insertions, 23 deletions
diff --git a/tests/ut_mcalendar/ut_mcalendar.cpp b/tests/ut_mcalendar/ut_mcalendar.cpp index 4844fb89..8eeba0b1 100644 --- a/tests/ut_mcalendar/ut_mcalendar.cpp +++ b/tests/ut_mcalendar/ut_mcalendar.cpp @@ -56,6 +56,36 @@ void Ut_MCalendar::cleanup() { } +void Ut_MCalendar::testTimeZones() +{ + MCalendar::setSystemTimeZone("Europe/Helsinki"); + QCOMPARE(MCalendar::systemTimeZone(), QString("Europe/Helsinki")); + foreach (QString timeZone, MCalendar::supportedTimeZones()) { + MCalendar::setSystemTimeZone(timeZone); + QCOMPARE(MCalendar::systemTimeZone(), timeZone); + } +} + +void Ut_MCalendar::testTimeZonesInCountry_data() +{ + QTest::addColumn<QString>("countryCode"); + QTest::addColumn<QStringList>("timeZoneList"); + + QTest::newRow("FI") + << "FI" + << (QStringList() << "Europe/Helsinki"); + QTest::newRow("JP") + << "JP" + << (QStringList() << "Asia/Tokyo" << "JST" << "Japan"); +} + +void Ut_MCalendar::testTimeZonesInCountry() +{ + QFETCH(QString, countryCode); + QFETCH(QStringList, timeZoneList); + QCOMPARE(MCalendar::supportedTimeZones(countryCode), timeZoneList); +} + void Ut_MCalendar::testConversionFromAndToQDateTime_data() { QTest::addColumn<QDate>("qDate"); @@ -602,7 +632,7 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromUTCQDateTime_data() { QTest::addColumn<QDateTime>("datetime"); QTest::addColumn<QString>("localeName"); - QTest::addColumn<MLocale::CalendarType>("cal"); + QTest::addColumn<MLocale::CalendarType>("calType"); QTest::addColumn<QString>("short_result"); QTest::addColumn<QString>("long_result"); QTest::addColumn<QString>("full_result"); @@ -657,7 +687,7 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromUTCQDateTime() { QFETCH(QDateTime, datetime); QFETCH(QString, localeName); - QFETCH(MLocale::CalendarType, cal); + QFETCH(MLocale::CalendarType, calType); QFETCH(QString, short_result); QFETCH(QString, long_result); QFETCH(QString, full_result); @@ -665,20 +695,20 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromUTCQDateTime() MLocale locale(localeName); QCOMPARE(locale.formatDateTime(datetime, MLocale::DateShort, - MLocale::TimeShort, cal), + MLocale::TimeShort, calType), short_result); QCOMPARE(locale.formatDateTime(datetime, MLocale::DateLong, - MLocale::TimeLong, cal), + MLocale::TimeLong, calType), long_result); QCOMPARE(locale.formatDateTime(datetime, MLocale::DateFull, - MLocale::TimeFull, cal), + MLocale::TimeFull, calType), full_result); } void Ut_MCalendar::testMLocaleCalendarConversionsFromMCalendar_data() { QTest::addColumn<QString>("localeName"); - QTest::addColumn<MLocale::CalendarType>("cal"); + QTest::addColumn<MLocale::CalendarType>("calType"); QTest::addColumn<int>("year"); QTest::addColumn<int>("month"); QTest::addColumn<int>("day"); @@ -791,7 +821,7 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromMCalendar_data() void Ut_MCalendar::testMLocaleCalendarConversionsFromMCalendar() { QFETCH(QString, localeName); - QFETCH(MLocale::CalendarType, cal); + QFETCH(MLocale::CalendarType, calType); QFETCH(int, year); QFETCH(int, month); QFETCH(int, day); @@ -805,9 +835,10 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromMCalendar() QFETCH(QString, timeFullResult); MLocale locale(localeName); - MCalendar mcal(cal); + MCalendar mcal(calType); mcal.setDate(year, month, day); mcal.setTime(14, 31, 0); + QDateTime dateTime(QDate(year, month, day), QTime(14, 31, 0, 0)); QList<QString> dateResults; dateResults << QString("") @@ -840,10 +871,95 @@ void Ut_MCalendar::testMLocaleCalendarConversionsFromMCalendar() static_cast<MLocale::DateType>(dateType), static_cast<MLocale::TimeType>(timeType)), result); + QCOMPARE( + locale.formatDateTime(dateTime, + static_cast<MLocale::DateType>(dateType), + static_cast<MLocale::TimeType>(timeType), + calType), + result); + if (dateType == MLocale::DateLong + && timeType == MLocale::TimeLong) { + QCOMPARE(locale.formatDateTime(dateTime, calType), result); + } } } } +void Ut_MCalendar::testVariousSetDateTimeMethods_data() +{ + QTest::addColumn<QDateTime>("qDateTime"); + QTest::addColumn<QString>("timeZoneId"); + QTest::addColumn<int>("qDateTimeOffsetToLocalInHours"); + + QTest::newRow("foo") + << QDateTime(QDate(2010, 7, 13), QTime(14, 51, 07, 0), Qt::LocalTime) + << "Europe/Helsinki" + << 0; + QTest::newRow("bar") + << QDateTime(QDate(2010, 7, 13), QTime(14, 51, 07, 0), Qt::UTC) + << "Europe/Helsinki" + << 3; +} + +void Ut_MCalendar::testVariousSetDateTimeMethods() +{ + QFETCH(QDateTime, qDateTime); + QFETCH(QString, timeZoneId); + QFETCH(int, qDateTimeOffsetToLocalInHours); + + MCalendar::setSystemTimeZone(timeZoneId); + + MCalendar mCalendarYmdHms; + mCalendarYmdHms.setYear(qDateTime.date().year()); + mCalendarYmdHms.setMonth(qDateTime.date().month()); + mCalendarYmdHms.setDay(qDateTime.date().day()); + mCalendarYmdHms.setHours(qDateTime.time().hour()); + mCalendarYmdHms.setMinutes(qDateTime.time().minute()); + mCalendarYmdHms.setSeconds(qDateTime.time().second()); + MCalendar mCalendarQdHms; + mCalendarQdHms.setDate(qDateTime.date()); + mCalendarQdHms.setTime(qDateTime.time().hour(), + qDateTime.time().minute(), + qDateTime.time().second()); + MCalendar mCalendarQdt; + mCalendarQdt.setDateTime(qDateTime); + + MLocale locale("en_US"); + qDebug() + << "\nmCalendarYmdHms" + << locale.formatDateTime( + mCalendarYmdHms, MLocale::DateLong, MLocale::TimeLong) + << "\nmCalendarQdHms " + << locale.formatDateTime( + mCalendarQdHms, MLocale::DateLong, MLocale::TimeLong) + << "\nmCalendarQdt " + << locale.formatDateTime( + mCalendarQdt, MLocale::DateLong, MLocale::TimeLong); + + QCOMPARE(mCalendarYmdHms.year(), qDateTime.date().year()); + QCOMPARE(mCalendarYmdHms.month(), qDateTime.date().month()); + QCOMPARE(mCalendarYmdHms.dayOfMonth(), qDateTime.date().day()); + QCOMPARE(mCalendarYmdHms.hour(), qDateTime.time().hour()); + QCOMPARE(mCalendarYmdHms.minute(), qDateTime.time().minute()); + QCOMPARE(mCalendarYmdHms.second(), qDateTime.time().second()); + + QCOMPARE(mCalendarQdHms.year(), qDateTime.date().year()); + QCOMPARE(mCalendarQdHms.month(), qDateTime.date().month()); + QCOMPARE(mCalendarQdHms.dayOfMonth(), qDateTime.date().day()); + QCOMPARE(mCalendarQdHms.hour(), qDateTime.time().hour()); + QCOMPARE(mCalendarQdHms.minute(), qDateTime.time().minute()); + QCOMPARE(mCalendarQdHms.second(), qDateTime.time().second()); + + QCOMPARE(mCalendarQdt.year(), qDateTime.date().year()); + QCOMPARE(mCalendarQdt.month(), qDateTime.date().month()); + QCOMPARE(mCalendarQdt.dayOfMonth(), qDateTime.date().day()); + QCOMPARE(mCalendarQdt.hour(), + qDateTime.time().hour() + + qDateTimeOffsetToLocalInHours); + QCOMPARE(mCalendarQdt.minute(), qDateTime.time().minute()); + QCOMPARE(mCalendarQdt.second(), qDateTime.time().second()); +} + void Ut_MCalendar::testMCalendarAdditions() { MLocale fi_FI("fi_FI"); @@ -852,24 +968,24 @@ void Ut_MCalendar::testMCalendarAdditions() cal.setTime(19, 23, 0); cal.addMonths(1); - QVERIFY2(cal.year() == 2008, "year is incorrect"); - QVERIFY2(cal.month() == 2, "month is incorrect"); - QVERIFY2(cal.dayOfMonth() == 29, "day of month is incorrect"); - QVERIFY2(cal.dayOfYear() == 60, "day of year is incorrect"); - QVERIFY2(cal.firstDayOfMonth() == 1, "first day of month is incorrect"); - QVERIFY2(cal.lastDayOfMonth() == 29, "last day of month is incorrect"); - QVERIFY2(cal.firstDayOfWeek() == 1, "first day of week is incorrect"); - QVERIFY2(cal.weekNumber() == 9, "week number is incorrect"); - QVERIFY2(cal.maximumWeeksInMonth() == 6, "maximum weeks in month is incorrect"); - QVERIFY2(cal.daysInWeek() == 7, "days is week is incorrect"); + QCOMPARE(cal.year(), 2008); + QCOMPARE(cal.month(), 2); + QCOMPARE(cal.dayOfMonth(), 29); + QCOMPARE(cal.dayOfYear(), 60); + QCOMPARE(cal.firstDayOfMonth(), 1); + QCOMPARE(cal.lastDayOfMonth(), 29); + QCOMPARE(cal.firstDayOfWeek(), 1); + QCOMPARE(cal.weekNumber(), 9); + QCOMPARE(cal.maximumWeeksInMonth(), 6); + QCOMPARE(cal.daysInWeek(), 7); // add some hours so calendar changes to 1.3.2008 cal.addHours(5); - QVERIFY2(cal.hour() == 0, "hour failed"); - QVERIFY2(cal.minute() == 23, "minute failed"); - QVERIFY2(cal.second() == 0, "second failed"); - QVERIFY2(cal.month() == 3, "month failed"); - QVERIFY2(cal.dayOfMonth() == 1, "day of month failed"); + QCOMPARE(cal.hour(), 0); + QCOMPARE(cal.minute(), 23); + QCOMPARE(cal.second(), 0); + QCOMPARE(cal.month(), 3); + QCOMPARE(cal.dayOfMonth(), 1); } void Ut_MCalendar::testWeekNumbers() diff --git a/tests/ut_mcalendar/ut_mcalendar.h b/tests/ut_mcalendar/ut_mcalendar.h index f33b5330..a30fe2f7 100644 --- a/tests/ut_mcalendar/ut_mcalendar.h +++ b/tests/ut_mcalendar/ut_mcalendar.h @@ -45,6 +45,11 @@ private slots: void init(); void cleanup(); + void testTimeZones(); + + void testTimeZonesInCountry_data(); + void testTimeZonesInCountry(); + void testConversionFromAndToQDateTime_data(); void testConversionFromAndToQDateTime(); @@ -63,6 +68,9 @@ private slots: void testMLocaleCalendarConversionsFromMCalendar_data(); void testMLocaleCalendarConversionsFromMCalendar(); + void testVariousSetDateTimeMethods_data(); + void testVariousSetDateTimeMethods(); + void testMCalendarAdditions(); void testWeekNumbers(); void testComparisons(); |