From 95243706b47348d021fa74a422b3d25c59bba4fc Mon Sep 17 00:00:00 2001 From: FanPengCheng Date: Thu, 23 Sep 2021 10:13:49 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=A0=8F=E9=85=8D=E7=BD=AE=E6=8F=92=E4=BB=B6=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=9A=84=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加任务栏配置插件部分的单元测试代码 Log: Task: https://pms.uniontech.com/zentao/task-view-86362.html Change-Id: Ia3b52a70e53a01e085bbab6ae142244949758aaa --- .../module_widget.cpp | 2 + tests/CMakeLists.txt | 9 +++++ .../ut_gsettings_watcher.cpp | 40 +++++++++++++++++++ .../ut_module_widget.cpp | 24 +++++++++++ 4 files changed, 75 insertions(+) create mode 100644 tests/plugins/dcc-dock-settings-plugin/ut_gsettings_watcher.cpp create mode 100644 tests/plugins/dcc-dock-settings-plugin/ut_module_widget.cpp diff --git a/plugins/dcc-dock-settings-plugin/module_widget.cpp b/plugins/dcc-dock-settings-plugin/module_widget.cpp index 3d1320fa7..e07b145ca 100644 --- a/plugins/dcc-dock-settings-plugin/module_widget.cpp +++ b/plugins/dcc-dock-settings-plugin/module_widget.cpp @@ -221,5 +221,7 @@ void ModuleWidget::updateSliderValue(int displayMode) m_sizeSlider->setValueLiteral(QString::number(m_daemonDockInter->windowSizeFashion())); } else if (displayMode == DisplayMode::Efficient) { m_sizeSlider->setValueLiteral(QString::number(m_daemonDockInter->windowSizeEfficient())); + } else { + Q_ASSERT_X(false, __FILE__, "not supported"); } } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e9ae6cc63..317698e70 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -20,9 +20,14 @@ file(GLOB_RECURSE PLUGIN_SRCS "../plugins/bluetooth/*.cpp" "../plugins/bluetooth/componments/*.h" "../plugins/bluetooth/componments/*.cpp" + "../plugins/dcc-dock-settings-plugin/*.h" + "../plugins/dcc-dock-settings-plugin/*.cpp" "../frame/util/horizontalseperator.h" "../frame/util/horizontalseperator.cpp") +# 其包含的"interface/moduleinterface.h"文件中定义了ModuleInterface_iid,任务栏插件框架的interface文件中也有定义 +list(FILTER PLUGIN_SRCS EXCLUDE REGEX "../plugins/dcc-dock-settings-plugin/settings_module.*") + # 用于测试覆盖率的编译条件 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -lgcov") @@ -43,6 +48,7 @@ find_package(Qt5DBus REQUIRED) find_package(DtkWidget REQUIRED) find_package(Qt5Svg REQUIRED) find_package(Qt5 COMPONENTS Test REQUIRED) +find_package(DdeControlCenter REQUIRED) find_package(GTest REQUIRED) find_package(GMock REQUIRED) @@ -66,10 +72,12 @@ target_include_directories(${BIN_NAME} PUBLIC ${DFrameworkDBus_INCLUDE_DIRS} ${Qt5Gui_PRIVATE_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} + ${DdeControlCenter_INCLUDE_DIR} ../interfaces fakedbus ../plugins/bluetooth ../plugins/bluetooth/componments + ../plugins/dcc-dock-settings-plugin ) # 链接库 @@ -84,6 +92,7 @@ target_link_libraries(${BIN_NAME} PRIVATE ${Qt5DBus_LIBRARIES} ${QGSettings_LIBRARIES} ${Qt5Svg_LIBRARIES} + ${DdeControlCenter_LIBRARIES} ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} -lpthread diff --git a/tests/plugins/dcc-dock-settings-plugin/ut_gsettings_watcher.cpp b/tests/plugins/dcc-dock-settings-plugin/ut_gsettings_watcher.cpp new file mode 100644 index 000000000..bd86218aa --- /dev/null +++ b/tests/plugins/dcc-dock-settings-plugin/ut_gsettings_watcher.cpp @@ -0,0 +1,40 @@ +#include "gsetting_watcher.h" + +#include + +#include + +class Test_GSettingWatcher : public QObject, public ::testing::Test +{}; + +TEST_F(Test_GSettingWatcher, bind) +{ + GSettingWatcher watcher("com.deepin.dde.control-center", "personalization"); + + QWidget widget; + watcher.bind("displayMode", &widget); + watcher.bind("displayMode", nullptr); + watcher.bind("invalid", &widget); + watcher.bind("", &widget); + watcher.bind("", nullptr); +} + +TEST_F(Test_GSettingWatcher, setStatus) +{ + GSettingWatcher watcher("com.deepin.dde.control-center", "personalization"); + + QWidget widget; + watcher.bind("displayMode", &widget); + watcher.setStatus("displayMode", &widget); +} + +TEST_F(Test_GSettingWatcher, onStatusModeChanged) +{ + GSettingWatcher watcher("com.deepin.dde.control-center", "personalization"); + + QWidget widget; + watcher.bind("displayMode", &widget); + watcher.onStatusModeChanged("displayMode"); + watcher.onStatusModeChanged("invalid"); + watcher.onStatusModeChanged(""); +} diff --git a/tests/plugins/dcc-dock-settings-plugin/ut_module_widget.cpp b/tests/plugins/dcc-dock-settings-plugin/ut_module_widget.cpp new file mode 100644 index 000000000..712958fdf --- /dev/null +++ b/tests/plugins/dcc-dock-settings-plugin/ut_module_widget.cpp @@ -0,0 +1,24 @@ +#include "module_widget.h" + +#include + +#include + +class Test_ModuleWidget : public QObject, public ::testing::Test +{}; + +TEST(Test_ModuleWidget_DeathTest, updateSliderValue) +{ + ModuleWidget widget; +#ifdef QT_DEBUG + EXPECT_DEBUG_DEATH({widget.updateSliderValue(-1);}, ""); +#endif +} + +TEST_F(Test_ModuleWidget, updateSliderValue) +{ + ModuleWidget widget; + + widget.updateSliderValue(0); + widget.updateSliderValue(1); +}