summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorTobias Koenig <tokoe@kde.org>2009-05-16 10:30:25 (GMT)
committerTobias Koenig <tokoe@kde.org>2009-05-16 10:30:25 (GMT)
commit456463169c6d00b9938f0d975dbd7f398edea39d (patch)
tree13c1b245cffa15828ef1b12ac24c271c301221f2 /tests/auto
parent135a028d9dc9a28a0a072665a7dc43b7e9e187be (diff)
downloadQt-456463169c6d00b9938f0d975dbd7f398edea39d.zip
Qt-456463169c6d00b9938f0d975dbd7f398edea39d.tar.gz
Qt-456463169c6d00b9938f0d975dbd7f398edea39d.tar.bz2
Various api, documentation and code cleanups
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/patternistheaders/tst_patternistheaders.cpp8
-rw-r--r--tests/auto/qxmlschema/tst_qxmlschema.cpp195
-rw-r--r--tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp145
3 files changed, 284 insertions, 64 deletions
diff --git a/tests/auto/patternistheaders/tst_patternistheaders.cpp b/tests/auto/patternistheaders/tst_patternistheaders.cpp
index ba7623e..3352a58 100644
--- a/tests/auto/patternistheaders/tst_patternistheaders.cpp
+++ b/tests/auto/patternistheaders/tst_patternistheaders.cpp
@@ -94,6 +94,10 @@ void tst_PatternistHeaders::run() const
#include <qxmlquery.h>
#include <QXmlResultItems>
#include <qxmlresultitems.h>
+#include <QXmlSchema>
+#include <qxmlschema.h>
+#include <QXmlSchemaValidator>
+#include <qxmlschemavalidator.h>
#include <QXmlSerializer>
#include <qxmlserializer.h>
@@ -122,6 +126,10 @@ void tst_PatternistHeaders::run() const
#include <QtXmlPatterns/qxmlquery.h>
#include <QtXmlPatterns/QXmlResultItems>
#include <QtXmlPatterns/qxmlresultitems.h>
+#include <QtXmlPatterns/QXmlSchema>
+#include <QtXmlPatterns/qxmlschema.h>
+#include <QtXmlPatterns/QXmlSchemaValidator>
+#include <QtXmlPatterns/qxmlschemavalidator.h>
#include <QtXmlPatterns/QXmlSerializer>
#include <QtXmlPatterns/qxmlserializer.h>
diff --git a/tests/auto/qxmlschema/tst_qxmlschema.cpp b/tests/auto/qxmlschema/tst_qxmlschema.cpp
index 64012c1..7fc59bb 100644
--- a/tests/auto/qxmlschema/tst_qxmlschema.cpp
+++ b/tests/auto/qxmlschema/tst_qxmlschema.cpp
@@ -15,33 +15,8 @@
#include <QXmlName>
#include <QXmlSchema>
-class DummyMessageHandler : public QAbstractMessageHandler
-{
- public:
- DummyMessageHandler(QObject *parent = 0)
- : QAbstractMessageHandler(parent)
- {
- }
-
- protected:
- virtual void handleMessage(QtMsgType, const QString&, const QUrl&, const QSourceLocation&)
- {
- }
-};
-
-class DummyUriResolver : public QAbstractUriResolver
-{
- public:
- DummyUriResolver(QObject *parent = 0)
- : QAbstractUriResolver(parent)
- {
- }
-
- virtual QUrl resolve(const QUrl&, const QUrl&) const
- {
- return QUrl();
- }
-};
+#include "../qabstracturiresolver/TestURIResolver.h"
+#include "../qxmlquery/MessageSilencer.h"
/*!
\class tst_QXmlSchema
@@ -59,6 +34,17 @@ private Q_SLOTS:
void defaultConstructor() const;
void copyConstructor() const;
void constructorQXmlNamePool() const;
+ void copyMutationTest() const;
+
+ void isValid() const;
+ void documentUri() const;
+
+ void loadSchemaUrlSuccess() const;
+ void loadSchemaUrlFail() const;
+ void loadSchemaDeviceSuccess() const;
+ void loadSchemaDeviceFail() const;
+ void loadSchemaDataSuccess() const;
+ void loadSchemaDataFail() const;
void networkAccessManagerSignature() const;
void networkAccessManagerDefaultValue() const;
@@ -134,6 +120,150 @@ void tst_QXmlSchema::constructorQXmlNamePool() const
QCOMPARE(name.prefix(np2), QString::fromLatin1("prefix"));
}
+void tst_QXmlSchema::copyMutationTest() const
+{
+ QXmlSchema schema1;
+ QXmlSchema schema2(schema1);
+
+ // check that everything is equal
+ QVERIFY(schema2.messageHandler() == schema1.messageHandler());
+ QVERIFY(schema2.uriResolver() == schema1.uriResolver());
+ QVERIFY(schema2.networkAccessManager() == schema1.networkAccessManager());
+
+ MessageSilencer handler;
+ const TestURIResolver resolver;
+ QNetworkAccessManager manager;
+
+ // modify schema1
+ schema1.setMessageHandler(&handler);
+ schema1.setUriResolver(&resolver);
+ schema1.setNetworkAccessManager(&manager);
+
+ // check that schema2 is not effected by the modifications of schema1
+ QVERIFY(schema2.messageHandler() != schema1.messageHandler());
+ QVERIFY(schema2.uriResolver() != schema1.uriResolver());
+ QVERIFY(schema2.networkAccessManager() != schema1.networkAccessManager());
+
+ // modify schema1 further
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+ schema1.load(data, documentUri);
+
+ QVERIFY(schema2.isValid() != schema1.isValid());
+}
+
+void tst_QXmlSchema::isValid() const
+{
+ /* Check default value. */
+ QXmlSchema schema;
+ QVERIFY(!schema.isValid());
+}
+
+void tst_QXmlSchema::documentUri() const
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+ QXmlSchema schema;
+ schema.load(data, documentUri);
+
+ QCOMPARE(documentUri, schema.documentUri());
+}
+
+void tst_QXmlSchema::loadSchemaUrlSuccess() const
+{
+/**
+ TODO: put valid schema file on given url and enable test
+ const QUrl url("http://notavailable/");
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(url));
+*/
+}
+
+void tst_QXmlSchema::loadSchemaUrlFail() const
+{
+ const QUrl url("http://notavailable/");
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(url));
+}
+
+void tst_QXmlSchema::loadSchemaDeviceSuccess() const
+{
+ QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchema schema;
+ QVERIFY(schema.load(&buffer));
+}
+
+void tst_QXmlSchema::loadSchemaDeviceFail() const
+{
+ QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ QBuffer buffer(&data);
+ // a closed device can not be loaded
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(&buffer));
+}
+
+void tst_QXmlSchema::loadSchemaDataSuccess() const
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+ QXmlSchema schema;
+ QVERIFY(schema.load(data));
+}
+
+void tst_QXmlSchema::loadSchemaDataFail() const
+{
+ // empty schema can not be loaded
+ const QByteArray data;
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(data));
+}
+
+
void tst_QXmlSchema::networkAccessManagerSignature() const
{
/* Const object. */
@@ -185,7 +315,7 @@ void tst_QXmlSchema::messageHandler() const
{
/* Test that we return the message handler that was set. */
{
- DummyMessageHandler handler;
+ MessageSilencer handler;
QXmlSchema schema;
schema.setMessageHandler(&handler);
@@ -200,6 +330,13 @@ void tst_QXmlSchema::uriResolverSignature() const
/* The function should be const. */
schema.uriResolver();
+
+ /* Const object. */
+ const TestURIResolver resolver;
+
+ /* This should compile */
+ QXmlSchema schema2;
+ schema2.setUriResolver(&resolver);
}
void tst_QXmlSchema::uriResolverDefaultValue() const
@@ -215,7 +352,7 @@ void tst_QXmlSchema::uriResolver() const
{
/* Test that we return the uri resolver that was set. */
{
- DummyUriResolver resolver;
+ TestURIResolver resolver;
QXmlSchema schema;
schema.setUriResolver(&resolver);
diff --git a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
index b021b08..3bbf506 100644
--- a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
+++ b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
@@ -16,33 +16,8 @@
#include <QXmlSchema>
#include <QXmlSchemaValidator>
-class DummyMessageHandler : public QAbstractMessageHandler
-{
- public:
- DummyMessageHandler(QObject *parent = 0)
- : QAbstractMessageHandler(parent)
- {
- }
-
- protected:
- virtual void handleMessage(QtMsgType, const QString&, const QUrl&, const QSourceLocation&)
- {
- }
-};
-
-class DummyUriResolver : public QAbstractUriResolver
-{
- public:
- DummyUriResolver(QObject *parent = 0)
- : QAbstractUriResolver(parent)
- {
- }
-
- virtual QUrl resolve(const QUrl&, const QUrl&) const
- {
- return QUrl();
- }
-};
+#include "../qabstracturiresolver/TestURIResolver.h"
+#include "../qxmlquery/MessageSilencer.h"
/*!
\class tst_QXmlSchemaValidatorValidator
@@ -60,6 +35,13 @@ private Q_SLOTS:
void defaultConstructor() const;
void propertyInitialization() const;
+ void loadInstanceUrlSuccess() const;
+ void loadInstanceUrlFail() const;
+ void loadInstanceDeviceSuccess() const;
+ void loadInstanceDeviceFail() const;
+ void loadInstanceDataSuccess() const;
+ void loadInstanceDataFail() const;
+
void networkAccessManagerSignature() const;
void networkAccessManagerDefaultValue() const;
void networkAccessManager() const;
@@ -73,6 +55,26 @@ private Q_SLOTS:
void uriResolver() const;
};
+static QXmlSchema createValidSchema()
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ " <xsd:element name=\"myRoot\" type=\"xsd:string\"/>"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+
+ QXmlSchema schema;
+ schema.load(data, documentUri);
+
+ return schema;
+}
+
void tst_QXmlSchemaValidator::defaultConstructor() const
{
/* Allocate instance in different orders. */
@@ -101,8 +103,8 @@ void tst_QXmlSchemaValidator::propertyInitialization() const
{
/* Verify that properties set in the schema are used as default values for the validator */
{
- DummyMessageHandler handler;
- DummyUriResolver resolver;
+ MessageSilencer handler;
+ TestURIResolver resolver;
QNetworkAccessManager manager;
QXmlSchema schema;
@@ -117,6 +119,72 @@ void tst_QXmlSchemaValidator::propertyInitialization() const
}
}
+void tst_QXmlSchemaValidator::loadInstanceUrlSuccess() const
+{
+/*
+ TODO: put valid schema file on given url and enable test
+ const QXmlSchema schema(createValidSchema());
+ const QUrl url("http://notavailable/");
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(url));
+*/
+}
+
+void tst_QXmlSchemaValidator::loadInstanceUrlFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+ const QUrl url("http://notavailable/");
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(url));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDeviceSuccess() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.validate(&buffer));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDeviceFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+ QBuffer buffer(&data);
+ // a closed device can not be loaded
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(&buffer));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDataSuccess() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ const QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.validate(data));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDataFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ // empty instance can not be loaded
+ const QByteArray data;
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(data));
+}
+
void tst_QXmlSchemaValidator::networkAccessManagerSignature() const
{
const QXmlSchema schema;
@@ -202,7 +270,7 @@ void tst_QXmlSchemaValidator::messageHandlerDefaultValue() const
{
QXmlSchema schema;
- DummyMessageHandler handler;
+ MessageSilencer handler;
schema.setMessageHandler(&handler);
const QXmlSchemaValidator validator(schema);
@@ -214,7 +282,7 @@ void tst_QXmlSchemaValidator::messageHandler() const
{
/* Test that we return the message handler that was set. */
{
- DummyMessageHandler handler;
+ MessageSilencer handler;
const QXmlSchema schema;
QXmlSchemaValidator validator(schema);
@@ -225,7 +293,7 @@ void tst_QXmlSchemaValidator::messageHandler() const
/* Test that we return the message handler that was set, even if the schema changed in between. */
{
- DummyMessageHandler handler;
+ MessageSilencer handler;
const QXmlSchema schema;
QXmlSchemaValidator validator(schema);
@@ -248,6 +316,13 @@ void tst_QXmlSchemaValidator::uriResolverSignature() const
/* The function should be const. */
validator.uriResolver();
+
+ /* Const object. */
+ const TestURIResolver resolver;
+
+ /* This should compile */
+ QXmlSchema schema2;
+ schema2.setUriResolver(&resolver);
}
void tst_QXmlSchemaValidator::uriResolverDefaultValue() const
@@ -263,7 +338,7 @@ void tst_QXmlSchemaValidator::uriResolverDefaultValue() const
{
QXmlSchema schema;
- DummyUriResolver resolver;
+ TestURIResolver resolver;
schema.setUriResolver(&resolver);
const QXmlSchemaValidator validator(schema);
@@ -275,7 +350,7 @@ void tst_QXmlSchemaValidator::uriResolver() const
{
/* Test that we return the uri resolver that was set. */
{
- DummyUriResolver resolver;
+ TestURIResolver resolver;
const QXmlSchema schema;
QXmlSchemaValidator validator(schema);
@@ -286,7 +361,7 @@ void tst_QXmlSchemaValidator::uriResolver() const
/* Test that we return the uri resolver that was set, even if the schema changed in between. */
{
- DummyUriResolver resolver;
+ TestURIResolver resolver;
const QXmlSchema schema;
QXmlSchemaValidator validator(schema);