From 72f0d4587bdbd8ade94f7f0b4888f89fb7e0e2ed Mon Sep 17 00:00:00 2001 From: arcan1s Date: Mon, 23 May 2016 11:04:12 +0300 Subject: [PATCH] more correct test class for extscripts --- .../plugin/awformatterconfig.cpp | 4 +- .../plugin/awformatterhelper.cpp | 4 +- .../awesome-widget/plugin/awkeyoperations.cpp | 15 ++++--- sources/awesomewidgets/abstractextitem.h | 3 ++ sources/awesomewidgets/awdatetimeformatter.h | 3 +- sources/awesomewidgets/awfloatformatter.h | 3 +- sources/awesomewidgets/awscriptformatter.h | 3 +- sources/awesomewidgets/extquotes.h | 3 +- sources/awesomewidgets/extscript.cpp | 4 ++ sources/awesomewidgets/extscript.h | 3 +- sources/awesomewidgets/extupgrade.h | 3 +- sources/awesomewidgets/extweather.h | 3 +- sources/awesomewidgets/graphicalitem.h | 3 +- sources/desktop-panel/plugin/dpadds.cpp | 16 ++++---- sources/extsysmon/extsysmon.cpp | 4 +- sources/test/testextscript.cpp | 40 ++++++++++++++----- sources/test/testextscript.h | 5 ++- 17 files changed, 73 insertions(+), 46 deletions(-) diff --git a/sources/awesome-widget/plugin/awformatterconfig.cpp b/sources/awesome-widget/plugin/awformatterconfig.cpp index f2f1471..e1f3d54 100644 --- a/sources/awesome-widget/plugin/awformatterconfig.cpp +++ b/sources/awesome-widget/plugin/awformatterconfig.cpp @@ -35,8 +35,8 @@ AWFormatterConfig::AWFormatterConfig(QWidget *parent, const QStringList keys) qCDebug(LOG_AW) << __PRETTY_FUNCTION__; ui->setupUi(this); - editButton = ui->buttonBox->addButton(i18n("Edit"), - QDialogButtonBox::ActionRole); + editButton + = ui->buttonBox->addButton(i18n("Edit"), QDialogButtonBox::ActionRole); init(); connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept())); diff --git a/sources/awesome-widget/plugin/awformatterhelper.cpp b/sources/awesome-widget/plugin/awformatterhelper.cpp index 37f3426..649cd0b 100644 --- a/sources/awesome-widget/plugin/awformatterhelper.cpp +++ b/sources/awesome-widget/plugin/awformatterhelper.cpp @@ -95,8 +95,8 @@ bool AWFormatterHelper::writeFormatters(const QStringList keys) const qCDebug(LOG_AW) << "Remove formatters" << keys; QString fileName = QString("%1/awesomewidgets/formatters/formatters.ini") - .arg(QStandardPaths::writableLocation( - QStandardPaths::GenericDataLocation)); + .arg(QStandardPaths::writableLocation( + QStandardPaths::GenericDataLocation)); QSettings settings(fileName, QSettings::IniFormat); qCInfo(LOG_AW) << "Configuration file" << fileName; diff --git a/sources/awesome-widget/plugin/awkeyoperations.cpp b/sources/awesome-widget/plugin/awkeyoperations.cpp index abab46c..1e23e18 100644 --- a/sources/awesome-widget/plugin/awkeyoperations.cpp +++ b/sources/awesome-widget/plugin/awkeyoperations.cpp @@ -194,12 +194,14 @@ QString AWKeyOperations::infoByKey(QString key) const else if (key.startsWith(QString("custom"))) return extScripts->itemByTag(key, QString("custom"))->uniq(); else if (key.contains(QRegExp(QString("^hdd[rw]")))) - return QString("%1").arg(m_devices[QString( - "disk")][key.remove(QRegExp(QString("hdd[rw]"))).toInt()]); + return QString("%1").arg( + m_devices[QString("disk")] + [key.remove(QRegExp(QString("hdd[rw]"))).toInt()]); else if (key.contains(QRegExp( QString("^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)")))) - return QString("%1").arg(m_devices[QString( - "mount")][key + return QString("%1").arg( + m_devices[QString("mount")] + [key .remove(QRegExp(QString( "^hdd([0-9]|mb|gb|freemb|freegb|totmb|totgb)"))) .toInt()]); @@ -207,8 +209,9 @@ QString AWKeyOperations::infoByKey(QString key) const return QString("%1").arg( m_devices[QString("hdd")][key.remove(QString("hddtemp")).toInt()]); else if (key.contains(QRegExp(QString("^(down|up)[0-9]")))) - return QString("%1").arg(m_devices[QString( - "net")][key.remove(QRegExp(QString("^(down|up)"))).toInt()]); + return QString("%1").arg( + m_devices[QString("net")] + [key.remove(QRegExp(QString("^(down|up)"))).toInt()]); else if (key.startsWith(QString("pkgcount"))) return extUpgrade->itemByTag(key, QString("pkgcount"))->uniq(); else if (key.contains(QRegExp(QString("(^|perc)(ask|bid|price)(chg|)")))) diff --git a/sources/awesomewidgets/abstractextitem.h b/sources/awesomewidgets/abstractextitem.h index 7c27fae..72ea07c 100644 --- a/sources/awesomewidgets/abstractextitem.h +++ b/sources/awesomewidgets/abstractextitem.h @@ -61,6 +61,9 @@ public: void setName(const QString _name = QString("none")); void setNumber(int _number = -1); +signals: + void dataReceived(const QVariantHash &data); + public slots: virtual void readConfiguration(); virtual QVariantHash run() = 0; diff --git a/sources/awesomewidgets/awdatetimeformatter.h b/sources/awesomewidgets/awdatetimeformatter.h index 0605fcf..30f328b 100644 --- a/sources/awesomewidgets/awdatetimeformatter.h +++ b/sources/awesomewidgets/awdatetimeformatter.h @@ -32,7 +32,8 @@ class AWDateTimeFormatter : public AWAbstractFormatter Q_PROPERTY(QString format READ format WRITE setFormat) public: - explicit AWDateTimeFormatter(QWidget *parent, const QString filePath = QString()); + explicit AWDateTimeFormatter(QWidget *parent, + const QString filePath = QString()); virtual ~AWDateTimeFormatter(); QString convert(const QVariant &_value) const; AWDateTimeFormatter *copy(const QString _fileName, const int _number); diff --git a/sources/awesomewidgets/awfloatformatter.h b/sources/awesomewidgets/awfloatformatter.h index 310cae9..7fcb6ef 100644 --- a/sources/awesomewidgets/awfloatformatter.h +++ b/sources/awesomewidgets/awfloatformatter.h @@ -37,7 +37,8 @@ class AWFloatFormatter : public AWAbstractFormatter Q_PROPERTY(double summand READ summand WRITE setSummand) public: - explicit AWFloatFormatter(QWidget *parent, const QString filePath = QString()); + explicit AWFloatFormatter(QWidget *parent, + const QString filePath = QString()); virtual ~AWFloatFormatter(); QString convert(const QVariant &_value) const; AWFloatFormatter *copy(const QString _fileName, const int _number); diff --git a/sources/awesomewidgets/awscriptformatter.h b/sources/awesomewidgets/awscriptformatter.h index f950990..ec9fdbf 100644 --- a/sources/awesomewidgets/awscriptformatter.h +++ b/sources/awesomewidgets/awscriptformatter.h @@ -35,7 +35,8 @@ class AWScriptFormatter : public AWAbstractFormatter Q_PROPERTY(QString program READ program) public: - explicit AWScriptFormatter(QWidget *parent, const QString filePath = QString()); + explicit AWScriptFormatter(QWidget *parent, + const QString filePath = QString()); virtual ~AWScriptFormatter(); QString convert(const QVariant &_value) const; AWScriptFormatter *copy(const QString _fileName, const int _number); diff --git a/sources/awesomewidgets/extquotes.h b/sources/awesomewidgets/extquotes.h index 3001bad..27cc49c 100644 --- a/sources/awesomewidgets/extquotes.h +++ b/sources/awesomewidgets/extquotes.h @@ -38,8 +38,7 @@ class ExtQuotes : public AbstractExtItem Q_PROPERTY(QString ticker READ ticker WRITE setTicker) public: - explicit ExtQuotes(QWidget *parent, - const QString filePath = QString()); + explicit ExtQuotes(QWidget *parent, const QString filePath = QString()); virtual ~ExtQuotes(); ExtQuotes *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extscript.cpp b/sources/awesomewidgets/extscript.cpp index d319459..9c06c85 100644 --- a/sources/awesomewidgets/extscript.cpp +++ b/sources/awesomewidgets/extscript.cpp @@ -263,6 +263,9 @@ QVariantHash ExtScript::run() { if (!isActive()) return value; + if (process->state() != QProcess::NotRunning) + qCWarning(LOG_LIB) << "Another process is already running" + << process->state(); if ((times == 1) && (process->state() == QProcess::NotRunning)) { QStringList cmdList; @@ -375,6 +378,7 @@ void ExtScript::updateValue() // filters value[tag(QString("custom"))] = applyFilters(strValue); + emit(dataReceived(value)); } diff --git a/sources/awesomewidgets/extscript.h b/sources/awesomewidgets/extscript.h index 283289b..a5fb1b7 100644 --- a/sources/awesomewidgets/extscript.h +++ b/sources/awesomewidgets/extscript.h @@ -39,8 +39,7 @@ class ExtScript : public AbstractExtItem public: enum class Redirect { stdout2stderr, nothing, stderr2stdout, swap }; - explicit ExtScript(QWidget *parent, - const QString filePath = QString()); + explicit ExtScript(QWidget *parent, const QString filePath = QString()); virtual ~ExtScript(); ExtScript *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extupgrade.h b/sources/awesomewidgets/extupgrade.h index 9a5a63b..0c94b45 100644 --- a/sources/awesomewidgets/extupgrade.h +++ b/sources/awesomewidgets/extupgrade.h @@ -36,8 +36,7 @@ class ExtUpgrade : public AbstractExtItem Q_PROPERTY(int null READ null WRITE setNull) public: - explicit ExtUpgrade(QWidget *parent, - const QString filePath = QString()); + explicit ExtUpgrade(QWidget *parent, const QString filePath = QString()); virtual ~ExtUpgrade(); ExtUpgrade *copy(const QString _fileName, const int _number); // get methods diff --git a/sources/awesomewidgets/extweather.h b/sources/awesomewidgets/extweather.h index 825ae41..f02cebb 100644 --- a/sources/awesomewidgets/extweather.h +++ b/sources/awesomewidgets/extweather.h @@ -42,8 +42,7 @@ class ExtWeather : public AbstractExtItem Q_PROPERTY(int ts READ ts WRITE setTs) public: - explicit ExtWeather(QWidget *parent, - const QString filePath = QString()); + explicit ExtWeather(QWidget *parent, const QString filePath = QString()); virtual ~ExtWeather(); ExtWeather *copy(const QString _fileName, const int _number); QString weatherFromInt(const int _id) const; diff --git a/sources/awesomewidgets/graphicalitem.h b/sources/awesomewidgets/graphicalitem.h index de512c9..b5a6c30 100644 --- a/sources/awesomewidgets/graphicalitem.h +++ b/sources/awesomewidgets/graphicalitem.h @@ -52,8 +52,7 @@ public: enum class Direction { LeftToRight = 0, RightToLeft = 1 }; enum class Type { Horizontal, Vertical, Circle, Graph, Bars }; - explicit GraphicalItem(QWidget *parent, - const QString filePath = QString()); + explicit GraphicalItem(QWidget *parent, const QString filePath = QString()); virtual ~GraphicalItem(); GraphicalItem *copy(const QString _fileName, const int _number); QString image(const QVariant &value); diff --git a/sources/desktop-panel/plugin/dpadds.cpp b/sources/desktop-panel/plugin/dpadds.cpp index 21a551c..ee25dae 100644 --- a/sources/desktop-panel/plugin/dpadds.cpp +++ b/sources/desktop-panel/plugin/dpadds.cpp @@ -156,22 +156,22 @@ QString DPAdds::toolTipImage(const int desktop) const std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(), [&toolTipScene, &screen](WindowData data) { QPixmap desktop = screen->grabWindow(data.id); - toolTipScene->addPixmap(desktop) - ->setOffset(data.rect.left(), data.rect.top()); + toolTipScene->addPixmap(desktop)->setOffset( + data.rect.left(), data.rect.top()); }); } else if (m_tooltipType == QString("windows")) { QScreen *screen = QGuiApplication::primaryScreen(); std::for_each(info.desktopsData.cbegin(), info.desktopsData.cend(), [&toolTipScene, &screen](WindowData data) { QPixmap desktop = screen->grabWindow(data.id); - toolTipScene->addPixmap(desktop) - ->setOffset(data.rect.left(), data.rect.top()); + toolTipScene->addPixmap(desktop)->setOffset( + data.rect.left(), data.rect.top()); }); std::for_each(info.windowsData.cbegin(), info.windowsData.cend(), [&toolTipScene, &screen](WindowData data) { QPixmap window = screen->grabWindow(data.id); - toolTipScene->addPixmap(window) - ->setOffset(data.rect.left(), data.rect.top()); + toolTipScene->addPixmap(window)->setOffset( + data.rect.left(), data.rect.top()); }); } @@ -232,8 +232,8 @@ QString DPAdds::valueByKey(const QString key, int desktop) const .arg(currentMark, m_mark.count(), QLatin1Char(' ')) .replace(QString(" "), QString(" ")); else if (key == QString("name")) - return KWindowSystem::desktopName(desktop) - .replace(QString(" "), QString(" ")); + return KWindowSystem::desktopName(desktop).replace(QString(" "), + QString(" ")); else if (key == QString("number")) return QString::number(desktop); else if (key == QString("total")) diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp index 8727df8..6b61d34 100644 --- a/sources/extsysmon/extsysmon.cpp +++ b/sources/extsysmon/extsysmon.cpp @@ -125,8 +125,8 @@ void ExtendedSysMon::readConfiguration() settings.beginGroup(QString("Configuration")); rawConfig[QString("ACPIPATH")] - = settings.value(QString("ACPIPATH"), - QString("/sys/class/power_supply/")) + = settings + .value(QString("ACPIPATH"), QString("/sys/class/power_supply/")) .toString(); rawConfig[QString("GPUDEV")] = settings.value(QString("GPUDEV"), QString("auto")).toString(); diff --git a/sources/test/testextscript.cpp b/sources/test/testextscript.cpp index c6fe839..d397550 100644 --- a/sources/test/testextscript.cpp +++ b/sources/test/testextscript.cpp @@ -29,11 +29,12 @@ void TestExtScript::initTestCase() extScript = new ExtScript(nullptr); extScript->setInterval(1); extScript->setExecutable(QString("hello world")); + extScript->setNumber(0); extScript->setRedirect(ExtScript::Redirect::stderr2stdout); extScript->setPrefix(QString("echo")); - while (true) - qDebug() <run(); + QVariantHash value = extScript->run(); + qDebug() << "Init values in first run" << value; } @@ -46,26 +47,43 @@ void TestExtScript::cleanupTestCase() void TestExtScript::test_values() { QCOMPARE(extScript->interval(), 1); + QCOMPARE(extScript->number(), 0); QCOMPARE(extScript->executable(), QString("hello world")); + QCOMPARE(extScript->strRedirect(), QString("stderr2stdout")); QCOMPARE(extScript->prefix(), QString("echo")); } -void TestExtScript::test_firstRun() +void TestExtScript::test_run() { + // init spy + QSignalSpy spy(extScript, SIGNAL(dataReceived(const QVariantHash &))); QVariantHash firstValue = extScript->run(); - qDebug() << firstValue; - QTest::qSleep(20000); - QCOMPARE(firstValue[extScript->tag(QString("custom"))].toString(), QString("")); - QTest::qSleep(20000); + QCOMPARE(firstValue[extScript->tag(QString("custom"))].toString(), + QString("")); + + // check values + QVERIFY(spy.wait(5000)); + QList arguments = spy.takeFirst(); + QCOMPARE( + arguments.at(0).toHash()[extScript->tag(QString("custom"))].toString(), + QString("\nhello world")); } -void TestExtScript::test_secondRun() +void TestExtScript::test_filters() { - QVariantHash secondValue = extScript->run(); - qDebug() << secondValue; - QCOMPARE(secondValue[extScript->tag(QString("custom"))].toString(), QString("hello world")); + extScript->setFilters(QStringList() << QString("newline")); + // init spy + QSignalSpy spy(extScript, SIGNAL(dataReceived(const QVariantHash &))); + extScript->run(); + + // check values + QVERIFY(spy.wait(5000)); + QList arguments = spy.takeFirst(); + QCOMPARE( + arguments.at(0).toHash()[extScript->tag(QString("custom"))].toString(), + QString("
hello world")); } diff --git a/sources/test/testextscript.h b/sources/test/testextscript.h index 5422d76..b9cc3b5 100644 --- a/sources/test/testextscript.h +++ b/sources/test/testextscript.h @@ -24,6 +24,7 @@ class ExtScript; +class QSignalSpy; class TestExtScript : public QObject { @@ -35,8 +36,8 @@ private slots: void cleanupTestCase(); // test void test_values(); - void test_firstRun(); - void test_secondRun(); + void test_run(); + void test_filters(); private: ExtScript *extScript = nullptr;