QString: build count/contains() unittests with no ASCII casting [11/13]
Drive-by change: Test more count/contains() overloads. Change-Id: Ife3afe9aab68e18cc1587c11108a18a413c339c3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 5a2ebc9f40ac018b6dac1c975d5fc0c02f602e94) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
a2e9045875
commit
2508037e26
@ -2005,26 +2005,38 @@ void tst_QString::lastIndexOfInvalidRegex()
|
||||
void tst_QString::count()
|
||||
{
|
||||
static const QRegularExpression ignoreMessagePattern(
|
||||
"^QString\\(View\\)::count\\(\\): called on an invalid QRegularExpression object"
|
||||
u"^QString\\(View\\)::count\\(\\): called on an invalid QRegularExpression object"_s
|
||||
);
|
||||
|
||||
QString a;
|
||||
a="ABCDEFGHIEfGEFG"; // 15 chars
|
||||
QCOMPARE(a.count('A'),1);
|
||||
QCOMPARE(a.count('Z'),0);
|
||||
QCOMPARE(a.count('E'),3);
|
||||
QCOMPARE(a.count('F'),2);
|
||||
QCOMPARE(a.count('F',Qt::CaseInsensitive),3);
|
||||
QCOMPARE(a.count("FG"),2);
|
||||
QCOMPARE(a.count("FG",Qt::CaseInsensitive),3);
|
||||
QString a(u"ABCDEFGHIEfGEFG"_s);
|
||||
QCOMPARE(a.size(), 15);
|
||||
|
||||
QCOMPARE(a.count(QChar(u'A')), 1);
|
||||
QCOMPARE(a.count(QChar(u'Z')), 0);
|
||||
QCOMPARE(a.count(QChar(u'E')), 3);
|
||||
QCOMPARE(a.count(QChar(u'F')), 2);
|
||||
QCOMPARE(a.count(QChar(u'F'), Qt::CaseInsensitive), 3);
|
||||
|
||||
QCOMPARE(a.count(QString(u"FG"_s)), 2);
|
||||
QCOMPARE(a.count(QString(u"FG"_s), Qt::CaseInsensitive), 3);
|
||||
|
||||
QCOMPARE(a.count(QStringView(u"FG")), 2);
|
||||
QCOMPARE(a.count(QStringView(u"FG"), Qt::CaseInsensitive), 3);
|
||||
|
||||
QCOMPARE(a.count(QLatin1StringView("FG")), 2);
|
||||
QCOMPARE(a.count(QLatin1StringView("FG"), Qt::CaseInsensitive), 3);
|
||||
|
||||
QCOMPARE(a.count( QString(), Qt::CaseInsensitive), 16);
|
||||
QCOMPARE(a.count( "", Qt::CaseInsensitive), 16);
|
||||
QCOMPARE(a.count(QString(u""_s), Qt::CaseInsensitive), 16);
|
||||
QCOMPARE(a.count(QStringView(u""), Qt::CaseInsensitive), 16);
|
||||
QCOMPARE(a.count(QLatin1StringView(""), Qt::CaseInsensitive), 16);
|
||||
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QCOMPARE(a.count(QRegularExpression("")), 16);
|
||||
QCOMPARE(a.count(QRegularExpression("[FG][HI]")), 1);
|
||||
QCOMPARE(a.count(QRegularExpression("[G][HE]")), 2);
|
||||
QCOMPARE(a.count(QRegularExpression(u""_s)), 16);
|
||||
QCOMPARE(a.count(QRegularExpression(u"[FG][HI]"_s)), 1);
|
||||
QCOMPARE(a.count(QRegularExpression(u"[G][HE]"_s)), 2);
|
||||
QTest::ignoreMessage(QtWarningMsg, ignoreMessagePattern);
|
||||
QCOMPARE(a.count(QRegularExpression("invalid regex\\")), 0);
|
||||
QCOMPARE(a.count(QRegularExpression(u"invalid regex\\"_s)), 0);
|
||||
#endif
|
||||
|
||||
CREATE_VIEW(QLatin1String("FG"));
|
||||
@ -2036,32 +2048,42 @@ void tst_QString::count()
|
||||
#if QT_DEPRECATED_SINCE(6, 4)
|
||||
QT_IGNORE_DEPRECATIONS(QCOMPARE(nullStr.size(), 0);)
|
||||
#endif
|
||||
QCOMPARE(nullStr.count('A'), 0);
|
||||
QCOMPARE(nullStr.count("AB"), 0);
|
||||
QCOMPARE(nullStr.count(QChar(u'A')), 0);
|
||||
QCOMPARE(nullStr.count(QString(u"AB"_s)), 0);
|
||||
QCOMPARE(nullStr.count(view), 0);
|
||||
QCOMPARE(nullStr.count(QLatin1StringView("AB")), 0);
|
||||
|
||||
QCOMPARE(nullStr.count(QString()), 1);
|
||||
QCOMPARE(nullStr.count(""), 1);
|
||||
QCOMPARE(nullStr.count(QString(u""_s)), 1);
|
||||
QCOMPARE(nullStr.count(QStringView(u"")), 1);
|
||||
QCOMPARE(nullStr.count(QLatin1StringView("")), 1);
|
||||
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QCOMPARE(nullStr.count(QRegularExpression("")), 1);
|
||||
QCOMPARE(nullStr.count(QRegularExpression("[FG][HI]")), 0);
|
||||
QCOMPARE(nullStr.count(QRegularExpression(u""_s)), 1);
|
||||
QCOMPARE(nullStr.count(QRegularExpression(u"[FG][HI]"_s)), 0);
|
||||
QTest::ignoreMessage(QtWarningMsg, ignoreMessagePattern);
|
||||
QCOMPARE(nullStr.count(QRegularExpression("invalid regex\\")), 0);
|
||||
QCOMPARE(nullStr.count(QRegularExpression(u"invalid regex\\"_s)), 0);
|
||||
#endif
|
||||
|
||||
QString emptyStr("");
|
||||
QString emptyStr(u""_s);
|
||||
#if QT_DEPRECATED_SINCE(6, 4)
|
||||
QT_IGNORE_DEPRECATIONS(QCOMPARE(emptyStr.size(), 0);)
|
||||
#endif
|
||||
QCOMPARE(emptyStr.count('A'), 0);
|
||||
QCOMPARE(emptyStr.count("AB"), 0);
|
||||
QCOMPARE(emptyStr.count(u'A'), 0);
|
||||
QCOMPARE(emptyStr.count(QString(u"AB"_s)), 0);
|
||||
QCOMPARE(emptyStr.count(view), 0);
|
||||
QCOMPARE(emptyStr.count(QString()), 1);
|
||||
QCOMPARE(emptyStr.count(""), 1);
|
||||
QCOMPARE(emptyStr.count(QStringView()), 1);
|
||||
QCOMPARE(emptyStr.count(QLatin1StringView()), 1);
|
||||
QCOMPARE(emptyStr.count(QString(u""_s)), 1);
|
||||
QCOMPARE(emptyStr.count(QStringView(u"")), 1);
|
||||
QCOMPARE(emptyStr.count(QLatin1StringView("")), 1);
|
||||
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QCOMPARE(emptyStr.count(QRegularExpression("")), 1);
|
||||
QCOMPARE(emptyStr.count(QRegularExpression("[FG][HI]")), 0);
|
||||
QCOMPARE(emptyStr.count(QRegularExpression(u""_s)), 1);
|
||||
QCOMPARE(emptyStr.count(QRegularExpression(u"[FG][HI]"_s)), 0);
|
||||
QTest::ignoreMessage(QtWarningMsg, ignoreMessagePattern);
|
||||
QCOMPARE(emptyStr.count(QRegularExpression("invalid regex\\")), 0);
|
||||
QCOMPARE(emptyStr.count(QRegularExpression(u"invalid regex\\"_s)), 0);
|
||||
#endif
|
||||
|
||||
QString nonBmpString = u8"\U00010000\U00010000abc\U00010000";
|
||||
@ -2083,61 +2105,72 @@ void tst_QString::count()
|
||||
void tst_QString::contains()
|
||||
{
|
||||
static const QRegularExpression ignoreMessagePattern(
|
||||
"^QString\\(View\\)::contains\\(\\): called on an invalid QRegularExpression object"
|
||||
u"^QString\\(View\\)::contains\\(\\): called on an invalid QRegularExpression object"_s
|
||||
);
|
||||
|
||||
QString a;
|
||||
a="ABCDEFGHIEfGEFG"; // 15 chars
|
||||
QVERIFY(a.contains('A'));
|
||||
QVERIFY(!a.contains('Z'));
|
||||
QVERIFY(a.contains('E'));
|
||||
QVERIFY(a.contains('F'));
|
||||
QVERIFY(a.contains('F',Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains("FG"));
|
||||
QVERIFY(a.contains("FG",Qt::CaseInsensitive));
|
||||
QString a(u"ABCDEFGHIEfGEFG"_s);
|
||||
QCOMPARE(a.size(), 15);
|
||||
|
||||
QVERIFY(a.contains(QChar(u'A')));
|
||||
QVERIFY(!a.contains(QChar(u'Z')));
|
||||
QVERIFY(a.contains(QChar(u'E')));
|
||||
QVERIFY(a.contains(QChar(u'F')));
|
||||
QVERIFY(a.contains(QChar(u'f'), Qt::CaseInsensitive));
|
||||
|
||||
QVERIFY(a.contains(QString(u"FG"_s)));
|
||||
QVERIFY(a.contains(QString(u"FG"_s), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QStringView(u"FG")));
|
||||
QVERIFY(a.contains(QStringView(u"fg"), Qt::CaseInsensitive));
|
||||
|
||||
QVERIFY(a.contains(QLatin1String("FG")));
|
||||
QVERIFY(a.contains(QLatin1String("fg"),Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains( QString(), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains( "", Qt::CaseInsensitive));
|
||||
|
||||
QVERIFY(a.contains(QString(), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QString(u""_s), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QStringView(), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QStringView(u""), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QLatin1StringView(), Qt::CaseInsensitive));
|
||||
QVERIFY(a.contains(QLatin1StringView(""), Qt::CaseInsensitive));
|
||||
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QVERIFY(a.contains(QRegularExpression("[FG][HI]")));
|
||||
QVERIFY(a.contains(QRegularExpression("[G][HE]")));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[FG][HI]"_s)));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[G][HE]"_s)));
|
||||
|
||||
{
|
||||
QRegularExpressionMatch match;
|
||||
QVERIFY(!match.hasMatch());
|
||||
|
||||
QVERIFY(a.contains(QRegularExpression("[FG][HI]"), &match));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[FG][HI]"_s), &match));
|
||||
QVERIFY(match.hasMatch());
|
||||
QCOMPARE(match.capturedStart(), 6);
|
||||
QCOMPARE(match.capturedEnd(), 8);
|
||||
QCOMPARE(match.captured(), QStringLiteral("GH"));
|
||||
|
||||
QVERIFY(a.contains(QRegularExpression("[G][HE]"), &match));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[G][HE]"_s), &match));
|
||||
QVERIFY(match.hasMatch());
|
||||
QCOMPARE(match.capturedStart(), 6);
|
||||
QCOMPARE(match.capturedEnd(), 8);
|
||||
QCOMPARE(match.captured(), QStringLiteral("GH"));
|
||||
|
||||
QVERIFY(a.contains(QRegularExpression("[f](.*)[FG]"), &match));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[f](.*)[FG]"_s), &match));
|
||||
QVERIFY(match.hasMatch());
|
||||
QCOMPARE(match.capturedStart(), 10);
|
||||
QCOMPARE(match.capturedEnd(), 15);
|
||||
QCOMPARE(match.captured(), QString("fGEFG"));
|
||||
QCOMPARE(match.captured(), u"fGEFG");
|
||||
QCOMPARE(match.capturedStart(1), 11);
|
||||
QCOMPARE(match.capturedEnd(1), 14);
|
||||
QCOMPARE(match.captured(1), QStringLiteral("GEF"));
|
||||
|
||||
QVERIFY(a.contains(QRegularExpression("[f](.*)[F]"), &match));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[f](.*)[F]"_s), &match));
|
||||
QVERIFY(match.hasMatch());
|
||||
QCOMPARE(match.capturedStart(), 10);
|
||||
QCOMPARE(match.capturedEnd(), 14);
|
||||
QCOMPARE(match.captured(), QString("fGEF"));
|
||||
QCOMPARE(match.captured(), u"fGEF");
|
||||
QCOMPARE(match.capturedStart(1), 11);
|
||||
QCOMPARE(match.capturedEnd(1), 13);
|
||||
QCOMPARE(match.captured(1), QStringLiteral("GE"));
|
||||
|
||||
QVERIFY(!a.contains(QRegularExpression("ZZZ"), &match));
|
||||
QVERIFY(!a.contains(QRegularExpression(u"ZZZ"_s), &match));
|
||||
// doesn't match, but ensure match didn't change
|
||||
QVERIFY(match.hasMatch());
|
||||
QCOMPARE(match.capturedStart(), 10);
|
||||
@ -2148,12 +2181,12 @@ void tst_QString::contains()
|
||||
QCOMPARE(match.captured(1), QStringLiteral("GE"));
|
||||
|
||||
// don't crash with a null pointer
|
||||
QVERIFY(a.contains(QRegularExpression("[FG][HI]"), 0));
|
||||
QVERIFY(!a.contains(QRegularExpression("ZZZ"), 0));
|
||||
QVERIFY(a.contains(QRegularExpression(u"[FG][HI]"_s), 0));
|
||||
QVERIFY(!a.contains(QRegularExpression(u"ZZZ"_s), 0));
|
||||
}
|
||||
|
||||
QTest::ignoreMessage(QtWarningMsg, ignoreMessagePattern);
|
||||
QVERIFY(!a.contains(QRegularExpression("invalid regex\\")));
|
||||
QVERIFY(!a.contains(QRegularExpression(u"invalid regex\\"_s)));
|
||||
#endif
|
||||
|
||||
CREATE_VIEW(QLatin1String("FG"));
|
||||
@ -2162,30 +2195,32 @@ void tst_QString::contains()
|
||||
QVERIFY(a.contains( QStringView(), Qt::CaseInsensitive));
|
||||
|
||||
QString nullStr;
|
||||
QVERIFY(!nullStr.contains('A'));
|
||||
QVERIFY(!nullStr.contains("AB"));
|
||||
QVERIFY(!nullStr.contains(u'A'));
|
||||
QVERIFY(!nullStr.contains(QString(u"AB"_s)));
|
||||
QVERIFY(!nullStr.contains(QLatin1StringView("AB")));
|
||||
QVERIFY(!nullStr.contains(view));
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QVERIFY(!nullStr.contains(QRegularExpression("[FG][HI]")));
|
||||
QVERIFY(!nullStr.contains(QRegularExpression(u"[FG][HI]"_s)));
|
||||
QRegularExpressionMatch nullMatch;
|
||||
QVERIFY(nullStr.contains(QRegularExpression(""), &nullMatch));
|
||||
QVERIFY(nullStr.contains(QRegularExpression(u""_s), &nullMatch));
|
||||
QVERIFY(nullMatch.hasMatch());
|
||||
QCOMPARE(nullMatch.captured(), "");
|
||||
QCOMPARE(nullMatch.captured(), u"");
|
||||
QCOMPARE(nullMatch.capturedStart(), 0);
|
||||
QCOMPARE(nullMatch.capturedEnd(), 0);
|
||||
#endif
|
||||
QVERIFY(!nullStr.isDetached());
|
||||
|
||||
QString emptyStr("");
|
||||
QVERIFY(!emptyStr.contains('A'));
|
||||
QVERIFY(!emptyStr.contains("AB"));
|
||||
QString emptyStr(u""_s);
|
||||
QVERIFY(!emptyStr.contains(u'A'));
|
||||
QVERIFY(!emptyStr.contains(QString(u"AB"_s)));
|
||||
QVERIFY(!emptyStr.contains(QLatin1StringView("AB")));
|
||||
QVERIFY(!emptyStr.contains(view));
|
||||
#if QT_CONFIG(regularexpression)
|
||||
QVERIFY(!emptyStr.contains(QRegularExpression("[FG][HI]")));
|
||||
QVERIFY(!emptyStr.contains(QRegularExpression(u"[FG][HI]"_s)));
|
||||
QRegularExpressionMatch emptyMatch;
|
||||
QVERIFY(emptyStr.contains(QRegularExpression(""), &emptyMatch));
|
||||
QVERIFY(emptyStr.contains(QRegularExpression(u""_s), &emptyMatch));
|
||||
QVERIFY(emptyMatch.hasMatch());
|
||||
QCOMPARE(emptyMatch.captured(), "");
|
||||
QCOMPARE(emptyMatch.captured(), u"");
|
||||
QCOMPARE(emptyMatch.capturedStart(), 0);
|
||||
QCOMPARE(emptyMatch.capturedEnd(), 0);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user