summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-04-30 10:25:50 +0200
committerLars Knoll <lars.knoll@qt.io>2020-05-14 07:48:49 +0200
commita639bcda1e42f48fa32885ede77f9fd320ce731c (patch)
treed3b0b4dcfff4526df599e94cb59e8c0d9ea07a89 /tests
parent3ce9162ab5b99594d59b654dcdf2009bc500d3d7 (diff)
Add methods to convert between encoding and name to QStringConverter
Add static methods that allow converting between a name for an encoding and the Encoding enum. Change-Id: I12bc503cf757ea31d3ca8d5e1f1216efddcb16d4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp b/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp
index 1419321679..f0e794e910 100644
--- a/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp
+++ b/tests/auto/corelib/text/qstringconverter/tst_qstringconverter.cpp
@@ -59,6 +59,12 @@ private slots:
void utfHeaders_data();
void utfHeaders();
+
+ void encodingForName_data();
+ void encodingForName();
+
+ void nameForEncoding_data();
+ void nameForEncoding();
};
void tst_QStringConverter::constructByName()
@@ -1611,6 +1617,53 @@ void tst_QStringConverter::utfHeaders()
}
}
+void tst_QStringConverter::encodingForName_data()
+{
+ QTest::addColumn<QByteArray>("name");
+ QTest::addColumn<std::optional<QStringConverter::Encoding>>("encoding");
+
+ QTest::newRow("UTF-8") << QByteArray("UTF-8") << std::optional<QStringConverter::Encoding>(QStringConverter::Utf8);
+ QTest::newRow("utf8") << QByteArray("utf8") << std::optional<QStringConverter::Encoding>(QStringConverter::Utf8);
+ QTest::newRow("Utf-8") << QByteArray("Utf-8") << std::optional<QStringConverter::Encoding>(QStringConverter::Utf8);
+ QTest::newRow("UTF-16") << QByteArray("UTF-16") << std::optional<QStringConverter::Encoding>(QStringConverter::Utf16);
+ QTest::newRow("UTF-16le") << QByteArray("UTF-16le") << std::optional<QStringConverter::Encoding>(QStringConverter::Utf16LE);
+ QTest::newRow("ISO-8859-1") << QByteArray("ISO-8859-1") << std::optional<QStringConverter::Encoding>(QStringConverter::Latin1);
+ QTest::newRow("ISO8859-1") << QByteArray("ISO8859-1") << std::optional<QStringConverter::Encoding>(QStringConverter::Latin1);
+ QTest::newRow("iso8859-1") << QByteArray("iso8859-1") << std::optional<QStringConverter::Encoding>(QStringConverter::Latin1);
+ QTest::newRow("latin1") << QByteArray("latin1") << std::optional<QStringConverter::Encoding>(QStringConverter::Latin1);
+ QTest::newRow("latin2") << QByteArray("latin2") << std::optional<QStringConverter::Encoding>();
+ QTest::newRow("latin15") << QByteArray("latin15") << std::optional<QStringConverter::Encoding>();
+}
+
+void tst_QStringConverter::encodingForName()
+{
+ QFETCH(QByteArray, name);
+ QFETCH(std::optional<QStringConverter::Encoding>, encoding);
+
+ auto e = QStringConverter::encodingForName(name);
+ QCOMPARE(e, encoding);
+}
+
+void tst_QStringConverter::nameForEncoding_data()
+{
+ QTest::addColumn<QByteArray>("name");
+ QTest::addColumn<QStringConverter::Encoding>("encoding");
+
+ QTest::newRow("UTF-8") << QByteArray("UTF-8") << QStringConverter::Utf8;
+ QTest::newRow("UTF-16") << QByteArray("UTF-16") << QStringConverter::Utf16;
+ QTest::newRow("UTF-16LE") << QByteArray("UTF-16LE") << QStringConverter::Utf16LE;
+ QTest::newRow("ISO-8859-1") << QByteArray("ISO-8859-1") << QStringConverter::Latin1;
+}
+
+void tst_QStringConverter::nameForEncoding()
+{
+ QFETCH(QByteArray, name);
+ QFETCH(QStringConverter::Encoding, encoding);
+
+ QByteArray n = QStringConverter::nameForEncoding(encoding);
+ QCOMPARE(n, name);
+}
+
class LoadAndConvert: public QRunnable
{
public: