diff options
Diffstat (limited to 'tests/auto/qcamerabackend/tst_qcamerabackend.cpp')
-rw-r--r-- | tests/auto/qcamerabackend/tst_qcamerabackend.cpp | 624 |
1 files changed, 0 insertions, 624 deletions
diff --git a/tests/auto/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/qcamerabackend/tst_qcamerabackend.cpp deleted file mode 100644 index eabf703..0000000 --- a/tests/auto/qcamerabackend/tst_qcamerabackend.cpp +++ /dev/null @@ -1,624 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//TESTED_COMPONENT=src/multimedia - -#include <QtTest/QtTest> -#include <QtGui/QImageReader> -#include <QDebug> - -#include <qabstractvideosurface.h> -#include <qcameracontrol.h> -#include <qcameralockscontrol.h> -#include <qcameraexposurecontrol.h> -#include <qcameraflashcontrol.h> -#include <qcamerafocuscontrol.h> -#include <qcameraimagecapturecontrol.h> -#include <qimageencodercontrol.h> -#include <qcameraimageprocessingcontrol.h> -#include <qcameracapturebufferformatcontrol.h> -#include <qcameracapturedestinationcontrol.h> -#include <qmediaservice.h> -#include <qcamera.h> -#include <qcameraimagecapture.h> -#include <qgraphicsvideoitem.h> -#include <qvideorenderercontrol.h> -#include <qvideowidget.h> -#include <qvideowindowcontrol.h> - -QT_USE_NAMESPACE - -// Eventually these will make it into qtestcase.h -// but we might need to tweak the timeout values here. -#ifndef QTRY_COMPARE -#define QTRY_COMPARE(__expr, __expected) \ - do { \ - const int __step = 50; \ - const int __timeout = 10000; \ - if ((__expr) != (__expected)) { \ - QTest::qWait(0); \ - } \ - for (int __i = 0; __i < __timeout && ((__expr) != (__expected)); __i+=__step) { \ - QTest::qWait(__step); \ - } \ - QCOMPARE(__expr, __expected); \ - } while(0) -#endif - -#ifndef QTRY_VERIFY -#define QTRY_VERIFY(__expr) \ - do { \ - const int __step = 50; \ - const int __timeout = 10000; \ - if (!(__expr)) { \ - QTest::qWait(0); \ - } \ - for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \ - QTest::qWait(__step); \ - } \ - QVERIFY(__expr); \ - } while(0) -#endif - - -#define QTRY_WAIT(code, __expr) \ - do { \ - const int __step = 50; \ - const int __timeout = 10000; \ - if (!(__expr)) { \ - QTest::qWait(0); \ - } \ - for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \ - do { code } while(0); \ - QTest::qWait(__step); \ - } \ - } while(0) - - -/* - This is the backend conformance test. - - Since it relies on platform media framework and sound hardware - it may be less stable. -*/ - - -Q_DECLARE_METATYPE(QVideoFrame) - -class tst_QCameraBackend: public QObject -{ - Q_OBJECT - -public slots: - void initTestCase(); - void cleanupTestCase(); - -private slots: - void testAvailableDevices(); - void testDeviceDescription(); - void testCtorWithDevice(); - - void testCameraStates(); - void testCaptureMode(); - void testCameraCapture(); - void testCaptureToBuffer(); - void testCameraCaptureMetadata(); - void testExposureCompensation(); - void testExposureMode(); -private: -}; - -void tst_QCameraBackend::initTestCase() -{ - qRegisterMetaType<QtMultimedia::MetaData>("QtMultimedia::MetaData"); - - QCamera camera; - if (!camera.isAvailable()) - QSKIP("Camera is not available", SkipAll); -} - -void tst_QCameraBackend::cleanupTestCase() -{ -} - -void tst_QCameraBackend::testAvailableDevices() -{ - int deviceCount = QMediaServiceProvider::defaultServiceProvider()->devices(QByteArray(Q_MEDIASERVICE_CAMERA)).count(); - QCOMPARE(QCamera::availableDevices().count(), deviceCount); -} - -void tst_QCameraBackend::testDeviceDescription() -{ - int deviceCount = QMediaServiceProvider::defaultServiceProvider()->devices(QByteArray(Q_MEDIASERVICE_CAMERA)).count(); - - if (deviceCount == 0) - QVERIFY(QCamera::deviceDescription(QByteArray("random")).isNull()); - else { - foreach (const QByteArray &device, QCamera::availableDevices()) - QVERIFY(QCamera::deviceDescription(device).length() > 0); - } -} - -void tst_QCameraBackend::testCtorWithDevice() -{ - int deviceCount = QMediaServiceProvider::defaultServiceProvider()->devices(QByteArray(Q_MEDIASERVICE_CAMERA)).count(); - QCamera *camera = 0; - - if (deviceCount == 0) { - camera = new QCamera("random"); - QCOMPARE(camera->error(), QCamera::ServiceMissingError); - } - else { - camera = new QCamera(QCamera::availableDevices().first()); - QCOMPARE(camera->error(), QCamera::NoError); - } - - delete camera; -} - -void tst_QCameraBackend::testCameraStates() -{ - QCamera camera; - QCameraImageCapture imageCapture(&camera); - - QSignalSpy errorSignal(&camera, SIGNAL(error(QCamera::Error))); - QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State))); - QSignalSpy statusChangedSignal(&camera, SIGNAL(statusChanged(QCamera::Status))); - - QCOMPARE(camera.state(), QCamera::UnloadedState); - QCOMPARE(camera.status(), QCamera::UnloadedStatus); - - camera.load(); - QCOMPARE(camera.state(), QCamera::LoadedState); - QCOMPARE(stateChangedSignal.count(), 1); - QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::LoadedState); - QVERIFY(stateChangedSignal.count() > 0); - - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::LoadedStatus); - - camera.unload(); - QCOMPARE(camera.state(), QCamera::UnloadedState); - QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::UnloadedState); - QTRY_COMPARE(camera.status(), QCamera::UnloadedStatus); - QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::UnloadedStatus); - -#ifdef Q_WS_MAEMO_6 - //resource policy doesn't work correctly when resource is released and immediately requested again. - QTest::qWait(250); -#endif - - camera.start(); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::ActiveStatus); - - camera.stop(); - QCOMPARE(camera.state(), QCamera::LoadedState); - QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::LoadedState); - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::LoadedStatus); - - camera.unload(); - QCOMPARE(camera.state(), QCamera::UnloadedState); - QCOMPARE(stateChangedSignal.last().first().value<QCamera::State>(), QCamera::UnloadedState); - QTRY_COMPARE(camera.status(), QCamera::UnloadedStatus); - QCOMPARE(statusChangedSignal.last().first().value<QCamera::Status>(), QCamera::UnloadedStatus); - - QCOMPARE(camera.errorString(), QString()); - QCOMPARE(errorSignal.count(), 0); -} - -void tst_QCameraBackend::testCaptureMode() -{ - QCamera camera; - - QSignalSpy errorSignal(&camera, SIGNAL(error(QCamera::Error))); - QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State))); - QSignalSpy captureModeSignal(&camera, SIGNAL(captureModeChanged(QCamera::CaptureMode))); - - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - - if (!camera.isCaptureModeSupported(QCamera::CaptureVideo)) { - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - QSKIP("Video capture not supported", SkipAll); - } - - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.load(); - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - //capture mode should still be video - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - //it should be possible to switch capture mode in Loaded state - camera.setCaptureMode(QCamera::CaptureStillImage); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureStillImage); - captureModeSignal.clear(); - - camera.setCaptureMode(QCamera::CaptureVideo); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.start(); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - //capture mode should still be video - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - stateChangedSignal.clear(); - //it should be possible to switch capture mode in Active state - camera.setCaptureMode(QCamera::CaptureStillImage); - //camera may leave Active status, but should return to Active - QTest::qWait(10); //camera may leave Active status async - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes"); - - QCOMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureStillImage); - captureModeSignal.clear(); - - camera.setCaptureMode(QCamera::CaptureVideo); - //camera may leave Active status, but should return to Active - QTest::qWait(10); //camera may leave Active status async - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes"); - - QCOMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.stop(); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - camera.unload(); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - QVERIFY2(errorSignal.isEmpty(), QString("Camera error: %1").arg(camera.errorString()).toLocal8Bit()); -} - -void tst_QCameraBackend::testCameraCapture() -{ - QCamera camera; - QCameraImageCapture imageCapture(&camera); - //prevents camera to flash during the test - camera.exposure()->setFlashMode(QCameraExposure::FlashOff); - - QVERIFY(!imageCapture.isReadyForCapture()); - - QSignalSpy capturedSignal(&imageCapture, SIGNAL(imageCaptured(int,QImage))); - QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); - QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString))); - - imageCapture.capture(); - QTRY_COMPARE(errorSignal.size(), 1); - QCOMPARE(imageCapture.error(), QCameraImageCapture::NotReadyError); - QCOMPARE(capturedSignal.size(), 0); - errorSignal.clear(); - - camera.start(); - - QTRY_VERIFY(imageCapture.isReadyForCapture()); - QCOMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(errorSignal.size(), 0); - - int id = imageCapture.capture(); - - QTRY_VERIFY(!savedSignal.isEmpty()); - - QCOMPARE(capturedSignal.size(), 1); - QCOMPARE(capturedSignal.last().first().toInt(), id); - QCOMPARE(errorSignal.size(), 0); - QCOMPARE(imageCapture.error(), QCameraImageCapture::NoError); - - QCOMPARE(savedSignal.last().first().toInt(), id); - QString location = savedSignal.last().last().toString(); - QVERIFY(!location.isEmpty()); - QVERIFY(QFileInfo(location).exists()); - QImageReader reader(location); - reader.setScaledSize(QSize(320,240)); - QVERIFY(!reader.read().isNull()); - - QFile(location).remove(); -} - - -void tst_QCameraBackend::testCaptureToBuffer() -{ - QCamera camera; - QCameraImageCapture imageCapture(&camera); - camera.exposure()->setFlashMode(QCameraExposure::FlashOff); - - camera.load(); - -#ifdef Q_WS_MAEMO_6 - QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)); -#endif - - if (!imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)) - QSKIP("Buffer capture not supported", SkipAll); - - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg); - - QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToFile)); - QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer)); - QVERIFY(imageCapture.isCaptureDestinationSupported( - QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)); - - QSignalSpy destinationChangedSignal(&imageCapture, SIGNAL(captureDestinationChanged(QCameraImageCapture::CaptureDestinations))); - - QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToFile); - imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer); - QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToBuffer); - QCOMPARE(destinationChangedSignal.size(), 1); - QCOMPARE(destinationChangedSignal.first().first().value<QCameraImageCapture::CaptureDestinations>(), - QCameraImageCapture::CaptureToBuffer); - - QSignalSpy capturedSignal(&imageCapture, SIGNAL(imageCaptured(int,QImage))); - QSignalSpy imageAvailableSignal(&imageCapture, SIGNAL(imageAvailable(int,QVideoFrame))); - QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); - QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString))); - - camera.start(); - QTRY_VERIFY(imageCapture.isReadyForCapture()); - - int id = imageCapture.capture(); - QTRY_VERIFY(!imageAvailableSignal.isEmpty()); - - QVERIFY(errorSignal.isEmpty()); - QVERIFY(!capturedSignal.isEmpty()); - QVERIFY(!imageAvailableSignal.isEmpty()); - - QTest::qWait(2000); - QVERIFY(savedSignal.isEmpty()); - - QCOMPARE(capturedSignal.first().first().toInt(), id); - QCOMPARE(imageAvailableSignal.first().first().toInt(), id); - - QVideoFrame frame = imageAvailableSignal.first().last().value<QVideoFrame>(); - QVERIFY(frame.isValid()); - QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); - QVERIFY(!frame.size().isEmpty()); - QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); - QByteArray data((const char *)frame.bits(), frame.mappedBytes()); - frame.unmap(); - frame = QVideoFrame(); - - QVERIFY(!data.isEmpty()); - QBuffer buffer; - buffer.setData(data); - buffer.open(QIODevice::ReadOnly); - QImageReader reader(&buffer, "JPG"); - reader.setScaledSize(QSize(640,480)); - QImage img(reader.read()); - QVERIFY(!img.isNull()); - - capturedSignal.clear(); - imageAvailableSignal.clear(); - savedSignal.clear(); - - //Capture to yuv buffer -#ifdef Q_WS_MAEMO_6 - QVERIFY(imageCapture.supportedBufferFormats().contains(QVideoFrame::Format_UYVY)); -#endif - - if (imageCapture.supportedBufferFormats().contains(QVideoFrame::Format_UYVY)) { - imageCapture.setBufferFormat(QVideoFrame::Format_UYVY); - QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_UYVY); - - id = imageCapture.capture(); - QTRY_VERIFY(!imageAvailableSignal.isEmpty()); - - QVERIFY(errorSignal.isEmpty()); - QVERIFY(!capturedSignal.isEmpty()); - QVERIFY(!imageAvailableSignal.isEmpty()); - QVERIFY(savedSignal.isEmpty()); - - QTest::qWait(2000); - QVERIFY(savedSignal.isEmpty()); - - frame = imageAvailableSignal.first().last().value<QVideoFrame>(); - QVERIFY(frame.isValid()); - - qDebug() << frame.pixelFormat(); - QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_UYVY); - QVERIFY(!frame.size().isEmpty()); - frame = QVideoFrame(); - - capturedSignal.clear(); - imageAvailableSignal.clear(); - savedSignal.clear(); - - imageCapture.setBufferFormat(QVideoFrame::Format_Jpeg); - QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg); - } - - //Try to capture to both buffer and file -#ifdef Q_WS_MAEMO_6 - QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)); -#endif - if (imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile)) { - imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile); - - int oldId = id; - id = imageCapture.capture(); - QVERIFY(id != oldId); - QTRY_VERIFY(!savedSignal.isEmpty()); - - QVERIFY(errorSignal.isEmpty()); - QVERIFY(!capturedSignal.isEmpty()); - QVERIFY(!imageAvailableSignal.isEmpty()); - QVERIFY(!savedSignal.isEmpty()); - - QCOMPARE(capturedSignal.first().first().toInt(), id); - QCOMPARE(imageAvailableSignal.first().first().toInt(), id); - - frame = imageAvailableSignal.first().last().value<QVideoFrame>(); - QVERIFY(frame.isValid()); - QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Jpeg); - QVERIFY(!frame.size().isEmpty()); - - QString fileName = savedSignal.first().last().toString(); - QVERIFY(QFileInfo(fileName).exists()); - } -} - -void tst_QCameraBackend::testCameraCaptureMetadata() -{ -#ifndef Q_WS_MAEMO_6 - QSKIP("Capture metadata is supported only on harmattan", SkipAll); -#endif - - QCamera camera; - QCameraImageCapture imageCapture(&camera); - camera.exposure()->setFlashMode(QCameraExposure::FlashOff); - - QSignalSpy metadataSignal(&imageCapture, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant))); - QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString))); - - camera.start(); - - QTRY_VERIFY(imageCapture.isReadyForCapture()); - - int id = imageCapture.capture(QString::fromLatin1("/dev/null")); - QTRY_VERIFY(!savedSignal.isEmpty()); - QVERIFY(!metadataSignal.isEmpty()); - QCOMPARE(metadataSignal.first().first().toInt(), id); -} - -void tst_QCameraBackend::testExposureCompensation() -{ -#if !defined(Q_WS_MAEMO_6) - QSKIP("Capture exposure parameters are supported only on mobile platforms", SkipAll); -#endif - - QCamera camera; - QCameraExposure *exposure = camera.exposure(); - - QSignalSpy exposureCompensationSignal(exposure, SIGNAL(exposureCompensationChanged(qreal))); - - //it should be possible to set exposure parameters in Unloaded state - QCOMPARE(exposure->exposureCompensation()+1.0, 1.0); - exposure->setExposureCompensation(1.0); - QCOMPARE(exposure->exposureCompensation(), 1.0); - QTRY_COMPARE(exposureCompensationSignal.count(), 1); - QCOMPARE(exposureCompensationSignal.last().first().toReal(), 1.0); - - //exposureCompensationChanged should not be emitted when value is not changed - exposure->setExposureCompensation(1.0); - QTest::qWait(50); - QCOMPARE(exposureCompensationSignal.count(), 1); - - //exposure compensation should be preserved during load/start - camera.load(); - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(exposure->exposureCompensation(), 1.0); - - exposureCompensationSignal.clear(); - exposure->setExposureCompensation(-1.0); - QCOMPARE(exposure->exposureCompensation(), -1.0); - QTRY_COMPARE(exposureCompensationSignal.count(), 1); - QCOMPARE(exposureCompensationSignal.last().first().toReal(), -1.0); - - camera.start(); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(exposure->exposureCompensation(), -1.0); - - exposureCompensationSignal.clear(); - exposure->setExposureCompensation(1.0); - QCOMPARE(exposure->exposureCompensation(), 1.0); - QTRY_COMPARE(exposureCompensationSignal.count(), 1); - QCOMPARE(exposureCompensationSignal.last().first().toReal(), 1.0); -} - -void tst_QCameraBackend::testExposureMode() -{ -#if !defined(Q_WS_MAEMO_6) - QSKIP("Capture exposure parameters are supported only on mobile platforms", SkipAll); -#endif - - QCamera camera; - QCameraExposure *exposure = camera.exposure(); - -#ifdef Q_WS_MAEMO_6 - QEXPECT_FAIL("", "Camerabin reports Manual exposure instead of Auto", Continue); -#endif - QCOMPARE(exposure->exposureMode(), QCameraExposure::ExposureAuto); - - // Night - exposure->setExposureMode(QCameraExposure::ExposureNight); - QCOMPARE(exposure->exposureMode(), QCameraExposure::ExposureNight); - camera.start(); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(exposure->exposureMode(), QCameraExposure::ExposureNight); - - camera.unload(); - QTRY_COMPARE(camera.status(), QCamera::UnloadedStatus); - -#ifdef Q_WS_MAEMO_6 - //resource policy doesn't work correctly when resource is released and immediately requested again. - QTest::qWait(250); -#endif - - // Auto - exposure->setExposureMode(QCameraExposure::ExposureAuto); - QCOMPARE(exposure->exposureMode(), QCameraExposure::ExposureAuto); - camera.start(); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(exposure->exposureMode(), QCameraExposure::ExposureAuto); -} - -QTEST_MAIN(tst_QCameraBackend) - -#include "tst_qcamerabackend.moc" |