diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp index c4d0ab1..9c389c4 100644 --- a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp +++ b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp @@ -43,6 +43,7 @@ #include <QDeclarativeEngine> #include <QDeclarativeContext> #include <QNetworkAccessManager> +#include <QNetworkReply> #include <QPointer> #include <QDir> #include <QDesktopServices> @@ -70,6 +71,7 @@ private slots: void clearComponentCache(); void outputWarningsToStandardError(); void objectOwnership(); + void synchronousNetworkReply(); }; void tst_qdeclarativeengine::rootContext() @@ -328,6 +330,54 @@ void tst_qdeclarativeengine::objectOwnership() } +class MyReply : public QNetworkReply { + + Q_OBJECT + +public: + MyReply() { + setFinished(true); + } + virtual qint64 readData(char* buffer, qint64 number) { + return 0; + } + virtual void abort() { } +}; + +class MyManager : public QNetworkAccessManager { + + Q_OBJECT + +public: + MyManager(QObject *parent = 0) : QNetworkAccessManager(parent) { + } + + QNetworkReply *createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0) { + return new MyReply; + } +}; + +class MyFactory : public QDeclarativeNetworkAccessManagerFactory { + +public: + QNetworkAccessManager *create(QObject *parent) { + return new MyManager; + } +}; + +void tst_qdeclarativeengine::synchronousNetworkReply() +{ + MyFactory factory; + QDeclarativeEngine engine; + engine.setNetworkAccessManagerFactory(&factory); + QDeclarativeComponent c(&engine, QUrl("myScheme://test.qml")); + // we get an error, but we only care about whether we are finished or not in this test + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready"); + c.create(); + // reply is finished, so should not be in loading state. + QVERIFY(!c.isLoading()); +} + QTEST_MAIN(tst_qdeclarativeengine) #include "tst_qdeclarativeengine.moc" |