summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qbluetoothdeviceinfo/tst_qbluetoothdeviceinfo.cpp44
-rw-r--r--tests/auto/qbluetoothlocaldevice/tst_qbluetoothlocaldevice.cpp13
-rw-r--r--tests/auto/qbluetoothserviceinfo/tst_qbluetoothserviceinfo.cpp2
-rw-r--r--tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp6
-rw-r--r--tests/auto/qlowenergydescriptor/tst_qlowenergydescriptor.cpp79
5 files changed, 102 insertions, 42 deletions
diff --git a/tests/auto/qbluetoothdeviceinfo/tst_qbluetoothdeviceinfo.cpp b/tests/auto/qbluetoothdeviceinfo/tst_qbluetoothdeviceinfo.cpp
index 6636f0cd..45b429db 100644
--- a/tests/auto/qbluetoothdeviceinfo/tst_qbluetoothdeviceinfo.cpp
+++ b/tests/auto/qbluetoothdeviceinfo/tst_qbluetoothdeviceinfo.cpp
@@ -64,6 +64,8 @@ private slots:
void tst_cached();
void tst_flags();
+
+ void tst_manufacturerData();
};
tst_QBluetoothDeviceInfo::tst_QBluetoothDeviceInfo()
@@ -447,21 +449,15 @@ void tst_QBluetoothDeviceInfo::tst_serviceUuids()
QBluetoothDeviceInfo deviceInfo;
QBluetoothDeviceInfo copyInfo = deviceInfo;
- QList<QBluetoothUuid> servicesList;
+ QVector<QBluetoothUuid> servicesList;
servicesList.append(QBluetoothUuid::L2cap);
servicesList.append(QBluetoothUuid::Rfcomm);
QVERIFY(servicesList.count() > 0);
- deviceInfo.setServiceUuids(servicesList.toVector());
+ deviceInfo.setServiceUuids(servicesList);
QVERIFY(deviceInfo.serviceUuids().count() > 0);
deviceInfo.setServiceUuids(QVector<QBluetoothUuid>());
QCOMPARE(deviceInfo.serviceUuids().count(), 0);
-
- deviceInfo.setServiceUuids(servicesList, QBluetoothDeviceInfo::DataComplete);
- QVERIFY(deviceInfo.serviceUuids().count() > 0);
- QVERIFY(deviceInfo != copyInfo);
-
- QVERIFY(deviceInfo.serviceUuidsCompleteness() == QBluetoothDeviceInfo::DataComplete);
}
void tst_QBluetoothDeviceInfo::tst_cached()
@@ -520,6 +516,38 @@ void tst_QBluetoothDeviceInfo::tst_flags()
QVERIFY(serviceResult.testFlag(QBluetoothDeviceInfo::CapturingService));
}
+void tst_QBluetoothDeviceInfo::tst_manufacturerData()
+{
+ const int manufacturerAVM = 0x1F;
+
+ QBluetoothDeviceInfo info;
+ QVERIFY(info.manufacturerIds().isEmpty());
+ QVERIFY(info.manufacturerData(manufacturerAVM).isNull());
+
+ QVERIFY(info.setManufacturerData(manufacturerAVM, QByteArray::fromHex("ABCD")));
+ QVERIFY(!info.setManufacturerData(manufacturerAVM, QByteArray::fromHex("ABCD")));
+ QCOMPARE(info.manufacturerData(manufacturerAVM), QByteArray::fromHex("ABCD"));
+ auto temp = info.manufacturerData();
+ QCOMPARE(temp.keys().count(), 1);
+ QCOMPARE(temp.values().count(), 1);
+ QCOMPARE(temp.values(), QList<QByteArray>() << QByteArray::fromHex("ABCD"));
+
+ QVERIFY(info.setManufacturerData(manufacturerAVM, QByteArray::fromHex("CDEF")));
+ QVERIFY(!info.setManufacturerData(manufacturerAVM, QByteArray::fromHex("ABCD")));
+ QVERIFY(!info.setManufacturerData(manufacturerAVM, QByteArray::fromHex("CDEF")));
+
+ temp = info.manufacturerData();
+ QCOMPARE(temp.keys().count(), 2);
+ QCOMPARE(temp.values().count(), 2);
+ auto list = temp.values();
+
+ QCOMPARE(QSet<QByteArray> (list.begin(), list.end()),
+ QSet<QByteArray>() << QByteArray::fromHex("ABCD") << QByteArray::fromHex("CDEF"));
+
+ // return latest entry
+ QCOMPARE(info.manufacturerData(manufacturerAVM), QByteArray::fromHex("CDEF"));
+}
+
QTEST_MAIN(tst_QBluetoothDeviceInfo)
#include "tst_qbluetoothdeviceinfo.moc"
diff --git a/tests/auto/qbluetoothlocaldevice/tst_qbluetoothlocaldevice.cpp b/tests/auto/qbluetoothlocaldevice/tst_qbluetoothlocaldevice.cpp
index ea1abef2..af7f0354 100644
--- a/tests/auto/qbluetoothlocaldevice/tst_qbluetoothlocaldevice.cpp
+++ b/tests/auto/qbluetoothlocaldevice/tst_qbluetoothlocaldevice.cpp
@@ -110,6 +110,9 @@ void tst_QBluetoothLocalDevice::tst_powerOn()
#ifdef Q_OS_OSX
QSKIP("Not possible on OS X");
#endif
+#ifdef Q_OS_WIN
+ QSKIP("Not possible on Windows");
+#endif
QBluetoothLocalDevice localDevice;
@@ -135,6 +138,9 @@ void tst_QBluetoothLocalDevice::tst_powerOff()
#ifdef Q_OS_OSX
QSKIP("Not possible on OS X");
#endif
+#ifdef Q_OS_WIN
+ QSKIP("Not possible on Windows");
+#endif
if (!QBluetoothLocalDevice::allDevices().count())
QSKIP("Skipping test due to missing Bluetooth device");
@@ -183,6 +189,9 @@ void tst_QBluetoothLocalDevice::tst_hostModes()
#ifdef Q_OS_OSX
QSKIP("Not possible on OS X");
#endif
+#ifdef Q_OS_WIN
+ QSKIP("Not possible on Windows");
+#endif
QFETCH(QBluetoothLocalDevice::HostMode, hostModeExpected);
QFETCH(bool, expectSignal);
@@ -340,6 +349,10 @@ void tst_QBluetoothLocalDevice::tst_pairDevice_data()
void tst_QBluetoothLocalDevice::tst_pairDevice()
{
+#ifdef Q_OS_WIN
+ QSKIP("Programmatic pairing not supported on Windows");
+#endif
+
QFETCH(QBluetoothAddress, deviceAddress);
QFETCH(QBluetoothLocalDevice::Pairing, pairingExpected);
QFETCH(int, pairingWaitTime);
diff --git a/tests/auto/qbluetoothserviceinfo/tst_qbluetoothserviceinfo.cpp b/tests/auto/qbluetoothserviceinfo/tst_qbluetoothserviceinfo.cpp
index 10c4bd3b..f89802d2 100644
--- a/tests/auto/qbluetoothserviceinfo/tst_qbluetoothserviceinfo.cpp
+++ b/tests/auto/qbluetoothserviceinfo/tst_qbluetoothserviceinfo.cpp
@@ -184,7 +184,7 @@ void tst_QBluetoothServiceInfo::tst_assignment_data()
bool l2cpSupported = true;
//some platforms don't support L2CP
-#ifdef QT_ANDROID_BLUETOOTH
+#if defined(QT_ANDROID_BLUETOOTH) || defined(Q_OS_WIN)
l2cpSupported = false;
#endif
QTest::newRow("assignment_data_l2cp")
diff --git a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
index 8ffc0480..ab393210 100644
--- a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
+++ b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp
@@ -451,14 +451,18 @@ void tst_QLowEnergyController::tst_concurrentDiscovery()
// 2. new controller to same device fails
{
+#ifdef Q_OS_DARWIN
+ QLowEnergyController control2(remoteDeviceInfo);
+#else
QLowEnergyController control2(remoteDevice);
+#endif
control2.connectToDevice();
{
QTRY_IMPL(control2.state() != QLowEnergyController::ConnectingState,
30000);
}
-#if defined(Q_OS_ANDROID) || QT_CONFIG(winrt_bt)
+#if defined(Q_OS_ANDROID) || defined(Q_OS_DARWIN) || QT_CONFIG(winrt_bt)
QCOMPARE(control.state(), QLowEnergyController::ConnectedState);
QCOMPARE(control2.state(), QLowEnergyController::ConnectedState);
control2.disconnectFromDevice();
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]);
}
}