File: ut_dalertcontrol.cpp

package info (click to toggle)
dtkwidget 5.7.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 36,540 kB
  • sloc: cpp: 63,257; ansic: 132; python: 88; sh: 42; makefile: 13
file content (78 lines) | stat: -rw-r--r-- 2,153 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// SPDX-FileCopyrightText: 2021 - 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later

#include <gtest/gtest.h>
#include "dalertcontrol.h"
#include "private/dalertcontrol_p.h"
#include "DLineEdit"
#include "DWidget"
#include <QApplication>

DWIDGET_USE_NAMESPACE

class ut_DAlertcontrol : public testing::Test
{
protected:
    void SetUp() override;
    void TearDown() override;

    DWidget *widget = nullptr;
    DLineEdit *lineEdit = nullptr;
    DAlertControl *control = nullptr;
};

void ut_DAlertcontrol::SetUp()
{
    widget = new DWidget(nullptr);
    lineEdit = new DLineEdit(widget);
    control = new DAlertControl(lineEdit, widget);

    widget->resize(320, 280);
    lineEdit->resize(180, 80);
    lineEdit->move(40, 10);
}

void ut_DAlertcontrol::TearDown()
{
    control->deleteLater();
    lineEdit->deleteLater();
    widget->deleteLater();
}

TEST_F(ut_DAlertcontrol, showALertMessage)
{
    // 测试 LineEdit 的文字内容是否设置成功
    QString testStr = QStringLiteral("xxxxxxxxxxxxxxxxxxxxxxxxxx");

    lineEdit->setText(testStr);
    ASSERT_EQ(lineEdit->text(), testStr);

    // 测试 showAlertMessage 是否生效
    control->showAlertMessage(testStr);
    ASSERT_EQ(control->d_func()->tooltip->text(), testStr);

    control->hideAlertMessage();
    ASSERT_EQ(control->d_func()->frame->isVisible(), false);

    // 测试LineEdit里面设置的警告色是否正常,setAlert 是否生效
    control->setAlert(false);
    ASSERT_EQ(control->isAlert(), false);

    control->setAlertColor(Qt::red);
    control->setAlert(true);
    ASSERT_EQ(control->isAlert(), true);
    ASSERT_EQ(QColor(Qt::red) == control->alertColor(), true);

    // 默认左对齐,测试右对齐
    control->setMessageAlignment(Qt::AlignRight);
    ASSERT_EQ(control->messageAlignment(), Qt::AlignRight);

    // 测试输入文本后通过信号槽获取内容
    QObject::connect(lineEdit, &DLineEdit::textChanged, widget, [&](const QString &text){
        control->showAlertMessage(lineEdit->text());
        ASSERT_EQ(text, testStr);
    });

    emit lineEdit->textChanged(testStr);
}