summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/xml
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-13 09:01:02 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-13 12:46:46 +0200
commit511790fd1af1e2886a0e2e8dd4308099705cd815 (patch)
treeb42aee537a6103cd064f9f41ae2889b09b79fd23 /tests/auto/corelib/xml
parent1542d8881fc5ccbc5918cd4acbe4091ebbd24508 (diff)
parentcbe332405aa22257d432f1797b325f5e57007c20 (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: config_help.txt configure mkspecs/features/uikit/sdk.prf src/corelib/global/qhooks.cpp src/corelib/io/qfilesystemwatcher.cpp src/corelib/io/qlockfile_unix.cpp src/corelib/tools/qalgorithms.h src/gui/kernel/qwindowsysteminterface.h src/gui/text/qtextdocument_p.cpp src/network/access/access.pri src/network/access/qnetworkaccessmanager.cpp src/network/access/qnetworkreplynsurlconnectionimpl.mm src/src.pro src/testlib/qtestcase.cpp src/widgets/kernel/qwidgetbackingstore_p.h src/widgets/styles/qwindowscestyle.cpp src/widgets/styles/qwindowsmobilestyle.cpp tests/auto/corelib/io/qdiriterator/qdiriterator.pro tests/auto/corelib/io/qfileinfo/qfileinfo.pro tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp tools/configure/configureapp.cpp Change-Id: Ibf7fb9c8cf263a810ade82f821345d0725c57c67
Diffstat (limited to 'tests/auto/corelib/xml')
-rw-r--r--tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
index 8a153a4599..26d443c2c6 100644
--- a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
+++ b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
@@ -556,6 +556,7 @@ private slots:
void checkCommentIndentation() const;
void checkCommentIndentation_data() const;
void crashInXmlStreamReader() const;
+ void write8bitCodec() const;
void hasError() const;
private:
@@ -1576,5 +1577,43 @@ void tst_QXmlStream::hasError() const
}
+void tst_QXmlStream::write8bitCodec() const
+{
+ QBuffer outBuffer;
+ QVERIFY(outBuffer.open(QIODevice::WriteOnly));
+ QXmlStreamWriter writer(&outBuffer);
+ writer.setAutoFormatting(false);
+
+ QTextCodec *codec = QTextCodec::codecForName("IBM500");
+ if (!codec) {
+ QSKIP("Encoding IBM500 not available.");
+ }
+ writer.setCodec(codec);
+
+ writer.writeStartDocument();
+ writer.writeStartElement("root");
+ writer.writeAttribute("attrib", "1");
+ writer.writeEndElement();
+ writer.writeEndDocument();
+ outBuffer.close();
+
+ // test 8 bit encoding
+ QByteArray values = outBuffer.data();
+ QVERIFY(values.size() > 1);
+ // check '<'
+ QCOMPARE(values[0] & 0x00FF, 0x4c);
+ // check '?'
+ QCOMPARE(values[1] & 0x00FF, 0x6F);
+
+ // convert the start of the XML
+ const QString expected = ("<?xml version=\"1.0\" encoding=\"IBM500\"?>");
+ QTextDecoder *decoder = codec->makeDecoder();
+ QVERIFY(decoder);
+ QString decodedText = decoder->toUnicode(values);
+ delete decoder;
+ QVERIFY(decodedText.startsWith(expected));
+}
+
+
#include "tst_qxmlstream.moc"
// vim: et:ts=4:sw=4:sts=4