add configuration tests

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

View File

@ -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})

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 */