summaryrefslogtreecommitdiffstats
path: root/tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp')
-rw-r--r--tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp116
1 files changed, 116 insertions, 0 deletions
diff --git a/tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp b/tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
index e39070d5f..3ad787130 100644
--- a/tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
+++ b/tests/auto/unit/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
@@ -52,6 +52,8 @@
#include <qmediaservice.h>
#include <qmediaplayer.h>
#include <qaudiorecorder.h>
+#include <qcamera.h>
+#include <qcamerainfo.h>
QT_USE_NAMESPACE
@@ -83,6 +85,9 @@ private slots:
void testHasSupport();
void testSupportedMimeTypes();
void testProviderHints();
+ void testDefaultDevice();
+ void testAvailableDevices();
+ void testCameraInfo();
private:
QObjectList plugins;
@@ -195,6 +200,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(hint.isNull());
QCOMPARE(hint.type(), QMediaServiceProviderHint::Null);
QVERIFY(hint.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QVERIFY(hint.mimeType().isEmpty());
QVERIFY(hint.codecs().isEmpty());
QCOMPARE(hint.features(), 0);
@@ -206,6 +212,18 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint.isNull());
QCOMPARE(hint.type(), QMediaServiceProviderHint::Device);
QCOMPARE(hint.device(), deviceName);
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
+ QVERIFY(hint.mimeType().isEmpty());
+ QVERIFY(hint.codecs().isEmpty());
+ QCOMPARE(hint.features(), 0);
+ }
+
+ {
+ QMediaServiceProviderHint hint(QCamera::FrontFace);
+ QVERIFY(!hint.isNull());
+ QCOMPARE(hint.type(), QMediaServiceProviderHint::CameraPosition);
+ QVERIFY(hint.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::FrontFace);
QVERIFY(hint.mimeType().isEmpty());
QVERIFY(hint.codecs().isEmpty());
QCOMPARE(hint.features(), 0);
@@ -216,6 +234,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint.isNull());
QCOMPARE(hint.type(), QMediaServiceProviderHint::SupportedFeatures);
QVERIFY(hint.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QVERIFY(hint.mimeType().isEmpty());
QVERIFY(hint.codecs().isEmpty());
QCOMPARE(hint.features(), QMediaServiceProviderHint::LowLatencyPlayback);
@@ -226,6 +245,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint.isNull());
QCOMPARE(hint.type(), QMediaServiceProviderHint::SupportedFeatures);
QVERIFY(hint.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QVERIFY(hint.mimeType().isEmpty());
QVERIFY(hint.codecs().isEmpty());
QCOMPARE(hint.features(), QMediaServiceProviderHint::RecordingSupport);
@@ -240,6 +260,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint.isNull());
QCOMPARE(hint.type(), QMediaServiceProviderHint::ContentType);
QVERIFY(hint.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QCOMPARE(hint.mimeType(), mimeType);
QCOMPARE(hint.codecs(), codecs);
@@ -248,6 +269,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint2.isNull());
QCOMPARE(hint2.type(), QMediaServiceProviderHint::ContentType);
QVERIFY(hint2.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QCOMPARE(hint2.mimeType(), mimeType);
QCOMPARE(hint2.codecs(), codecs);
@@ -257,6 +279,7 @@ void tst_QMediaServiceProvider::testProviderHints()
QVERIFY(!hint3.isNull());
QCOMPARE(hint3.type(), QMediaServiceProviderHint::ContentType);
QVERIFY(hint3.device().isEmpty());
+ QCOMPARE(hint.cameraPosition(), QCamera::UnspecifiedPosition);
QCOMPARE(hint3.mimeType(), mimeType);
QCOMPARE(hint3.codecs(), codecs);
@@ -271,6 +294,99 @@ void tst_QMediaServiceProvider::testProviderHints()
}
}
+void tst_QMediaServiceProvider::testDefaultDevice()
+{
+ QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
+
+ if (provider == 0)
+ QSKIP("No default provider");
+
+ QCOMPARE(provider->defaultDevice(Q_MEDIASERVICE_AUDIOSOURCE), QByteArray("audiosource1"));
+ QCOMPARE(provider->defaultDevice(Q_MEDIASERVICE_CAMERA), QByteArray("frontcamera"));
+}
+
+void tst_QMediaServiceProvider::testAvailableDevices()
+{
+ QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
+
+ if (provider == 0)
+ QSKIP("No default provider");
+
+ QList<QByteArray> devices = provider->devices(Q_MEDIASERVICE_AUDIOSOURCE);
+ QCOMPARE(devices.count(), 2);
+ QCOMPARE(devices.at(0), QByteArray("audiosource1"));
+ QCOMPARE(devices.at(1), QByteArray("audiosource2"));
+
+ devices = provider->devices(Q_MEDIASERVICE_CAMERA);
+ QCOMPARE(devices.count(), 3);
+ QCOMPARE(devices.at(0), QByteArray("frontcamera"));
+ QCOMPARE(devices.at(1), QByteArray("backcamera"));
+ QCOMPARE(devices.at(2), QByteArray("somecamera"));
+}
+
+void tst_QMediaServiceProvider::testCameraInfo()
+{
+ QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
+
+ if (provider == 0)
+ QSKIP("No default provider");
+
+ QCOMPARE(provider->cameraPosition("backcamera"), QCamera::BackFace);
+ QCOMPARE(provider->cameraOrientation("backcamera"), 90);
+ QCOMPARE(provider->cameraPosition("frontcamera"), QCamera::FrontFace);
+ QCOMPARE(provider->cameraOrientation("frontcamera"), 270);
+ QCOMPARE(provider->cameraPosition("somecamera"), QCamera::UnspecifiedPosition);
+ QCOMPARE(provider->cameraOrientation("somecamera"), 0);
+
+ {
+ QCamera camera;
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin3"));
+ }
+
+ {
+ QCamera camera(QCameraInfo::defaultCamera());
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin3"));
+ }
+
+ {
+ QCamera camera(QCameraInfo::availableCameras().at(0));
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin3"));
+ }
+
+ {
+ QCamera camera(QCameraInfo::availableCameras().at(1));
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin5"));
+ }
+
+ {
+ QCamera camera(QCameraInfo::availableCameras().at(2));
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin5"));
+ }
+
+ {
+ QCamera camera(QCamera::FrontFace);
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin3"));
+ }
+
+ {
+ QCamera camera(QCamera::BackFace);
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin5"));
+ }
+
+ {
+ QCamera camera(QCamera::UnspecifiedPosition);
+ QVERIFY(camera.service());
+ QCOMPARE(camera.service()->objectName(), QLatin1String("MockServicePlugin3"));
+ }
+}
+
QTEST_MAIN(tst_QMediaServiceProvider)
#include "tst_qmediaserviceprovider.moc"