From ffc0ed2da55968ef65035a2d146a717284498ecb Mon Sep 17 00:00:00 2001 From: liuxing Date: Mon, 8 Mar 2021 16:23:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=BB=E5=8A=A1=E6=A0=8F=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 任务栏utils文件添加单元测试 Log: 任务栏添加单元测试 Change-Id: I9ba46f0fcbf003547411c726ec7c74b40c6f7cde --- tests/{ => util}/ut_monitor.cpp | 27 +++++++++- tests/util/ut_themeappicon.cpp | 32 ++++++++++++ tests/util/ut_touchsignalmanager.cpp | 76 ++++++++++++++++++++++++++++ tests/util/ut_utils.cpp | 60 ++++++++++++++++++++++ 4 files changed, 194 insertions(+), 1 deletion(-) rename tests/{ => util}/ut_monitor.cpp (75%) create mode 100644 tests/util/ut_themeappicon.cpp create mode 100644 tests/util/ut_touchsignalmanager.cpp create mode 100644 tests/util/ut_utils.cpp diff --git a/tests/ut_monitor.cpp b/tests/util/ut_monitor.cpp similarity index 75% rename from tests/ut_monitor.cpp rename to tests/util/ut_monitor.cpp index 55484fbb0..6a80f25de 100644 --- a/tests/ut_monitor.cpp +++ b/tests/util/ut_monitor.cpp @@ -63,7 +63,7 @@ void Test_Monitor::TearDown() monitor = nullptr; } -TEST_F(Test_Monitor, dockitem_test) +TEST_F(Test_Monitor, monitor_test) { ASSERT_NE(monitor, nullptr); @@ -74,15 +74,24 @@ TEST_F(Test_Monitor, dockitem_test) monitor->setX(x); ASSERT_EQ(monitor->x(), x); + monitor->setX(x); monitor->setY(y); ASSERT_EQ(monitor->y(), y); + monitor->setY(y); monitor->setW(w); ASSERT_EQ(monitor->w(), w); + monitor->setW(w); monitor->setH(h); ASSERT_EQ(monitor->h(), h); + monitor->setH(h); + + ASSERT_EQ(monitor->left(), x); + ASSERT_EQ(monitor->right(), x + w); + ASSERT_EQ(monitor->top(), y); + ASSERT_EQ(monitor->bottom(), y + h); ASSERT_EQ(monitor->topLeft(), QPoint(x, y)); ASSERT_EQ(monitor->topRight(), QPoint(x + w, y)); @@ -101,6 +110,7 @@ TEST_F(Test_Monitor, dockitem_test) bool monitorEnable = true; monitor->setMonitorEnable(monitorEnable); ASSERT_EQ(monitor->enable(), monitorEnable); + monitor->setMonitorEnable(monitorEnable); Monitor::DockPosition dockPosition; dockPosition.leftDock = true; @@ -110,3 +120,18 @@ TEST_F(Test_Monitor, dockitem_test) monitor->setDockPosition(dockPosition); ASSERT_EQ(monitor->dockPosition(), dockPosition); } + +TEST_F(Test_Monitor, dockPosition_test) +{ + monitor->setDockPosition(Monitor::DockPosition(false, false, false, false)); + ASSERT_FALSE(monitor->dockPosition().docked(Position::Top)); + ASSERT_FALSE(monitor->dockPosition().docked(Position::Bottom)); + ASSERT_FALSE(monitor->dockPosition().docked(Position::Left)); + ASSERT_FALSE(monitor->dockPosition().docked(Position::Right)); + + monitor->dockPosition().reset(); + ASSERT_TRUE(monitor->dockPosition().docked(Position::Top)); + ASSERT_TRUE(monitor->dockPosition().docked(Position::Bottom)); + ASSERT_TRUE(monitor->dockPosition().docked(Position::Left)); + ASSERT_TRUE(monitor->dockPosition().docked(Position::Right)); +} diff --git a/tests/util/ut_themeappicon.cpp b/tests/util/ut_themeappicon.cpp new file mode 100644 index 000000000..68cbe69c2 --- /dev/null +++ b/tests/util/ut_themeappicon.cpp @@ -0,0 +1,32 @@ +#include "themeappicon.h" + +#include + +#include + +class Ut_ThemeAppIcon : public ::testing::Test +{ +public: + virtual void SetUp() override; + virtual void TearDown() override; +}; + +void Ut_ThemeAppIcon::SetUp() +{ +} + +void Ut_ThemeAppIcon::TearDown() +{ +} + +TEST_F(Ut_ThemeAppIcon, getIcon_test) +{ + ThemeAppIcon appIcon; + const QPixmap &pix1 = appIcon.getIcon("", 50, 1.0); + ASSERT_FALSE(pix1.isNull()); + appIcon.getIcon("dde-calendar", 50, 1.0); + const QPixmap &pix2 = appIcon.getIcon("data:image/test", 50, 1.0); + ASSERT_FALSE(pix2.isNull()); + const QPixmap &pix3 = appIcon.getIcon(":/res/all_settings_on.png", 50, 1.0); + ASSERT_FALSE(pix3.isNull()); +} diff --git a/tests/util/ut_touchsignalmanager.cpp b/tests/util/ut_touchsignalmanager.cpp new file mode 100644 index 000000000..d19591956 --- /dev/null +++ b/tests/util/ut_touchsignalmanager.cpp @@ -0,0 +1,76 @@ +#define private public +#include "touchsignalmanager.h" +#undef private + +#include + +#include + +class Ut_TouchSignalManager : public ::testing::Test +{ +public: + virtual void SetUp() override; + virtual void TearDown() override; +}; + +void Ut_TouchSignalManager::SetUp() +{ +} + +void Ut_TouchSignalManager::TearDown() +{ +} + +TEST_F(Ut_TouchSignalManager, isDragIconPress_test) +{ + ASSERT_EQ(TouchSignalManager::instance()->isDragIconPress(), false); + TouchSignalManager::instance()->m_dragIconPressed = true; + ASSERT_EQ(TouchSignalManager::instance()->isDragIconPress(), true); + TouchSignalManager::instance()->m_dragIconPressed = false; + ASSERT_EQ(TouchSignalManager::instance()->isDragIconPress(), false); +} + +TEST_F(Ut_TouchSignalManager, dealShortTouchPress_test) +{ + QSignalSpy spy(TouchSignalManager::instance(), SIGNAL(shortTouchPress(int, double, double))); + TouchSignalManager::instance()->dealShortTouchPress(1, 0, 0); + ASSERT_EQ(spy.count(), 1); + ASSERT_EQ(TouchSignalManager::instance()->isDragIconPress(), true); + + const QList &arguments = spy.takeFirst(); + ASSERT_EQ(arguments.size(), 3); + ASSERT_EQ(arguments.at(0), 1); + ASSERT_TRUE(qAbs(arguments.at(1).toDouble()) < 0.00001); + ASSERT_TRUE(qAbs(arguments.at(2).toDouble()) < 0.00001); +} + +TEST_F(Ut_TouchSignalManager, dealTouchRelease_test) +{ + QSignalSpy spy(TouchSignalManager::instance(), SIGNAL(touchRelease(double, double))); + TouchSignalManager::instance()->dealTouchRelease(0, 0); + ASSERT_EQ(spy.count(), 1); + ASSERT_EQ(TouchSignalManager::instance()->isDragIconPress(), false); + + const QList &arguments = spy.takeFirst(); + ASSERT_EQ(arguments.size(), 2); + ASSERT_TRUE(qAbs(arguments.at(0).toDouble()) < 0.00001); + ASSERT_TRUE(qAbs(arguments.at(1).toDouble()) < 0.00001); +} + +TEST_F(Ut_TouchSignalManager, dealTouchPress_test) +{ + QSignalSpy spy(TouchSignalManager::instance(), SIGNAL(middleTouchPress(double, double))); + TouchSignalManager::instance()->dealTouchPress(1, 1000, 0, 0); + ASSERT_EQ(spy.count(), 1); + const QList &arguments = spy.takeFirst(); + ASSERT_EQ(arguments.size(), 2); + ASSERT_TRUE(qAbs(arguments.at(0).toDouble()) < 0.00001); + ASSERT_TRUE(qAbs(arguments.at(1).toDouble()) < 0.00001); + + TouchSignalManager::instance()->dealTouchPress(1, 2000, 0, 0); + ASSERT_EQ(spy.count(), 0); + TouchSignalManager::instance()->dealTouchPress(1, 500, 0, 0); + ASSERT_EQ(spy.count(), 0); + TouchSignalManager::instance()->dealTouchPress(2, 0000, 0, 0); + ASSERT_EQ(spy.count(), 0); +} diff --git a/tests/util/ut_utils.cpp b/tests/util/ut_utils.cpp new file mode 100644 index 000000000..5c0b0e7d7 --- /dev/null +++ b/tests/util/ut_utils.cpp @@ -0,0 +1,60 @@ +#include "utils.h" + +#include + +class Ut_Utils : public ::testing::Test +{ +public: + virtual void SetUp() override; + virtual void TearDown() override; +}; + +void Ut_Utils::SetUp() +{ +} + +void Ut_Utils::TearDown() +{ +} + +TEST_F(Ut_Utils, comparePluginApi_test) +{ + QString v1("1.0.0"); + QString v2("1.0.1"); + QString v3("1.0.0.0"); + + ASSERT_EQ(Utils::comparePluginApi(v1, v1), 0); + ASSERT_EQ(Utils::comparePluginApi(v1, v2), -1); + ASSERT_EQ(Utils::comparePluginApi(v2, v1), 1); + ASSERT_EQ(Utils::comparePluginApi(v1, v3), -1); + ASSERT_EQ(Utils::comparePluginApi(v3, v1), 1); +} + +TEST_F(Ut_Utils, isSettingConfigured_test) +{ +// Utils::isSettingConfigured("com.deepin.dde.dock.mainwindow", "/com/deepin/dde/dock/mainwindow/", "only-show-primary"); + ASSERT_FALSE(Utils::isSettingConfigured("", "", "")); +} + +TEST_F(Ut_Utils, screenAt_test) +{ + Utils::screenAt(QPoint(0, 0)); + ASSERT_EQ(Utils::screenAt(QPoint(-1, -1)), nullptr); +} + +TEST_F(Ut_Utils, screenAtByScaled_test) +{ + Utils::screenAtByScaled(QPoint(0, 0)); + ASSERT_EQ(Utils::screenAtByScaled(QPoint(-1, -1)), nullptr); +} + +TEST_F(Ut_Utils, renderSVG_test) +{ + QPixmap pix(":/res/all_settings_on.png"); + const QSize &size = pix.size(); + + ASSERT_TRUE(Utils::renderSVG("", size, 1.0).isNull()); + ASSERT_EQ(Utils::renderSVG(":/res/all_settings_on.png", size, 1.0).size(), size); + ASSERT_EQ(Utils::renderSVG(":/res/all_settings_on.png", QSize(50, 50), 1.0).size(), QSize(50, 50)); + ASSERT_EQ(Utils::renderSVG(":/res/all_settings_on.png", QSize(50, 50), 0.5).size(), QSize(25, 25)); +}