mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
feat: 参考开发编码规范,提交dockapplication的单元测试,删除ut_main.cpp中测试代码o
添加dockapplication单元测试并删除ut_main.cpp的dockapplication类的单元测试 Log: 添加dockapplication类的单元测试参考开发编码规范 Change-Id: Ie20e58c3386a7e382dee5e21e8719b4c6db5d4ae
This commit is contained in:
parent
e2e9211d1c
commit
04404a6aa9
@ -22,7 +22,6 @@
|
||||
|
||||
#include "dockapplication.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QMouseEvent>
|
||||
#include <QTouchEvent>
|
||||
|
||||
@ -36,17 +35,6 @@ int main(int argc, char **argv)
|
||||
|
||||
qApp->setProperty("CANSHOW", true);
|
||||
|
||||
QMouseEvent mouseEvent1(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt);
|
||||
qApp->sendEvent(&app, &mouseEvent1);
|
||||
|
||||
QMouseEvent mouseEvent2(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication);
|
||||
qApp->sendEvent(&app, &mouseEvent2);
|
||||
|
||||
QList<QTouchEvent::TouchPoint> list;
|
||||
list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
|
||||
QTouchEvent touchEven(QEvent::TouchBegin, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
|
||||
qApp->sendEvent(&app, &touchEven);
|
||||
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
|
||||
return RUN_ALL_TESTS();
|
||||
|
91
tests/util/ut_dockapplication.cpp
Normal file
91
tests/util/ut_dockapplication.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
#include "dockapplication.h"
|
||||
#include "constants.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QTouchEvent>
|
||||
#include <QTest>
|
||||
#include <QDebug>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
class Test_DockApplication : public QObject, public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject* obj, QEvent *event) override
|
||||
{
|
||||
if (qApp != obj)
|
||||
return false;
|
||||
|
||||
if (event->type() == QEvent::TouchUpdate) {
|
||||
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
|
||||
if (touchEvent)
|
||||
m_touchPointNum = touchEvent->touchPoints().size();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public:
|
||||
int m_touchPointNum; // 触摸点数
|
||||
};
|
||||
|
||||
void Test_DockApplication::SetUp()
|
||||
{
|
||||
qApp->installEventFilter(this);
|
||||
m_touchPointNum = 0;
|
||||
}
|
||||
|
||||
void Test_DockApplication::TearDown()
|
||||
{
|
||||
qApp->removeEventFilter(this);
|
||||
}
|
||||
|
||||
// 检测鼠标事件类型
|
||||
TEST_F(Test_DockApplication, dockapplication_touchstate_test)
|
||||
{
|
||||
// Qt::MouseEventSynthesizedByQt
|
||||
QMouseEvent mouseEvent1(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt);
|
||||
qApp->sendEvent(qApp, &mouseEvent1);
|
||||
|
||||
ASSERT_TRUE(qApp->property(IS_TOUCH_STATE).toBool());
|
||||
|
||||
// Qt::MouseEventSynthesizedByApplication
|
||||
QMouseEvent mouseEvent2(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication);
|
||||
qApp->sendEvent(qApp, &mouseEvent2);
|
||||
|
||||
ASSERT_TRUE(qApp->property(IS_TOUCH_STATE).toBool());
|
||||
|
||||
// 不指定
|
||||
QMouseEvent mouseEvent3(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
||||
qApp->sendEvent(qApp, &mouseEvent3);
|
||||
|
||||
ASSERT_FALSE(qApp->property(IS_TOUCH_STATE).toBool());
|
||||
}
|
||||
|
||||
// 检测触摸点数,如果是多点,就截获不到,如果是单点,可以正常截获
|
||||
TEST_F(Test_DockApplication, dockapplication_touchpoints_test)
|
||||
{
|
||||
// 三点触摸
|
||||
QList<QTouchEvent::TouchPoint> list;
|
||||
list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
|
||||
QTouchEvent threePointsTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
|
||||
QApplication::sendEvent(qApp, &threePointsTouchEvent);
|
||||
QTest::qWait(10);
|
||||
|
||||
EXPECT_EQ(m_touchPointNum, 0);
|
||||
|
||||
// 单点触摸
|
||||
list.clear();
|
||||
list << QTouchEvent::TouchPoint(0);
|
||||
QTouchEvent onePointTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
|
||||
QApplication::sendEvent(qApp, &onePointTouchEvent);
|
||||
QTest::qWait(10);
|
||||
|
||||
EXPECT_EQ(m_touchPointNum, 1);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user