summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@digia.com>2012-11-20 11:11:44 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-20 18:53:49 +0100
commit035d93a6e1cbde76d34866ffd9b39633572e6236 (patch)
tree5f131ef5550f30eabf823b4dd2daf535a0608355 /tests
parent4532a1399e10a677083300648cf18af9addab656 (diff)
Fix regression in QXmlStreamWriter with codec set to UTF-16
Actually, this broke using QXmlStreamWriter with any codec where characters in the ASCII range have a different encoding than the ASCII standard. This was a regression from 558fe9383ba0aecbec09cc411c0ebab132aac137 Task-number: QTBUG-23310 Change-Id: I75bd013e9d5de53da564a76c2f06e95ff35303a8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
index ea2cafdbc3..694a2f2952 100644
--- a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
+++ b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
@@ -558,6 +558,7 @@ private slots:
void hasAttribute() const;
void writeWithCodec() const;
void writeWithUtf8Codec() const;
+ void writeWithUtf16Codec() const;
void writeWithStandalone() const;
void entitiesAndWhitespace_1() const;
void entitiesAndWhitespace_2() const;
@@ -1279,6 +1280,27 @@ void tst_QXmlStream::writeWithUtf8Codec() const
QVERIFY(outarray.startsWith(begin));
}
+void tst_QXmlStream::writeWithUtf16Codec() const
+{
+ QByteArray outarray;
+ QXmlStreamWriter writer(&outarray);
+
+ QTextCodec *codec = QTextCodec::codecForMib(1014); // utf-16LE
+ QVERIFY(codec);
+ writer.setCodec(codec);
+
+ writer.writeStartDocument("1.0");
+ static const char begin[] = "<?xml version=\"1.0\" encoding=\"UTF-16"; // skip potential "LE" suffix
+ const int count = sizeof(begin) - 1; // don't include 0 terminator
+ QByteArray begin_UTF16;
+ begin_UTF16.reserve(2*(count));
+ for (int i = 0; i < count; ++i) {
+ begin_UTF16.append(begin[i]);
+ begin_UTF16.append((char)'\0');
+ }
+ QVERIFY(outarray.startsWith(begin_UTF16));
+}
+
void tst_QXmlStream::writeWithStandalone() const
{
{