tests: add tests for drives

This commit is contained in:
august-alt 2021-09-22 19:03:46 +04:00
parent f73d6f0191
commit fdd762d0be
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
driveswidgettest.cpp
../../../../../src/plugins/preferences/drives/driveswidget.cpp
../../../../../src/plugins/preferences/drives/drivesschema.cpp
../../../../../src/plugins/preferences/drives/modelbuilder.cpp
)
set(UI_FORMS
../../../../../src/plugins/preferences/drives/driveswidget.ui
)
set(MOC_HEADERS
driveswidgettest.h
../../../../../src/plugins/preferences/drives/driveswidget.h
)
qt5_wrap_ui(UI_SOURCES ${UI_FORMS})
qt5_wrap_cpp(MOC_SOURCES ${MOC_HEADERS})
add_executable(driveswidgettest ${SOURCES} ${MOC_SOURCES} ${UI_SOURCES})
target_link_libraries(driveswidgettest ${GPUI_LIBRARIES} drives-plugin Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Test XercesC::XercesC)
add_gpui_test(plugins.driveswidgettest driveswidgettest)

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 "driveswidgettest.h"
#include <fstream>
#include "../../../../../src/plugins/preferences/drives/modelbuilder.h"
#include "../../../../../src/plugins/preferences/drives/driveroles.h"
#include "../../../../../src/plugins/preferences/drives/drivesschema.h"
#include "../../../../../src/plugins/preferences/drives/driveswidget.h"
const std::string dataPath = "../../../../data/";
namespace tests {
void DrivesWidgetTest::show()
{
std::ifstream file;
file.open(dataPath + "drives.xml", std::ifstream::in);
if (file.good()) {
auto drives = Drives_(file, ::xsd::cxx::tree::flags::dont_validate);
auto modelBuilder = std::make_unique<gpui::ModelBuilder>();
auto model = modelBuilder->schemaToModel(drives);
auto selectionModel = std::make_unique<QItemSelectionModel>(model.get());
auto widget = std::make_unique<gpui::DrivesWidget>(*model, *selectionModel);
widget->show();
selectionModel->setCurrentIndex(model->item(0, 0)->index(),
QItemSelectionModel::Select | QItemSelectionModel::Rows);
QTest::qWait(10000);
}
file.close();
}
}
QTEST_MAIN(tests::DrivesWidgetTest)

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_DRIVES_WIDGET_TEST_H
#define GPUI_DRIVES_WIDGET_TEST_H
#include <QtTest>
namespace tests {
class DrivesWidgetTest : public QObject
{
Q_OBJECT
private slots:
void show();
};
}
#endif // GPUI_DRIVES_WIDGET_TEST_H