summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp')
-rw-r--r--tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp50
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 803f42b1..70dc3c0b 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 <QStandardPaths>
@@ -65,6 +66,7 @@ private slots:
void clearComponentCache();
void outputWarningsToStandardError();
void objectOwnership();
+ void synchronousNetworkReply();
};
void tst_qdeclarativeengine::rootContext()
@@ -323,6 +325,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"