summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qbytearray
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2011-09-02 20:09:35 +0200
committerQt by Nokia <qt-info@nokia.com>2012-03-30 01:19:59 +0200
commit8fa2a41bd5fb0e21c3cbda3d76eba77a922bded2 (patch)
treee2cd76d4c4e66936321dda6a198272ac4cf6fb43 /tests/auto/corelib/tools/qbytearray
parentd78fe5f8d361c203e43908ddc0bd64f667c83204 (diff)
Move the QByteArray-based percent-encoding activities to QByteArray
Copy the unit tests that related to percent-encoding to tst_qbytearray.cpp and use public functions to execute QUrl::fromPercentEncoded and QUrl::toPercentEncoded. Change-Id: I6639ea566d82dabeb91280177a854e89e18f6f8d Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: David Faure <faure@kde.org>
Diffstat (limited to 'tests/auto/corelib/tools/qbytearray')
-rw-r--r--tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
index 63900b0c55..2c8aa4d62a 100644
--- a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
+++ b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp
@@ -123,6 +123,12 @@ private slots:
void toFromHex_data();
void toFromHex();
void toFromPercentEncoding();
+ void fromPercentEncoding_data();
+ void fromPercentEncoding();
+ void toPercentEncoding_data();
+ void toPercentEncoding();
+ void toPercentEncoding2_data();
+ void toPercentEncoding2();
void compare_data();
void compare();
@@ -1340,6 +1346,91 @@ void tst_QByteArray::toFromPercentEncoding()
QVERIFY(QByteArray::fromPercentEncoding(QByteArray()).isNull());
}
+void tst_QByteArray::fromPercentEncoding_data()
+{
+ QTest::addColumn<QByteArray>("encodedString");
+ QTest::addColumn<QByteArray>("decodedString");
+
+ QTest::newRow("NormalString") << QByteArray("filename") << QByteArray("filename");
+ QTest::newRow("NormalStringEncoded") << QByteArray("file%20name") << QByteArray("file name");
+ QTest::newRow("JustEncoded") << QByteArray("%20") << QByteArray(" ");
+ QTest::newRow("HTTPUrl") << QByteArray("http://qt.nokia.com") << QByteArray("http://qt.nokia.com");
+ QTest::newRow("HTTPUrlEncoded") << QByteArray("http://qt%20nokia%20com") << QByteArray("http://qt nokia com");
+ QTest::newRow("EmptyString") << QByteArray("") << QByteArray("");
+ QTest::newRow("Task27166") << QByteArray("Fran%C3%A7aise") << QByteArray("Française");
+}
+
+void tst_QByteArray::fromPercentEncoding()
+{
+ QFETCH(QByteArray, encodedString);
+ QFETCH(QByteArray, decodedString);
+
+ QCOMPARE(QByteArray::fromPercentEncoding(encodedString), decodedString);
+}
+
+void tst_QByteArray::toPercentEncoding_data()
+{
+ QTest::addColumn<QByteArray>("decodedString");
+ QTest::addColumn<QByteArray>("encodedString");
+
+ QTest::newRow("NormalString") << QByteArray("filename") << QByteArray("filename");
+ QTest::newRow("NormalStringEncoded") << QByteArray("file name") << QByteArray("file%20name");
+ QTest::newRow("JustEncoded") << QByteArray(" ") << QByteArray("%20");
+ QTest::newRow("HTTPUrl") << QByteArray("http://qt.nokia.com") << QByteArray("http%3A//qt.nokia.com");
+ QTest::newRow("HTTPUrlEncoded") << QByteArray("http://qt nokia com") << QByteArray("http%3A//qt%20nokia%20com");
+ QTest::newRow("EmptyString") << QByteArray("") << QByteArray("");
+ QTest::newRow("Task27166") << QByteArray("Française") << QByteArray("Fran%C3%A7aise");
+}
+
+void tst_QByteArray::toPercentEncoding()
+{
+ QFETCH(QByteArray, decodedString);
+ QFETCH(QByteArray, encodedString);
+
+ QCOMPARE(decodedString.toPercentEncoding("/.").constData(), encodedString.constData());
+}
+
+void tst_QByteArray::toPercentEncoding2_data()
+{
+ QTest::addColumn<QByteArray>("original");
+ QTest::addColumn<QByteArray>("encoded");
+ QTest::addColumn<QByteArray>("excludeInEncoding");
+ QTest::addColumn<QByteArray>("includeInEncoding");
+
+ QTest::newRow("test_01") << QByteArray("abcdevghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678-._~")
+ << QByteArray("abcdevghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678-._~")
+ << QByteArray("")
+ << QByteArray("");
+ QTest::newRow("test_02") << QByteArray("{\t\n\r^\"abc}")
+ << QByteArray("%7B%09%0A%0D%5E%22abc%7D")
+ << QByteArray("")
+ << QByteArray("");
+ QTest::newRow("test_03") << QByteArray("://?#[]@!$&'()*+,;=")
+ << QByteArray("%3A%2F%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D")
+ << QByteArray("")
+ << QByteArray("");
+ QTest::newRow("test_04") << QByteArray("://?#[]@!$&'()*+,;=")
+ << QByteArray("%3A%2F%2F%3F%23%5B%5D%40!$&'()*+,;=")
+ << QByteArray("!$&'()*+,;=")
+ << QByteArray("");
+ QTest::newRow("test_05") << QByteArray("abcd")
+ << QByteArray("a%62%63d")
+ << QByteArray("")
+ << QByteArray("bc");
+}
+
+void tst_QByteArray::toPercentEncoding2()
+{
+ QFETCH(QByteArray, original);
+ QFETCH(QByteArray, encoded);
+ QFETCH(QByteArray, excludeInEncoding);
+ QFETCH(QByteArray, includeInEncoding);
+
+ QByteArray encodedData = original.toPercentEncoding(excludeInEncoding, includeInEncoding);
+ QCOMPARE(encodedData.constData(), encoded.constData());
+ QCOMPARE(original, QByteArray::fromPercentEncoding(encodedData));
+}
+
void tst_QByteArray::compare_data()
{
QTest::addColumn<QByteArray>("str1");