Add minimal QPermission auto-test
To be extended as neeeded. Pick-to: 6.5 Change-Id: I57d2f55f67de073fe3e4916b7ba655342cf661dc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
parent
c66adaa1f1
commit
a478d730f8
@ -47,6 +47,9 @@ if(WIN32)
|
|||||||
add_subdirectory(qwineventnotifier)
|
add_subdirectory(qwineventnotifier)
|
||||||
add_subdirectory(qwinregistrykey)
|
add_subdirectory(qwinregistrykey)
|
||||||
endif()
|
endif()
|
||||||
|
if(QT_FEATURE_permissions)
|
||||||
|
add_subdirectory(qpermission)
|
||||||
|
endif()
|
||||||
if(QT_FEATURE_private_tests)
|
if(QT_FEATURE_private_tests)
|
||||||
add_subdirectory(qproperty)
|
add_subdirectory(qproperty)
|
||||||
endif()
|
endif()
|
||||||
|
1
tests/auto/corelib/kernel/qpermission/.gitignore
vendored
Normal file
1
tests/auto/corelib/kernel/qpermission/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
tst_qpermission
|
13
tests/auto/corelib/kernel/qpermission/CMakeLists.txt
Normal file
13
tests/auto/corelib/kernel/qpermission/CMakeLists.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
if (NOT QT_FEATURE_permissions)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
qt_internal_add_test(tst_qpermission
|
||||||
|
SOURCES
|
||||||
|
tst_qpermission.cpp
|
||||||
|
LIBRARIES
|
||||||
|
Qt::Core
|
||||||
|
)
|
65
tests/auto/corelib/kernel/qpermission/tst_qpermission.cpp
Normal file
65
tests/auto/corelib/kernel/qpermission/tst_qpermission.cpp
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
// Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
#include <QPermission>
|
||||||
|
|
||||||
|
#include <QTest>
|
||||||
|
|
||||||
|
struct DummyPermission // a minimal QPermission-compatible type
|
||||||
|
{
|
||||||
|
using QtPermissionHelper = void;
|
||||||
|
int state = 0;
|
||||||
|
};
|
||||||
|
Q_DECLARE_METATYPE(DummyPermission)
|
||||||
|
|
||||||
|
class tst_QPermission : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
private Q_SLOTS:
|
||||||
|
void converting_Dummy() const { return converting_impl<DummyPermission>(); }
|
||||||
|
void converting_Location() const { return converting_impl<QLocationPermission>(); }
|
||||||
|
void converting_Calendar() const { return converting_impl<QCalendarPermission>(); }
|
||||||
|
void converting_Contacts() const { return converting_impl<QContactsPermission>(); }
|
||||||
|
void converting_Camera() const { return converting_impl<QCameraPermission>(); }
|
||||||
|
void converting_Microphone() const { return converting_impl<QMicrophonePermission>(); }
|
||||||
|
void converting_Bluetooth() const { return converting_impl<QBluetoothPermission>(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
template <typename T>
|
||||||
|
void converting_impl() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void tst_QPermission::converting_impl() const
|
||||||
|
{
|
||||||
|
T concrete;
|
||||||
|
const T cconcrete = concrete;
|
||||||
|
const auto metaType = QMetaType::fromType<T>();
|
||||||
|
|
||||||
|
// construction is implicit:
|
||||||
|
// from rvalue:
|
||||||
|
{
|
||||||
|
QPermission p = T();
|
||||||
|
QCOMPARE_EQ(p.type(), metaType);
|
||||||
|
}
|
||||||
|
// from mutable lvalue:
|
||||||
|
{
|
||||||
|
QPermission p = concrete;
|
||||||
|
QCOMPARE_EQ(p.type(), metaType);
|
||||||
|
}
|
||||||
|
// from const lvalue:
|
||||||
|
{
|
||||||
|
QPermission p = cconcrete;
|
||||||
|
QCOMPARE_EQ(p.type(), metaType);
|
||||||
|
}
|
||||||
|
|
||||||
|
// data<>() compiles:
|
||||||
|
{
|
||||||
|
const QPermission p = concrete;
|
||||||
|
[[maybe_unused]] auto r = p.data<T>();
|
||||||
|
static_assert(std::is_same_v<decltype(r), T>);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QTEST_APPLESS_MAIN(tst_QPermission)
|
||||||
|
#include "tst_qpermission.moc"
|
Loading…
x
Reference in New Issue
Block a user