summaryrefslogtreecommitdiffstats
path: root/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp')
-rw-r--r--tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp79
1 files changed, 47 insertions, 32 deletions
diff --git a/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp b/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
index 4e82aacd..5ebb0b1d 100644
--- a/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
+++ b/tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp
@@ -140,13 +140,18 @@ void tst_QLowEnergyDescriptor::initTestCase()
const QList<QLowEnergyCharacteristic> chars = leService->characteristics();
for (const QLowEnergyCharacteristic &ch : chars) {
- if (!ch.descriptors().isEmpty()) {
- globalService = leService;
- globalControl = controller;
- qWarning() << "Found service with descriptor" << remoteDeviceInfo.address()
- << globalService->serviceName() << globalService->serviceUuid();
- break;
+ const QList<QLowEnergyDescriptor> descriptors = ch.descriptors();
+ for (const QLowEnergyDescriptor &d : descriptors) {
+ if (!d.value().isEmpty()) {
+ globalService = leService;
+ globalControl = controller;
+ qWarning() << "Found service with descriptor" << remoteDeviceInfo.address()
+ << globalService->serviceName() << globalService->serviceUuid();
+ break;
+ }
}
+ if (globalControl)
+ break;
}
if (globalControl)
@@ -238,11 +243,19 @@ void tst_QLowEnergyDescriptor::tst_assignCompare()
QCOMPARE(target.uuid(), QBluetoothUuid());
QCOMPARE(target.value(), QByteArray());
+ int index = -1;
QList<QLowEnergyDescriptor> targets;
const QList<QLowEnergyCharacteristic> chars = globalService->characteristics();
for (const QLowEnergyCharacteristic &ch : chars) {
if (!ch.descriptors().isEmpty()) {
targets = ch.descriptors();
+ for (int i = 0; i < targets.size(); ++i) {
+ // try to get a descriptor we can read
+ if (targets[i].type() == QBluetoothUuid::CharacteristicUserDescription) {
+ index = i;
+ break;
+ }
+ }
break;
}
}
@@ -250,8 +263,10 @@ void tst_QLowEnergyDescriptor::tst_assignCompare()
if (targets.isEmpty())
QSKIP("No descriptor found despite prior indication.");
+ QVERIFY(index != -1);
+
// test assignment operator
- target = targets.first();
+ target = targets[index];
QVERIFY(target.isValid());
QVERIFY(target.type() != QBluetoothUuid::UnknownDescriptorType);
QVERIFY(!target.name().isEmpty());
@@ -259,26 +274,26 @@ void tst_QLowEnergyDescriptor::tst_assignCompare()
QVERIFY(!target.uuid().isNull());
QVERIFY(!target.value().isEmpty());
- QVERIFY(target == targets.first());
- QVERIFY(targets.first() == target);
- QVERIFY(!(target != targets.first()));
- QVERIFY(!(targets.first() != target));
+ QVERIFY(target == targets[index]);
+ QVERIFY(targets[index] == target);
+ QVERIFY(!(target != targets[index]));
+ QVERIFY(!(targets[index] != target));
- QCOMPARE(target.isValid(), targets.first().isValid());
- QCOMPARE(target.type(), targets.first().type());
- QCOMPARE(target.name(), targets.first().name());
- QCOMPARE(target.handle(), targets.first().handle());
- QCOMPARE(target.uuid(), targets.first().uuid());
- QCOMPARE(target.value(), targets.first().value());
+ QCOMPARE(target.isValid(), targets[index].isValid());
+ QCOMPARE(target.type(), targets[index].type());
+ QCOMPARE(target.name(), targets[index].name());
+ QCOMPARE(target.handle(), targets[index].handle());
+ QCOMPARE(target.uuid(), targets[index].uuid());
+ QCOMPARE(target.value(), targets[index].value());
// test copy constructor
QLowEnergyDescriptor copyConstructed(target);
- QCOMPARE(copyConstructed.isValid(), targets.first().isValid());
- QCOMPARE(copyConstructed.type(), targets.first().type());
- QCOMPARE(copyConstructed.name(), targets.first().name());
- QCOMPARE(copyConstructed.handle(), targets.first().handle());
- QCOMPARE(copyConstructed.uuid(), targets.first().uuid());
- QCOMPARE(copyConstructed.value(), targets.first().value());
+ QCOMPARE(copyConstructed.isValid(), targets[index].isValid());
+ QCOMPARE(copyConstructed.type(), targets[index].type());
+ QCOMPARE(copyConstructed.name(), targets[index].name());
+ QCOMPARE(copyConstructed.handle(), targets[index].handle());
+ QCOMPARE(copyConstructed.uuid(), targets[index].uuid());
+ QCOMPARE(copyConstructed.value(), targets[index].value());
QVERIFY(copyConstructed == target);
QVERIFY(target == copyConstructed);
@@ -300,18 +315,18 @@ void tst_QLowEnergyDescriptor::tst_assignCompare()
QVERIFY(!(invalid != target));
QVERIFY(!(target != invalid));
- QVERIFY(!(targets.first() == target));
- QVERIFY(!(target == targets.first()));
- QVERIFY(targets.first() != target);
- QVERIFY(target != targets.first());
+ QVERIFY(!(targets[index] == target));
+ QVERIFY(!(target == targets[index]));
+ QVERIFY(targets[index] != target);
+ QVERIFY(target != targets[index]);
if (targets.count() >= 2) {
- QLowEnergyDescriptor second = targets[1];
+ QLowEnergyDescriptor second = targets[(index+1)%2];
// at least two descriptors
- QVERIFY(!(targets.first() == second));
- QVERIFY(!(second == targets.first()));
- QVERIFY(targets.first() != second);
- QVERIFY(second != targets.first());
+ QVERIFY(!(targets[index] == second));
+ QVERIFY(!(second == targets[index]));
+ QVERIFY(targets[index] != second);
+ QVERIFY(second != targets[index]);
}
}