summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-02-01 17:37:02 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-02 11:10:04 +0100
commitec9833388f514ac8050cc945e494e448dae545ea (patch)
tree5b67954fe2a6bf620a42ec745ec795842598347e /tests/auto/corelib/tools
parent307c03497301015c418d4bfe462b14ed9cdf2f1b (diff)
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 <lars.knoll@nokia.com>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qstring/tst_qstring.cpp83
1 files changed, 83 insertions, 0 deletions
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<int> 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"