tests: add test for ini widget

This commit is contained in:
august-alt 2021-09-22 19:04:51 +04:00
parent d056d39212
commit 9ed216ed4c
3 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,28 @@
find_package(Qt5 COMPONENTS Core Gui Widgets Test REQUIRED)
find_package(XercesC REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(SOURCES
iniwidgettest.cpp
../../../../../src/plugins/preferences/ini/iniwidget.cpp
../../../../../src/plugins/preferences/ini/inischema.cpp
../../../../../src/plugins/preferences/ini/modelbuilder.cpp
)
set(UI_FORMS
../../../../../src/plugins/preferences/ini/iniwidget.ui
)
set(MOC_HEADERS
iniwidgettest.h
../../../../../src/plugins/preferences/ini/iniwidget.h
)
qt5_wrap_ui(UI_SOURCES ${UI_FORMS})
qt5_wrap_cpp(MOC_SOURCES ${MOC_HEADERS})
add_executable(iniwidgettest ${SOURCES} ${MOC_SOURCES} ${UI_SOURCES})
target_link_libraries(iniwidgettest ${GPUI_LIBRARIES} ini-plugin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Test XercesC::XercesC)
add_gpui_test(plugins.iniwidgettest iniwidgettest)

View File

@ -0,0 +1,60 @@
/***********************************************************************************************************************
**
** Copyright (C) 2021 BaseALT Ltd. <org@basealt.ru>
**
** This program 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 2
** of the License, or (at your option) any later version.
**
** This program 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 this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**
***********************************************************************************************************************/
#include "iniwidgettest.h"
#include <fstream>
#include "../../../../../src/plugins/preferences/ini/modelbuilder.h"
#include "../../../../../src/plugins/preferences/ini/iniroles.h"
#include "../../../../../src/plugins/preferences/ini/inischema.h"
#include "../../../../../src/plugins/preferences/ini/iniwidget.h"
const std::string dataPath = "../../../../data/";
namespace tests {
void IniWidgetTest::show()
{
std::ifstream file;
file.open(dataPath + "ini.xml", std::ifstream::in);
if (file.good()) {
auto modelSource = IniFiles_(file, ::xsd::cxx::tree::flags::dont_validate);
auto modelBuilder = std::make_unique<gpui::ModelBuilder>();
auto model = modelBuilder->schemaToModel(modelSource);
auto selectionModel = std::make_unique<QItemSelectionModel>(model.get());
auto widget = std::make_unique<gpui::IniWidget>(*model, *selectionModel);
widget->show();
selectionModel->setCurrentIndex(model->item(0, 0)->index(),
QItemSelectionModel::Select | QItemSelectionModel::Rows);
QTest::qWait(10000);
}
file.close();
}
}
QTEST_MAIN(tests::IniWidgetTest)

View File

@ -0,0 +1,36 @@
/***********************************************************************************************************************
**
** Copyright (C) 2021 BaseALT Ltd. <org@basealt.ru>
**
** This program 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 2
** of the License, or (at your option) any later version.
**
** This program 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 this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**
***********************************************************************************************************************/
#ifndef GPUI_INI_WIDGET_TEST_H
#define GPUI_INI_WIDGET_TEST_H
#include <QtTest>
namespace tests {
class IniWidgetTest : public QObject
{
Q_OBJECT
private slots:
void show();
};
}
#endif // GPUI_INI_WIDGET_TEST_H