From bf16e72e1e3042bf304cc643383fdffcaa81f2e1 Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Sun, 26 Jun 2016 01:52:15 +0300 Subject: [PATCH] add configuration tests --- .../awesome-widget/plugin/awconfighelper.cpp | 6 +- .../awesome-widget/plugin/awconfighelper.h | 3 +- sources/test/CMakeLists.txt | 12 ++-- sources/test/testawconfighelper.cpp | 67 +++++++++++++++++++ sources/test/testawconfighelper.h | 49 ++++++++++++++ 5 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 sources/test/testawconfighelper.cpp create mode 100644 sources/test/testawconfighelper.h diff --git a/sources/awesome-widget/plugin/awconfighelper.cpp b/sources/awesome-widget/plugin/awconfighelper.cpp index 4bb06c7..613a2a1 100644 --- a/sources/awesome-widget/plugin/awconfighelper.cpp +++ b/sources/awesome-widget/plugin/awconfighelper.cpp @@ -69,7 +69,7 @@ bool AWConfigHelper::dropCache() const } -bool AWConfigHelper::exportConfiguration(QObject *nativeConfig, +bool AWConfigHelper::exportConfiguration(const QObject *nativeConfig, const QString fileName) const { qCDebug(LOG_AW) << "Selected filename" << fileName; @@ -77,8 +77,8 @@ bool AWConfigHelper::exportConfiguration(QObject *nativeConfig, QSettings settings(fileName, QSettings::IniFormat); // plasmoid configuration - QQmlPropertyMap *configuration - = static_cast(nativeConfig); + const QQmlPropertyMap *configuration + = static_cast(nativeConfig); settings.beginGroup(QString("plasmoid")); for (auto key : configuration->keys()) { QVariant value = configuration->value(key); diff --git a/sources/awesome-widget/plugin/awconfighelper.h b/sources/awesome-widget/plugin/awconfighelper.h index fdca421..c70373b 100644 --- a/sources/awesome-widget/plugin/awconfighelper.h +++ b/sources/awesome-widget/plugin/awconfighelper.h @@ -21,6 +21,7 @@ #include #include +#include class QSettings; @@ -34,7 +35,7 @@ public: virtual ~AWConfigHelper(); Q_INVOKABLE QString configurationDirectory() const; Q_INVOKABLE bool dropCache() const; - Q_INVOKABLE bool exportConfiguration(QObject *nativeConfig, + Q_INVOKABLE bool exportConfiguration(const QObject *nativeConfig, const QString fileName) const; Q_INVOKABLE QVariantMap importConfiguration(const QString fileName, const bool importPlasmoid, diff --git a/sources/test/CMakeLists.txt b/sources/test/CMakeLists.txt index 79b1006..a21acad 100644 --- a/sources/test/CMakeLists.txt +++ b/sources/test/CMakeLists.txt @@ -30,14 +30,13 @@ set(TEST_MODULES abstractformatter datetimeformatter floatformatter noformatter scriptformatter extitemaggregator batterysource desktopsource gpuloadsource gputempsource hddtempsource networksource playersource processessource - awkeycache awpatternfunctions awupdatehelper + awconfighelper awkeycache awpatternfunctions awupdatehelper dpplugin) foreach (TEST_MODULE ${TEST_MODULES}) set(${TEST_MODULE}_HEADERS test${TEST_MODULE}.h) set(${TEST_MODULE}_SOURCES test${TEST_MODULE}.cpp) - if (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) + if (TEST_MODULE MATCHES "awconfighelper") + set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awconfighelper.cpp) elseif (TEST_MODULE MATCHES "awkeycache") set(${TEST_MODULE}_SOURCES ${${TEST_MODULE}_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awkeycache.cpp) elseif (TEST_MODULE MATCHES "awpatternfunctions") @@ -46,7 +45,10 @@ foreach (TEST_MODULE ${TEST_MODULES}) ${CMAKE_CURRENT_SOURCE_DIR}/../awesome-widget/plugin/awpatternfunctions.cpp) elseif (TEST_MODULE MATCHES "awupdatehelper") 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}) target_link_libraries(${SUBPROJECT}-${TEST_MODULE} ${LIBRARY_TEST_SET}) add_test(NAME ${TEST_MODULE} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT}-${TEST_MODULE}) diff --git a/sources/test/testawconfighelper.cpp b/sources/test/testawconfighelper.cpp new file mode 100644 index 0000000..7ccffda --- /dev/null +++ b/sources/test/testawconfighelper.cpp @@ -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 + +#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); diff --git a/sources/test/testawconfighelper.h b/sources/test/testawconfighelper.h new file mode 100644 index 0000000..4f6dfdd --- /dev/null +++ b/sources/test/testawconfighelper.h @@ -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 +#include + + +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 */