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); +}