mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
221 lines
5.8 KiB
C++
221 lines
5.8 KiB
C++
// Copyright (C) 2018 ~ 2020 Uniontech Technology Co., Ltd.
|
|
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
|
|
//
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
#include <QObject>
|
|
#include <QThread>
|
|
#include <QTest>
|
|
#include <QSignalSpy>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#define private public
|
|
#include "mainwindow.h"
|
|
#undef private
|
|
|
|
using namespace ::testing;
|
|
|
|
class Test_MainWindow : public ::testing::Test
|
|
{
|
|
};
|
|
|
|
TEST_F(Test_MainWindow, onDbusNameOwnerChanged)
|
|
{
|
|
MainWindow window;
|
|
window.onDbusNameOwnerChanged("org.kde.StatusNotifierWatcher", "old", "new");
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, compositeChanged)
|
|
{
|
|
MainWindow window;
|
|
window.compositeChanged();
|
|
|
|
ASSERT_TRUE(true);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, moveEvent)
|
|
{
|
|
MainWindow window;
|
|
QMouseEvent moveEvent(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
|
window.mouseMoveEvent(&moveEvent);
|
|
|
|
ASSERT_TRUE(true);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, mousePressEvent)
|
|
{
|
|
// 显示菜单会阻塞住
|
|
// MainWindow window;
|
|
// QMouseEvent mousePressEvent(QEvent::MouseButtonPress, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
|
// window.mousePressEvent(&mousePressEvent);
|
|
|
|
ASSERT_TRUE(true);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, launch)
|
|
{
|
|
MainWindow window;
|
|
|
|
qApp->setProperty("CANSHOW", false);
|
|
window.launch();
|
|
|
|
qApp->setProperty("CANSHOW", true);
|
|
window.launch();
|
|
|
|
window.callShow();
|
|
|
|
ASSERT_TRUE(true);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, RegisterDdeSession)
|
|
{
|
|
MainWindow window;
|
|
window.RegisterDdeSession();
|
|
|
|
qputenv("DDE_SESSION_PROCESS_COOKIE_ID", "111");
|
|
window.RegisterDdeSession();
|
|
|
|
ASSERT_TRUE(true);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, adjustShadowMask)
|
|
{
|
|
MainWindow *window = new MainWindow;
|
|
|
|
window->RegisterDdeSession();
|
|
|
|
window->m_launched = true;
|
|
window->adjustShadowMask();
|
|
|
|
// window->onDbusNameOwnerChanged(SNI_WATCHER_SERVICE, "old", "new");
|
|
delete window;
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, event_test)
|
|
{
|
|
MainWindow *window = new MainWindow;
|
|
|
|
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
|
window->mouseMoveEvent(&event4);
|
|
|
|
QResizeEvent event5((QSize()), QSize());
|
|
window->resizeEvent(&event5);
|
|
|
|
QMimeData *data = new QMimeData;
|
|
data->setText("test");
|
|
|
|
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
|
window->dragEnterEvent(&event9);
|
|
|
|
QKeyEvent event11(QEvent::Type::KeyPress, Qt::Key_Escape, Qt::ControlModifier);
|
|
window->keyPressEvent(&event11);
|
|
|
|
QEnterEvent event12(QPointF(0.0, 0.0), QPointF(0.0, 0.0), QPointF(0.0, 0.0));
|
|
window->enterEvent(&event12);
|
|
|
|
data->deleteLater();
|
|
delete window;
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, coverage_test)
|
|
{
|
|
MainWindow *window = new MainWindow;
|
|
|
|
window->resizeDockIcon();
|
|
window->adjustShadowMask();
|
|
window->resetDragWindow();
|
|
window->onMainWindowSizeChanged(QPoint(10, 10));
|
|
window->touchRequestResizeDock();
|
|
window->sendNotifications();
|
|
|
|
window->m_multiScreenWorker->m_hideMode = HideMode::SmartHide;
|
|
window->m_multiScreenWorker->m_hideState = HideState::Hide;
|
|
|
|
// window->callShow();
|
|
|
|
// window->m_multiScreenWorker->m_hideState = HideState::Show;
|
|
// window->callShow();
|
|
|
|
// window->m_multiScreenWorker->m_hideMode = HideMode::KeepShowing;
|
|
// window->callShow();
|
|
|
|
// window->m_multiScreenWorker->m_hideMode = HideMode::KeepHidden;
|
|
// window->callShow();
|
|
|
|
delete window;
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, dragWidget_test)
|
|
{
|
|
DragWidget w;
|
|
|
|
ASSERT_FALSE(w.m_dragStatus);
|
|
QTest::mousePress(&w, Qt::LeftButton);
|
|
ASSERT_TRUE(w.m_dragStatus);
|
|
|
|
QMouseEvent event(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
|
w.mouseMoveEvent(&event);
|
|
|
|
QTest::mouseRelease(&w, Qt::LeftButton);
|
|
ASSERT_FALSE(w.m_dragStatus);
|
|
|
|
ASSERT_EQ(w.objectName(), "DragWidget");
|
|
|
|
w.onTouchMove(1.0, 1.0);
|
|
|
|
QEvent enterEvent(QEvent::Enter);
|
|
w.enterEvent(&enterEvent);
|
|
|
|
QEvent leaveEvent(QEvent::Leave);
|
|
w.leaveEvent(&leaveEvent);
|
|
}
|
|
|
|
TEST_F(Test_MainWindow, test4)
|
|
{
|
|
MainWindow *window = new MainWindow;
|
|
MultiScreenWorker *worker = window->m_multiScreenWorker;
|
|
|
|
worker->reInitDisplayData();
|
|
|
|
worker->setStates(MultiScreenWorker::AutoHide, true);
|
|
worker->onAutoHideChanged(true);
|
|
QTest::qWait(510);
|
|
|
|
worker->dockRectWithoutScale("", Position::Top, HideMode::KeepShowing, DisplayMode::Fashion);
|
|
worker->dockRectWithoutScale("", Position::Top, HideMode::KeepHidden, DisplayMode::Fashion);
|
|
worker->dockRectWithoutScale("", Position::Top, HideMode::SmartHide, DisplayMode::Fashion);
|
|
|
|
worker->onWindowSizeChanged(1);
|
|
worker->onRequestUpdateMonitorInfo();
|
|
|
|
worker->setStates(MultiScreenWorker::LauncherDisplay, false);
|
|
worker->onRequestDelayShowDock();
|
|
|
|
worker->updateParentGeometry(QRect(), Position::Top);
|
|
worker->updateParentGeometry(QRect(), Position::Bottom);
|
|
worker->updateParentGeometry(QRect(), Position::Left);
|
|
worker->updateParentGeometry(QRect(), Position::Right);
|
|
|
|
worker->m_position = Position::Top;
|
|
worker->onRequestNotifyWindowManager();
|
|
worker->m_position = Position::Bottom;
|
|
worker->onRequestNotifyWindowManager();
|
|
worker->m_position = Position::Left;
|
|
worker->onRequestNotifyWindowManager();
|
|
worker->m_position = Position::Right;
|
|
worker->onRequestNotifyWindowManager();
|
|
|
|
worker->m_hideMode = HideMode::SmartHide;
|
|
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
|
|
|
worker->m_hideMode = HideMode::KeepHidden;
|
|
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
|
|
|
worker->m_hideMode = HideMode::KeepShowing;
|
|
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
|
|
|
ASSERT_TRUE(true);
|
|
delete window;
|
|
}
|