Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
controlstestutils_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4
#
ifndef
CONTROLSTESTUTILS_P_H
5
#
define
CONTROLSTESTUTILS_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
QtTest
/
qtest
.
h
>
19
#
include
<
QtGui
/
qpa
/
qplatformtheme
.
h
>
20
#
include
<
QtQuickTestUtils
/
private
/
visualtestutils_p
.
h
>
21
22
QT_BEGIN_NAMESPACE
23
24
class
QQmlComponent;
25
class
QQmlEngine;
26
class
QQuickApplicationWindow;
27
class
QQuickAbstractButton;
28
class
QQuickControl;
29
class
QQuickMenuItem;
30
class
QQuickPopup;
31
32
namespace
QQuickControlsTestUtils
33
{
34
class
QQuickControlsApplicationHelper
:
public
QQuickVisualTestUtils
::
QQuickApplicationHelper
35
{
36
public
:
37
QQuickControlsApplicationHelper
(QQmlDataTest *testCase,
const
QString &testFilePath,
38
const
QVariantMap &initialProperties = {},
39
const
QStringList &qmlImportPaths = {});
40
41
QQuickApplicationWindow *
appWindow
=
nullptr
;
42
};
43
44
struct
QQuickStyleHelper
45
{
46
[[nodiscard]]
bool
updateStyle
(
const
QString &style);
47
48
QString
currentStyle
;
49
QScopedPointer
<
QQmlEngine
>
engine
;
50
};
51
52
typedef
std
::
function
<
void
(
const
QString
&
/*styleName*/
,
const
QString
&
/*typeName*/
,
53
const
QString
&
/*relativePath*/
,
const
QUrl
&
/*absoluteUrl*/
)>
ForEachCallback
;
54
55
void
forEachControl
(QQmlEngine *engine,
const
QString &qqc2ImportPath,
const
QString &styleName,
56
const
QString &targetPath,
const
QStringList &skipList,
ForEachCallback
callback);
57
void
addTestRowForEachControl
(QQmlEngine *engine,
const
QString &qqc2ImportPath,
const
QString &styleName,
58
const
QString &targetPath,
const
QStringList &skipList = QStringList());
59
60
[[
nodiscard
]]
bool
verifyButtonClickable
(QQuickAbstractButton *button);
61
[[
nodiscard
]]
bool
clickButton
(QQuickAbstractButton *button);
62
[[
nodiscard
]]
bool
clickMenuItem
(QQuickMenuItem *menuItem);
63
[[
nodiscard
]]
bool
doubleClickButton
(QQuickAbstractButton *button);
64
[[
nodiscard
]]
QString
visualFocusFailureMessage
(QQuickControl *control);
65
66
class
ComponentCreator
:
public
QObject
67
{
68
Q_OBJECT
69
QML_ELEMENT
70
QML_SINGLETON
71
Q_MOC_INCLUDE
(<
QtQml
/
qqmlcomponent
.
h
>)
72
73
public
:
74
Q_INVOKABLE
QQmlComponent
*
createComponent
(
const
QByteArray
&
data
);
75
};
76
77
class
StyleInfo
:
public
QObject
78
{
79
Q_OBJECT
80
Q_PROPERTY(QString styleName READ styleName CONSTANT FINAL)
81
QML_ELEMENT
82
QML_SINGLETON
83
84
public
:
85
// Used by C++.
86
void
initialize
(
const
QString
&
controlsImportPath
);
87
static
StyleInfo
*
instance
();
88
89
// Needed for QML integration.
90
static
StyleInfo
*
create
(QQmlEngine *, QJSEngine *);
91
92
QString
styleName
()
const
;
93
94
struct
QmlFileData
{
95
bool
operator
<(
const
QmlFileData
&rhs)
const
;
96
97
QString
styleName
;
98
QString
typeName
;
99
QString
relativePath
;
100
QString
absolutePath
;
101
};
102
103
QList
<
QmlFileData
>
sourceQmlFiles
()
const
;
104
QList
<
QmlFileData
>
installedQmlFiles
()
const
;
105
106
private
:
107
StyleInfo() =
default
;
108
109
void
warnIfNotInitialized()
const
;
110
111
QList<QmlFileData> m_sourceQmlFiles;
112
QList<QmlFileData> m_installedQmlFiles;
113
};
114
115
class
MockPlatformTheme
:
public
QPlatformTheme
116
{
117
Qt
::
ColorScheme
colorScheme
()
const
override
118
{
119
return
m_colorScheme;
120
}
121
void
requestColorScheme
(Qt::ColorScheme theme)
override
122
{
123
m_colorScheme = theme;
124
QWindowSystemInterface::handleThemeChange<QWindowSystemInterface::SynchronousDelivery>();
125
}
126
127
private
:
128
Qt::ColorScheme m_colorScheme =
QGuiApplication
::
styleHints
()->
colorScheme
();
129
};
130
131
class
SystemEnvironment
:
public
QObject
132
{
133
Q_OBJECT
134
QML_ELEMENT
135
QML_SINGLETON
136
137
public
:
138
Q_INVOKABLE
QString
value
(
const
QString
&
name
);
139
Q_INVOKABLE
bool
setValue
(
const
QString &name,
const
QString &value);
140
};
141
142
class
ApplicationAttributes
:
public
QObject
143
{
144
Q_OBJECT
145
QML_ELEMENT
146
QML_SINGLETON
147
148
public
:
149
Q_INVOKABLE
bool
test
(
Qt
::
ApplicationAttribute
attribute
)
const
;
150
Q_INVOKABLE
void
set
(Qt::ApplicationAttribute attribute,
bool
on =
true
);
151
};
152
153
[[
nodiscard
]]
bool
arePopupWindowsSupported
();
154
[[
nodiscard
]] QQuickPopup *
popupParent
(QQuickItem *item);
155
156
// Helper that allows us to call setFastAnimations, which requires a QCoreApplication instance.
157
class
QmlTestHelper
:
public
QObject
158
{
159
Q_OBJECT
160
161
public
slots
:
162
void
applicationAvailable
()
163
{
164
QQuickVisualTestUtils
::
setFastAnimations
(
true
);
165
}
166
};
167
}
168
169
namespace
QQuickTest
170
{
171
namespace
Private
{
172
// Overload of the one in quicktest.h.
173
[[
nodiscard
]]
QByteArray
qActiveFocusFailureMessage
(QQuickPopup *popup);
174
}
// namespace Private
175
}
// namespace QQuickTest
176
177
#
define
VERIFY_VISUAL_FOCUS
(
control
)
do
178
{
179
QVERIFY2
(
control
->
hasVisualFocus
(
)
,
qUtf8Printable
(
visualFocusFailureMessage
(
control
)
)
)
;
\
180
}
while
(
false
)
181
182
#
define
TRY_VERIFY_POPUP_OPENED
(
popup
)
do
183
{
184
QTRY_VERIFY
(
popup
->
isOpened
(
)
)
;
185
if
(
auto
*
popupWindow
=
QQuickPopupPrivate
::
get
(
popup
)
->
popupWindow
)
{
186
QVERIFY
(
QTest
::
qWaitForWindowExposed
(
popupWindow
)
)
;
187
if
(
QQuickTest
::
qIsPolishScheduled
(
popupWindow
)
)
188
QQuickTest
::
qWaitForPolish
(
popupWindow
)
;
189
}
\
190
}
while
(
false
)
191
192
QT_END_NAMESPACE
193
194
#
endif
// CONTROLSTESTUTILS_P_H
QQmlComponent
The QQmlComponent class encapsulates a QML component definition.
Definition
qqmlcomponent.h:33
QQuickControlsTestUtils::ApplicationAttributes
Definition
controlstestutils_p.h:143
QQuickControlsTestUtils::ApplicationAttributes::set
Q_INVOKABLE void set(Qt::ApplicationAttribute attribute, bool on=true)
Definition
controlstestutils.cpp:368
QQuickControlsTestUtils::ComponentCreator
Definition
controlstestutils_p.h:67
QQuickControlsTestUtils::MockPlatformTheme
Definition
controlstestutils_p.h:116
QQuickControlsTestUtils::MockPlatformTheme::colorScheme
Qt::ColorScheme colorScheme() const override
Definition
controlstestutils_p.h:117
QQuickControlsTestUtils::MockPlatformTheme::requestColorScheme
void requestColorScheme(Qt::ColorScheme theme) override
Definition
controlstestutils_p.h:121
QQuickControlsTestUtils::QQuickControlsApplicationHelper
Definition
controlstestutils_p.h:35
QQuickControlsTestUtils::QQuickControlsApplicationHelper::QQuickControlsApplicationHelper
QQuickControlsApplicationHelper(QQmlDataTest *testCase, const QString &testFilePath, const QVariantMap &initialProperties={}, const QStringList &qmlImportPaths={})
Definition
controlstestutils.cpp:20
QQuickControlsTestUtils::QQuickControlsApplicationHelper::appWindow
QQuickApplicationWindow * appWindow
Definition
controlstestutils_p.h:41
QQuickControlsTestUtils::QmlTestHelper
Definition
controlstestutils_p.h:158
QQuickControlsTestUtils::StyleInfo
Definition
controlstestutils_p.h:78
QQuickControlsTestUtils::StyleInfo::installedQmlFiles
QList< QmlFileData > installedQmlFiles() const
Definition
controlstestutils.cpp:328
QQuickControlsTestUtils::StyleInfo::instance
static StyleInfo * instance()
Definition
controlstestutils.cpp:240
QQuickControlsTestUtils::StyleInfo::sourceQmlFiles
QList< QmlFileData > sourceQmlFiles() const
Definition
controlstestutils.cpp:322
QQuickControlsTestUtils::StyleInfo::create
static StyleInfo * create(QQmlEngine *, QJSEngine *)
Definition
controlstestutils.cpp:235
QQuickControlsTestUtils::StyleInfo::styleName
QString styleName() const
Definition
controlstestutils.cpp:305
QQuickControlsTestUtils::SystemEnvironment
Definition
controlstestutils_p.h:132
QQuickControlsTestUtils::SystemEnvironment::setValue
Q_INVOKABLE bool setValue(const QString &name, const QString &value)
Definition
controlstestutils.cpp:344
QQuickControlsTestUtils
Definition
controlstestutils_p.h:33
QQuickControlsTestUtils::verifyButtonClickable
bool verifyButtonClickable(QQuickAbstractButton *button)
Definition
controlstestutils.cpp:107
QQuickControlsTestUtils::forEachControl
void forEachControl(QQmlEngine *engine, const QString &qqc2ImportPath, const QString &styleName, const QString &targetPath, const QStringList &skipList, ForEachCallback callback)
Definition
controlstestutils.cpp:55
QQuickControlsTestUtils::addTestRowForEachControl
void addTestRowForEachControl(QQmlEngine *engine, const QString &qqc2ImportPath, const QString &styleName, const QString &targetPath, const QStringList &skipList=QStringList())
Definition
controlstestutils.cpp:97
QQuickControlsTestUtils::clickMenuItem
bool clickMenuItem(QQuickMenuItem *menuItem)
Definition
controlstestutils.cpp:171
QQuickControlsTestUtils::ForEachCallback
std::function< void(const QString &, const QString &, const QString &, const QUrl &)> ForEachCallback
Definition
controlstestutils_p.h:53
QQuickControlsTestUtils::doubleClickButton
bool doubleClickButton(QQuickAbstractButton *button)
Definition
controlstestutils.cpp:201
QQuickControlsTestUtils::popupParent
QQuickPopup * popupParent(QQuickItem *item)
Definition
controlstestutils.cpp:389
QQuickControlsTestUtils::visualFocusFailureMessage
QString visualFocusFailureMessage(QQuickControl *control)
Definition
controlstestutils.cpp:349
QQuickControlsTestUtils::arePopupWindowsSupported
bool arePopupWindowsSupported()
Definition
controlstestutils.cpp:373
QQuickControlsTestUtils::clickButton
bool clickButton(QQuickAbstractButton *button)
Definition
controlstestutils.cpp:137
QQuickTest::Private
Definition
quicktest.h:84
QQuickTest::Private::qActiveFocusFailureMessage
QByteArray qActiveFocusFailureMessage(QQuickPopup *popup)
Definition
controlstestutils.cpp:403
QQuickTest
Definition
quicktest.h:69
QQuickControlsTestUtils::QQuickStyleHelper
Definition
controlstestutils_p.h:45
QQuickControlsTestUtils::QQuickStyleHelper::engine
QScopedPointer< QQmlEngine > engine
Definition
controlstestutils_p.h:49
QQuickControlsTestUtils::QQuickStyleHelper::updateStyle
bool updateStyle(const QString &style)
Definition
controlstestutils.cpp:36
QQuickControlsTestUtils::QQuickStyleHelper::currentStyle
QString currentStyle
Definition
controlstestutils_p.h:48
QQuickControlsTestUtils::StyleInfo::QmlFileData
Definition
controlstestutils_p.h:94
QQuickControlsTestUtils::StyleInfo::QmlFileData::absolutePath
QString absolutePath
Definition
controlstestutils_p.h:100
QQuickControlsTestUtils::StyleInfo::QmlFileData::relativePath
QString relativePath
Definition
controlstestutils_p.h:99
QQuickControlsTestUtils::StyleInfo::QmlFileData::operator<
bool operator<(const QmlFileData &rhs) const
Definition
controlstestutils.cpp:316
QQuickControlsTestUtils::StyleInfo::QmlFileData::typeName
QString typeName
Definition
controlstestutils_p.h:98
QQuickControlsTestUtils::StyleInfo::QmlFileData::styleName
QString styleName
Definition
controlstestutils_p.h:97
qtdeclarative
src
quickcontrolstestutils
controlstestutils_p.h
Generated on
for Qt by
1.18.0