From ec9833388f514ac8050cc945e494e448dae545ea Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Wed, 1 Feb 2012 17:37:02 +0100 Subject: Fix operator==(QLatin1String, QLatin1String) and friends for substrings QLatin1String now has a constructor that takes explicit length, which makes it possible to create a QLatin1String that isn't null-terminated. Made the QLatin1String comparison operators work in that case. Change-Id: I234ba851e67a6f5cfbb46fb6f0b22623ce40be28 Reviewed-by: Lars Knoll --- tests/auto/corelib/tools/qstring/tst_qstring.cpp | 83 ++++++++++++++++++++++++ 1 file changed, 83 insertions(+) (limited to 'tests/auto/corelib/tools') diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp index 2a949436a0..f3ff6e08e2 100644 --- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp +++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp @@ -222,6 +222,7 @@ private slots: void toHtmlEscaped(); void operatorGreaterWithQLatin1String(); + void compareQLatin1Strings(); }; typedef QList IntList; @@ -5194,6 +5195,88 @@ void tst_QString::operatorGreaterWithQLatin1String() QVERIFY(!(stringfoo < latin1foo)); } +void tst_QString::compareQLatin1Strings() +{ + QLatin1String abc("abc"); + QLatin1String abcd("abcd"); + QLatin1String cba("cba"); + QLatin1String de("de"); + + QVERIFY(abc == abc); + QVERIFY(!(abc == cba)); + QVERIFY(!(cba == abc)); + QVERIFY(!(abc == abcd)); + QVERIFY(!(abcd == abc)); + + QVERIFY(abc != cba); + QVERIFY(!(abc != abc)); + QVERIFY(cba != abc); + QVERIFY(abc != abcd); + QVERIFY(abcd != abc); + + QVERIFY(abc < abcd); + QVERIFY(abc < cba); + QVERIFY(abc < de); + QVERIFY(abcd < cba); + QVERIFY(!(abc < abc)); + QVERIFY(!(abcd < abc)); + QVERIFY(!(de < cba)); + + QVERIFY(abcd > abc); + QVERIFY(cba > abc); + QVERIFY(de > abc); + QVERIFY(!(abc > abc)); + QVERIFY(!(abc > abcd)); + QVERIFY(!(abcd > cba)); + + QVERIFY(abc <= abc); + QVERIFY(abc <= abcd); + QVERIFY(abc <= cba); + QVERIFY(abc <= de); + QVERIFY(!(abcd <= abc)); + QVERIFY(!(cba <= abc)); + QVERIFY(!(cba <= abcd)); + QVERIFY(!(de <= abc)); + + QVERIFY(abc >= abc); + QVERIFY(abcd >= abc); + QVERIFY(!(abc >= abcd)); + QVERIFY(cba >= abc); + QVERIFY(!(abc >= cba)); + QVERIFY(de >= abc); + QVERIFY(!(abc >= de)); + + QLatin1String subfoo("fooZZ", 3); + QLatin1String foo("foo"); + QVERIFY(subfoo == foo); + QVERIFY(foo == subfoo); + QVERIFY(!(subfoo != foo)); + QVERIFY(!(foo != subfoo)); + QVERIFY(!(foo < subfoo)); + QVERIFY(!(subfoo < foo)); + QVERIFY(foo >= subfoo); + QVERIFY(subfoo >= foo); + QVERIFY(!(foo > subfoo)); + QVERIFY(!(subfoo > foo)); + QVERIFY(foo <= subfoo); + QVERIFY(subfoo <= foo); + + QLatin1String subabc("abcZZ", 3); + QLatin1String subab("abcZZ", 2); + QVERIFY(subabc != subab); + QVERIFY(subab != subabc); + QVERIFY(!(subabc == subab)); + QVERIFY(!(subab == subabc)); + QVERIFY(subab < subabc); + QVERIFY(!(subabc < subab)); + QVERIFY(subabc > subab); + QVERIFY(!(subab > subabc)); + QVERIFY(subab <= subabc); + QVERIFY(!(subabc <= subab)); + QVERIFY(subabc >= subab); + QVERIFY(!(subab >= subabc)); +} + QTEST_APPLESS_MAIN(tst_QString) #include "tst_qstring.moc" -- cgit v1.2.3