Revision control
Copy as Markdown
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include "qmockmediacapturesession.h"
#include "qmockintegration.h"
#include <QtMultimediaWidgets/qgraphicsvideoitem.h>
#include <QtMultimediaWidgets/qvideowidget.h>
#include <QtTest/qsignalspy.h>
#include <QtTest/qtest.h>
#include <QtMultimedia/qcamera.h>
#include <QtMultimedia/qimagecapture.h>
#include <QtMultimedia/qmediacapturesession.h>
#include <QtMultimedia/qvideosink.h>
#include <QtMultimedia/private/qplatformcamera_p.h>
#include <QtMultimedia/private/qplatformimagecapture_p.h>
#include <QtCore/qdebug.h>
#include <QtCore/qobject.h>
Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
class tst_QCameraWidgets: public QObject
{
Q_OBJECT
public slots:
void initTestCase();
void cleanupTestCase();
private slots:
void testCameraEncodingProperyChange();
void testSetVideoOutput();
};
void tst_QCameraWidgets::initTestCase()
{
}
void tst_QCameraWidgets::cleanupTestCase()
{
}
void tst_QCameraWidgets::testCameraEncodingProperyChange()
{
QMediaCaptureSession session;
QCamera camera;
QImageCapture imageCapture;
session.setCamera(&camera);
session.setImageCapture(&imageCapture);
QSignalSpy activeChangedSignal(&camera, &QCamera::activeChanged);
camera.start();
QCOMPARE(camera.isActive(), true);
QCOMPARE(activeChangedSignal.size(), 1);
}
void tst_QCameraWidgets::testSetVideoOutput()
{
QVideoWidget widget;
QGraphicsVideoItem item;
QVideoSink surface;
QMediaCaptureSession session;
session.setVideoOutput(&widget);
QVERIFY(session.videoSink() == widget.videoSink());
QVERIFY(session.videoOutput() == &widget);
session.setVideoOutput(&item);
QVERIFY(session.videoSink() == item.videoSink());
QVERIFY(session.videoOutput() == &item);
session.setVideoOutput(nullptr);
QVERIFY(session.videoSink() == nullptr);
QVERIFY(session.videoOutput() == nullptr);
session.setVideoOutput(&widget);
QVERIFY(session.videoSink() == widget.videoSink());
QVERIFY(session.videoOutput() == &widget);
session.setVideoOutput(nullptr);
QVERIFY(session.videoOutput() == nullptr);
session.setVideoOutput(&surface);
QVERIFY(session.videoSink() == &surface);
QVERIFY(session.videoOutput() == &surface);
session.setVideoSink(nullptr);
QVERIFY(session.videoSink() == nullptr);
QVERIFY(session.videoOutput() == nullptr);
session.setVideoOutput(&surface);
QVERIFY(session.videoSink() == &surface);
QVERIFY(session.videoOutput() == &surface);
session.setVideoSink(&surface);
QVERIFY(session.videoSink() == &surface);
QVERIFY(session.videoOutput() == nullptr);
session.setVideoOutput(&widget);
QVERIFY(session.videoSink() == widget.videoSink());
QVERIFY(session.videoOutput() == &widget);
session.setVideoOutput(&surface);
QVERIFY(session.videoOutput() == &surface);
}
QTEST_MAIN(tst_QCameraWidgets)
#include "tst_qcamerawidgets.moc"