Add unit test to check emoji handling in date-time parsing
Add some unit tests using emojis as separator characters to check utf handling. Change-Id: I03c4bb5cd349e649c58e8a908c38a0185d80e722 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>bb10
parent
ac0be4d568
commit
b50e81b5b1
|
|
@ -1545,6 +1545,11 @@ void tst_QLocale::formatDate_data()
|
|||
<< QDate(1974, 12, 1) << "hh:mm:ss.zzz ap d'd'dd/M/yy" << "hh:mm:ss.zzz ap 1d01/12/74";
|
||||
|
||||
QTest::newRow("dd MMMM yyyy") << QDate(1, 1, 1) << "dd MMMM yyyy" << "01 January 0001";
|
||||
|
||||
// Test unicode handling.
|
||||
QTest::newRow("unicode in format string") << QDate(1, 1, 1)
|
||||
<< u8"🔴😤🌼😫dd☀😥🤤👉💃MM💛🙂💓🤩yyyy😴"
|
||||
<< u8"🔴😤🌼😫01☀😥🤤👉💃01💛🙂💓🤩0001😴";
|
||||
}
|
||||
|
||||
void tst_QLocale::formatDate()
|
||||
|
|
@ -1601,6 +1606,10 @@ void tst_QLocale::formatTime_data()
|
|||
QTest::newRow("33") << QTime(1, 2, 3, 4) << "H:m:s.zzz" << "1:2:3.004";
|
||||
QTest::newRow("34") << QTime() << "H:m:s.zzz" << "";
|
||||
QTest::newRow("35") << QTime(1, 2, 3, 4) << "dd MM yyyy H:m:s.zzz" << "dd MM yyyy 1:2:3.004";
|
||||
|
||||
// Test unicode handling.
|
||||
QTest::newRow("emoji in format string")
|
||||
<< QTime(17, 22, 05, 18) << u8"m📌ss📢H.zzz" << u8"22📌05📢17.018";
|
||||
}
|
||||
|
||||
void tst_QLocale::formatTime()
|
||||
|
|
@ -1762,6 +1771,11 @@ void tst_QLocale::formatDateTime_data()
|
|||
<< QString("MMM") << QString("Dec");
|
||||
QTest::newRow("empty") << "en_US" << testZeroHour
|
||||
<< QString("") << QString("");
|
||||
|
||||
// Test unicode handling.
|
||||
QTest::newRow("emoji in format string")
|
||||
<< "en_US" << QDateTime(QDate(1980, 2, 1), QTime(17, 12))
|
||||
<< QString(u8"💖yyyy💖MM💖dd hh💖mm") << u8"💖1980💖02💖01 17💖12";
|
||||
}
|
||||
|
||||
void tst_QLocale::formatDateTime()
|
||||
|
|
@ -1905,6 +1919,14 @@ void tst_QLocale::toDateTime_data()
|
|||
QTest::newRow("C:narrow")
|
||||
<< "C" << dt << "d MMM yyyy HH:mm:ss" << "25 Feb 2017 17:21:25" << true;
|
||||
|
||||
// Test the same again with unicode and emoji.
|
||||
QTest::newRow("C:long with emoji") << "C" << dt << u8"dddd, d💪MMMM yyyy HH:mm:ss"
|
||||
<< u8"Saturday, 25💪February 2017 17:21:25" << true;
|
||||
QTest::newRow("C:short with emoji")
|
||||
<< "C" << dt << u8"d MMM yyyy HH📞mm📞ss" << u8"25 Feb 2017 17📞21📞25" << true;
|
||||
QTest::newRow("C:narrow with emoji")
|
||||
<< "C" << dt << u8"🇬🇧d MMM yyyy HH:mm:ss🇬🇧" << u8"🇬🇧25 Feb 2017 17:21:25🇬🇧" << true;
|
||||
|
||||
QTest::newRow("fr:long") << "fr" << dt << "dddd d MMMM yyyy HH:mm:ss"
|
||||
<< "Samedi 25 février 2017 17:21:25" << true;
|
||||
QTest::newRow("fr:short")
|
||||
|
|
|
|||
|
|
@ -1289,6 +1289,12 @@ void tst_QDate::fromStringFormat_data()
|
|||
QTest::newRow("data43") << QString("060521") << QString("yyMMdd") << QDate(1906,5,21);
|
||||
QTest::newRow("lateMarch") << QString("9999-03-06") << QString("yyyy-MM-dd") << QDate(9999, 3, 6);
|
||||
QTest::newRow("late") << QString("9999-12-31") << QString("yyyy-MM-dd") << QDate(9999, 12, 31);
|
||||
|
||||
// Test unicode handling.
|
||||
QTest::newRow("Unicode in format string")
|
||||
<< QString(u8"2020🤣09🤣21") << QString(u8"yyyy🤣MM🤣dd") << QDate(2020, 9, 21);
|
||||
QTest::newRow("Unicode in quoted format string")
|
||||
<< QString(u8"🤣🤣2020👍09🤣21") << QString(u8"'🤣🤣'yyyy👍MM🤣dd") << QDate(2020, 9, 21);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2673,6 +2673,11 @@ void tst_QDateTime::fromStringStringFormat_data()
|
|||
<< QStringLiteral("2018 wilful long working block relief 12-19T21:09 cruel")
|
||||
<< QStringLiteral("yyyy wilful long working block relief MM-ddThh:mm cruel blurb encore flux")
|
||||
<< QDateTime();
|
||||
|
||||
// test unicode
|
||||
QTest::newRow("unicode handling") << QString(u8"2005🤣06🤣28T07🤣57🤣30.001Z")
|
||||
<< QString(u8"yyyy🤣MM🤣ddThh🤣mm🤣ss.zt")
|
||||
<< QDateTime(QDate(2005, 06, 28), QTime(07, 57, 30, 1), Qt::UTC);
|
||||
}
|
||||
|
||||
void tst_QDateTime::fromStringStringFormat()
|
||||
|
|
|
|||
|
|
@ -558,6 +558,12 @@ void tst_QTime::fromStringFormat_data()
|
|||
QTest::newRow("short-msecs-lt100") << QString("10:12:34:045") << QString("hh:m:ss:z") << QTime(10,12,34,45);
|
||||
QTest::newRow("short-msecs-gt100") << QString("10:12:34:45") << QString("hh:m:ss:z") << QTime(10,12,34,450);
|
||||
QTest::newRow("late") << QString("23:59:59.999") << QString("hh:mm:ss.z") << QTime(23, 59, 59, 999);
|
||||
|
||||
// Test unicode handling.
|
||||
QTest::newRow("emoji in format string 1")
|
||||
<< QString("12👍31:25.05") << QString("hh👍mm:ss.z") << QTime(12, 31, 25, 50);
|
||||
QTest::newRow("emoji in format string 2")
|
||||
<< QString("💖12👍31🌈25😺05🚀") << QString("💖hh👍mm🌈ss😺z🚀") << QTime(12, 31, 25, 50);
|
||||
}
|
||||
|
||||
void tst_QTime::fromStringFormat()
|
||||
|
|
|
|||
Loading…
Reference in New Issue