summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJøger Hansegård <joger.hansegard@qt.io>2024-01-28 18:21:52 +0100
committerJøger Hansegård <joger.hansegard@qt.io>2024-01-29 16:26:35 +0100
commit5070a7343504bbde988a903c2ef0a2d18af4303b (patch)
treebfa6f6eb7cd34ba5959bc40b4f70e41a7246c21e
parent2964b974c24b0e85f7923a2ff0b413d6ba80381c (diff)
Use regular plugin loader also in multimedia unit tests
This patch switches to regular plugin loading also in unit tests by introducing a 'mock' media plugin. This plugin is a static plugin, and does not have to be located in the plugin loader's search path. This allow us to create the mock plugin by setting an environment variable instead injecting a mock factory into the qplatformmediaintegration through private APIs. The purpose of this change is to simplify how we create the multimedia backend, and later get better control over its lifetime. Pick-to: 6.7 6.6 6.5 Change-Id: Ie6cc0ebecc21fb4d81e57cc9f257e4fc82f96e6b Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
-rw-r--r--src/multimedia/platform/qplatformmediaintegration.cpp53
-rw-r--r--src/multimedia/platform/qplatformmediaintegration_p.h5
-rw-r--r--tests/auto/unit/mockbackend/CMakeLists.txt41
-rw-r--r--tests/auto/unit/mockbackend/mock.json3
-rw-r--r--tests/auto/unit/mockbackend/qmockintegration.cpp26
-rw-r--r--tests/auto/unit/mockbackend/qmockintegration.h36
-rw-r--r--tests/auto/unit/multimedia/qaudiodecoder/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp8
-rw-r--r--tests/auto/unit/multimedia/qaudiorecorder/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qaudiorecorder/tst_qaudiorecorder.cpp3
-rw-r--r--tests/auto/unit/multimedia/qcamera/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp4
-rw-r--r--tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp5
-rw-r--r--tests/auto/unit/multimedia/qimagecapture/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qimagecapture/tst_qimagecapture.cpp5
-rw-r--r--tests/auto/unit/multimedia/qmediadevices/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qmediadevices/tst_qmediadevices.cpp12
-rw-r--r--tests/auto/unit/multimedia/qmediaplayer/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp3
-rw-r--r--tests/auto/unit/multimedia/qmediarecorder/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp3
-rw-r--r--tests/auto/unit/multimedia/qscreencapture/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimedia/qscreencapture/tst_qscreencapture.cpp4
-rw-r--r--tests/auto/unit/multimediawidgets/qcamerawidgets/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp4
-rw-r--r--tests/auto/unit/multimediawidgets/qgraphicsvideoitem/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimediawidgets/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp6
-rw-r--r--tests/auto/unit/multimediawidgets/qmediaplayerwidgets/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp5
-rw-r--r--tests/auto/unit/multimediawidgets/qvideowidget/CMakeLists.txt2
-rw-r--r--tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp4
32 files changed, 125 insertions, 131 deletions
diff --git a/src/multimedia/platform/qplatformmediaintegration.cpp b/src/multimedia/platform/qplatformmediaintegration.cpp
index e4258a179..d2ef66b7f 100644
--- a/src/multimedia/platform/qplatformmediaintegration.cpp
+++ b/src/multimedia/platform/qplatformmediaintegration.cpp
@@ -75,10 +75,24 @@ namespace {
struct InstanceHolder
{
- // TODO: replace the mutex with std::once
- QBasicMutex mutex;
+ InstanceHolder()
+ {
+ const auto backends = availableBackends();
+ QString backend = QString::fromUtf8(qgetenv("QT_MEDIA_BACKEND"));
+ if (backend.isEmpty() && !backends.isEmpty())
+ backend = defaultBackend(backends);
+
+ qCDebug(qLcMediaPlugin) << "loading backend" << backend;
+ instance.reset(
+ qLoadPlugin<QPlatformMediaIntegration, QPlatformMediaPlugin>(loader(), backend));
+
+ if (!instance) {
+ qWarning() << "could not load multimedia backend" << backend;
+ instance = std::make_unique<QDummyIntegration>();
+ }
+ }
+
std::unique_ptr<QPlatformMediaIntegration> instance;
- std::function<std::unique_ptr<QPlatformMediaIntegration>()> factory;
};
Q_GLOBAL_STATIC(InstanceHolder, instanceHolder);
@@ -89,42 +103,9 @@ QT_BEGIN_NAMESPACE
QPlatformMediaIntegration *QPlatformMediaIntegration::instance()
{
- QMutexLocker locker(&instanceHolder->mutex);
- if (instanceHolder->instance)
- return instanceHolder->instance.get();
-
- if (instanceHolder->factory) {
- instanceHolder->instance = instanceHolder->factory();
- return instanceHolder->instance.get();
- }
-
- const auto backends = availableBackends();
- QString backend = QString::fromUtf8(qgetenv("QT_MEDIA_BACKEND"));
- if (backend.isEmpty() && !backends.isEmpty())
- backend = defaultBackend(backends);
-
- qCDebug(qLcMediaPlugin) << "loading backend" << backend;
- instanceHolder->instance.reset(
- qLoadPlugin<QPlatformMediaIntegration, QPlatformMediaPlugin>(loader(), backend));
-
- if (!instanceHolder->instance) {
- qWarning() << "could not load multimedia backend" << backend;
- instanceHolder->instance = std::make_unique<QDummyIntegration>();
- }
-
return instanceHolder->instance.get();
}
-/*
- This API is there to be able to test with a mock backend.
-*/
-void QPlatformMediaIntegration::setPlatformFactory(std::function<std::unique_ptr<QPlatformMediaIntegration>()> factory)
-{
- Q_ASSERT((factory == nullptr) ^ (instanceHolder->factory == nullptr));
- instanceHolder->instance.reset();
- instanceHolder->factory = std::move(factory);
-}
-
QList<QCameraDevice> QPlatformMediaIntegration::videoInputs()
{
auto devices = videoDevices();
diff --git a/src/multimedia/platform/qplatformmediaintegration_p.h b/src/multimedia/platform/qplatformmediaintegration_p.h
index 10845326c..3f72c618b 100644
--- a/src/multimedia/platform/qplatformmediaintegration_p.h
+++ b/src/multimedia/platform/qplatformmediaintegration_p.h
@@ -101,11 +101,6 @@ protected:
virtual QPlatformCapturableWindows *createCapturableWindows() { return nullptr; }
private:
- friend class QMockIntegrationFactory;
- // API to be able to test with a mock backend
- static void setPlatformFactory(std::function<std::unique_ptr<QPlatformMediaIntegration>()> factory);
-
-private:
std::unique_ptr<QPlatformVideoDevices> m_videoDevices;
std::once_flag m_videoDevicesOnceFlag;
diff --git a/tests/auto/unit/mockbackend/CMakeLists.txt b/tests/auto/unit/mockbackend/CMakeLists.txt
index cc95ed4ea..4a1e346ec 100644
--- a/tests/auto/unit/mockbackend/CMakeLists.txt
+++ b/tests/auto/unit/mockbackend/CMakeLists.txt
@@ -4,30 +4,29 @@
# Generated from mockbackend.pro.
#####################################################################
-## QtMultimediaMockBackend Generic Library:
+## MockMultimediaPlugin Generic Library:
#####################################################################
-# special case begin
-add_library(QtMultimediaMockBackend INTERFACE)
-target_include_directories(QtMultimediaMockBackend INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(QtMultimediaMockBackend INTERFACE
- Qt::Core
- Qt::Gui
- Qt::MultimediaPrivate
+qt_internal_add_plugin(MockMultimediaPlugin
+ STATIC
+ OUTPUT_NAME mockmultimediaplugin
+ PLUGIN_TYPE multimedia
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../plugins"
+ SOURCES
+ qmockaudiodecoder.cpp qmockaudiodecoder.h
+ qmockaudiooutput.h
+ qmockcamera.cpp qmockcamera.h
+ qmockimagecapture.cpp qmockimagecapture.h
+ qmockmediaplayer.h
+ qmockmediaencoder.h
+ qmockmediacapturesession.h
+ qmockvideosink.h
+ qmockmediadevices.cpp qmockmediadevices.h
+ qmockintegration.cpp qmockintegration.h
+ LIBRARIES
+ Qt::MultimediaPrivate
+ Qt::CorePrivate
)
-target_sources(QtMultimediaMockBackend INTERFACE
- qmockaudiodecoder.cpp qmockaudiodecoder.h
- qmockaudiooutput.h
- qmockcamera.cpp qmockcamera.h
- qmockimagecapture.cpp qmockimagecapture.h
- qmockmediaplayer.h
- qmockmediaencoder.h
- qmockmediacapturesession.h
- qmockvideosink.h
- qmockmediadevices.cpp qmockmediadevices.h
- qmockintegration.cpp qmockintegration.h
-)
-# special case end
#### Keys ignored in scope 1:.:.:mockbackend.pro:<TRUE>:
# TEMPLATE = "lib"
diff --git a/tests/auto/unit/mockbackend/mock.json b/tests/auto/unit/mockbackend/mock.json
new file mode 100644
index 000000000..499a3de8c
--- /dev/null
+++ b/tests/auto/unit/mockbackend/mock.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "mock" ]
+}
diff --git a/tests/auto/unit/mockbackend/qmockintegration.cpp b/tests/auto/unit/mockbackend/qmockintegration.cpp
index 8330fcd7f..3218d46b3 100644
--- a/tests/auto/unit/mockbackend/qmockintegration.cpp
+++ b/tests/auto/unit/mockbackend/qmockintegration.cpp
@@ -1,6 +1,7 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+#include <QtMultimedia/private/qplatformmediaplugin_p.h>
#include "qmockintegration.h"
#include "qmockmediaplayer.h"
#include "qmockaudiodecoder.h"
@@ -15,6 +16,22 @@
QT_BEGIN_NAMESPACE
+class MockMultimediaPlugin : public QPlatformMediaPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QPlatformMediaPlugin_iid FILE "mock.json")
+
+public:
+ MockMultimediaPlugin() : QPlatformMediaPlugin() { }
+
+ QPlatformMediaIntegration *create(const QString &name) override
+ {
+ if (name == QLatin1String("mock"))
+ return new QMockIntegration;
+ return nullptr;
+ }
+};
+
class QMockVideoDevices : public QPlatformVideoDevices
{
public:
@@ -77,7 +94,12 @@ private:
QList<QCameraDevice> m_cameraDevices;
};
-QMockIntegration::QMockIntegration() = default;
+bool QMockIntegration::s_created = false;
+
+QMockIntegration::QMockIntegration()
+{
+ s_created = true;
+}
QMockIntegration::~QMockIntegration() = default;
@@ -171,3 +193,5 @@ void QMockIntegration::addNewCamera()
bool QMockCamera::simpleCamera = false;
QT_END_NAMESPACE
+
+#include "qmockintegration.moc"
diff --git a/tests/auto/unit/mockbackend/qmockintegration.h b/tests/auto/unit/mockbackend/qmockintegration.h
index 8ff275bb7..f62fed236 100644
--- a/tests/auto/unit/mockbackend/qmockintegration.h
+++ b/tests/auto/unit/mockbackend/qmockintegration.h
@@ -29,6 +29,7 @@ class QMockSurfaceCapture;
class QMockIntegration : public QPlatformMediaIntegration
{
public:
+ QMockIntegration();
~QMockIntegration();
static QMockIntegration *instance()
@@ -66,13 +67,14 @@ public:
QMockSurfaceCapture *lastScreenCapture() { return m_lastScreenCapture; }
QMockSurfaceCapture *lastWindowCapture() { return m_lastWindowCapture; }
+ static bool created() { return s_created; }
+
protected:
QPlatformVideoDevices *createVideoDevices() override;
private:
- friend class QMockIntegrationFactory;
- QMockIntegration();
+ static bool s_created;
Flags m_flags = {};
QMockMediaPlayer *m_lastPlayer = nullptr;
QMockAudioDecoder *m_lastAudioDecoderControl = nullptr;
@@ -86,27 +88,17 @@ private:
Q_DECLARE_OPERATORS_FOR_FLAGS(QMockIntegration::Flags);
-class QMockIntegrationFactory
-{
-public:
- QMockIntegrationFactory() { QMockIntegration::setPlatformFactory(std::ref(*this)); }
-
- ~QMockIntegrationFactory() { QMockIntegration::setPlatformFactory(nullptr); }
+#define Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN \
+ Q_IMPORT_PLUGIN(MockMultimediaPlugin) \
+ struct EnableMockPlugin \
+ { \
+ EnableMockPlugin() \
+ { \
+ qputenv("QT_MEDIA_BACKEND", "mock"); \
+ } \
+ }; \
+ static EnableMockPlugin s_mockMultimediaPluginEnabler;
- std::unique_ptr<QPlatformMediaIntegration> operator()()
- {
- Q_ASSERT(!m_wasRun);
- m_wasRun = true;
- return std::unique_ptr<QPlatformMediaIntegration>(new QMockIntegration);
- }
-
- bool wasRun() const { return m_wasRun; }
-
- Q_DISABLE_COPY(QMockIntegrationFactory);
-
-private:
- bool m_wasRun = false;
-};
QT_END_NAMESPACE
diff --git a/tests/auto/unit/multimedia/qaudiodecoder/CMakeLists.txt b/tests/auto/unit/multimedia/qaudiodecoder/CMakeLists.txt
index b2f76525e..cced66bda 100644
--- a/tests/auto/unit/multimedia/qaudiodecoder/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qaudiodecoder/CMakeLists.txt
@@ -17,5 +17,5 @@ qt_internal_add_test(tst_qaudiodecoder
Qt::Gui
Qt::Multimedia
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp b/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
index b8aac4c0f..4460da52e 100644
--- a/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
+++ b/tests/auto/unit/multimedia/qaudiodecoder/tst_qaudiodecoder.cpp
@@ -9,11 +9,16 @@
#include "qmockaudiodecoder.h"
#include "qmockintegration.h"
+QT_USE_NAMESPACE
+
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QAudioDecoder : public QObject
{
Q_OBJECT
public:
+
tst_QAudioDecoder();
private Q_SLOTS:
@@ -24,9 +29,6 @@ private Q_SLOTS:
void source();
void readAll();
void nullControl();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
tst_QAudioDecoder::tst_QAudioDecoder()
diff --git a/tests/auto/unit/multimedia/qaudiorecorder/CMakeLists.txt b/tests/auto/unit/multimedia/qaudiorecorder/CMakeLists.txt
index 8b4379d50..b2dc16b69 100644
--- a/tests/auto/unit/multimedia/qaudiorecorder/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qaudiorecorder/CMakeLists.txt
@@ -16,5 +16,5 @@ qt_internal_add_test(tst_qaudiorecorder
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qaudiorecorder/tst_qaudiorecorder.cpp b/tests/auto/unit/multimedia/qaudiorecorder/tst_qaudiorecorder.cpp
index d7c815016..a65718b1c 100644
--- a/tests/auto/unit/multimedia/qaudiorecorder/tst_qaudiorecorder.cpp
+++ b/tests/auto/unit/multimedia/qaudiorecorder/tst_qaudiorecorder.cpp
@@ -19,6 +19,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QAudioRecorder: public QObject
{
Q_OBJECT
@@ -34,7 +36,6 @@ private slots:
private:
QMediaRecorder *encoder = nullptr;
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QAudioRecorder::init()
diff --git a/tests/auto/unit/multimedia/qcamera/CMakeLists.txt b/tests/auto/unit/multimedia/qcamera/CMakeLists.txt
index 7a8dc5ea6..484793923 100644
--- a/tests/auto/unit/multimedia/qcamera/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qcamera/CMakeLists.txt
@@ -16,5 +16,5 @@ qt_internal_add_test(tst_multimedia_qcamera
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
index a98c18425..13bfbb303 100644
--- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
@@ -22,6 +22,7 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
class tst_QCamera: public QObject
{
@@ -72,9 +73,6 @@ private slots:
void testSignalIsoSensitivityChanged();
void testSignalShutterSpeedChanged();
void testSignalFlashReady();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QCamera::initTestCase()
diff --git a/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt b/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt
index 8d06d3ef1..4d9977e8e 100644
--- a/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qcameradevice/CMakeLists.txt
@@ -16,5 +16,5 @@ qt_internal_add_test(tst_qcameradevice
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp b/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp
index 29c617f12..afb6f68e1 100644
--- a/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp
+++ b/tests/auto/unit/multimedia/qcameradevice/tst_qcameradevice.cpp
@@ -13,6 +13,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QCameraDevice: public QObject
{
Q_OBJECT
@@ -27,9 +29,6 @@ private slots:
void defaultCamera();
void availableCameras();
void equality_operators();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QCameraDevice::initTestCase()
diff --git a/tests/auto/unit/multimedia/qimagecapture/CMakeLists.txt b/tests/auto/unit/multimedia/qimagecapture/CMakeLists.txt
index a3a99a432..908154cf9 100644
--- a/tests/auto/unit/multimedia/qimagecapture/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qimagecapture/CMakeLists.txt
@@ -16,5 +16,5 @@ qt_internal_add_test(tst_qimagecapture
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qimagecapture/tst_qimagecapture.cpp b/tests/auto/unit/multimedia/qimagecapture/tst_qimagecapture.cpp
index 8e665e4be..bb2b14f20 100644
--- a/tests/auto/unit/multimedia/qimagecapture/tst_qimagecapture.cpp
+++ b/tests/auto/unit/multimedia/qimagecapture/tst_qimagecapture.cpp
@@ -15,6 +15,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QImageCapture: public QObject
{
Q_OBJECT
@@ -38,9 +40,6 @@ private slots:
void imageExposed();
void imageSaved();
void readyForCaptureChanged();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QImageCapture::initTestCase() { }
diff --git a/tests/auto/unit/multimedia/qmediadevices/CMakeLists.txt b/tests/auto/unit/multimedia/qmediadevices/CMakeLists.txt
index 87cda2540..e8360f8b5 100644
--- a/tests/auto/unit/multimedia/qmediadevices/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qmediadevices/CMakeLists.txt
@@ -9,5 +9,5 @@ qt_internal_add_test(tst_qmediadevices
LIBRARIES
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qmediadevices/tst_qmediadevices.cpp b/tests/auto/unit/multimedia/qmediadevices/tst_qmediadevices.cpp
index 64ddd6587..b17d714d5 100644
--- a/tests/auto/unit/multimedia/qmediadevices/tst_qmediadevices.cpp
+++ b/tests/auto/unit/multimedia/qmediadevices/tst_qmediadevices.cpp
@@ -11,6 +11,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QMediaDevices : public QObject
{
Q_OBJECT
@@ -23,7 +25,6 @@ private slots:
void onlyVideoInputsChangedEmitted_when2MediaDevicesCreated_andCamerasChanged();
private:
- QMockIntegrationFactory mockIntegrationFactory;
QMockMediaDevices devices;
};
@@ -32,15 +33,14 @@ void tst_QMediaDevices::initTestCase() { }
void tst_QMediaDevices::videoInputsChangedEmitted_whenCamerasChanged()
{
QMediaDevices mediaDevices;
-
QSignalSpy videoInputsSpy(&mediaDevices, &QMediaDevices::videoInputsChanged);
- QVERIFY(!mockIntegrationFactory.wasRun());
- QTRY_VERIFY(mockIntegrationFactory.wasRun());
+ QVERIFY(QTest::qWaitFor([] { return QMockIntegration::created(); }));
+
QCOMPARE(videoInputsSpy.size(), 0);
QMockIntegration::instance()->addNewCamera();
- QCOMPARE(videoInputsSpy.size(), 1);
+ QTRY_COMPARE(videoInputsSpy.size(), 1);
QMockIntegration::instance()->addNewCamera();
QCOMPARE(videoInputsSpy.size(), 2);
@@ -56,7 +56,7 @@ void tst_QMediaDevices::onlyVideoInputsChangedEmitted_when2MediaDevicesCreated_a
QSignalSpy audioInputsSpy(&mediaDevicesA, &QMediaDevices::audioInputsChanged);
QSignalSpy audioOutputsSpy(&mediaDevicesA, &QMediaDevices::audioOutputsChanged);
- QTRY_VERIFY(mockIntegrationFactory.wasRun());
+ QVERIFY(QTest::qWaitFor([] { return QMockIntegration::created(); }));
// process events to wait for the queued video connection establishing
QTest::qWait(0);
diff --git a/tests/auto/unit/multimedia/qmediaplayer/CMakeLists.txt b/tests/auto/unit/multimedia/qmediaplayer/CMakeLists.txt
index 8ffc0f5ab..4d3f2f865 100644
--- a/tests/auto/unit/multimedia/qmediaplayer/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qmediaplayer/CMakeLists.txt
@@ -17,7 +17,7 @@ qt_internal_add_test(tst_qmediaplayer
Qt::Gui
Qt::MultimediaPrivate
Qt::Network
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
# Resources:
diff --git a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
index 8e8289e73..17a4ee2d0 100644
--- a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
+++ b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
@@ -21,6 +21,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class AutoConnection
{
public:
@@ -98,7 +100,6 @@ private slots:
private:
void setupCommonTestData();
- QMockIntegrationFactory mockIntegrationFactory;
QMockMediaPlayer *mockPlayer;
QAudioOutput *audioOutput = nullptr;
QMediaPlayer *player;
diff --git a/tests/auto/unit/multimedia/qmediarecorder/CMakeLists.txt b/tests/auto/unit/multimedia/qmediarecorder/CMakeLists.txt
index 746c309f1..83e40012a 100644
--- a/tests/auto/unit/multimedia/qmediarecorder/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qmediarecorder/CMakeLists.txt
@@ -16,5 +16,5 @@ qt_internal_add_test(tst_qmediarecorder
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp
index 8b6d7422f..fe81ec3d1 100644
--- a/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp
+++ b/tests/auto/unit/multimedia/qmediarecorder/tst_qmediarecorder.cpp
@@ -21,6 +21,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QMediaRecorder : public QObject
{
Q_OBJECT
@@ -52,7 +54,6 @@ private slots:
void testApplicationInative();
private:
- QMockIntegrationFactory mockIntegrationFactory;
QMediaCaptureSession *captureSession;
QCamera *object = nullptr;
QMockMediaCaptureSession *service = nullptr;
diff --git a/tests/auto/unit/multimedia/qscreencapture/CMakeLists.txt b/tests/auto/unit/multimedia/qscreencapture/CMakeLists.txt
index c70799b64..f5b152034 100644
--- a/tests/auto/unit/multimedia/qscreencapture/CMakeLists.txt
+++ b/tests/auto/unit/multimedia/qscreencapture/CMakeLists.txt
@@ -14,5 +14,5 @@ qt_internal_add_test(tst_qscreencapture
# Remove: L${CMAKE_CURRENT_SOURCE_DIR}
Qt::Gui
Qt::MultimediaPrivate
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimedia/qscreencapture/tst_qscreencapture.cpp b/tests/auto/unit/multimedia/qscreencapture/tst_qscreencapture.cpp
index 22c05ce8c..a95e16c78 100644
--- a/tests/auto/unit/multimedia/qscreencapture/tst_qscreencapture.cpp
+++ b/tests/auto/unit/multimedia/qscreencapture/tst_qscreencapture.cpp
@@ -13,6 +13,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QScreenCapture : public QObject
{
Q_OBJECT
@@ -38,8 +40,6 @@ public slots:
private slots:
void destructionOfActiveCapture();
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QScreenCapture::initTestCase() { }
diff --git a/tests/auto/unit/multimediawidgets/qcamerawidgets/CMakeLists.txt b/tests/auto/unit/multimediawidgets/qcamerawidgets/CMakeLists.txt
index 2e40cd52b..486f34690 100644
--- a/tests/auto/unit/multimediawidgets/qcamerawidgets/CMakeLists.txt
+++ b/tests/auto/unit/multimediawidgets/qcamerawidgets/CMakeLists.txt
@@ -18,5 +18,5 @@ qt_internal_add_test(tst_qcamerawidgets
Qt::MultimediaPrivate
Qt::MultimediaWidgetsPrivate
Qt::Widgets
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
index 0bec8c209..60517bbe6 100644
--- a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
+++ b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp
@@ -21,6 +21,7 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
class tst_QCameraWidgets: public QObject
{
@@ -33,9 +34,6 @@ public slots:
private slots:
void testCameraEncodingProperyChange();
void testSetVideoOutput();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QCameraWidgets::initTestCase()
diff --git a/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/CMakeLists.txt b/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/CMakeLists.txt
index 8cc5e528f..599042725 100644
--- a/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/CMakeLists.txt
+++ b/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/CMakeLists.txt
@@ -17,5 +17,5 @@ qt_internal_add_test(tst_qgraphicsvideoitem
Qt::MultimediaPrivate
Qt::MultimediaWidgetsPrivate
Qt::Widgets
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp b/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp
index b9e702285..743d8385d 100644
--- a/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp
+++ b/tests/auto/unit/multimediawidgets/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp
@@ -19,6 +19,9 @@
#include <qmockintegration.h>
QT_USE_NAMESPACE
+
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QGraphicsVideoItem : public QObject
{
Q_OBJECT
@@ -41,9 +44,6 @@ private slots:
void boundingRect();
void paint();
-
-public:
- QMockIntegrationFactory mockIntegrationFactory;
};
class QtTestGraphicsVideoItem : public QGraphicsVideoItem
diff --git a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/CMakeLists.txt b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/CMakeLists.txt
index 412167bc6..7c54e67b9 100644
--- a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/CMakeLists.txt
+++ b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/CMakeLists.txt
@@ -19,5 +19,5 @@ qt_internal_add_test(tst_qmediaplayerwidgets
Qt::MultimediaWidgetsPrivate
Qt::Network
Qt::Widgets
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
index 5846054d3..7fb9791c5 100644
--- a/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
+++ b/tests/auto/unit/multimediawidgets/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
@@ -17,6 +17,8 @@
QT_USE_NAMESPACE
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QMediaPlayerWidgets: public QObject
{
Q_OBJECT
@@ -31,9 +33,6 @@ private slots:
void testSetVideoOutput();
void testSetVideoOutputNoService();
void testSetVideoOutputNoControl();
-
-private:
- QMockIntegrationFactory mockIntegrationFactory;
};
void tst_QMediaPlayerWidgets::initTestCase() { }
diff --git a/tests/auto/unit/multimediawidgets/qvideowidget/CMakeLists.txt b/tests/auto/unit/multimediawidgets/qvideowidget/CMakeLists.txt
index d43bf18de..b179b0b3b 100644
--- a/tests/auto/unit/multimediawidgets/qvideowidget/CMakeLists.txt
+++ b/tests/auto/unit/multimediawidgets/qvideowidget/CMakeLists.txt
@@ -17,5 +17,5 @@ qt_internal_add_test(tst_qvideowidget
Qt::MultimediaPrivate
Qt::MultimediaWidgetsPrivate
Qt::Widgets
- QtMultimediaMockBackend
+ MockMultimediaPlugin
)
diff --git a/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp b/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
index a760f4adc..0a093c5cd 100644
--- a/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
+++ b/tests/auto/unit/multimediawidgets/qvideowidget/tst_qvideowidget.cpp
@@ -19,6 +19,9 @@
#include <qmockvideosink.h>
QT_USE_NAMESPACE
+
+Q_ENABLE_MOCK_MULTIMEDIA_PLUGIN
+
class tst_QVideoWidget : public QObject
{
Q_OBJECT
@@ -159,7 +162,6 @@ void tst_QVideoWidget::sizeHint()
// QFETCH(QRect, viewport);
QFETCH(QSize, expectedSize);
- QMockIntegrationFactory mockCreator;
QtTestVideoWidget widget;
QMediaPlayer player;