diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-11-27 08:40:55 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-11-27 08:41:33 +0100 |
commit | d3814e51bb1c19aa868566aea5d4edd19d2e3944 (patch) | |
tree | 1d7606bd0cb1167cecc733141998a2d0cca918d7 /tests/auto/xml/dom/qdom/tst_qdom.cpp | |
parent | 719ad1db552319529bb5978fabbae1af9a06c240 (diff) | |
parent | 2260d680c935eae0e989beb2040a01040f66a5fa (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: I5bdfe94f7eec1ba328c4a4b54d12dbc0da7fc3ac
Diffstat (limited to 'tests/auto/xml/dom/qdom/tst_qdom.cpp')
-rw-r--r-- | tests/auto/xml/dom/qdom/tst_qdom.cpp | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/tests/auto/xml/dom/qdom/tst_qdom.cpp b/tests/auto/xml/dom/qdom/tst_qdom.cpp index 86504ad51e..afab31b382 100644 --- a/tests/auto/xml/dom/qdom/tst_qdom.cpp +++ b/tests/auto/xml/dom/qdom/tst_qdom.cpp @@ -173,6 +173,8 @@ void tst_QDom::setContent_data() " </b3>\n" "</a1>\n"); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + // These configurations cannot be supported by the QXmlStreamReader-based implementation QTest::newRow( "02" ) << doc01 << QString("http://trolltech.com/xml/features/report-whitespace-only-CharData").split(' ') << QStringList() @@ -227,6 +229,7 @@ void tst_QDom::setContent_data() " <c1/>\n" " </b3>\n" "</a1>\n"); +#endif QTest::newRow("05") << QString("<message>\n" " <body><b>foo</b>>]]></body>\n" @@ -242,6 +245,8 @@ void tst_QDom::setContent() { QFETCH( QString, doc ); + QDomDocument domDoc; +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QXmlInputSource source; source.setData( doc ); @@ -258,8 +263,11 @@ void tst_QDom::setContent() reader.setFeature( *it, false ); } - QDomDocument domDoc; QVERIFY( domDoc.setContent( &source, &reader ) ); +#else + QXmlStreamReader reader(doc); + QVERIFY(domDoc.setContent(&reader, true)); +#endif QString eRes; QTextStream ts( &eRes, QIODevice::WriteOnly ); @@ -1475,8 +1483,9 @@ void tst_QDom::normalizeAttributes() const QDomDocument doc; QVERIFY(doc.setContent(&buffer, true)); - // ### Qt 5: fix this, if we keep QDom at all +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QEXPECT_FAIL("", "The parser doesn't perform Attribute Value Normalization. Fixing that would change behavior.", Continue); +#endif QCOMPARE(doc.documentElement().attribute(QLatin1String("attribute")), QString::fromLatin1("a a")); } @@ -1517,9 +1526,10 @@ void tst_QDom::serializeNamespaces() const "<b:element b:name=''/>" "</doc>"; + QDomDocument doc; QByteArray ba(input); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QBuffer buffer(&ba); - QVERIFY(buffer.open(QIODevice::ReadOnly)); QXmlInputSource source(&buffer); @@ -1527,8 +1537,11 @@ void tst_QDom::serializeNamespaces() const reader.setFeature("http://xml.org/sax/features/namespaces", true); reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false); - QDomDocument doc; QVERIFY(doc.setContent(&source, &reader)); +#else + QXmlStreamReader streamReader(input); + QVERIFY(doc.setContent(&streamReader, true)); +#endif const QByteArray serialized(doc.toByteArray()); @@ -1552,7 +1565,9 @@ void tst_QDom::flagInvalidNamespaces() const QDomDocument doc; QVERIFY(!doc.setContent(QString::fromLatin1(input, true))); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QEXPECT_FAIL("", "The parser doesn't flag identical qualified attribute names. Fixing this would change behavior.", Continue); +#endif QVERIFY(!doc.setContent(QString::fromLatin1(input))); } @@ -1563,7 +1578,9 @@ void tst_QDom::flagUndeclaredNamespace() const "<b:element b:name=''/>" "</a:doc>"; + QDomDocument doc; QByteArray ba(input); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QBuffer buffer(&ba); QVERIFY(buffer.open(QIODevice::ReadOnly)); @@ -1573,9 +1590,12 @@ void tst_QDom::flagUndeclaredNamespace() const reader.setFeature("http://xml.org/sax/features/namespaces", true); reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false); - QDomDocument doc; QEXPECT_FAIL("", "The parser doesn't flag not declared prefixes. Fixing this would change behavior.", Continue); QVERIFY(!doc.setContent(&source, &reader)); +#else + QXmlStreamReader streamReader(ba); + QVERIFY(!doc.setContent(&streamReader, true)); +#endif } void tst_QDom::indentComments() const @@ -1642,7 +1662,9 @@ void tst_QDom::reportDuplicateAttributes() const QDomDocument dd; bool isSuccess = dd.setContent(QLatin1String("<test x=\"1\" x=\"2\"/>")); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QEXPECT_FAIL("", "The parser doesn't flag duplicate attributes. Fixing this would change behavior.", Continue); +#endif QVERIFY2(!isSuccess, "Duplicate attributes are well-formedness errors, and should be reported as such."); } @@ -1842,10 +1864,15 @@ void tst_QDom::doubleNamespaceDeclarations() const QFile file(testFile); QVERIFY(file.open(QIODevice::ReadOnly)); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QXmlSimpleReader reader; QXmlInputSource source(&file); QVERIFY(doc.setContent(&source, &reader)); +#else + QXmlStreamReader streamReader(&file); + QVERIFY(doc.setContent(&streamReader, true)); +#endif // tst_QDom relies on a specific QHash ordering, see QTBUG-25071 QString docAsString = doc.toString(0); @@ -1862,11 +1889,15 @@ void tst_QDom::setContentQXmlReaderOverload() const { QDomDocument doc; +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QXmlSimpleReader reader; QXmlInputSource data; data.setData(QByteArray("<e/>")); - doc.setContent(&data, true); +#else + QXmlStreamReader streamReader(QByteArray("<e/>")); + doc.setContent(&streamReader, true); +#endif QCOMPARE(doc.documentElement().nodeName(), QString::fromLatin1("e")); } @@ -1961,6 +1992,10 @@ void tst_QDom::setContentWhitespace_data() const void tst_QDom::taskQTBUG4595_dontAssertWhenDocumentSpecifiesUnknownEncoding() const { + // QXmlStreamReader fails to read XML documents with unknown encoding. It + // needs to be modified if we want to support this case with the QXmlStreamReader-based + // implementation. +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QString xmlWithUnknownEncoding("<?xml version='1.0' encoding='unknown-encoding'?>" "<foo>" " <bar>How will this sentence be handled?</bar>" @@ -1970,6 +2005,7 @@ void tst_QDom::taskQTBUG4595_dontAssertWhenDocumentSpecifiesUnknownEncoding() co QString dontAssert = d.toString(); // this should not assert QVERIFY(true); +#endif } void tst_QDom::cloneDTD_QTBUG8398() const |