summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/text
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2020-01-04 15:32:34 +0100
committerLiang Qi <liang.qi@qt.io>2020-01-04 15:32:34 +0100
commita503bf54705d89204007e8f887b668fe5ef519fc (patch)
treeb2d1a452da39450eac78a1aeb1df116a73f64b23 /tests/auto/corelib/text
parente65c43fd0ffa57248e7d750570b7deae171a82f5 (diff)
parent1f87fb359fdff14e42662384a9c8a0bcb3837671 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/corelib/tools/qvector.h Make QVector(DataPointer dd) public to be able to properly merge 5b4b437b30b320e2cd7c9a566999a39772e5d431 from 5.15 into dev. src/widgets/kernel/qapplication.cpp tests/auto/tools/moc/allmocs_baseline_in.json Done-With: Christian Ehrlicher <ch.ehrlicher@gmx.de> Change-Id: I929ba7c036d570382d0454c2c75f6f0d96ddbc01
Diffstat (limited to 'tests/auto/corelib/text')
-rw-r--r--tests/auto/corelib/text/qlocale/tst_qlocale.cpp53
-rw-r--r--tests/auto/corelib/text/qstring/tst_qstring.cpp48
2 files changed, 101 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
index 0b2d33dc09..7b2d92f9cb 100644
--- a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
+++ b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
@@ -147,6 +147,8 @@ private slots:
void systemLocale_data();
void systemLocale();
+ void IndianNumberGrouping();
+
// *** ORDER-DEPENDENCY *** (This Is Bad.)
// Test order is determined by order of declaration here: *all* tests that
// QLocale::setDefault() *must* appear *after* all other tests !
@@ -2991,5 +2993,56 @@ void tst_QLocale::systemLocale()
QCOMPARE(QLocale::system(), originalSystemLocale);
}
+void tst_QLocale::IndianNumberGrouping()
+{
+ QLocale indian(QLocale::Hindi, QLocale::India);
+
+ qint8 int8 = 100;
+ QString strResult8("100");
+ QCOMPARE(indian.toString(int8), strResult8);
+ QCOMPARE(indian.toShort(strResult8), short(int8));
+
+ quint8 uint8 = 100;
+ QCOMPARE(indian.toString(uint8), strResult8);
+ QCOMPARE(indian.toShort(strResult8), short(uint8));
+
+ // Boundary case 1000 for short and ushort
+ short shortInt = 1000;
+ QString strResult16("1,000");
+ QCOMPARE(indian.toString(shortInt), strResult16);
+ QCOMPARE(indian.toShort(strResult16), shortInt);
+
+ ushort uShortInt = 1000;
+ QCOMPARE(indian.toString(uShortInt), strResult16);
+ QCOMPARE(indian.toUShort(strResult16), uShortInt);
+
+ shortInt = 10000;
+ strResult16 = "10,000";
+ QCOMPARE(indian.toString(shortInt), strResult16);
+ QCOMPARE(indian.toShort(strResult16), shortInt);
+
+ uShortInt = 10000;
+ QCOMPARE(indian.toString(uShortInt), strResult16);
+ QCOMPARE(indian.toUShort(strResult16), uShortInt);
+
+ int intInt = 1000000000;
+ QString strResult32("1,00,00,00,000");
+ QCOMPARE(indian.toString(intInt), strResult32);
+ QCOMPARE(indian.toInt(strResult32), intInt);
+
+ uint uIntInt = 1000000000;
+ QCOMPARE(indian.toString(uIntInt), strResult32);
+ QCOMPARE(indian.toUInt(strResult32), uIntInt);
+
+ QString strResult64("10,00,00,00,00,00,00,00,000");
+ qint64 int64 = Q_INT64_C(1000000000000000000);
+ QCOMPARE(indian.toString(int64), strResult64);
+ QCOMPARE(indian.toLongLong(strResult64), int64);
+
+ quint64 uint64 = Q_UINT64_C(1000000000000000000);
+ QCOMPARE(indian.toString(uint64), strResult64);
+ QCOMPARE(indian.toULongLong(strResult64), uint64);
+}
+
QTEST_MAIN(tst_QLocale)
#include "tst_qlocale.moc"
diff --git a/tests/auto/corelib/text/qstring/tst_qstring.cpp b/tests/auto/corelib/text/qstring/tst_qstring.cpp
index cd074ce944..84e12cd46b 100644
--- a/tests/auto/corelib/text/qstring/tst_qstring.cpp
+++ b/tests/auto/corelib/text/qstring/tst_qstring.cpp
@@ -596,6 +596,8 @@ private slots:
void assignQChar();
void isRightToLeft_data();
void isRightToLeft();
+ void isValidUtf16_data();
+ void isValidUtf16();
void unicodeStrings();
};
@@ -7002,6 +7004,52 @@ void tst_QString::isRightToLeft()
QCOMPARE(unicode.isRightToLeft(), rtl);
}
+void tst_QString::isValidUtf16_data()
+{
+ QTest::addColumn<QString>("string");
+ QTest::addColumn<bool>("valid");
+
+ int row = 0;
+ QTest::addRow("valid-%02d", row++) << QString() << true;
+ QTest::addRow("valid-%02d", row++) << QString("") << true;
+ QTest::addRow("valid-%02d", row++) << QString("abc def") << true;
+ QTest::addRow("valid-%02d", row++) << QString("àbç") << true;
+ QTest::addRow("valid-%02d", row++) << QString("ßẞ") << true;
+ QTest::addRow("valid-%02d", row++) << QString("𝐀𝐁𝐂abc𝐃𝐄𝐅def") << true;
+ QTest::addRow("valid-%02d", row++) << QString("abc𝐀𝐁𝐂def𝐃𝐄𝐅") << true;
+ QTest::addRow("valid-%02d", row++) << (QString("abc") + QChar(0x0000) + QString("def")) << true;
+ QTest::addRow("valid-%02d", row++) << (QString("abc") + QChar(0xFFFF) + QString("def")) << true;
+ // check that BOM presence doesn't make any difference
+ QTest::addRow("valid-%02d", row++) << (QString() + QChar(0xFEFF) + QString("abc𝐀𝐁𝐂def𝐃𝐄𝐅")) << true;
+ QTest::addRow("valid-%02d", row++) << (QString() + QChar(0xFFFE) + QString("abc𝐀𝐁𝐂def𝐃𝐄𝐅")) << true;
+
+ row = 0;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QChar(0xD800)) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QString("abc") + QChar(0xD800)) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QChar(0xD800) + QString("def")) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QString("abc") + QChar(0xD800) + QString("def")) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QChar(0xD800) + QChar(0xD800)) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QString("abc") + QChar(0xD800) + QChar(0xD800)) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QChar(0xD800) + QChar(0xD800) + QString("def")) << false;
+ QTest::addRow("stray-high-%02d", row++) << (QString() + QString("abc") + QChar(0xD800) + QChar(0xD800) + QString("def")) << false;
+
+ row = 0;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QChar(0xDC00)) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QString("abc") + QChar(0xDC00)) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QChar(0xDC00) + QString("def")) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QString("abc") + QChar(0xDC00) + QString("def")) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QChar(0xDC00) + QChar(0xDC00)) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QString("abc") + QChar(0xDC00) + QChar(0xDC00)) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QChar(0xDC00) + QChar(0xDC00) + QString("def")) << false;
+ QTest::addRow("stray-low-%02d", row++) << (QString() + QString("abc") + QChar(0xDC00) + QChar(0xDC00) + QString("def")) << false;
+}
+
+void tst_QString::isValidUtf16()
+{
+ QFETCH(QString, string);
+ QTEST(string.isValidUtf16(), "valid");
+}
+
QTEST_APPLESS_MAIN(tst_QString)
#include "tst_qstring.moc"