From 2057d1db6eef2cd5efb984c4ce42ad17c201f2cc Mon Sep 17 00:00:00 2001 From: caixiangrong Date: Fri, 17 Oct 2025 14:46:22 +0800 Subject: [PATCH] fix: Move dnetwork-secret-dialog from dde-session-ui Move dnetwork-secret-dialog from dde-session-ui pms: TASK-381263 --- CMakeLists.txt | 3 +- .../dde-network-secret-dialog/CMakeLists.txt | 31 +++----- .../src/CMakeLists.txt | 23 ++++++ .../{ => src}/main.cpp | 0 .../{ => src}/networksecretdialog.cpp | 0 .../{ => src}/networksecretdialog.h | 0 .../qrc/dde-network-secret-dialog.qrc | 0 .../{ => src}/qrc/icons/network-vpn_64px.svg | 0 .../qrc/icons/network-wired_64px.svg | 0 ...otification-network-wireless-full_48px.svg | 0 .../tests/CMakeLists.txt | 40 ++++++++++ .../dde-network-secret-dialog/tests/main.cpp | 28 +++++++ .../tests/ut_networksecretdialog.cpp | 76 +++++++++++++++++++ 13 files changed, 178 insertions(+), 23 deletions(-) create mode 100644 network-service-plugin/dde-network-secret-dialog/src/CMakeLists.txt rename network-service-plugin/dde-network-secret-dialog/{ => src}/main.cpp (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/networksecretdialog.cpp (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/networksecretdialog.h (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/qrc/dde-network-secret-dialog.qrc (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/qrc/icons/network-vpn_64px.svg (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/qrc/icons/network-wired_64px.svg (100%) rename network-service-plugin/dde-network-secret-dialog/{ => src}/qrc/icons/notification-network-wireless-full_48px.svg (100%) create mode 100644 network-service-plugin/dde-network-secret-dialog/tests/CMakeLists.txt create mode 100644 network-service-plugin/dde-network-secret-dialog/tests/main.cpp create mode 100644 network-service-plugin/dde-network-secret-dialog/tests/ut_networksecretdialog.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d0cdf90c..5346492c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ project(dde-network-core ) option(ENABLE_DEEPIN_NMQT "enable nmqt patch on deepin" OFF) +option(BUILD_TESTS "Build unit tests" OFF) set(DDE-Network-Core_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/src-old") set(DDE-Network-Core_LIBRARIES dde-network-core) @@ -49,7 +50,7 @@ add_subdirectory("src") # add_subdirectory("src-old") # add_subdirectory("dcc-network-plugin") add_subdirectory("dcc-network") -if (CMAKE_BUILD_TYPE STREQUAL "Debug") +if (BUILD_TESTS) add_subdirectory("tests") endif() # add_subdirectory("example") diff --git a/network-service-plugin/dde-network-secret-dialog/CMakeLists.txt b/network-service-plugin/dde-network-secret-dialog/CMakeLists.txt index d655b1ccd..349bbdba4 100644 --- a/network-service-plugin/dde-network-secret-dialog/CMakeLists.txt +++ b/network-service-plugin/dde-network-secret-dialog/CMakeLists.txt @@ -7,12 +7,13 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(Dnetwork_Secret_Dialog_Name dde-network-secret-dialog) - file(GLOB_RECURSE Dnetwork_Secret_Dialog_SRCS - "*.h" - "*.cpp" + "src/*.h" + "src/*.cpp" ) + +list(REMOVE_ITEM Dnetwork_Secret_Dialog_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp") + set(QT_VERSION_MAJOR 6) set(DTK_VERSION_MAJOR 6) find_package(Dtk${DTK_VERSION_MAJOR} REQUIRED COMPONENTS Widget) @@ -26,21 +27,7 @@ set(Dnetwork_Secret_Dialog_Libraries Qt${QT_VERSION_MAJOR}::Widgets ) - -add_executable(${Dnetwork_Secret_Dialog_Name} - ${Dnetwork_Secret_Dialog_SRCS} - main.cpp - qrc/dde-network-secret-dialog.qrc -) - -target_include_directories(${Dnetwork_Secret_Dialog_Name} PUBLIC - ${Dnetwork_Secret_Dialog_Includes} -) - -target_link_libraries(${Dnetwork_Secret_Dialog_Name} PRIVATE - ${Dnetwork_Secret_Dialog_Libraries} -) - -## bin -set(DAEMON_LIB_PATH "lib/deepin-daemon" CACHE STRING "daemon lib path") -install(TARGETS ${Dnetwork_Secret_Dialog_Name} DESTINATION ${DAEMON_LIB_PATH}) +add_subdirectory("src") +if (BUILD_TESTS) + add_subdirectory(tests) +endif() diff --git a/network-service-plugin/dde-network-secret-dialog/src/CMakeLists.txt b/network-service-plugin/dde-network-secret-dialog/src/CMakeLists.txt new file mode 100644 index 000000000..155042130 --- /dev/null +++ b/network-service-plugin/dde-network-secret-dialog/src/CMakeLists.txt @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +set(Dnetwork_Secret_Dialog_Name dde-network-secret-dialog) + +add_executable(${Dnetwork_Secret_Dialog_Name} + ${Dnetwork_Secret_Dialog_SRCS} + main.cpp + qrc/dde-network-secret-dialog.qrc +) + +target_include_directories(${Dnetwork_Secret_Dialog_Name} PUBLIC + ${Dnetwork_Secret_Dialog_Includes} +) + +target_link_libraries(${Dnetwork_Secret_Dialog_Name} PRIVATE + ${Dnetwork_Secret_Dialog_Libraries} +) + +## bin +set(DAEMON_LIB_PATH "lib/deepin-daemon" CACHE STRING "daemon lib path") +install(TARGETS ${Dnetwork_Secret_Dialog_Name} DESTINATION ${DAEMON_LIB_PATH}) diff --git a/network-service-plugin/dde-network-secret-dialog/main.cpp b/network-service-plugin/dde-network-secret-dialog/src/main.cpp similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/main.cpp rename to network-service-plugin/dde-network-secret-dialog/src/main.cpp diff --git a/network-service-plugin/dde-network-secret-dialog/networksecretdialog.cpp b/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/networksecretdialog.cpp rename to network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp diff --git a/network-service-plugin/dde-network-secret-dialog/networksecretdialog.h b/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.h similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/networksecretdialog.h rename to network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.h diff --git a/network-service-plugin/dde-network-secret-dialog/qrc/dde-network-secret-dialog.qrc b/network-service-plugin/dde-network-secret-dialog/src/qrc/dde-network-secret-dialog.qrc similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/qrc/dde-network-secret-dialog.qrc rename to network-service-plugin/dde-network-secret-dialog/src/qrc/dde-network-secret-dialog.qrc diff --git a/network-service-plugin/dde-network-secret-dialog/qrc/icons/network-vpn_64px.svg b/network-service-plugin/dde-network-secret-dialog/src/qrc/icons/network-vpn_64px.svg similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/qrc/icons/network-vpn_64px.svg rename to network-service-plugin/dde-network-secret-dialog/src/qrc/icons/network-vpn_64px.svg diff --git a/network-service-plugin/dde-network-secret-dialog/qrc/icons/network-wired_64px.svg b/network-service-plugin/dde-network-secret-dialog/src/qrc/icons/network-wired_64px.svg similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/qrc/icons/network-wired_64px.svg rename to network-service-plugin/dde-network-secret-dialog/src/qrc/icons/network-wired_64px.svg diff --git a/network-service-plugin/dde-network-secret-dialog/qrc/icons/notification-network-wireless-full_48px.svg b/network-service-plugin/dde-network-secret-dialog/src/qrc/icons/notification-network-wireless-full_48px.svg similarity index 100% rename from network-service-plugin/dde-network-secret-dialog/qrc/icons/notification-network-wireless-full_48px.svg rename to network-service-plugin/dde-network-secret-dialog/src/qrc/icons/notification-network-wireless-full_48px.svg diff --git a/network-service-plugin/dde-network-secret-dialog/tests/CMakeLists.txt b/network-service-plugin/dde-network-secret-dialog/tests/CMakeLists.txt new file mode 100644 index 000000000..0c974b279 --- /dev/null +++ b/network-service-plugin/dde-network-secret-dialog/tests/CMakeLists.txt @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +set(UT_Dnetwork_Secret_Dialog_Name ut-dnetwork-secret-dialog) + +set(Test_Libraries + -lpthread + -lgcov + -lgtest + -lgmock +) + +file(GLOB_RECURSE UT_Dnetwork_Secret_Dialog_SRCS + "*.h" + "*.cpp" +) + +add_executable(${UT_Dnetwork_Secret_Dialog_Name} + ${Dnetwork_Secret_Dialog_SRCS} + ${UT_Dnetwork_Secret_Dialog_SRCS} +) + +# 用于测试覆盖率的编译条件 +target_compile_options(${UT_Dnetwork_Secret_Dialog_Name} PRIVATE -fprofile-arcs -ftest-coverage) + +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") +endif() + +target_include_directories(${UT_Dnetwork_Secret_Dialog_Name} PUBLIC + ${Dnetwork_Secret_Dialog_Includes} + ../src/ +) + +target_link_libraries(${UT_Dnetwork_Secret_Dialog_Name} PRIVATE + ${Dnetwork_Secret_Dialog_Libraries} + ${Test_Libraries} +) diff --git a/network-service-plugin/dde-network-secret-dialog/tests/main.cpp b/network-service-plugin/dde-network-secret-dialog/tests/main.cpp new file mode 100644 index 000000000..70c0828fc --- /dev/null +++ b/network-service-plugin/dde-network-secret-dialog/tests/main.cpp @@ -0,0 +1,28 @@ +// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include + +#include +#include + +#ifdef QT_DEBUG +#include +#endif + +int main(int argc, char *argv[]) +{ + qputenv("QT_QPA_PLATFORM", "offscreen"); + QApplication app(argc,argv); + qDebug() << "start dnetwork-secret-dialog test cases .............."; + ::testing::InitGoogleTest(&argc, argv); + int ret = RUN_ALL_TESTS(); + qDebug() << "end dnetwork-secret-dialog test cases .............."; + +#ifdef QT_DEBUG + __sanitizer_set_report_path("asan_dnetwork-secret-dialog.log"); +#endif + + return ret; +} diff --git a/network-service-plugin/dde-network-secret-dialog/tests/ut_networksecretdialog.cpp b/network-service-plugin/dde-network-secret-dialog/tests/ut_networksecretdialog.cpp new file mode 100644 index 000000000..6d18cb57c --- /dev/null +++ b/network-service-plugin/dde-network-secret-dialog/tests/ut_networksecretdialog.cpp @@ -0,0 +1,76 @@ +// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#define private public +#define protected public +#include "networksecretdialog.h" +#undef private +#undef protected + +#include +#include + +#include + +class Ut_NetworkSecretDialog : public testing::Test +{ +public: + void SetUp() override; + + void TearDown() override; + +public: + NetworkSecretDialog *dialog = nullptr; +}; + +void Ut_NetworkSecretDialog::SetUp() +{ + QString json = "{\"connName\":\"UtNetworkSecretDialog\", \"connType\":\"Wiredless\", \"secrets\":[\"wep\"]}"; + dialog = new NetworkSecretDialog(QJsonDocument::fromJson(json.toUtf8())); +} + +void Ut_NetworkSecretDialog::TearDown() +{ + if (dialog) { + delete dialog; + dialog = nullptr; + } + +} + +TEST_F(Ut_NetworkSecretDialog, wepIsValidTest) +{ + EXPECT_FALSE(dialog->wepKeyIsValid("12345678", NetworkSecretDialog::NotSpecified)); + EXPECT_TRUE(dialog->wepKeyIsValid("12345678", NetworkSecretDialog::Passphrase)); +} + + +TEST_F(Ut_NetworkSecretDialog, wpaPskIsValidTest) +{ + EXPECT_TRUE(dialog->wpaPskIsValid("12345678")); + EXPECT_TRUE(dialog->wpaPskIsValid("0123456789012345678901234567890123456789012345678901234567890123")); +} + +TEST_F(Ut_NetworkSecretDialog, submitTest) +{ + //输入无效 + dialog->submit(); + //修改密码 + if (!dialog->m_lineEditList.isEmpty()) { + auto lineEdit = dialog->m_lineEditList.first(); + lineEdit->setText("12345678"); + Q_EMIT lineEdit->textChanged("12345678"); + } + //点击确定按钮 + dialog->onButtonsClicked(1, ""); + //点击取消按钮 + dialog->onButtonsClicked(0, ""); +} + +TEST_F(Ut_NetworkSecretDialog, coverageTest) +{ + QKeyEvent event(QEvent::KeyPress, Qt::Key_0, Qt::NoModifier); + dialog->keyPressEvent(&event); +} +