diff options
author | Tim Blechmann <tim@klingt.org> | 2024-04-30 10:42:06 +0800 |
---|---|---|
committer | Tim Blechmann <tim@klingt.org> | 2024-05-03 09:29:19 +0800 |
commit | f7c6a582ac9714de7e460fecde9869d473e98dee (patch) | |
tree | 21529c08c26de1aa711d96eac317fb9a95a8ca16 | |
parent | 3159dc9b5586ad08dc8c06b78257abeb319c71f9 (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.cpp | 23 |
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({}); |