summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/text/qstring/tst_qstring.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/text/qstring/tst_qstring.cpp')
-rw-r--r--tests/auto/corelib/text/qstring/tst_qstring.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qstring/tst_qstring.cpp b/tests/auto/corelib/text/qstring/tst_qstring.cpp
index 3714e854f7..bc2b19125a 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();
};
@@ -5822,6 +5824,8 @@ void tst_QString::split(const QString &string, const QString &sep, QStringList r
QVERIFY(list == result);
}
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
list = str.split(sep, QString::KeepEmptyParts);
QVERIFY(list == result);
list = str.split(rx, QString::KeepEmptyParts);
@@ -5844,6 +5848,7 @@ void tst_QString::split(const QString &string, const QString &sep, QStringList r
list = str.split(sep.at(0), QString::SkipEmptyParts);
QVERIFY(list == result);
}
+QT_WARNING_POP
}
void tst_QString::split()
@@ -7070,6 +7075,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"