add configuration tests

This commit is contained in:
Evgenii Alekseev 2016-06-26 01:52:15 +03:00
parent faf259e339
commit bf16e72e1e
5 changed files with 128 additions and 9 deletions

View File

@ -69,7 +69,7 @@ bool AWConfigHelper::dropCache() const
} }
bool AWConfigHelper::exportConfiguration(QObject *nativeConfig, bool AWConfigHelper::exportConfiguration(const QObject *nativeConfig,
const QString fileName) const const QString fileName) const
{ {
qCDebug(LOG_AW) << "Selected filename" << fileName; qCDebug(LOG_AW) << "Selected filename" << fileName;
@ -77,8 +77,8 @@ bool AWConfigHelper::exportConfiguration(QObject *nativeConfig,
QSettings settings(fileName, QSettings::IniFormat); QSettings settings(fileName, QSettings::IniFormat);
// plasmoid configuration // plasmoid configuration
QQmlPropertyMap *configuration const QQmlPropertyMap *configuration
= static_cast<QQmlPropertyMap *>(nativeConfig); = static_cast<const QQmlPropertyMap *>(nativeConfig);
settings.beginGroup(QString("plasmoid")); settings.beginGroup(QString("plasmoid"));
for (auto key : configuration->keys()) { for (auto key : configuration->keys()) {
QVariant value = configuration->value(key); QVariant value = configuration->value(key);

View File

@ -21,6 +21,7 @@
#include <QObject> #include <QObject>
#include <QStandardPaths> #include <QStandardPaths>
#include <QVariant>
class QSettings; class QSettings;
@ -34,7 +35,7 @@ public:
virtual ~AWConfigHelper(); virtual ~AWConfigHelper();
Q_INVOKABLE QString configurationDirectory() const; Q_INVOKABLE QString configurationDirectory() const;
Q_INVOKABLE bool dropCache() const; Q_INVOKABLE bool dropCache() const;
Q_INVOKABLE bool exportConfiguration(QObject *nativeConfig, Q_INVOKABLE bool exportConfiguration(const QObject *nativeConfig,
const QString fileName) const; const QString fileName) const;
Q_INVOKABLE QVariantMap importConfiguration(const QString fileName, Q_INVOKABLE QVariantMap importConfiguration(const QString fileName,
const bool importPlasmoid, const bool importPlasmoid,

View File

@ -30,14 +30,13 @@ set(TEST_MODULES
abstractformatter datetimeformatter floatformatter noformatter scriptformatter abstractformatter datetimeformatter floatformatter noformatter scriptformatter
extitemaggregator extitemaggregator
batterysource desktopsource gpuloadsource gputempsource hddtempsource networksource playersource processessource batterysource desktopsource gpuloadsource gputempsource hddtempsource networksource playersource processessource
awkeycache awpatternfunctions awupdatehelper awconfighelper awkeycache awpatternfunctions awupdatehelper
dpplugin) dpplugin)
foreach (TEST_MODULE ${TEST_MODULES}) foreach (TEST_MODULE ${TEST_MODULES})
set(${TEST_MODULE}_HEADERS test${TEST_MODULE}.h) set(${TEST_MODULE}_HEADERS test${TEST_MODULE}.h)
set(${TEST_MODULE}_SOURCES test${TEST_MODULE}.cpp) set(${TEST_MODULE}_SOURCES test${TEST_MODULE}.cpp)
if (TEST_MODULE MATCHES "dpplugin") if (TEST_MODULE MATCHES "awconfighelper")
set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../desktop-panel/plugin/dpadds.cpp set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awconfighelper.cpp)
${PROJECT_TRDPARTY_DIR}/fontdialog/fontdialog.cpp)
elseif (TEST_MODULE MATCHES "awkeycache") elseif (TEST_MODULE MATCHES "awkeycache")
set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awkeycache.cpp) set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awkeycache.cpp)
elseif (TEST_MODULE MATCHES "awpatternfunctions") elseif (TEST_MODULE MATCHES "awpatternfunctions")
@ -46,7 +45,10 @@ foreach (TEST_MODULE ${TEST_MODULES})
${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awpatternfunctions.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awpatternfunctions.cpp)
elseif (TEST_MODULE MATCHES "awupdatehelper") elseif (TEST_MODULE MATCHES "awupdatehelper")
set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awupdatehelper.cpp) set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awupdatehelper.cpp)
endif (TEST_MODULE MATCHES "dpplugin") elseif (TEST_MODULE MATCHES "dpplugin")
set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../desktop-panel/plugin/dpadds.cpp
${PROJECT_TRDPARTY_DIR}/fontdialog/fontdialog.cpp)
endif (TEST_MODULE MATCHES "awconfighelper")
add_executable(${SUBPROJECT}-${TEST_MODULE} ${${TEST_MODULE}_HEADERS} ${${TEST_MODULE}_SOURCES}) add_executable(${SUBPROJECT}-${TEST_MODULE} ${${TEST_MODULE}_HEADERS} ${${TEST_MODULE}_SOURCES})
target_link_libraries(${SUBPROJECT}-${TEST_MODULE} ${LIBRARY_TEST_SET}) target_link_libraries(${SUBPROJECT}-${TEST_MODULE} ${LIBRARY_TEST_SET})
add_test(NAME ${TEST_MODULE} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT}-${TEST_MODULE}) add_test(NAME ${TEST_MODULE} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT}-${TEST_MODULE})

View File

@ -0,0 +1,67 @@
/***************************************************************************
* 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 "testawconfighelper.h"
#include <QtTest>
#include "awtestlibrary.h"
#include "awconfighelper.h"
void TestAWConfigHelper::initTestCase()
{
plugin = new AWConfigHelper(this);
}
void TestAWConfigHelper::cleanupTestCase()
{
delete plugin;
}
void TestAWConfigHelper::test_configurationDirectory()
{
QVERIFY(!plugin->configurationDirectory().isEmpty());
}
void TestAWConfigHelper::test_exportConfiguration()
{
QStringList keys = AWTestLibrary::randomStringList();
for (auto key : keys)
map[key] = AWTestLibrary::randomString();
filename = AWTestLibrary::randomFilenames().first;
QVERIFY(plugin->exportConfiguration(&map, filename));
}
void TestAWConfigHelper::test_importConfiguration()
{
QVariantMap imported = plugin->importConfiguration(filename, true, true, true);
QVariantMap converted;
for (auto key : map.keys())
converted[key] = map.value(key);
QCOMPARE(imported, converted);
}
QTEST_MAIN(TestAWConfigHelper);

View File

@ -0,0 +1,49 @@
/***************************************************************************
* 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 TESTAWCONFIGHELPER_H
#define TESTAWCONFIGHELPER_H
#include <QObject>
#include <QQmlPropertyMap>
class AWConfigHelper;
class QQmlPropertyMap;
class TestAWConfigHelper : public QObject
{
Q_OBJECT
private slots:
// initialization
void initTestCase();
void cleanupTestCase();
// test
void test_configurationDirectory();
void test_exportConfiguration();
void test_importConfiguration();
private:
AWConfigHelper *plugin = nullptr;
QString filename;
QQmlPropertyMap map;
};
#endif /* TESTAWCONFIGHELPER_H */