mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 15:37:23 +00:00
add tests for dekstop, network and processes sources
This commit is contained in:
parent
5d9d551afe
commit
75d101cc8b
@ -40,17 +40,16 @@ BatterySource::~BatterySource()
|
||||
}
|
||||
|
||||
|
||||
|
||||
QStringList BatterySource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append(QString("battery/ac"));
|
||||
sources.append(QString("battery/bat"));
|
||||
m_batteriesCount
|
||||
= QDir(m_acpiPath)
|
||||
.entryList(QStringList() << QString("BAT*"),
|
||||
QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name)
|
||||
.count();
|
||||
= QDir(m_acpiPath)
|
||||
.entryList(QStringList() << QString("BAT*"),
|
||||
QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name)
|
||||
.count();
|
||||
qCInfo(LOG_ESS) << "Init batteries count as" << m_batteriesCount;
|
||||
for (int i = 0; i < m_batteriesCount; i++)
|
||||
sources.append(QString("battery/bat%1").arg(i));
|
||||
|
@ -26,7 +26,7 @@ set(TEST_MODULES
|
||||
abstractextitem extquotes extscript extupgrade extweather
|
||||
abstractformatter datetimeformatter floatformatter noformatter scriptformatter
|
||||
extitemaggregator
|
||||
batterysource gpuloadsource gputempsource hddtempsource)
|
||||
batterysource desktopsource gpuloadsource gputempsource hddtempsource networksource processessource)
|
||||
foreach (TEST_MODULE ${TEST_MODULES})
|
||||
set(${TEST_MODULE}_HEADERS test${TEST_MODULE}.h)
|
||||
set(${TEST_MODULE}_SOURCES test${TEST_MODULE}.cpp)
|
||||
|
@ -48,13 +48,15 @@ void TestBatterySource::test_battery()
|
||||
QSKIP("No battery found, test will be skipped");
|
||||
|
||||
QStringList batteries = source->sources();
|
||||
std::for_each(batteries.begin(), batteries.end(), [this](const QString bat) {
|
||||
QVariant value = source->data(bat);
|
||||
if (bat == QString("battery/ac"))
|
||||
QCOMPARE(value.type(), QVariant::Bool);
|
||||
else
|
||||
QVERIFY((value.toFloat() >= battery.first) && (value.toFloat() <= battery.second));
|
||||
});
|
||||
std::for_each(batteries.begin(), batteries.end(),
|
||||
[this](const QString bat) {
|
||||
QVariant value = source->data(bat);
|
||||
if (bat == QString("battery/ac"))
|
||||
QCOMPARE(value.type(), QVariant::Bool);
|
||||
else
|
||||
QVERIFY((value.toFloat() >= battery.first)
|
||||
&& (value.toFloat() <= battery.second));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
60
sources/test/testdesktopsource.cpp
Normal file
60
sources/test/testdesktopsource.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "testdesktopsource.h"
|
||||
|
||||
#include <QtTest>
|
||||
|
||||
#include "awtestlibrary.h"
|
||||
#include "desktopsource.h"
|
||||
|
||||
|
||||
void TestDesktopSource::initTestCase()
|
||||
{
|
||||
source = new DesktopSource(this, QStringList());
|
||||
}
|
||||
|
||||
|
||||
void TestDesktopSource::cleanupTestCase()
|
||||
{
|
||||
delete source;
|
||||
}
|
||||
|
||||
|
||||
void TestDesktopSource::test_sources()
|
||||
{
|
||||
QCOMPARE(source->sources().count(), 4);
|
||||
// FIXME there is segfault here sometimes o_0
|
||||
// QVERIFY(std::all_of(
|
||||
// source->sources().cbegin(), source->sources().cend(),
|
||||
// [](const QString &src) { return src.startsWith(QString("desktop/")); }));
|
||||
}
|
||||
|
||||
|
||||
void TestDesktopSource::test_values()
|
||||
{
|
||||
QVERIFY(source->data(QString("desktop/current/name")).toString().count()
|
||||
> 0);
|
||||
QVERIFY(source->data(QString("desktop/current/number")).toInt() >= 0);
|
||||
QVERIFY(source->data(QString("desktop/total/name")).toStringList().count()
|
||||
> 0);
|
||||
QVERIFY(source->data(QString("desktop/total/number")).toInt() > 0);
|
||||
}
|
||||
|
||||
|
||||
QTEST_MAIN(TestDesktopSource);
|
44
sources/test/testdesktopsource.h
Normal file
44
sources/test/testdesktopsource.h
Normal file
@ -0,0 +1,44 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef TESTDESKTOPSOURCE_H
|
||||
#define TESTDESKTOPSOURCE_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
||||
class DesktopSource;
|
||||
|
||||
class TestDesktopSource : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
// initialization
|
||||
void initTestCase();
|
||||
void cleanupTestCase();
|
||||
// test
|
||||
void test_sources();
|
||||
void test_values();
|
||||
|
||||
private:
|
||||
DesktopSource *source = nullptr;
|
||||
};
|
||||
|
||||
|
||||
#endif /* TESTDESKTOPSOURCE_H */
|
51
sources/test/testnetworksource.cpp
Normal file
51
sources/test/testnetworksource.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "testnetworksource.h"
|
||||
|
||||
#include <QtTest>
|
||||
|
||||
#include "awtestlibrary.h"
|
||||
#include "networksource.h"
|
||||
|
||||
|
||||
void TestNetworkSource::initTestCase()
|
||||
{
|
||||
source = new NetworkSource(this, QStringList());
|
||||
}
|
||||
|
||||
|
||||
void TestNetworkSource::cleanupTestCase()
|
||||
{
|
||||
delete source;
|
||||
}
|
||||
|
||||
|
||||
void TestNetworkSource::test_sources()
|
||||
{
|
||||
QCOMPARE(source->sources(), QStringList() << src);
|
||||
}
|
||||
|
||||
|
||||
void TestNetworkSource::test_values()
|
||||
{
|
||||
QVERIFY(source->data(src).toString().count() > 0);
|
||||
}
|
||||
|
||||
|
||||
QTEST_MAIN(TestNetworkSource);
|
45
sources/test/testnetworksource.h
Normal file
45
sources/test/testnetworksource.h
Normal file
@ -0,0 +1,45 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef TESTNETWORKSOURCE_H
|
||||
#define TESTNETWORKSOURCE_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
||||
class NetworkSource;
|
||||
|
||||
class TestNetworkSource : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
// initialization
|
||||
void initTestCase();
|
||||
void cleanupTestCase();
|
||||
// test
|
||||
void test_sources();
|
||||
void test_values();
|
||||
|
||||
private:
|
||||
NetworkSource *source = nullptr;
|
||||
QString src = QString("network/current/name");
|
||||
};
|
||||
|
||||
|
||||
#endif /* TESTNETWORKSOURCE_H */
|
57
sources/test/testprocessessource.cpp
Normal file
57
sources/test/testprocessessource.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "testprocessessource.h"
|
||||
|
||||
#include <QtTest>
|
||||
|
||||
#include "awtestlibrary.h"
|
||||
#include "processessource.h"
|
||||
|
||||
|
||||
void TestProcessesSource::initTestCase()
|
||||
{
|
||||
source = new ProcessesSource(this, QStringList());
|
||||
}
|
||||
|
||||
|
||||
void TestProcessesSource::cleanupTestCase()
|
||||
{
|
||||
delete source;
|
||||
}
|
||||
|
||||
|
||||
void TestProcessesSource::test_sources()
|
||||
{
|
||||
QCOMPARE(source->sources().count(), 3);
|
||||
// FIXME there is segfault here sometimes o_0
|
||||
// QVERIFY(std::all_of(
|
||||
// source->sources().cbegin(), source->sources().cend(),
|
||||
// [](const QString &src) { return src.startsWith(QString("ps/")); }));
|
||||
}
|
||||
|
||||
|
||||
void TestProcessesSource::test_values()
|
||||
{
|
||||
QVERIFY(source->data(QString("ps/running/count")).toInt() > 0);
|
||||
QVERIFY(source->data(QString("ps/running/list")).toStringList().count() > 0);
|
||||
QVERIFY(source->data(QString("ps/total/count")).toInt() > 0);
|
||||
}
|
||||
|
||||
|
||||
QTEST_MAIN(TestProcessesSource);
|
44
sources/test/testprocessessource.h
Normal file
44
sources/test/testprocessessource.h
Normal file
@ -0,0 +1,44 @@
|
||||
/***************************************************************************
|
||||
* This file is part of awesome-widgets *
|
||||
* *
|
||||
* awesome-widgets is free software: you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* awesome-widgets is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef TESTPROCESSESSOURCE_H
|
||||
#define TESTPROCESSESSOURCE_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
||||
class ProcessesSource;
|
||||
|
||||
class TestProcessesSource : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
// initialization
|
||||
void initTestCase();
|
||||
void cleanupTestCase();
|
||||
// test
|
||||
void test_sources();
|
||||
void test_values();
|
||||
|
||||
private:
|
||||
ProcessesSource *source = nullptr;
|
||||
};
|
||||
|
||||
|
||||
#endif /* TESTPROCESSESSOURCE_H */
|
Loading…
Reference in New Issue
Block a user