Skip to content

Commit

Permalink
add display unit-test
Browse files Browse the repository at this point in the history
  • Loading branch information
justforlxz committed Apr 19, 2019
1 parent 8aeede1 commit c254821
Show file tree
Hide file tree
Showing 3 changed files with 265 additions and 0 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.7)

project(dde-control-center)

include(Dart)
include(CTest)

# Install settings
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX /usr)
Expand All @@ -22,6 +25,7 @@ configure_file(files/dde-control-center.conf.in files/dde-control-center.conf @O

add_subdirectory("src/frame")
add_subdirectory("src/dialogs")
add_subdirectory("tests")

file(GLOB DOCS_FILES "docs/*")

Expand Down
221 changes: 221 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
cmake_minimum_required(VERSION 3.7)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_FLAGS "-g -Wall")

# disable qt keywords, cause gio have signals member;
ADD_DEFINITIONS(-DQT_NO_KEYWORDS)

AUX_SOURCE_DIRECTORY("${CMAKE_CURRENT_BINARY_DIR}/tests" DIR_TESTS)

SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/bin/tests")

set(DISPLAY_TEST_SRCS
../src/frame/modules/display/iconbutton.h
../src/frame/modules/display/monitorsettingdialog.h
../src/frame/modules/display/displaywidget.h
../src/frame/modules/display/brightnesspage.h
../src/frame/modules/display/monitorindicator.h
../src/frame/modules/display/displaymodel.h
../src/frame/modules/display/miracastnodevicewidget.h
../src/frame/modules/display/connectwidget.h
../src/frame/modules/display/monitorsground.h
../src/frame/modules/display/displaymodule.h
../src/frame/modules/display/displayitemdelegate.h
../src/frame/modules/display/displaycontrolpage.h
../src/frame/modules/display/miracastsettings.h
../src/frame/modules/display/settingsoptionitem.h
../src/frame/modules/display/brightnessitem.h
../src/frame/modules/display/miracastdevicemodel.h
../src/frame/modules/display/displaycontrolmodel.h
../src/frame/modules/display/miracastitem.h
../src/frame/modules/display/scalingpage.h
../src/frame/modules/display/miracastworker.h
../src/frame/modules/display/monitorcontrolwidget.h
../src/frame/modules/display/displayworker.h
../src/frame/modules/display/miracastmodel.h
../src/frame/modules/display/customconfigpage.h
../src/frame/modules/display/rotatedialog.h
../src/frame/modules/display/resolutiondetailpage.h
../src/frame/modules/display/monitorproxywidget.h
../src/frame/modules/display/settingslistwidget.h
../src/frame/modules/display/monitor.h
../src/frame/modules/display/recognizedialog.h
../src/frame/modules/display/displaycontrolmodel.cpp
../src/frame/modules/display/scalingpage.cpp
../src/frame/modules/display/connectwidget.cpp
../src/frame/modules/display/displaywidget.cpp
../src/frame/modules/display/displayitemdelegate.cpp
../src/frame/modules/display/brightnesspage.cpp
../src/frame/modules/display/miracastsettings.cpp
../src/frame/modules/display/miracastnodevicewidget.cpp
../src/frame/modules/display/miracastdevicemodel.cpp
../src/frame/modules/display/settingsoptionitem.cpp
../src/frame/modules/display/rotatedialog.cpp
../src/frame/modules/display/monitorindicator.cpp
../src/frame/modules/display/monitorproxywidget.cpp
../src/frame/modules/display/monitor.cpp
../src/frame/modules/display/settingslistwidget.cpp
../src/frame/modules/display/customconfigpage.cpp
../src/frame/modules/display/monitorsground.cpp
../src/frame/modules/display/displaymodule.cpp
../src/frame/modules/display/monitorsettingdialog.cpp
../src/frame/modules/display/miracastmodel.cpp
../src/frame/modules/display/displaymodel.cpp
../src/frame/modules/display/miracastworker.cpp
../src/frame/modules/display/displaycontrolpage.cpp
../src/frame/modules/display/iconbutton.cpp
../src/frame/modules/display/brightnessitem.cpp
../src/frame/modules/display/recognizedialog.cpp
../src/frame/modules/display/miracastitem.cpp
../src/frame/modules/display/monitorcontrolwidget.cpp
../src/frame/modules/display/displayworker.cpp
../src/frame/modules/display/resolutiondetailpage.cpp
)

set(WIDGETS_TEST_SRCS
../src/frame
../src/frame/widgets/settingsitem.h
../src/frame/widgets/utils.h
../src/frame/widgets/settingsheaderitem.h
../src/frame/widgets/optionlistpage.h
../src/frame/widgets/spinboxwidget.h
../src/frame/widgets/settingshead.h
../src/frame/widgets/lineeditwidget.h
../src/frame/widgets/themeitempic.h
../src/frame/widgets/dccslider.h
../src/frame/widgets/basiclistmodel.h
../src/frame/widgets/plantextitem.h
../src/frame/widgets/separator.h
../src/frame/widgets/dccsliderannotated.h
../src/frame/widgets/filechoosewidget.h
../src/frame/widgets/titledslideritem.h
../src/frame/widgets/themeitem.h
../src/frame/widgets/buttontuple.h
../src/frame/widgets/titlevalueitem.h
../src/frame/widgets/basiclistdelegate.h
../src/frame/widgets/comboboxwidget.h
../src/frame/widgets/searchinput.h
../src/frame/widgets/nextbutton.h
../src/frame/widgets/backbutton.h
../src/frame/widgets/translucentframe.h
../src/frame/widgets/contentwidget.h
../src/frame/widgets/tipsitem.h
../src/frame/widgets/basiclistview.h
../src/frame/widgets/labels/smalllabel.h
../src/frame/widgets/labels/largelabel.h
../src/frame/widgets/labels/tipslabel.h
../src/frame/widgets/labels/normallabel.h
../src/frame/widgets/editablenextpagewidget.h
../src/frame/widgets/timeoutdialog.h
../src/frame/widgets/switchwidget.h
../src/frame/widgets/settingsgroup.h
../src/frame/widgets/passwdeditwidget.h
../src/frame/widgets/nextpagewidget.h
../src/frame/widgets/optionitem.h
../src/frame/widgets/loadingindicator.h
../src/frame/widgets/loadingnextpagewidget.h
../src/frame/widgets/settingsitem.cpp
../src/frame/widgets/settingsgroup.cpp
../src/frame/widgets/titledslideritem.cpp
../src/frame/widgets/passwdeditwidget.cpp
../src/frame/widgets/plantextitem.cpp
../src/frame/widgets/loadingnextpagewidget.cpp
../src/frame/widgets/themeitempic.cpp
../src/frame/widgets/timeoutdialog.cpp
../src/frame/widgets/settingshead.cpp
../src/frame/widgets/tipsitem.cpp
../src/frame/widgets/nextpagewidget.cpp
../src/frame/widgets/loadingindicator.cpp
../src/frame/widgets/searchinput.cpp
../src/frame/widgets/themeitem.cpp
../src/frame/widgets/translucentframe.cpp
../src/frame/widgets/dccslider.cpp
../src/frame/widgets/separator.cpp
../src/frame/widgets/filechoosewidget.cpp
../src/frame/widgets/switchwidget.cpp
../src/frame/widgets/basiclistdelegate.cpp
../src/frame/widgets/backbutton.cpp
../src/frame/widgets/settingsheaderitem.cpp
../src/frame/widgets/nextbutton.cpp
../src/frame/widgets/comboboxwidget.cpp
../src/frame/widgets/optionitem.cpp
../src/frame/widgets/editablenextpagewidget.cpp
../src/frame/widgets/titlevalueitem.cpp
../src/frame/widgets/basiclistmodel.cpp
../src/frame/widgets/optionlistpage.cpp
../src/frame/widgets/dccsliderannotated.cpp
../src/frame/widgets/basiclistview.cpp
../src/frame/widgets/spinboxwidget.cpp
../src/frame/widgets/contentwidget.cpp
../src/frame/widgets/buttontuple.cpp
../src/frame/widgets/lineeditwidget.cpp
)

set(MODULES_TEST_SRCS
../src/frame/modules/modulewidget.h
../src/frame/modules/modulewidget.cpp
../src/frame/modules/modulewidgetheader.h
../src/frame/modules/modulewidgetheader.cpp
)

# Find the library
find_package(PkgConfig REQUIRED)
find_package(Qt5 COMPONENTS
Core
Widgets
Concurrent
X11Extras
DBus
Test
REQUIRED)
find_package(DtkWidget REQUIRED)

pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus)
pkg_check_modules(QGSettings REQUIRED gsettings-qt)
pkg_check_modules(XCB_EWMH REQUIRED xcb-ewmh x11 xext)

set(TEST_SRCS
display_test.h
${DIR_TESTS}
${DISPLAY_TEST_SRCS}
${WIDGETS_TEST_SRCS}
${MODULES_TEST_SRCS}
${DtkWidget_INCLUDE_DIRS}
${QGSettings_INCLUDE_DIRS}
${XCB_EWMH_INCLUDE_DIRS}
${DFrameworkDBus_INCLUDE_DIRS}
)

set(Qt_LIBS
Qt5::Core
Qt5::Gui
Qt5::DBus
Qt5::Widgets
Qt5::X11Extras
Qt5::Test
)

add_executable(unit-test
${TEST_SRCS}
${PROJECT_BINARY_DIR}
)

target_include_directories(unit-test PUBLIC
${TEST_SRCS}
${PROJECT_BINARY_DIR}
)

target_link_libraries(unit-test PRIVATE
${Qt_LIBS}
${DFrameworkDBus_LIBRARIES}
${QGSettings_LIBRARIES}
${DtkWidget_LIBRARIES}
${XCB_EWMH_LIBRARIES}
)

add_test(NAME unit-test COMMAND "${CMAKE_CURRENT_BINARY_DIR}/bin/tests/unit-test")
# set_tests_properties (unit-test PROPERTIES FAIL_REGULAR_EXPRESSION "failed")
40 changes: 40 additions & 0 deletions tests/display_test.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#ifndef DISPLAY_TEST_H
#define DISPLAY_TEST_H

#include <QMap>
#include <QString>
#include <QTest>

#include "../src/frame/modules/display/displaywidget.h"

class DisplayTest : public QObject {
Q_OBJECT

private Q_SLOTS:
void testSliderValue_data()
{
QTest::addColumn<float>("value");
QTest::addColumn<int>("result");

QMap<float, int> testMap{ { 1.0, 1 }, { 1.25, 2 }, { 1.5, 3 },
{ 1.75, 4 }, { 2.0, 5 }, { 2.25, 6 },
{ 2.5, 7 }, { 2.75, 8 }, { 3.0, 9 } };

for (auto it = testMap.constBegin(); it != testMap.constEnd(); ++it) {
QTest::newRow("converToSlider") << it.key() << it.value();
}
}
void testSliderValue()
{
QFETCH(float, value);
QFETCH(int, result);

using namespace dcc::display;

QCOMPARE(DisplayWidget::convertToSlider(value), result);
QCOMPARE(DisplayWidget::convertToScale(result), value);
}
};

QTEST_MAIN(DisplayTest)
#endif // !DISPLAY_TEST_H

0 comments on commit c254821

Please sign in to comment.