diff options
Diffstat (limited to 'tests')
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]); } } |