summaryrefslogtreecommitdiffstats
path: root/tests/auto/qxmlstream
diff options
context:
space:
mode:
authorPeter Hartmann <peter.hartmann@trolltech.com>2009-06-09 15:59:43 +0200
committerPeter Hartmann <peter.hartmann@trolltech.com>2009-06-24 14:25:43 +0200
commitec89755f9c0a79d09ac31d6a7f112285a2dd5888 (patch)
tree5804303dbc8e1196a8562483d1f7151b9c3ecf82 /tests/auto/qxmlstream
parent127e68d3dc4ff83293d7e364af870e019fe7cd17 (diff)
QXmlStreamWriter: indent comments correctly
before, there was no newline between a comment and a start element. Now, there is and the comment is correctly indented. Task: 256468 Reviewed-by: Frans Englich
Diffstat (limited to 'tests/auto/qxmlstream')
-rw-r--r--tests/auto/qxmlstream/tst_qxmlstream.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/auto/qxmlstream/tst_qxmlstream.cpp b/tests/auto/qxmlstream/tst_qxmlstream.cpp
index 32fdb91d17..153391324b 100644
--- a/tests/auto/qxmlstream/tst_qxmlstream.cpp
+++ b/tests/auto/qxmlstream/tst_qxmlstream.cpp
@@ -561,6 +561,8 @@ private slots:
void garbageInXMLPrologDefaultCodec() const;
void garbageInXMLPrologUTF8Explicitly() const;
void clear() const;
+ void checkCommentIndentation() const;
+ void checkCommentIndentation_data() const;
private:
static QByteArray readFile(const QString &filename);
@@ -1392,5 +1394,55 @@ void tst_QXmlStream::clear() const // task 228768
QCOMPARE(reader.tokenType(), QXmlStreamReader::EndDocument);
}
+void tst_QXmlStream::checkCommentIndentation_data() const
+{
+
+ QTest::addColumn<QString>("input");
+ QTest::addColumn<QString>("expectedOutput");
+
+ QString simpleInput = "<a><!-- bla --></a>";
+ QString simpleOutput = "<?xml version=\"1.0\"?>\n"
+ "<a>\n"
+ " <!-- bla -->\n"
+ "</a>\n";
+ QTest::newRow("simple-comment") << simpleInput << simpleOutput;
+
+ QString advancedInput = "<a><!-- bla --><!-- bla --><b><!-- bla --><c><!-- bla --></c><!-- bla --></b></a>";
+ QString advancedOutput = "<?xml version=\"1.0\"?>\n"
+ "<a>\n"
+ " <!-- bla -->\n"
+ " <!-- bla -->\n"
+ " <b>\n"
+ " <!-- bla -->\n"
+ " <c>\n"
+ " <!-- bla -->\n"
+ " </c>\n"
+ " <!-- bla -->\n"
+ " </b>\n"
+ "</a>\n";
+ QTest::newRow("advanced-comment") << advancedInput << advancedOutput;
+}
+
+void tst_QXmlStream::checkCommentIndentation() const // task 256468
+{
+ QFETCH(QString, input);
+ QFETCH(QString, expectedOutput);
+ QString output;
+ QXmlStreamReader reader(input);
+ QXmlStreamWriter writer(&output);
+ writer.setAutoFormatting(true);
+ writer.setAutoFormattingIndent(3);
+
+ while (!reader.atEnd()) {
+ reader.readNext();
+ if (reader.error()) {
+ QFAIL("error reading XML input");
+ } else {
+ writer.writeCurrentToken(reader);
+ }
+ }
+ QCOMPARE(output, expectedOutput);
+}
+
#include "tst_qxmlstream.moc"
// vim: et:ts=4:sw=4:sts=4