summaryrefslogtreecommitdiffstats
path: root/tests/auto/unit/multimedia/qcameradevice
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/unit/multimedia/qcameradevice')
-rw-r--r--tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt20
-rw-r--r--tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp139
2 files changed, 159 insertions, 0 deletions
diff --git a/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt b/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt
new file mode 100644
index 000000000..4d9977e8e
--- /dev/null
+++ b/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+# Generated from qcameradevice.pro.
+
+#####################################################################
+## tst_qcameradevice Test:
+#####################################################################
+
+qt_internal_add_test(tst_qcameradevice
+ SOURCES
+ tst_qcameradevice.cpp
+ INCLUDE_DIRECTORIES
+ ../../mockbackend
+ LIBRARIES
+ # Remove: L${CMAKE_CURRENT_SOURCE_DIR}
+ Qt::Gui
+ Qt::MultimediaPrivate
+ MockMultimediaPlugin
+)
diff --git a/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp b/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp
new file mode 100644
index 000000000..455586243
--- /dev/null
+++ b/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp
@@ -0,0 +1,139 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include <qcamera.h>
+#include <qcameradevice.h>
+#include <qmediadevices.h>
+
+#include "qmockintegration.h"
+
+QT_USE_NAMESPACE
+
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
+using namespace Qt::Literals;
+
+class tst_QCameraDevice: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void constructor();
+ void defaultCamera();
+ void availableCameras();
+ void equality_operators();
+ void qDebug_operator();
+};
+
+void tst_QCameraDevice::constructor()
+{
+ {
+ // default camera
+ QCamera camera;
+ QCameraDevice info(camera.cameraDevice());
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), u"default"_s);
+ QCOMPARE(info.description(), u"defaultCamera"_s);
+ QCOMPARE(info.position(), QCameraDevice::UnspecifiedPosition);
+ }
+
+ auto cameras = QMediaDevices::videoInputs();
+ QCameraDevice info;
+ for (const auto &c : cameras) {
+ if (c.position() == QCameraDevice::BackFace)
+ info = c;
+ }
+ QVERIFY(!info.isNull());
+
+ QCamera camera(info);
+ QCOMPARE(info, camera.cameraDevice());
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), u"back"_s);
+ QCOMPARE(info.description(), u"backCamera"_s);
+ QCOMPARE(info.position(), QCameraDevice::BackFace);
+
+ QCameraDevice info2(info);
+ QVERIFY(!info2.isNull());
+ QCOMPARE(info2.id(), u"back"_s);
+ QCOMPARE(info2.description(), u"backCamera"_s);
+ QCOMPARE(info2.position(), QCameraDevice::BackFace);
+}
+
+void tst_QCameraDevice::defaultCamera()
+{
+ QCameraDevice info = QMediaDevices::defaultVideoInput();
+
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), u"default"_s);
+ QCOMPARE(info.description(), u"defaultCamera"_s);
+ QCOMPARE(info.position(), QCameraDevice::UnspecifiedPosition);
+
+ QCamera camera(info);
+ QCOMPARE(camera.cameraDevice(), info);
+}
+
+void tst_QCameraDevice::availableCameras()
+{
+ QList<QCameraDevice> cameras = QMediaDevices::videoInputs();
+ QCOMPARE(cameras.size(), 3);
+
+ QCameraDevice info = cameras.at(0);
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), u"default"_s);
+ QCOMPARE(info.description(), u"defaultCamera"_s);
+ QCOMPARE(info.position(), QCameraDevice::UnspecifiedPosition);
+
+ info = cameras.at(1);
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), QStringLiteral("front"));
+ QCOMPARE(info.description(), QStringLiteral("frontCamera"));
+ QCOMPARE(info.position(), QCameraDevice::FrontFace);
+
+ QCOMPARE(cameras.size(), 3);
+ info = cameras.at(2);
+ QVERIFY(!info.isNull());
+ QCOMPARE(info.id(), u"back"_s);
+ QCOMPARE(info.description(), u"backCamera"_s);
+ QCOMPARE(info.position(), QCameraDevice::BackFace);
+}
+
+void tst_QCameraDevice::equality_operators()
+{
+ QCameraDevice defaultCamera = QMediaDevices::defaultVideoInput();
+ QList<QCameraDevice> cameras = QMediaDevices::videoInputs();
+
+ QVERIFY(defaultCamera == cameras.at(0));
+ QVERIFY(defaultCamera != cameras.at(1));
+ QVERIFY(cameras.at(0) != cameras.at(1));
+
+ {
+ QCamera camera(defaultCamera);
+ QVERIFY(camera.cameraDevice() == defaultCamera);
+ QVERIFY(camera.cameraDevice() == cameras.at(0));
+ }
+
+ {
+ QCamera camera(cameras.at(1));
+ QVERIFY(camera.cameraDevice() == cameras.at(1));
+ }
+}
+
+void tst_QCameraDevice::qDebug_operator()
+{
+ QString outputString;
+ QDebug debug(&outputString);
+ debug.nospace();
+
+ QCameraDevice defaultCamera = QMediaDevices::defaultVideoInput();
+ debug << defaultCamera;
+
+ QCOMPARE(outputString,
+ u"\"QCameraDevice(name=defaultCamera, id=default, position=UnspecifiedPosition)\" "_s);
+}
+
+QTEST_MAIN(tst_QCameraDevice)
+
+#include "tst_qcameradevice.moc"