21 #ifndef SAFESTRINGTEST_H
22 #define SAFESTRINGTEST_H
24 #include <QtCore/QObject>
25 #include <QtTest/QTest>
27 #include "coverageobject.h"
28 #include "outputstream.h"
29 #include "safestring.h"
43 void TestSafeString::testCombining()
45 auto string1 = QStringLiteral(
"this & that");
46 auto string2 = QStringLiteral(
" over & under");
53 combined = safeString1safe + safeString2safe;
54 QVERIFY(combined.
isSafe());
55 combined = safeString1safe + safeString1unsafe;
56 QVERIFY(!combined.
isSafe());
57 combined = safeString1safe + string1;
58 QVERIFY(!combined.
isSafe());
59 combined = safeString1unsafe + safeString1safe;
60 QVERIFY(!combined.
isSafe());
61 combined = safeString1unsafe + safeString2unsafe;
62 QVERIFY(!combined.
isSafe());
63 combined = safeString1unsafe + string1;
64 QVERIFY(!combined.
isSafe());
67 void TestSafeString::testAppending()
69 auto string1 = QStringLiteral(
"this & that");
75 result = safeString1safe.
get().append(safeString1safe);
76 QVERIFY(safeString1safe.isSafe());
78 QCOMPARE(result.
get(), safeString1safe.get());
79 result = safeString1safe.
get().append(string1);
80 QVERIFY(!safeString1safe.isSafe());
82 QCOMPARE(result.
get(), safeString1safe.get());
83 result = safeString1unsafe.
get().append(string1);
84 QVERIFY(!safeString1unsafe.isSafe());
86 QCOMPARE(result.
get(), safeString1unsafe.get());
89 void TestSafeString::testChopping()
91 auto string1 = QStringLiteral(
"this & that");
95 safeString1safe.get().chop(4);
96 QVERIFY(!safeString1safe.isSafe());
97 QVERIFY(QStringLiteral(
"this & ") == safeString1safe.get());
98 safeString1unsafe.get().chop(4);
99 QVERIFY(!safeString1unsafe.isSafe());
100 QVERIFY(QStringLiteral(
"this & ") == safeString1unsafe.get());
103 void TestSafeString::testReplacing()
105 auto string1 = QStringLiteral(
"x&\ny");
108 auto result = safeString1safe.
get().replace(QLatin1Char(
'\n'),
109 QStringLiteral(
"<br />"));
110 QVERIFY(!result.
isSafe());
111 QVERIFY(!safeString1safe.isSafe());
112 QCOMPARE(result.
get(), safeString1safe.get());
116 #include "testsafestring.moc"
A QString wrapper class for containing whether a string is safe or needs to be escaped.
const NestedString & get() const
@ IsSafe
The string is safe and requires no further escaping.
The Cutelee namespace holds all public Cutelee API.