summaryrefslogtreecommitdiffstats
path: root/tests/auto/xml
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2012-07-30 09:26:03 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-31 11:13:15 +0200
commit1ee272568b02f2165c8c06e6083e9983e72d9a11 (patch)
treeec136f106c5c68f5044070c1365fcd8f30312c98 /tests/auto/xml
parent6c8f8ff1b0df6e70ce395894980e4257a0ff4224 (diff)
Fixes to the qdom autotest
Don't rely on a black list of codecs for the serialization test. This breaks badly when new codecs get added to Qt (e.g. through ICU). Instead use a white list of known codecs that can encode/decode the test data. Change-Id: I1dc55a25e852198bb935f070a4a21e8369f56268 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/xml')
-rw-r--r--tests/auto/xml/dom/qdom/testdata/excludedCodecs.txt135
-rw-r--r--tests/auto/xml/dom/qdom/testdata/testCodecs.txt6
-rw-r--r--tests/auto/xml/dom/qdom/tst_qdom.cpp20
3 files changed, 14 insertions, 147 deletions
diff --git a/tests/auto/xml/dom/qdom/testdata/excludedCodecs.txt b/tests/auto/xml/dom/qdom/testdata/excludedCodecs.txt
deleted file mode 100644
index 1f0d871563..0000000000
--- a/tests/auto/xml/dom/qdom/testdata/excludedCodecs.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-apple roman
-arabic
-asmo-708
-big5
-big5-0
-big5-eten
-big5-hkscs
-big5hkscs-0
-cp1250
-cp1251
-cp1252
-cp1253
-cp1254
-cp1255
-cp1256
-cp1257
-cp1258
-cp819
-cp850
-cp866
-cp874
-cp936
-cp949
-cp950
-cshproman8
-csibm866
-csisolatin1
-csisolatin2
-csisolatin3
-csisolatin4
-csisolatin5
-csisolatin6
-csisolatinarabic
-csisolatincyrillic
-csisolatingreek
-csisolatinhebrew
-cskoi8r
-cspc850multilingual
-cyrillic
-ecma-114
-ecma-118
-euc-jp
-euc-kr
-gb18030-0
-gb2312
-gb2312.1980-0
-gbk
-gbk-0
-greek
-hebrew
-hp-roman8
-ibm819
-ibm850
-ibm866
-ibm874
-iscii-bng
-iscii-dev
-iscii-gjr
-iscii-knd
-iscii-mlm
-iscii-ori
-iscii-pnj
-iscii-tlg
-iscii-tml
-iso-2022-jp
-iso-8859-1
-iso-8859-10
-iso-8859-10:1992
-iso 8859-11
-iso-8859-13
-iso-8859-14
-iso-8859-15
-iso-8859-16
-iso-8859-2
-iso-8859-3
-iso-8859-4
-iso-8859-5
-iso-8859-6
-iso-8859-6-i
-iso-8859-7
-iso-8859-8
-iso 8859-8-i
-iso-8859-9
-iso-celtic
-iso-ir-100
-iso-ir-101
-iso-ir-109
-iso-ir-110
-iso-ir-126
-iso-ir-127
-iso-ir-138
-iso-ir-144
-iso-ir-148
-iso-ir-157
-iso-ir-199
-iso-ir-226
-jis7
-jisx0201*-0
-jisx0208*-0
-koi8-r
-koi8-ru
-koi8-u
-ksc5601.1987-0
-latin1
-latin10
-latin2
-latin3
-latin4
-latin5
-latin6
-latin8
-latin9
-macintosh
-macroman
-ms936
-ms_kanji
-mulelao-1
-roman8
-shift_jis
-sjis
-system
-tis-620
-tscii
-windows-1250
-windows-1251
-windows-1252
-windows-1253
-windows-1254
-windows-1255
-windows-1256
-windows-1257
-windows-1258
-windows-936
-winsami2
-ws2
diff --git a/tests/auto/xml/dom/qdom/testdata/testCodecs.txt b/tests/auto/xml/dom/qdom/testdata/testCodecs.txt
new file mode 100644
index 0000000000..1e5923bd33
--- /dev/null
+++ b/tests/auto/xml/dom/qdom/testdata/testCodecs.txt
@@ -0,0 +1,6 @@
+utf-8
+utf-16
+utf-16be
+utf-16le
+utf-32
+gb18030
diff --git a/tests/auto/xml/dom/qdom/tst_qdom.cpp b/tests/auto/xml/dom/qdom/tst_qdom.cpp
index bfd6ff0810..48b79f5a11 100644
--- a/tests/auto/xml/dom/qdom/tst_qdom.cpp
+++ b/tests/auto/xml/dom/qdom/tst_qdom.cpp
@@ -140,7 +140,7 @@ private:
static bool isDeepEqual(const QDomNode &n1, const QDomNode &n2);
static bool isFakeXMLDeclaration(const QDomNode &node);
- QList<QByteArray> m_excludedCodecs;
+ QList<QByteArray> m_testCodecs;
};
Q_DECLARE_METATYPE(QList<QVariant>)
@@ -473,15 +473,17 @@ void tst_QDom::save()
void tst_QDom::initTestCase()
{
- QString testFile = QFINDTESTDATA("testdata/excludedCodecs.txt");
+ QString testFile = QFINDTESTDATA("testdata/testCodecs.txt");
if (testFile.isEmpty())
- QFAIL("Cannot find testdata/excludedCodecs.txt");
+ QFAIL("Cannot find testdata/testCodecs.txt");
QFile file(testFile);
QVERIFY(file.open(QIODevice::ReadOnly|QIODevice::Text));
QByteArray codecName;
- m_excludedCodecs = file.readAll().split('\n');
+ m_testCodecs = file.readAll().split('\n');
+ if (m_testCodecs.last().isEmpty())
+ m_testCodecs.removeLast();
}
@@ -497,14 +499,9 @@ void tst_QDom::saveWithSerialization() const
// Read the document
QVERIFY(doc.setContent(&f));
- const QList<QByteArray> codecs(QTextCodec::availableCodecs());
QByteArray codecName;
- foreach(codecName, codecs) {
-
- /* Avoid codecs that can't handle the files we have. */
- if(m_excludedCodecs.contains(codecName.toLower()))
- continue;
+ foreach (codecName, m_testCodecs) {
/* Write out doc in the specified codec. */
QByteArray storage;
@@ -513,8 +510,7 @@ void tst_QDom::saveWithSerialization() const
QTextStream s(&writeDevice);
QTextCodec *codec = QTextCodec::codecForName(codecName);
- QVERIFY2(codec, qPrintable(QString::fromLatin1("Failed to load codec %1, even though it was in QTextCodec::availableCodecs()")
- .arg(QString::fromLatin1(codecName.constData()))));
+ QVERIFY2(codec, qPrintable(QString::fromLatin1("Failed to load codec %1").arg(QString::fromLatin1(codecName.constData()))));
s.setCodec(codec);
doc.save(s, 0, QDomNode::EncodingFromTextStream);