1#include "testengine.hpp"
3#include "testengine_p.h"
10TestEngine::TestEngine(
Application *app,
const QVariantMap &opts)
15int TestEngine::workerId()
const
20TestEngine::TestResponse TestEngine::createRequest(
const QByteArray &method,
30 bodyDevice =
new SequentialBuffer(body);
35 if (bodyDevice->
size()) {
39 TestEngineConnection req;
44 req.protocol =
"HTTP/1.1"_ba;
46 req.serverAddress =
"127.0.0.1"_ba;
48 req.remotePort = 3000;
50 req.headers = headersCL;
51 req.startOfRequest = std::chrono::steady_clock::now();
52 req.body = bodyDevice;
54 Q_EMIT processRequestAsync(&req);
57 req.m_eventLoop.exec();
60 ret.body = req.m_responseData;
61 ret.statusCode = req.m_statusCode;
62 ret.headers = req.m_headers;
67TestEngine::TestResponse TestEngine::createRequest(
const QByteArray &method,
73 return createRequest(method, path.
toLatin1(), query, headers, body);
76bool TestEngine::init()
78 return initApplication() && postForkApplication();
81SequentialBuffer::SequentialBuffer(
QByteArray *buffer)
86bool SequentialBuffer::isSequential()
const
91qint64 SequentialBuffer::bytesAvailable()
const
96qint64 SequentialBuffer::readData(
char *data, qint64 maxlen)
99 memcpy(data, mid.
data(), mid.
size());
101 buf->remove(0, mid.
size());
105qint64 SequentialBuffer::writeData(
const char *data, qint64 len)
112qint64 TestEngineConnection::doWrite(
const char *data, qint64 len)
114 m_responseData.append(data, len);
118bool TestEngineConnection::writeHeaders(quint16 status,
const Headers &headers)
120 m_statusCode = status;
126void TestEngineConnection::processingFinished()
131#include "moc_testengine.cpp"
The Cutelyst application.
The Cutelyst namespace holds all public Cutelyst API.
bool isEmpty() const const
QByteArray mid(qsizetype pos, qsizetype len) &&
qsizetype size() const const
virtual qint64 bytesAvailable() const const
virtual bool open(QIODeviceBase::OpenMode mode)
virtual qint64 size() const const
QByteArray toLatin1() const const