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(qwinregistrykey)
|
||||
endif()
|
||||
if(QT_FEATURE_permissions)
|
||||
add_subdirectory(qpermission)
|
||||
endif()
|
||||
if(QT_FEATURE_private_tests)
|
||||
add_subdirectory(qproperty)
|
||||
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