aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2019-05-14 11:20:12 +0200
committerSona Kurazyan <sona.kurazyan@qt.io>2019-05-14 15:15:44 +0000
commitc90feba464526c9d00ccc63c0f372963fffc8d21 (patch)
tree851e5b1997c113f83a12baa4d9f0942810aa4b6f /tests
parente04667b55c2055200da93382dee44299293735a6 (diff)
Forbid creation of QCoapReply and QCoapResourceDiscoveryReply objects
Replies are created internally, and pointers to created objects are returned to the user. Users should not be able to create instances of QCoapReply or QCoapResourceDiscoveryReply. This change is based on the feedback from API review. Change-Id: Ibd59c62fd19c4b312253d4c4621b195bf5816340 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qcoapinternalreply/tst_qcoapinternalreply.cpp56
-rw-r--r--tests/auto/qcoapreply/tst_qcoapreply.cpp63
2 files changed, 35 insertions, 84 deletions
diff --git a/tests/auto/qcoapinternalreply/tst_qcoapinternalreply.cpp b/tests/auto/qcoapinternalreply/tst_qcoapinternalreply.cpp
index 61a3dbc..7915f44 100644
--- a/tests/auto/qcoapinternalreply/tst_qcoapinternalreply.cpp
+++ b/tests/auto/qcoapinternalreply/tst_qcoapinternalreply.cpp
@@ -45,8 +45,6 @@ private Q_SLOTS:
void parseReplyPdu();
void updateReply_data();
void updateReply();
- void requestData();
- void abortRequest();
};
void tst_QCoapInternalReply::parseReplyPdu_data()
@@ -167,24 +165,6 @@ void tst_QCoapInternalReply::parseReplyPdu()
QCOMPARE(reply->message()->payload(), payload);
}
-class QCoapReplyForTests : public QCoapReply
-{
-public:
- QCoapReplyForTests(const QCoapRequest &req) : QCoapReply (req) {}
-
- void setRunning(const QCoapToken &token, QCoapMessageId messageId)
- {
- Q_D(QCoapReply);
- d->_q_setRunning(token, messageId);
- }
- void setContentAndFinished(const QCoapInternalReply *internal)
- {
- Q_D(QCoapReply);
- d->_q_setContent(internal->senderAddress(), *internal->message(), internal->responseCode());
- d->_q_setFinished();
- }
-};
-
void tst_QCoapInternalReply::updateReply_data()
{
QTest::addColumn<QByteArray>("data");
@@ -196,39 +176,19 @@ void tst_QCoapInternalReply::updateReply()
{
QFETCH(QByteArray, data);
- QCoapReplyForTests reply((QCoapRequest()));
+ QScopedPointer<QCoapReply> reply(QCoapReplyPrivate::createCoapReply(QCoapRequest()));
QCoapInternalReply internalReply;
internalReply.message()->setPayload(data);
- QSignalSpy spyReplyFinished(&reply, &QCoapReply::finished);
+ QSignalSpy spyReplyFinished(reply.data(), &QCoapReply::finished);
- reply.setContentAndFinished(&internalReply);
+ QMetaObject::invokeMethod(reply.data(), "_q_setContent",
+ Q_ARG(QHostAddress, internalReply.senderAddress()),
+ Q_ARG(QCoapMessage, *internalReply.message()),
+ Q_ARG(QtCoap::ResponseCode, internalReply.responseCode()));
+ QMetaObject::invokeMethod(reply.data(), "_q_setFinished", Q_ARG(QtCoap::Error, QtCoap::Error::Ok));
QTRY_COMPARE_WITH_TIMEOUT(spyReplyFinished.count(), 1, 1000);
- QCOMPARE(reply.readAll(), data);
-}
-
-void tst_QCoapInternalReply::requestData()
-{
- QCoapReplyForTests reply((QCoapRequest()));
- reply.setRunning("token", 543);
-
- QCOMPARE(reply.request().token(), QByteArray("token"));
- QCOMPARE(reply.request().messageId(), 543);
-}
-
-void tst_QCoapInternalReply::abortRequest()
-{
- QCoapReplyForTests reply((QCoapRequest()));
- reply.setRunning("token", 543);
-
- QSignalSpy spyAborted(&reply, &QCoapReply::aborted);
- QSignalSpy spyFinished(&reply, &QCoapReply::finished);
- reply.abortRequest();
-
- QTRY_COMPARE_WITH_TIMEOUT(spyAborted.count(), 1, 1000);
- QList<QVariant> arguments = spyAborted.takeFirst();
- QTRY_COMPARE_WITH_TIMEOUT(spyFinished.count(), 1, 1000);
- QVERIFY(arguments.at(0).toByteArray() == "token");
+ QCOMPARE(reply->readAll(), data);
}
#else
diff --git a/tests/auto/qcoapreply/tst_qcoapreply.cpp b/tests/auto/qcoapreply/tst_qcoapreply.cpp
index f22098e..f893840 100644
--- a/tests/auto/qcoapreply/tst_qcoapreply.cpp
+++ b/tests/auto/qcoapreply/tst_qcoapreply.cpp
@@ -48,18 +48,6 @@ private Q_SLOTS:
void abortRequest();
};
-class QCoapReplyForTests : public QCoapReply
-{
-public:
- QCoapReplyForTests(const QCoapRequest &req) : QCoapReply (req) {}
-
- void setRunning(const QCoapToken &token, QCoapMessageId messageId)
- {
- Q_D(QCoapReply);
- d->_q_setRunning(token, messageId);
- }
-};
-
void tst_QCoapReply::updateReply_data()
{
QTest::addColumn<QByteArray>("payload");
@@ -93,22 +81,22 @@ void tst_QCoapReply::updateReply()
const QByteArray token = "\xAF\x01\xC2";
const quint16 id = 645;
- QCoapReply reply(QCoapRequest{});
+ QScopedPointer<QCoapReply> reply(QCoapReplyPrivate::createCoapReply(QCoapRequest()));
QCoapMessage message;
message.setToken(token);
message.setMessageId(id);
message.setPayload(payload);
- QSignalSpy spyReplyFinished(&reply, &QCoapReply::finished);
- QSignalSpy spyReplyNotified(&reply, &QCoapReply::notified);
- QSignalSpy spyReplyError(&reply, &QCoapReply::error);
- QSignalSpy spyReplyAborted(&reply, &QCoapReply::aborted);
+ QSignalSpy spyReplyFinished(reply.data(), &QCoapReply::finished);
+ QSignalSpy spyReplyNotified(reply.data(), &QCoapReply::notified);
+ QSignalSpy spyReplyError(reply.data(), &QCoapReply::error);
+ QSignalSpy spyReplyAborted(reply.data(), &QCoapReply::aborted);
- QMetaObject::invokeMethod(&reply, "_q_setContent",
+ QMetaObject::invokeMethod(reply.data(), "_q_setContent",
Q_ARG(QHostAddress, QHostAddress()),
Q_ARG(QCoapMessage, message),
Q_ARG(QtCoap::ResponseCode, responseCode));
- QMetaObject::invokeMethod(&reply, "_q_setFinished",
+ QMetaObject::invokeMethod(reply.data(), "_q_setFinished",
Q_ARG(QtCoap::Error, error));
QCOMPARE(spyReplyFinished.count(), 1);
@@ -116,42 +104,45 @@ void tst_QCoapReply::updateReply()
QCOMPARE(spyReplyAborted.count(), 0);
if (error != QtCoap::Error::Ok || QtCoap::isError(responseCode)) {
QVERIFY(spyReplyError.count() > 0);
- QCOMPARE(reply.isSuccessful(), false);
+ QCOMPARE(reply->isSuccessful(), false);
} else {
QCOMPARE(spyReplyError.count(), 0);
- QCOMPARE(reply.isSuccessful(), true);
+ QCOMPARE(reply->isSuccessful(), true);
}
- QCOMPARE(reply.readAll(), payload);
- QCOMPARE(reply.readAll(), QByteArray());
- QCOMPARE(reply.responseCode(), responseCode);
- QCOMPARE(reply.message().token(), token);
- QCOMPARE(reply.message().messageId(), id);
+ QCOMPARE(reply->readAll(), payload);
+ QCOMPARE(reply->readAll(), QByteArray());
+ QCOMPARE(reply->responseCode(), responseCode);
+ QCOMPARE(reply->message().token(), token);
+ QCOMPARE(reply->message().messageId(), id);
}
void tst_QCoapReply::requestData()
{
- QCoapReplyForTests reply((QCoapRequest()));
- reply.setRunning("token", 543);
+ QScopedPointer<QCoapReply> reply(QCoapReplyPrivate::createCoapReply(QCoapRequest()));
+ QMetaObject::invokeMethod(reply.data(), "_q_setRunning",
+ Q_ARG(QCoapToken, "token"),
+ Q_ARG(QCoapMessageId, 543));
- QCOMPARE(reply.request().token(), QByteArray("token"));
- QCOMPARE(reply.request().messageId(), 543);
+ QCOMPARE(reply->request().token(), QByteArray("token"));
+ QCOMPARE(reply->request().messageId(), 543);
}
void tst_QCoapReply::abortRequest()
{
- QCoapReplyForTests reply((QCoapRequest()));
- reply.setRunning("token", 543);
+ QScopedPointer<QCoapReply> reply(QCoapReplyPrivate::createCoapReply(QCoapRequest()));
+ QMetaObject::invokeMethod(reply.data(), "_q_setRunning",
+ Q_ARG(QCoapToken, "token"),
+ Q_ARG(QCoapMessageId, 543));
- QSignalSpy spyAborted(&reply, &QCoapReply::aborted);
- QSignalSpy spyFinished(&reply, &QCoapReply::finished);
- reply.abortRequest();
+ QSignalSpy spyAborted(reply.data(), &QCoapReply::aborted);
+ QSignalSpy spyFinished(reply.data(), &QCoapReply::finished);
+ reply->abortRequest();
QTRY_COMPARE_WITH_TIMEOUT(spyAborted.count(), 1, 1000);
QList<QVariant> arguments = spyAborted.takeFirst();
QTRY_COMPARE_WITH_TIMEOUT(spyFinished.count(), 1, 1000);
QVERIFY(arguments.at(0).toByteArray() == "token");
- QCOMPARE(reply.isSuccessful(), false);
}
#else