summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew O'Doherty <andrew.odoherty@qt.io>2018-10-10 17:04:24 +0200
committerAndrew O'Doherty <andrew.odoherty@qt.io>2018-10-25 11:41:52 +0000
commit4eab58f95441acad7fb90bb698052e798a5a1430 (patch)
tree3e29db610dc0e02fc2819be909edf686d8e63500
parent38c2d240cdc638970a69f10fe329f5e70d6576d7 (diff)
Extend autotest tst_QKnxNetIpDescriptionRequest
Change-Id: Ia40e8afee1edfc1d5a240e6f7352475ddc9a0453 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--tests/auto/qknxnetipdescriptionrequest/tst_qknxnetipdescriptionrequest.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/qknxnetipdescriptionrequest/tst_qknxnetipdescriptionrequest.cpp b/tests/auto/qknxnetipdescriptionrequest/tst_qknxnetipdescriptionrequest.cpp
index 7afdf6f..6eafc12 100644
--- a/tests/auto/qknxnetipdescriptionrequest/tst_qknxnetipdescriptionrequest.cpp
+++ b/tests/auto/qknxnetipdescriptionrequest/tst_qknxnetipdescriptionrequest.cpp
@@ -43,6 +43,7 @@ class tst_QKnxNetIpDescriptionRequest: public QObject
private slots:
void testDefaultConstructor();
void testConstructor();
+ void testValidationDescriptionRequest();
void testDebugStream();
};
@@ -53,6 +54,10 @@ void tst_QKnxNetIpDescriptionRequest::testDefaultConstructor()
QCOMPARE(descriptionRequest.isValid(), false);
QCOMPARE(descriptionRequest.controlEndpoint().isValid(), false);
+
+ frame = QKnxNetIpDescriptionRequestProxy::builder().create();
+ const QKnxNetIpDescriptionRequestProxy view(frame);
+ QCOMPARE(view.isValid(), false);
}
void tst_QKnxNetIpDescriptionRequest::testConstructor()
@@ -75,6 +80,52 @@ void tst_QKnxNetIpDescriptionRequest::testConstructor()
QKnxByteArray::fromHex("08017f0000010e57"));
}
+void tst_QKnxNetIpDescriptionRequest::testValidationDescriptionRequest()
+{
+ {
+ auto frame = QKnxNetIpDescriptionRequestProxy::builder()
+ .setControlEndpoint(QKnxNetIpHpaiProxy::builder()
+ .setHostAddress(QHostAddress::LocalHost)
+ .setPort(3671).create())
+ .create();
+ QCOMPARE(frame.isValid(), true);
+ const QKnxNetIpDescriptionRequestProxy view(frame);
+ QCOMPARE(view.isValid(), true);
+ // setting an invalid service type that should invalidate the proxy
+ frame.setServiceType(QKnxNetIp::ServiceType::TunnelingFeatureSet);
+ QCOMPARE(view.controlEndpoint().isValid(), true);
+ QCOMPARE(view.isValid(), false);
+ }
+ {
+ auto ctrlEndpoint = QKnxNetIpHpaiProxy::builder().create();
+ QCOMPARE(ctrlEndpoint.isValid(), true);
+ QKnxNetIpFrame frame = { QKnxNetIp::ServiceType::DescriptionRequest,
+ ctrlEndpoint.bytes() };
+ const QKnxNetIpDescriptionRequestProxy view(frame);
+ QCOMPARE(view.controlEndpoint().isValid(), true);
+ QCOMPARE(view.isValid(), true);
+ }
+ {
+ auto ctrlEndpoint = QKnxNetIpHpaiProxy::builder()
+ // setting invalid host protocol
+ .setHostProtocol(QKnxNetIp::HostProtocol(0x12))
+ .setHostAddress(QHostAddress::LocalHost)
+ .setPort(3671)
+ .create();
+ QCOMPARE(ctrlEndpoint.isValid(), false);
+ QKnxNetIpFrame frame = { QKnxNetIp::ServiceType::DescriptionRequest,
+ ctrlEndpoint.bytes() };
+ const QKnxNetIpDescriptionRequestProxy view(frame);
+ QCOMPARE(view.controlEndpoint().isValid(), false);
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ QCOMPARE(view.isValid(), false);
+#else
+ // TODO: request proxy validation should not accept an invalid HPAI
+ QCOMPARE(view.isValid(), true);
+#endif
+ }
+}
+
void tst_QKnxNetIpDescriptionRequest::testDebugStream()
{
struct DebugHandler