summaryrefslogtreecommitdiffstats
path: root/tests/auto/xml
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-11-25 01:00:25 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-11-25 11:30:04 +0100
commit58c69df4d38324644bc49ec5f42ee8343a454b2d (patch)
treede0a1ce603292dcaff134d4e1e8ab064295515a2 /tests/auto/xml
parent03b1d2c44940322208c12c7bceee376b51d8e852 (diff)
parent59a705e3710b0ba93bb698e3223241cfac932948 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/corelib/tools/qhash.h src/gui/kernel/qevent.h src/widgets/kernel/qshortcut.cpp src/widgets/kernel/qshortcut.h Change-Id: If61c206ee43ad1d97f5b07f58ac93c4583ce5620
Diffstat (limited to 'tests/auto/xml')
-rw-r--r--tests/auto/xml/dom/qdom/tst_qdom.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/auto/xml/dom/qdom/tst_qdom.cpp b/tests/auto/xml/dom/qdom/tst_qdom.cpp
index 901cadc34a..86504ad51e 100644
--- a/tests/auto/xml/dom/qdom/tst_qdom.cpp
+++ b/tests/auto/xml/dom/qdom/tst_qdom.cpp
@@ -57,6 +57,7 @@ private slots:
void toString_02();
void hasAttributes_data();
void hasAttributes();
+ void setGetAttributes();
void save_data();
void save();
void saveWithSerialization() const;
@@ -392,6 +393,74 @@ void tst_QDom::hasAttributes()
QTEST( visitedNodes, "visitedNodes" );
}
+void tst_QDom::setGetAttributes()
+{
+ QDomDocument doc;
+ QDomElement rootNode = doc.createElement("Root");
+ doc.appendChild(rootNode);
+
+ const QLocale oldLocale = QLocale();
+ QLocale::setDefault(QLocale::German); // decimal separator != '.'
+
+ const QString qstringVal("QString");
+ const qlonglong qlonglongVal = std::numeric_limits<qlonglong>::min();
+ const qulonglong qulonglongVal = std::numeric_limits<qulonglong>::max();
+ const int intVal = std::numeric_limits<int>::min();
+ const uint uintVal = std::numeric_limits<uint>::max();
+ const float floatVal = 0.1234f;
+ const double doubleVal = 0.1234;
+
+ rootNode.setAttribute("qstringVal", qstringVal);
+ rootNode.setAttribute("qlonglongVal", qlonglongVal);
+ rootNode.setAttribute("qulonglongVal", qulonglongVal);
+ rootNode.setAttribute("intVal", intVal);
+ rootNode.setAttribute("uintVal", uintVal);
+ rootNode.setAttribute("floatVal", floatVal);
+ rootNode.setAttribute("doubleVal", doubleVal);
+
+ QDomElement nsNode = doc.createElement("NS");
+ rootNode.appendChild(nsNode);
+ nsNode.setAttributeNS("namespace", "qstringVal", qstringVal);
+ nsNode.setAttributeNS("namespace", "qlonglongVal", qlonglongVal);
+ nsNode.setAttributeNS("namespace", "qulonglongVal", qulonglongVal);
+ nsNode.setAttributeNS("namespace", "intVal", intVal);
+ nsNode.setAttributeNS("namespace", "uintVal", uintVal);
+ nsNode.setAttributeNS("namespace", "floatVal", floatVal); // not available atm
+ nsNode.setAttributeNS("namespace", "doubleVal", doubleVal);
+
+ bool bOk;
+ QCOMPARE(rootNode.attribute("qstringVal"), qstringVal);
+ QCOMPARE(rootNode.attribute("qlonglongVal").toLongLong(&bOk), qlonglongVal);
+ QVERIFY(bOk);
+ QCOMPARE(rootNode.attribute("qulonglongVal").toULongLong(&bOk), qulonglongVal);
+ QVERIFY(bOk);
+ QCOMPARE(rootNode.attribute("intVal").toInt(&bOk), intVal);
+ QVERIFY(bOk);
+ QCOMPARE(rootNode.attribute("uintVal").toUInt(&bOk), uintVal);
+ QVERIFY(bOk);
+ QCOMPARE(rootNode.attribute("floatVal").toFloat(&bOk), floatVal);
+ QVERIFY(bOk);
+ QCOMPARE(rootNode.attribute("doubleVal").toDouble(&bOk), doubleVal);
+ QVERIFY(bOk);
+
+ QCOMPARE(nsNode.attributeNS("namespace", "qstringVal"), qstringVal);
+ QCOMPARE(nsNode.attributeNS("namespace", "qlonglongVal").toLongLong(&bOk), qlonglongVal);
+ QVERIFY(bOk);
+ QCOMPARE(nsNode.attributeNS("namespace", "qulonglongVal").toULongLong(&bOk), qulonglongVal);
+ QVERIFY(bOk);
+ QCOMPARE(nsNode.attributeNS("namespace", "intVal").toInt(&bOk), intVal);
+ QVERIFY(bOk);
+ QCOMPARE(nsNode.attributeNS("namespace", "uintVal").toUInt(&bOk), uintVal);
+ QVERIFY(bOk);
+ QCOMPARE(nsNode.attributeNS("namespace", "floatVal").toFloat(&bOk), floatVal);
+ QVERIFY(bOk);
+ QCOMPARE(nsNode.attributeNS("namespace", "doubleVal").toDouble(&bOk), doubleVal);
+ QVERIFY(bOk);
+
+ QLocale::setDefault(oldLocale);
+}
+
+
int tst_QDom::hasAttributesHelper( const QDomNode& node )
{
int visitedNodes = 1;