summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2024-04-30 10:42:06 +0800
committerTim Blechmann <tim@klingt.org>2024-05-03 09:29:19 +0800
commitf7c6a582ac9714de7e460fecde9869d473e98dee (patch)
tree21529c08c26de1aa711d96eac317fb9a95a8ca16
parent3159dc9b5586ad08dc8c06b78257abeb319c71f9 (diff)
Tests: camera backend - test image metadata
Validate metadata emitted by `QImageCapture` Pick-to: 6.5 6.7 Change-Id: Ibd9a517b37f57a1c637dafac26779a52a74e6343 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
-rw-r--r--tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
index 7f1cee1cc..521046d86 100644
--- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
+++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
@@ -448,6 +448,12 @@ void tst_QCameraBackend::testCameraCaptureMetadata()
camera.setFlashMode(QCamera::FlashOff);
+ QMediaMetaData referenceMetaData;
+ referenceMetaData.insert(QMediaMetaData::Title, QStringLiteral("Title"));
+ referenceMetaData.insert(QMediaMetaData::Language, QVariant::fromValue(QLocale::German));
+ referenceMetaData.insert(QMediaMetaData::Description, QStringLiteral("Description"));
+ imageCapture.setMetaData(referenceMetaData);
+
QSignalSpy metadataSignal(&imageCapture, &QImageCapture::imageMetadataAvailable);
QSignalSpy savedSignal(&imageCapture, &QImageCapture::imageSaved);
@@ -460,7 +466,20 @@ void tst_QCameraBackend::testCameraCaptureMetadata()
int id = imageCapture.captureToFile(tmpFile);
QTRY_VERIFY(!savedSignal.isEmpty());
QVERIFY(!metadataSignal.isEmpty());
+
QCOMPARE(metadataSignal.first().first().toInt(), id);
+ QMediaMetaData receivedMetaData = metadataSignal.first()[1].value<QMediaMetaData>();
+
+ if (isGStreamerPlatform()) {
+ for (auto key : {
+ QMediaMetaData::Title,
+ QMediaMetaData::Language,
+ QMediaMetaData::Description,
+ })
+ QCOMPARE(receivedMetaData[key], referenceMetaData[key]);
+ QVERIFY(receivedMetaData[QMediaMetaData::Date].isValid());
+ QVERIFY(receivedMetaData[QMediaMetaData::Resolution].isValid());
+ }
}
void tst_QCameraBackend::testExposureCompensation()
@@ -708,6 +727,10 @@ void tst_QCameraBackend::testNativeMetadata()
if (lang != QLocale::AnyLanguage)
QCOMPARE(lang, metaData.value(QMediaMetaData::Language).value<QLocale::Language>());
QCOMPARE(player.metaData().value(QMediaMetaData::Description).toString(), metaData.value(QMediaMetaData::Description).toString());
+ QVERIFY(player.metaData().value(QMediaMetaData::Resolution).isValid());
+
+ if (isGStreamerPlatform())
+ QVERIFY(player.metaData().value(QMediaMetaData::Date).isValid());
player.stop();
player.setSource({});