From e19d7fbe7ad57de4a52a8266e71a204cc7092bea Mon Sep 17 00:00:00 2001 From: heyuming Date: Wed, 21 Jun 2023 15:10:46 +0800 Subject: [PATCH] fix: unit test error under qt5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Log: 修复qt5下单元测试的错误 --- debian/control | 4 +-- src/widgets/daboutdialog.cpp | 4 +-- src/widgets/dmainwindow.cpp | 2 +- src/widgets/dtitlebar.cpp | 6 ++-- tests/main.cpp | 13 ++++---- tests/testcases/widgets/ut_daboutdialog.cpp | 4 +++ tests/testcases/widgets/ut_dimageviewer.cpp | 34 +++++++++++++++++++++ 7 files changed, 52 insertions(+), 15 deletions(-) diff --git a/debian/control b/debian/control index dac4aab24..f48bb7701 100644 --- a/debian/control +++ b/debian/control @@ -13,7 +13,7 @@ Standards-Version: 3.9.8 Package: libdtkwidget5 Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkcommon, +Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkcommon, libdtkdata, libqt5widgets5(>= 5.11.3.33) | libqt5widgets5(<= 5.11.3.28) Multi-Arch: same Description: Deepin graphical user interface library @@ -47,7 +47,7 @@ Description: Deepin graphical user interface library Package: dtkwidget5-examples Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - libdtkwidget5( =${binary:Version}) + libdtkwidget5( =${binary:Version}), libdtkdata Description: dtkwidget-examples is generated by dtkwidget. DtkWidget is Deepin graphical user interface for deepin desktop development. . diff --git a/src/widgets/daboutdialog.cpp b/src/widgets/daboutdialog.cpp index e4c10c3ba..aa618cd93 100644 --- a/src/widgets/daboutdialog.cpp +++ b/src/widgets/daboutdialog.cpp @@ -189,7 +189,7 @@ void DAboutDialogPrivate::init() mainContent->setLayout(mainLayout); q->addContent(mainScrollArea); - DConfig config("org.deepin.dtkwidget.feature-display"); + DConfig config("org.deepin.dtk.preference"); bool isUpdated = config.value("featureUpdated", false).toBool(); redPointLabel->setVisible(isUpdated); // make active @@ -218,7 +218,7 @@ void DAboutDialogPrivate::_q_onLinkActivated(const QString &link) void DAboutDialogPrivate::_q_onFeatureActivated(const QString &) { D_Q(DAboutDialog); - DConfig config("org.deepin.dtkwidget.feature-display"); + DConfig config("org.deepin.dtk.preference"); if (config.value("featureUpdated", false).toBool()) { config.setValue("featureUpdated", false); redPointLabel->setVisible(false); diff --git a/src/widgets/dmainwindow.cpp b/src/widgets/dmainwindow.cpp index f52b21fe5..2769bb768 100644 --- a/src/widgets/dmainwindow.cpp +++ b/src/widgets/dmainwindow.cpp @@ -171,7 +171,7 @@ DMainWindow::DMainWindow(QWidget *parent) if (DGuiApplicationHelper::isTabletEnvironment()) { setWindowFlags(windowFlags() & ~(Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint)); } - DConfig config("org.deepin.dtkwidget.feature-display"); + DConfig config("org.deepin.dtk.preference"); bool isAutoDisplayFeature = config.value("autoDisplayFeature", false).toBool(); if (isAutoDisplayFeature) { connect(this->windowHandle(), SIGNAL(activeChanged()), this, SLOT(_q_autoShowFeatureDialog())); diff --git a/src/widgets/dtitlebar.cpp b/src/widgets/dtitlebar.cpp index f030c09fb..b72677796 100644 --- a/src/widgets/dtitlebar.cpp +++ b/src/widgets/dtitlebar.cpp @@ -209,11 +209,11 @@ void DTitlebarPrivate::init() optionButton = new DWindowOptionButton; } - auto config = new DConfig("org.deepin.dtkwidget.feature-display", "", q); + auto config = new DConfig("org.deepin.dtk.preference", "", q); bool isUpdated = config->value("featureUpdated", false).toBool(); DStyle::setRedPointVisible(optionButton, isUpdated); - uiPreferDonfig = new DConfig("org.deepin.dtk.ui.preference", "", q); + uiPreferDonfig = new DConfig("org.deepin.dtk.preference", "", q); updateTitlebarHeight(); separatorTop = new DHorizontalLine(q); @@ -1004,7 +1004,7 @@ void DTitlebar::showMenu() action->setChecked(true); } - DConfig config("org.deepin.dtkwidget.feature-display"); + DConfig config("org.deepin.dtk.preference"); bool isUpdated = config.value("featureUpdated", false).toBool(); DStyle::setRedPointVisible(d->aboutAction, isUpdated); diff --git a/tests/main.cpp b/tests/main.cpp index 1989f6744..7db0a28fa 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -13,12 +13,12 @@ /** 添加Qt事件循环,兼容gtest. */ -int runTest(QCoreApplication &app) +int runTest(Dtk::Widget::DApplication &app) { int ret = 0; - QTimer::singleShot(0, &app, [&app, &ret](){ - ret = RUN_ALL_TESTS(); - app.quit(); + QTimer::singleShot(0, &app, [&app, &ret]() { + ret = RUN_ALL_TESTS(); + app.quit(); }); app.exec(); return ret; @@ -26,11 +26,10 @@ int runTest(QCoreApplication &app) int main(int argc, char *argv[]) { - // gerrit编译时没有显示器,需要指定环境变量 - qputenv("QT_QPA_PLATFORM", "offscreen"); - Dtk::Widget::DApplication app(argc, argv); ::testing::InitGoogleTest(&argc, argv); + // gerrit编译时没有显示器,需要指定环境变量 + qputenv("QT_QPA_PLATFORM", "offscreen"); #ifdef QT_DEBUG __sanitizer_set_report_path("asan.log"); diff --git a/tests/testcases/widgets/ut_daboutdialog.cpp b/tests/testcases/widgets/ut_daboutdialog.cpp index c6cf437fd..6d48f4afb 100644 --- a/tests/testcases/widgets/ut_daboutdialog.cpp +++ b/tests/testcases/widgets/ut_daboutdialog.cpp @@ -36,7 +36,11 @@ TEST_F(ut_DAboutDialog, setAcknowledgementVisible) TEST_F(ut_DAboutDialog, setCompanyLogo) { widget->setCompanyLogo(QPixmap(50, 50)); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) ASSERT_EQ(widget->companyLogo()->size(), QSize(50, 50)); +#else + ASSERT_EQ(widget->companyLogo().size(), QSize(50, 50)); +#endif }; TEST_F(ut_DAboutDialog, setDescription) diff --git a/tests/testcases/widgets/ut_dimageviewer.cpp b/tests/testcases/widgets/ut_dimageviewer.cpp index 0eb19ab37..dfaca0c3b 100644 --- a/tests/testcases/widgets/ut_dimageviewer.cpp +++ b/tests/testcases/widgets/ut_dimageviewer.cpp @@ -9,6 +9,10 @@ #include #include #include +#if QT_VERSION > QT_VERSION_CHECK(6, 0, 0) +#include +#include +#endif #include "dimageviewer.h" #include "private/dimagevieweritems_p.h" @@ -422,6 +426,7 @@ TEST_F(ut_DImageViewer, testRequestPreviousImage) QSignalSpy changeSignal(viewer, &DImageViewer::requestPreviousImage); // Simulate event trigger. +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QTouchEvent::TouchPoint point; point.setStartPos(QPointF(0, 0)); point.setLastPos(QPointF(300, 0)); @@ -434,6 +439,20 @@ TEST_F(ut_DImageViewer, testRequestPreviousImage) QTouchEvent touchEvent2(QEvent::TouchEnd, nullptr, Qt::NoModifier, Qt::TouchPointReleased, {point}); viewer->event(&touchEvent2); ASSERT_EQ(changeSignal.count(), 1); +#else + QMutableEventPoint point; + point.setGlobalPosition({0,0}); + point.setGlobalLastPosition({300,0}); + QTouchEvent touchEvent{QEvent::TouchEnd,nullptr,Qt::NoModifier,{point}}; + + viewer->event(&touchEvent); + ASSERT_EQ(changeSignal.count(), 1); + + point.setGlobalLastPosition({100,0}); + QTouchEvent touchEvent2{QEvent::TouchEnd, nullptr, Qt::NoModifier, {point}}; + viewer->event(&touchEvent2); + ASSERT_EQ(changeSignal.count(), 1); +#endif } TEST_F(ut_DImageViewer, testRequestNextImage) @@ -442,6 +461,7 @@ TEST_F(ut_DImageViewer, testRequestNextImage) QSignalSpy changeSignal(viewer, &DImageViewer::requestNextImage); // Simulate event trigger. +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QTouchEvent::TouchPoint point; point.setStartPos(QPointF(0, 0)); point.setLastPos(QPointF(-300, 0)); @@ -454,6 +474,20 @@ TEST_F(ut_DImageViewer, testRequestNextImage) QTouchEvent touchEvent2(QEvent::TouchEnd, nullptr, Qt::NoModifier, Qt::TouchPointReleased, {point, point}); viewer->event(&touchEvent2); ASSERT_EQ(changeSignal.count(), 1); +#else + QMutableEventPoint point; + point.setGlobalPosition({0,0}); + point.setGlobalLastPosition({-300, 0}); + QTouchEvent touchEvent(QEvent::TouchEnd, nullptr, Qt::NoModifier,{point}); + + viewer->event(&touchEvent); + ASSERT_EQ(changeSignal.count(), 1); + + // Test multi point touch. + QTouchEvent touchEvent2(QEvent::TouchEnd, nullptr, Qt::NoModifier, {point, point}); + viewer->event(&touchEvent2); + ASSERT_EQ(changeSignal.count(), 1); +#endif } TEST_F(ut_DImageViewer, testCropImageFinished)