12 changed files with 349 additions and 20 deletions
@ -0,0 +1,66 @@ |
|||||||
|
/****************************************************************************
|
||||||
|
* |
||||||
|
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||||
|
* |
||||||
|
* QGroundControl is licensed according to the terms in the file |
||||||
|
* COPYING.md in the root of the source code directory. |
||||||
|
* |
||||||
|
****************************************************************************/ |
||||||
|
|
||||||
|
#include "LogDownloadTest.h" |
||||||
|
#include "LogDownloadController.h" |
||||||
|
#include "MockLink.h" |
||||||
|
|
||||||
|
#include <QDir> |
||||||
|
|
||||||
|
LogDownloadTest::LogDownloadTest(void) |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void LogDownloadTest::downloadTest(void) |
||||||
|
{ |
||||||
|
|
||||||
|
_connectMockLink(MAV_AUTOPILOT_PX4); |
||||||
|
|
||||||
|
LogDownloadController* controller = new LogDownloadController(true); |
||||||
|
|
||||||
|
_rgLogDownloadControllerSignals[requestingListChangedSignalIndex] = SIGNAL(requestingListChanged()); |
||||||
|
_rgLogDownloadControllerSignals[downloadingLogsChangedSignalIndex] = SIGNAL(downloadingLogsChanged()); |
||||||
|
_rgLogDownloadControllerSignals[modelChangedSignalIndex] = SIGNAL(modelChanged()); |
||||||
|
|
||||||
|
_multiSpyLogDownloadController = new MultiSignalSpy(); |
||||||
|
QVERIFY(_multiSpyLogDownloadController->init(controller, _rgLogDownloadControllerSignals, _cLogDownloadControllerSignals)); |
||||||
|
|
||||||
|
controller->refresh(); |
||||||
|
QVERIFY(_multiSpyLogDownloadController->waitForSignalByIndex(requestingListChangedSignalIndex, 10000)); |
||||||
|
_multiSpyLogDownloadController->clearAllSignals(); |
||||||
|
if (controller->requestingList()) { |
||||||
|
QVERIFY(_multiSpyLogDownloadController->waitForSignalByIndex(requestingListChangedSignalIndex, 10000)); |
||||||
|
QCOMPARE(controller->requestingList(), false); |
||||||
|
} |
||||||
|
_multiSpyLogDownloadController->clearAllSignals(); |
||||||
|
|
||||||
|
QGCLogModel* model = controller->model(); |
||||||
|
QVERIFY(model); |
||||||
|
qDebug() << model->count(); |
||||||
|
(*model)[0]->setSelected(true); |
||||||
|
|
||||||
|
QString downloadTo = QDir::currentPath(); |
||||||
|
qDebug() << "download to:" << downloadTo; |
||||||
|
controller->downloadToDirectory(downloadTo); |
||||||
|
QVERIFY(_multiSpyLogDownloadController->waitForSignalByIndex(downloadingLogsChangedSignalIndex, 10000)); |
||||||
|
_multiSpyLogDownloadController->clearAllSignals(); |
||||||
|
if (controller->downloadingLogs()) { |
||||||
|
QVERIFY(_multiSpyLogDownloadController->waitForSignalByIndex(downloadingLogsChangedSignalIndex, 10000)); |
||||||
|
QCOMPARE(controller->downloadingLogs(), false); |
||||||
|
} |
||||||
|
_multiSpyLogDownloadController->clearAllSignals(); |
||||||
|
|
||||||
|
QString downloadFile = QDir(downloadTo).filePath("log_0_UnknownDate.px4log"); |
||||||
|
QVERIFY(UnitTest::fileCompare(downloadFile, _mockLink->logDownloadFile())); |
||||||
|
|
||||||
|
QFile::remove(downloadFile); |
||||||
|
|
||||||
|
delete controller; |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
/****************************************************************************
|
||||||
|
* |
||||||
|
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||||
|
* |
||||||
|
* QGroundControl is licensed according to the terms in the file |
||||||
|
* COPYING.md in the root of the source code directory. |
||||||
|
* |
||||||
|
****************************************************************************/ |
||||||
|
|
||||||
|
#ifndef LogDownloadTest_H |
||||||
|
#define LogDownloadTest_H |
||||||
|
|
||||||
|
#include "UnitTest.h" |
||||||
|
#include "MultiSignalSpy.h" |
||||||
|
|
||||||
|
class LogDownloadTest : public UnitTest |
||||||
|
{ |
||||||
|
Q_OBJECT |
||||||
|
|
||||||
|
public: |
||||||
|
LogDownloadTest(void); |
||||||
|
|
||||||
|
private slots: |
||||||
|
//void init(void);
|
||||||
|
//void cleanup(void) { _cleanup(); }
|
||||||
|
|
||||||
|
void downloadTest(void); |
||||||
|
|
||||||
|
private: |
||||||
|
// LogDownloadController signals
|
||||||
|
|
||||||
|
enum { |
||||||
|
requestingListChangedSignalIndex = 0, |
||||||
|
downloadingLogsChangedSignalIndex, |
||||||
|
modelChangedSignalIndex, |
||||||
|
logDownloadControllerMaxSignalIndex |
||||||
|
}; |
||||||
|
|
||||||
|
enum { |
||||||
|
requestingListChangedSignalMask = 1 << requestingListChangedSignalIndex, |
||||||
|
downloadingLogsChangedSignalMask = 1 << downloadingLogsChangedSignalIndex, |
||||||
|
modelChangedSignalIndexMask = 1 << modelChangedSignalIndex, |
||||||
|
}; |
||||||
|
|
||||||
|
MultiSignalSpy* _multiSpyLogDownloadController; |
||||||
|
static const size_t _cLogDownloadControllerSignals = logDownloadControllerMaxSignalIndex; |
||||||
|
const char* _rgLogDownloadControllerSignals[_cLogDownloadControllerSignals]; |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
#endif |
Loading…
Reference in new issue