}
FakePropfindReply::FakePropfindReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakePutReply::FakePutReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, const QByteArray &putPayload, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeMkcolReply::FakeMkcolReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeDeleteReply::FakeDeleteReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeMoveReply::FakeMoveReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeGetReply::FakeGetReply(FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeGetWithDataReply::FakeGetWithDataReply(FileInfo &remoteRootFileInfo, const QByteArray &data, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakeChunkMoveReply::FakeChunkMoveReply(FileInfo &uploadsFileInfo, FileInfo &remoteRootFileInfo, QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
{
setRequest(request);
setUrl(request.url());
}
FakePayloadReply::FakePayloadReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, const QByteArray &body, QObject *parent)
- : QNetworkReply { parent }
+ : FakeReply { parent }
, _body(body)
{
setRequest(request);
}
FakeErrorReply::FakeErrorReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent, int httpErrorCode, const QByteArray &body)
- : QNetworkReply { parent }
+ : FakeReply { parent }
, _body(body)
{
setRequest(request);
return _body.size();
}
+FakeHangingReply::FakeHangingReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
+ : FakeReply(parent)
+{
+ setRequest(request);
+ setUrl(request.url());
+ setOperation(op);
+ open(QIODevice::ReadOnly);
+}
+
void FakeHangingReply::abort()
{
// Follow more or less the implementation of QNetworkReplyImpl::abort
FileInfo &info = isUpload ? _uploadFileInfo : _remoteRootFileInfo;
auto verb = request.attribute(QNetworkRequest::CustomVerbAttribute);
+ FakeReply *reply;
if (verb == QLatin1String("PROPFIND"))
// Ignore outgoingData always returning somethign good enough, works for now.
- return new FakePropfindReply { info, op, request, this };
+ reply = new FakePropfindReply { info, op, request, this };
else if (verb == QLatin1String("GET") || op == QNetworkAccessManager::GetOperation)
- return new FakeGetReply { info, op, request, this };
+ reply = new FakeGetReply { info, op, request, this };
else if (verb == QLatin1String("PUT") || op == QNetworkAccessManager::PutOperation)
- return new FakePutReply { info, op, request, outgoingData->readAll(), this };
+ reply = new FakePutReply { info, op, request, outgoingData->readAll(), this };
else if (verb == QLatin1String("MKCOL"))
- return new FakeMkcolReply { info, op, request, this };
+ reply = new FakeMkcolReply { info, op, request, this };
else if (verb == QLatin1String("DELETE") || op == QNetworkAccessManager::DeleteOperation)
- return new FakeDeleteReply { info, op, request, this };
+ reply = new FakeDeleteReply { info, op, request, this };
else if (verb == QLatin1String("MOVE") && !isUpload)
- return new FakeMoveReply { info, op, request, this };
+ reply = new FakeMoveReply { info, op, request, this };
else if (verb == QLatin1String("MOVE") && isUpload)
- return new FakeChunkMoveReply { info, _remoteRootFileInfo, op, request, this };
+ reply = new FakeChunkMoveReply { info, _remoteRootFileInfo, op, request, this };
else {
qDebug() << verb << outgoingData;
Q_UNREACHABLE();
}
+ return reply;
}
FakeFolder::FakeFolder(const FileInfo &fileTemplate)
}
return OCC::SyncFileItemPtr::create();
}
+
+FakeReply::FakeReply(QObject *parent)
+ : QNetworkReply(parent)
+{
+ setRawHeader(QByteArrayLiteral("Date"), QDateTime::currentDateTimeUtc().toString(Qt::RFC2822Date).toUtf8());
+}
+
+FakeReply::~FakeReply()
+{
+}
}
};
-class FakePropfindReply : public QNetworkReply
+class FakeReply : public QNetworkReply
+{
+ Q_OBJECT
+public:
+ FakeReply(QObject *parent);
+ virtual ~FakeReply();
+
+ // useful to be public for testing
+ using QNetworkReply::setRawHeader;
+};
+
+class FakePropfindReply : public FakeReply
{
Q_OBJECT
public:
qint64 readData(char *data, qint64 maxlen) override;
};
-class FakePutReply : public QNetworkReply
+class FakePutReply : public FakeReply
{
Q_OBJECT
FileInfo *fileInfo;
qint64 readData(char *, qint64) override { return 0; }
};
-class FakeMkcolReply : public QNetworkReply
+class FakeMkcolReply : public FakeReply
{
Q_OBJECT
FileInfo *fileInfo;
qint64 readData(char *, qint64) override { return 0; }
};
-class FakeDeleteReply : public QNetworkReply
+class FakeDeleteReply : public FakeReply
{
Q_OBJECT
public:
qint64 readData(char *, qint64) override { return 0; }
};
-class FakeMoveReply : public QNetworkReply
+class FakeMoveReply : public FakeReply
{
Q_OBJECT
public:
qint64 readData(char *, qint64) override { return 0; }
};
-class FakeGetReply : public QNetworkReply
+class FakeGetReply : public FakeReply
{
Q_OBJECT
public:
qint64 bytesAvailable() const override;
qint64 readData(char *data, qint64 maxlen) override;
-
- // useful to be public for testing
- using QNetworkReply::setRawHeader;
};
-class FakeGetWithDataReply : public QNetworkReply
+class FakeGetWithDataReply : public FakeReply
{
Q_OBJECT
public:
qint64 bytesAvailable() const override;
qint64 readData(char *data, qint64 maxlen) override;
-
- // useful to be public for testing
- using QNetworkReply::setRawHeader;
};
-class FakeChunkMoveReply : public QNetworkReply
+class FakeChunkMoveReply : public FakeReply
{
Q_OBJECT
FileInfo *fileInfo;
qint64 readData(char *, qint64) override { return 0; }
};
-
-class FakePayloadReply : public QNetworkReply
+class FakePayloadReply : public FakeReply
{
Q_OBJECT
public:
};
-class FakeErrorReply : public QNetworkReply
+class FakeErrorReply : public FakeReply
{
Q_OBJECT
public:
};
// A reply that never responds
-class FakeHangingReply : public QNetworkReply
+class FakeHangingReply : public FakeReply
{
Q_OBJECT
public:
- FakeHangingReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
- : QNetworkReply(parent)
- {
- setRequest(request);
- setUrl(request.url());
- setOperation(op);
- open(QIODevice::ReadOnly);
- }
+ FakeHangingReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent);
void abort() override;
qint64 readData(char *, qint64) override { return 0; }