summaryrefslogtreecommitdiffstats
path: root/tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp')
-rw-r--r--tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp360
1 files changed, 0 insertions, 360 deletions
diff --git a/tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp b/tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp
deleted file mode 100644
index 6b0481a5..00000000
--- a/tests/auto/qbluetoothtransfermanager/tst_qbluetoothtransfermanager.cpp
+++ /dev/null
@@ -1,360 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtBluetooth module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-
-#include <QDebug>
-#include <QMap>
-#include <QTextStream>
-
-#include <qbluetoothtransferrequest.h>
-#include <qbluetoothtransfermanager.h>
-#include <qbluetoothtransferreply.h>
-#include <qbluetoothaddress.h>
-#include <qbluetoothlocaldevice.h>
-
-#include <qbluetoothdeviceinfo.h>
-#include <qbluetoothserviceinfo.h>
-#include <qbluetoothservicediscoveryagent.h>
-
-/*
- * Some tests require a Bluetooth device within the vincinity of the test
- * machine executing this test. The tests require manual interaction
- * as pairing and file transfer requests must be accepted.
- * The remote device's address must be passed
- * via the BT_TEST_DEVICE env variable. The remote device must be
- * discoverable and the object push service must be accessible. Any
- **/
-
-QT_USE_NAMESPACE
-
-typedef QMap<QBluetoothTransferRequest::Attribute,QVariant> tst_QBluetoothTransferManager_QParameterMap;
-Q_DECLARE_METATYPE(tst_QBluetoothTransferManager_QParameterMap)
-
-static const int MaxConnectTime = 60 * 1000; // 1 minute in ms
-
-class tst_QBluetoothTransferManager : public QObject
-{
- Q_OBJECT
-
-public:
- tst_QBluetoothTransferManager();
- ~tst_QBluetoothTransferManager();
-
-private slots:
- void initTestCase();
-
- void tst_construction();
-
- void tst_request_data();
- void tst_request();
-
- void tst_sendFile_data();
- void tst_sendFile();
-
- void tst_sendBuffer_data();
- void tst_sendBuffer();
-
- void tst_sendNullPointer();
-private:
- QBluetoothAddress remoteAddress;
-};
-
-tst_QBluetoothTransferManager::tst_QBluetoothTransferManager()
-{
-}
-
-tst_QBluetoothTransferManager::~tst_QBluetoothTransferManager()
-{
-}
-
-void tst_QBluetoothTransferManager::initTestCase()
-{
- const QString remote = qgetenv("BT_TEST_DEVICE");
- if (!remote.isEmpty()) {
- remoteAddress = QBluetoothAddress(remote);
- QVERIFY(!remoteAddress.isNull());
- qWarning() << "Using remote device " << remote << " for testing. Ensure that the device is discoverable for pairing requests";
- } else {
- qWarning() << "Not using any remote device for testing. Set BT_TEST_DEVICE env to run manual tests involving a remote device";
- QSKIP("Remote upload test not possible. Set BT_TEST_DEVICE");
- }
-
- if (!QBluetoothLocalDevice::allDevices().count())
- QSKIP("Skipping test due to missing Bluetooth device");
-
- // start Bluetooth if not started
- QBluetoothLocalDevice *device = new QBluetoothLocalDevice();
- device->powerOn();
- delete device;
-}
-
-void tst_QBluetoothTransferManager::tst_construction()
-{
- QBluetoothTransferManager *manager = new QBluetoothTransferManager();
-
- QVERIFY(manager);
- delete manager;
-}
-
-void tst_QBluetoothTransferManager::tst_request_data()
-{
- QTest::addColumn<QBluetoothAddress>("address");
- QTest::addColumn<QMap<QBluetoothTransferRequest::Attribute, QVariant> >("parameters");
-
- QMap<QBluetoothTransferRequest::Attribute, QVariant> inparameters;
- inparameters.insert(QBluetoothTransferRequest::DescriptionAttribute, "Description");
- inparameters.insert(QBluetoothTransferRequest::LengthAttribute, QVariant(1024));
- inparameters.insert(QBluetoothTransferRequest::TypeAttribute, "OPP");
- inparameters.insert(QBluetoothTransferRequest::NameAttribute, "name");
- inparameters.insert(QBluetoothTransferRequest::TimeAttribute, QDateTime::currentDateTime());
-
- QTest::newRow("TESTDATA") << QBluetoothAddress("00:11:22:33:44:55:66") << inparameters;
-}
-
-void tst_QBluetoothTransferManager::tst_request()
-{
- QFETCH(QBluetoothAddress, address);
- QFETCH(tst_QBluetoothTransferManager_QParameterMap, parameters);
-
- QBluetoothTransferRequest transferRequest(address);
- const QList<QBluetoothTransferRequest::Attribute> attributes = parameters.keys();
- for (QBluetoothTransferRequest::Attribute key : attributes)
- QCOMPARE(transferRequest.attribute(key), QVariant());
-
- for (QBluetoothTransferRequest::Attribute key : attributes)
- transferRequest.setAttribute((QBluetoothTransferRequest::Attribute)key, parameters[key]);
-
- QCOMPARE(transferRequest.address(), address);
- for (QBluetoothTransferRequest::Attribute key : attributes)
- QCOMPARE(transferRequest.attribute(key), parameters[key]);
-
- //test copy constructor
- QBluetoothTransferRequest constructorCopy = transferRequest;
- QVERIFY(constructorCopy == transferRequest);
- QVERIFY(!(constructorCopy != transferRequest));
- QCOMPARE(constructorCopy.address(), address);
- for (QBluetoothTransferRequest::Attribute key : attributes)
- QCOMPARE(constructorCopy.attribute(key), parameters[key]);
-
- //test assignment operator
- QBluetoothTransferRequest request;
- QVERIFY(request.address().isNull());
- for (QBluetoothTransferRequest::Attribute key : attributes)
- QCOMPARE(request.attribute(key), QVariant());
- request = transferRequest;
- QCOMPARE(request.address(), address);
- for (QBluetoothTransferRequest::Attribute key : attributes)
- QCOMPARE(request.attribute(key), parameters[key]);
-
- //test that it's a true and independent copy
- constructorCopy.setAttribute(QBluetoothTransferRequest::DescriptionAttribute, "newDescription");
- request.setAttribute(QBluetoothTransferRequest::TypeAttribute, "FTP");
-
- QCOMPARE(constructorCopy.attribute(QBluetoothTransferRequest::DescriptionAttribute).toString(),QString("newDescription"));
- QCOMPARE(request.attribute(QBluetoothTransferRequest::DescriptionAttribute).toString(),QString("Description"));
- QCOMPARE(transferRequest.attribute(QBluetoothTransferRequest::DescriptionAttribute).toString(),QString("Description"));
-
- QCOMPARE(constructorCopy.attribute(QBluetoothTransferRequest::TypeAttribute).toString(),QString("OPP"));
- QCOMPARE(request.attribute(QBluetoothTransferRequest::TypeAttribute).toString(),QString("FTP"));
- QCOMPARE(transferRequest.attribute(QBluetoothTransferRequest::TypeAttribute).toString(),QString("OPP"));
-}
-
-void tst_QBluetoothTransferManager::tst_sendFile_data()
-{
- QTest::addColumn<QBluetoothAddress>("deviceAddress");
- QTest::addColumn<bool>("expectSuccess");
- QTest::addColumn<bool>("isInvalidFile");
-
- QTest::newRow("Push to remote test device") << remoteAddress << true << false;
- QTest::newRow("Push of non-existing file") << remoteAddress << false << true;
- QTest::newRow("Push to invalid address") << QBluetoothAddress() << false << false;
- QTest::newRow("Push to non-existend device") << QBluetoothAddress("11:22:33:44:55:66") << false << false;
-
-}
-
-void tst_QBluetoothTransferManager::tst_sendFile()
-{
- QFETCH(QBluetoothAddress, deviceAddress);
- QFETCH(bool, expectSuccess);
- QFETCH(bool, isInvalidFile);
-
- QBluetoothLocalDevice dev;
- if (expectSuccess) {
- dev.requestPairing(deviceAddress, QBluetoothLocalDevice::Paired);
- QTest::qWait(5000);
- QCOMPARE(dev.pairingStatus(deviceAddress), QBluetoothLocalDevice::Paired);
- }
-
- QBluetoothTransferRequest request(deviceAddress);
- QCOMPARE(request.address(), deviceAddress);
-
- QBluetoothTransferManager manager;
- QString fileHandle;
- if (!isInvalidFile) {
- fileHandle = QFINDTESTDATA("testfile.txt");
- QVERIFY(!fileHandle.isEmpty());
- } else {
- fileHandle = ("arbitraryFileName.txt"); //file doesn't exist
- }
- QFile f(fileHandle);
- QCOMPARE(f.exists(), !isInvalidFile);
-
-
- qDebug() << "Transferring file to " << deviceAddress.toString();
- if (expectSuccess)
- qDebug() << "Please accept Object push request on remote device";
- QBluetoothTransferReply* reply = manager.put(request, &f);
- QSignalSpy finishedSpy(reply, SIGNAL(finished(QBluetoothTransferReply*)));
- QSignalSpy progressSpy(reply, SIGNAL(transferProgress(qint64,qint64)));
- QSignalSpy errorSpy(reply, SIGNAL(error(QBluetoothTransferReply::TransferError)));
-
- QCOMPARE(reply->request(), request);
- QVERIFY(reply->manager() == &manager);
- QVERIFY(!reply->isFinished());
- QVERIFY(reply->isRunning());
-
- const int maxWaitTime = 20 * 1000; //20s
- for (int time = 0;
- time<maxWaitTime && (finishedSpy.count()==0);
- time+=1000) {
- QTest::qWait(1000); //if interval
- }
-
- QVERIFY(finishedSpy.count()>0);
- if (expectSuccess) {
- QVERIFY(progressSpy.count()>0);
- QCOMPARE(reply->error(), QBluetoothTransferReply::NoError);
- QCOMPARE(reply->errorString(), QString());
- QVERIFY(errorSpy.isEmpty());
- } else {
- QVERIFY(progressSpy.count() == 0);
- if (isInvalidFile)
- QVERIFY(reply->error() == QBluetoothTransferReply::FileNotFoundError);
- else
- QVERIFY(reply->error() != QBluetoothTransferReply::NoError);
- QVERIFY(!reply->errorString().isEmpty());
- QCOMPARE(errorSpy.count(), 1);
- }
-
- QVERIFY(reply->isFinished());
- QVERIFY(!reply->isRunning());
-}
-
-void tst_QBluetoothTransferManager::tst_sendBuffer_data()
-{
-
- QTest::addColumn<QBluetoothAddress>("deviceAddress");
- QTest::addColumn<bool>("expectSuccess");
- QTest::addColumn<QByteArray>("data");
-
- QTest::newRow("Push to remote test device") << remoteAddress << true <<
- QByteArray("This is a very long byte array which we are going to access via a QBuffer"); ;
- QTest::newRow("Push to invalid address") << QBluetoothAddress() << false << QByteArray("test");
- QTest::newRow("Push to non-existend device") << QBluetoothAddress("11:22:33:44:55:66") << false << QByteArray("test");
-}
-
-
-
-void tst_QBluetoothTransferManager::tst_sendBuffer()
-{
- QFETCH(QBluetoothAddress, deviceAddress);
- QFETCH(bool, expectSuccess);
- QFETCH(QByteArray, data);
-
- QBuffer buffer;
- buffer.setData(data);
- buffer.open(QIODevice::ReadOnly);
- buffer.seek(0);
-
- QBluetoothLocalDevice dev;
- if (expectSuccess) {
- dev.requestPairing(deviceAddress, QBluetoothLocalDevice::Paired);
- QTest::qWait(2000);
- QCOMPARE(dev.pairingStatus(deviceAddress), QBluetoothLocalDevice::Paired);
- }
-
- QBluetoothTransferRequest request(deviceAddress);
- QCOMPARE(request.address(), deviceAddress);
-
- QBluetoothTransferManager manager;
-
- qDebug() << "Transferring test buffer to " << deviceAddress.toString();
- if (expectSuccess)
- qDebug() << "Please accept Object push request on remote device";
- QBluetoothTransferReply* reply = manager.put(request, &buffer);
- QSignalSpy finishedSpy(reply, SIGNAL(finished(QBluetoothTransferReply*)));
- QSignalSpy progressSpy(reply, SIGNAL(transferProgress(qint64,qint64)));
- QSignalSpy errorSpy(reply, SIGNAL(error(QBluetoothTransferReply::TransferError)));
-
- QCOMPARE(reply->request(), request);
- QVERIFY(reply->manager() == &manager);
- QVERIFY(!reply->isFinished());
- QVERIFY(reply->isRunning());
-
- const int maxWaitTime = 20 * 1000; //20s
- for (int time = 0;
- time<maxWaitTime && (finishedSpy.count()==0);
- time+=10000) {
- QTest::qWait(10000); //if interval
- }
-
- QVERIFY(finishedSpy.count()>0);
- if (expectSuccess) {
- QVERIFY(progressSpy.count()>0);
- QVERIFY(errorSpy.isEmpty());
- QCOMPARE(reply->error(), QBluetoothTransferReply::NoError);
- QCOMPARE(reply->errorString(), QString());
- } else {
- QVERIFY(progressSpy.count() == 0);
- QVERIFY(reply->error() != QBluetoothTransferReply::NoError);
- QVERIFY(!reply->errorString().isEmpty());
- QCOMPARE(errorSpy.count(), 1);
- }
-
- QVERIFY(reply->isFinished());
- QVERIFY(!reply->isRunning());
-}
-
-void tst_QBluetoothTransferManager::tst_sendNullPointer()
-{
- QBluetoothTransferRequest request(remoteAddress);
- QBluetoothTransferManager manager;
- QBluetoothTransferReply *reply = manager.put(request, 0);
-
- QVERIFY(reply);
- QCOMPARE(reply->isFinished(), true);
- QCOMPARE(reply->isRunning(), false);
- QCOMPARE(reply->manager(), &manager);
- QCOMPARE(reply->request(), request);
- QCOMPARE(reply->error(), QBluetoothTransferReply::FileNotFoundError);
-}
-
-QTEST_MAIN(tst_QBluetoothTransferManager)
-
-#include "tst_qbluetoothtransfermanager.moc"