summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-11-09 20:42:00 +0100
committerMichael Goddard <michael.goddard@nokia.com>2011-11-10 04:15:38 +0100
commit1d76e399c5d9277895786c6edc2cec76f99d0531 (patch)
treef56640988d767202cc8f449ff78ad26ff739d314 /tests
parent1e542df82fbcc4e3a8f75537af204f83827a4587 (diff)
repo is dead. everything merged to qtmultimedia.HEADmaster
Change-Id: Id6de29b7c1e96aed16be8251195c744f68a2d46b Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/auto.pro12
-rw-r--r--tests/auto/multimedia.pro57
-rw-r--r--tests/auto/multimediawidgets.pro25
-rw-r--r--tests/auto/qabstractvideobuffer/qabstractvideobuffer.pro8
-rw-r--r--tests/auto/qabstractvideobuffer/tst_qabstractvideobuffer.cpp155
-rw-r--r--tests/auto/qabstractvideosurface/qabstractvideosurface.pro8
-rw-r--r--tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp399
-rw-r--r--tests/auto/qaudiocapturesource/qaudiocapturesource.pro11
-rw-r--r--tests/auto/qaudiocapturesource/tst_qaudiocapturesource.cpp204
-rw-r--r--tests/auto/qaudiodeviceinfo/qaudiodeviceinfo.pro10
-rw-r--r--tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp277
-rw-r--r--tests/auto/qaudioformat/qaudioformat.pro8
-rw-r--r--tests/auto/qaudioformat/tst_qaudioformat.cpp215
-rw-r--r--tests/auto/qaudioinput/qaudioinput.pro12
-rwxr-xr-xtests/auto/qaudioinput/tst_qaudioinput.cpp852
-rwxr-xr-xtests/auto/qaudioinput/wavheader.cpp205
-rwxr-xr-xtests/auto/qaudioinput/wavheader.h80
-rw-r--r--tests/auto/qaudiooutput/qaudiooutput.pro12
-rwxr-xr-xtests/auto/qaudiooutput/tst_qaudiooutput.cpp959
-rwxr-xr-xtests/auto/qaudiooutput/wavheader.cpp205
-rwxr-xr-xtests/auto/qaudiooutput/wavheader.h80
-rw-r--r--tests/auto/qcamera/qcamera.pro12
-rw-r--r--tests/auto/qcamera/tst_qcamera.cpp1956
-rw-r--r--tests/auto/qcamerabackend/qcamerabackend.pro10
-rw-r--r--tests/auto/qcamerabackend/tst_qcamerabackend.cpp624
-rw-r--r--tests/auto/qcameraimagecapture/qcameraimagecapture.pro11
-rw-r--r--tests/auto/qcameraimagecapture/tst_qcameraimagecapture.cpp432
-rw-r--r--tests/auto/qcameraviewfinder/qcameraviewfinder.pro11
-rw-r--r--tests/auto/qcameraviewfinder/tst_qcameraviewfinder.cpp113
-rw-r--r--tests/auto/qcamerawidgets/qcamerawidgets.pro13
-rw-r--r--tests/auto/qcamerawidgets/tst_qcamerawidgets.cpp318
-rw-r--r--tests/auto/qdeclarativeaudio/qdeclarativeaudio.pro17
-rw-r--r--tests/auto/qdeclarativeaudio/tst_qdeclarativeaudio.cpp1301
-rw-r--r--tests/auto/qdeclarativevideo/qdeclarativevideo.pro18
-rw-r--r--tests/auto/qdeclarativevideo/tst_qdeclarativevideo.cpp991
-rw-r--r--tests/auto/qgraphicsvideoitem/qgraphicsvideoitem.pro11
-rw-r--r--tests/auto/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp675
-rw-r--r--tests/auto/qmediabindableinterface/qmediabindableinterface.pro11
-rw-r--r--tests/auto/qmediabindableinterface/tst_qmediabindableinterface.cpp137
-rw-r--r--tests/auto/qmediacontainercontrol/qmediacontainercontrol.pro10
-rw-r--r--tests/auto/qmediacontainercontrol/tst_qmediacontainercontrol.cpp79
-rw-r--r--tests/auto/qmediacontent/qmediacontent.pro7
-rw-r--r--tests/auto/qmediacontent/tst_qmediacontent.cpp177
-rw-r--r--tests/auto/qmediaimageviewer/images.qrc9
-rw-r--r--tests/auto/qmediaimageviewer/images/coverart.pngbin230 -> 0 bytes
-rw-r--r--tests/auto/qmediaimageviewer/images/image.jpgbin2045 -> 0 bytes
-rw-r--r--tests/auto/qmediaimageviewer/images/image.pngbin230 -> 0 bytes
-rw-r--r--tests/auto/qmediaimageviewer/images/invalid.png2
-rw-r--r--tests/auto/qmediaimageviewer/images/poster.pngbin230 -> 0 bytes
-rw-r--r--tests/auto/qmediaimageviewer/qmediaimageviewer.pro16
-rw-r--r--tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp1044
-rw-r--r--tests/auto/qmediaimageviewerwidgets/images.qrc5
-rw-r--r--tests/auto/qmediaimageviewerwidgets/images/image.pngbin230 -> 0 bytes
-rw-r--r--tests/auto/qmediaimageviewerwidgets/qmediaimageviewerwidgets.pro17
-rw-r--r--tests/auto/qmediaimageviewerwidgets/tst_qmediaimageviewerwidgets.cpp142
-rw-r--r--tests/auto/qmediaobject/main.cpp53
-rw-r--r--tests/auto/qmediaobject/qmediaobject.pro11
-rw-r--r--tests/auto/qmediaobject/tst_qmediaobject.cpp403
-rw-r--r--tests/auto/qmediaobject/tst_qmediaobject.h147
-rwxr-xr-xtests/auto/qmediaplayer/main.cpp53
-rw-r--r--tests/auto/qmediaplayer/qmediaplayer.pro11
-rw-r--r--tests/auto/qmediaplayer/tst_qmediaplayer.cpp1050
-rwxr-xr-xtests/auto/qmediaplayer/tst_qmediaplayer.h133
-rw-r--r--tests/auto/qmediaplayerbackend/qmediaplayerbackend.pro12
-rw-r--r--tests/auto/qmediaplayerbackend/testdata/test.wavbin88232 -> 0 bytes
-rw-r--r--tests/auto/qmediaplayerbackend/tst_qmediaplayerbackend.cpp462
-rwxr-xr-xtests/auto/qmediaplayerwidgets/main.cpp53
-rw-r--r--tests/auto/qmediaplayerwidgets/qmediaplayerwidgets.pro11
-rw-r--r--tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp162
-rwxr-xr-xtests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.h79
-rw-r--r--tests/auto/qmediaplaylist/qmediaplaylist.pro21
-rw-r--r--tests/auto/qmediaplaylist/testdata/test.m3u11
-rw-r--r--tests/auto/qmediaplaylist/testdata/testfile0
-rw-r--r--tests/auto/qmediaplaylist/testdata/testfile2#suffix0
-rw-r--r--tests/auto/qmediaplaylist/tst_qmediaplaylist.cpp783
-rw-r--r--tests/auto/qmediaplaylistnavigator/qmediaplaylistnavigator.pro8
-rw-r--r--tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp525
-rw-r--r--tests/auto/qmediapluginloader/qmediapluginloader.pro14
-rw-r--r--tests/auto/qmediapluginloader/tst_qmediapluginloader.cpp123
-rwxr-xr-xtests/auto/qmediarecorder/main.cpp53
-rw-r--r--tests/auto/qmediarecorder/qmediarecorder.pro12
-rw-r--r--tests/auto/qmediarecorder/tst_qmediarecorder.cpp1286
-rwxr-xr-xtests/auto/qmediarecorder/tst_qmediarecorder.h127
-rw-r--r--tests/auto/qmediaresource/qmediaresource.pro8
-rw-r--r--tests/auto/qmediaresource/tst_qmediaresource.cpp700
-rw-r--r--tests/auto/qmediaservice/qmediaservice.pro7
-rw-r--r--tests/auto/qmediaservice/tst_qmediaservice.cpp280
-rw-r--r--tests/auto/qmediaserviceprovider/qmediaserviceprovider.pro8
-rw-r--r--tests/auto/qmediaserviceprovider/tst_qmediaserviceprovider.cpp499
-rw-r--r--tests/auto/qmediastreamscontrol/qmediastreamscontrol.pro10
-rw-r--r--tests/auto/qmediastreamscontrol/tst_qmediastreamscontrol.cpp408
-rw-r--r--tests/auto/qmediatimerange/qmediatimerange.pro8
-rw-r--r--tests/auto/qmediatimerange/tst_qmediatimerange.cpp806
-rw-r--r--tests/auto/qmetadatareadercontrol/qmetadatareadercontrol.pro10
-rw-r--r--tests/auto/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp143
-rw-r--r--tests/auto/qmetadatawritercontrol/qmetadatawritercontrol.pro9
-rw-r--r--tests/auto/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp89
-rw-r--r--tests/auto/qmultimedia_common/mock.pri7
-rw-r--r--tests/auto/qmultimedia_common/mockaudioencodercontrol.h127
-rw-r--r--tests/auto/qmultimedia_common/mockaudioendpointselector.h117
-rw-r--r--tests/auto/qmultimedia_common/mockcamera.pri22
-rw-r--r--tests/auto/qmultimedia_common/mockcameracapturebuffercontrol.h83
-rw-r--r--tests/auto/qmultimedia_common/mockcameracapturedestinationcontrol.h80
-rw-r--r--tests/auto/qmultimedia_common/mockcameracontrol.h145
-rw-r--r--tests/auto/qmultimedia_common/mockcameraexposurecontrol.h282
-rw-r--r--tests/auto/qmultimedia_common/mockcameraflashcontrol.h89
-rw-r--r--tests/auto/qmultimedia_common/mockcamerafocuscontrol.h199
-rw-r--r--tests/auto/qmultimedia_common/mockcameraimagecapturecontrol.h130
-rw-r--r--tests/auto/qmultimedia_common/mockcameraimageprocessingcontrol.h156
-rw-r--r--tests/auto/qmultimedia_common/mockcameralockscontrol.h144
-rw-r--r--tests/auto/qmultimedia_common/mockcameraservice.h196
-rw-r--r--tests/auto/qmultimedia_common/mockcontainer.pri7
-rw-r--r--tests/auto/qmultimedia_common/mockimageencodercontrol.h103
-rw-r--r--tests/auto/qmultimedia_common/mockmediacontainercontrol.h97
-rw-r--r--tests/auto/qmultimedia_common/mockmedianetworkaccesscontrol.h83
-rw-r--r--tests/auto/qmultimedia_common/mockmediaobject.h57
-rw-r--r--tests/auto/qmultimedia_common/mockmediaplayercontrol.h118
-rw-r--r--tests/auto/qmultimedia_common/mockmediaplayerservice.h176
-rw-r--r--tests/auto/qmultimedia_common/mockmediaplaylistcontrol.h112
-rw-r--r--tests/auto/qmultimedia_common/mockmediaplaylistsourcecontrol.h74
-rw-r--r--tests/auto/qmultimedia_common/mockmediarecordercontrol.h125
-rw-r--r--tests/auto/qmultimedia_common/mockmediarecorderservice.h101
-rw-r--r--tests/auto/qmultimedia_common/mockmediaservice.h66
-rw-r--r--tests/auto/qmultimedia_common/mockmediaserviceprovider.h74
-rw-r--r--tests/auto/qmultimedia_common/mockmediastreamscontrol.h78
-rw-r--r--tests/auto/qmultimedia_common/mockmetadatareadercontrol.h98
-rw-r--r--tests/auto/qmultimedia_common/mockmetadatawritercontrol.h107
-rw-r--r--tests/auto/qmultimedia_common/mockplayer.pri12
-rw-r--r--tests/auto/qmultimedia_common/mockplaylist.pri8
-rw-r--r--tests/auto/qmultimedia_common/mockplaylistservice.h77
-rw-r--r--tests/auto/qmultimedia_common/mockradio.pri8
-rw-r--r--tests/auto/qmultimedia_common/mockradiodatacontrol.h157
-rw-r--r--tests/auto/qmultimedia_common/mockradiotunercontrol.h275
-rw-r--r--tests/auto/qmultimedia_common/mockreadonlyplaylistprovider.h69
-rw-r--r--tests/auto/qmultimedia_common/mockrecorder.pri14
-rw-r--r--tests/auto/qmultimedia_common/mockvideo.pri14
-rw-r--r--tests/auto/qmultimedia_common/mockvideoencodercontrol.h112
-rw-r--r--tests/auto/qmultimedia_common/mockvideorenderercontrol.h58
-rw-r--r--tests/auto/qmultimedia_common/mockvideosurface.h59
-rw-r--r--tests/auto/qmultimedia_common/mockvideowindowcontrol.h74
-rw-r--r--tests/auto/qpaintervideosurface/qpaintervideosurface.pro18
-rw-r--r--tests/auto/qpaintervideosurface/tst_qpaintervideosurface.cpp1249
-rwxr-xr-xtests/auto/qradiodata/main.cpp53
-rw-r--r--tests/auto/qradiodata/qradiodata.pro11
-rw-r--r--tests/auto/qradiodata/tst_qradiodata.cpp148
-rw-r--r--tests/auto/qradiodata/tst_qradiodata.h80
-rwxr-xr-xtests/auto/qradiotuner/main.cpp53
-rw-r--r--tests/auto/qradiotuner/qradiotuner.pro11
-rw-r--r--tests/auto/qradiotuner/tst_qradiotuner.cpp336
-rw-r--r--tests/auto/qradiotuner/tst_qradiotuner.h87
-rw-r--r--tests/auto/qsoundeffect/qsoundeffect.pro17
-rw-r--r--tests/auto/qsoundeffect/test.wavbin38316 -> 0 bytes
-rw-r--r--tests/auto/qsoundeffect/tst_qsoundeffect.cpp195
-rw-r--r--tests/auto/qvideodevicecontrol/qvideodevicecontrol.pro7
-rw-r--r--tests/auto/qvideodevicecontrol/tst_qvideodevicecontrol.cpp110
-rw-r--r--tests/auto/qvideoencodercontrol/qvideoencodercontrol.pro9
-rw-r--r--tests/auto/qvideoencodercontrol/tst_qvideoencodercontrol.cpp139
-rw-r--r--tests/auto/qvideoframe/qvideoframe.pro8
-rw-r--r--tests/auto/qvideoframe/tst_qvideoframe.cpp969
-rw-r--r--tests/auto/qvideosurfaceformat/qvideosurfaceformat.pro8
-rw-r--r--tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp1067
-rw-r--r--tests/auto/qvideowidget/qvideowidget.pro11
-rw-r--r--tests/auto/qvideowidget/tst_qvideowidget.cpp1567
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/empty.wav0
-rwxr-xr-xtests/auto/qwavedecoder/data/gendata.sh68
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wavbin22094 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wavbin44180 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wavbin8080 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_8_44100.wavbin11069 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_1_8_8000.wavbin2044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wavbin44144 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wavbin8044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wavbin88280 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wavbin16080 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_8_44100.wavbin22094 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/isawav_2_8_8000.wavbin4044 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/nosampledata.wavbin44 -> 0 bytes
-rw-r--r--tests/auto/qwavedecoder/data/notawav.wav1
-rw-r--r--tests/auto/qwavedecoder/data/onebyte.wav1
-rw-r--r--tests/auto/qwavedecoder/qwavedecoder.pro12
-rw-r--r--tests/auto/qwavedecoder/tst_qwavedecoder.cpp327
-rw-r--r--tests/systemtests/audio/sys_audio.qtt295
-rw-r--r--tests/systemtests/camera/sys_camera.qtt181
-rw-r--r--tests/systemtests/radio/sys_radio.qtt161
-rw-r--r--tests/systemtests/video/sys_video.qtt269
-rw-r--r--tests/tests.pro5
190 files changed, 0 insertions, 32214 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
deleted file mode 100644
index affd4e3..0000000
--- a/tests/auto/auto.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TEMPLATE = subdirs
-
-SUBDIRS += multimedia.pro
-contains(QT_CONFIG,multimediawidgets): SUBDIRS += multimediawidgets.pro
-
-# These autotests consist of things such as static code checks
-# which require that the autotest is run on the same machine
-# doing the build - i.e. cross-compilation is not allowed.
-win32|mac|linux-g++* {
- # NOTE: Disabled until we have established which tests fall into this category
- # !contains(QT_CONFIG,embedded):!maemo5:!maemo6:SUBDIRS+=host.pro
-}
diff --git a/tests/auto/multimedia.pro b/tests/auto/multimedia.pro
deleted file mode 100644
index 07289e2..0000000
--- a/tests/auto/multimedia.pro
+++ /dev/null
@@ -1,57 +0,0 @@
-
-TEMPLATE = subdirs
-SUBDIRS += \
- qabstractvideobuffer \
- qabstractvideosurface \
- qaudiocapturesource \
- qaudiodeviceinfo \
- qaudioformat \
- qaudioinput \
- qaudiooutput \
- qmediabindableinterface \
- qmediacontainercontrol \
- qmediacontent \
- qmediaplayerbackend \
- qmediaplaylistnavigator \
- qmediarecorder \
- qmediaresource \
- qmediaservice \
- qmediatimerange \
- qradiotuner \
- qradiodata \
- qvideoframe \
- qvideosurfaceformat \
- qmetadatareadercontrol \
- qmetadatawritercontrol \
- qmediaplayer \
- qcameraimagecapture \
- qmediaobject \
- qcamera \
- qcamerabackend \
- qwavedecoder
-
-# These is disabled until intent is clearer
-# qvideodevicecontrol \
-# qvideoencodercontrol \
-
-# This is a commment for the mock backend directory so that maketestselftest
-# doesn't believe it's an untested directory
-# qmultimedia_common
-
-
-# Tests depending on private interfaces should only be built if
-# these interfaces are exported.
-contains (QT_CONFIG, private_tests) {
- SUBDIRS += \
- qmediaplaylist \
- qmediapluginloader \
- qmediaimageviewer \
- qmediaserviceprovider
-
- contains (QT_CONFIG, declarative) {
- # All the declarative tests depend on private interfaces
- SUBDIRS += \
- qsoundeffect \
- qdeclarativeaudio
- }
-}
diff --git a/tests/auto/multimediawidgets.pro b/tests/auto/multimediawidgets.pro
deleted file mode 100644
index 5a55ecc..0000000
--- a/tests/auto/multimediawidgets.pro
+++ /dev/null
@@ -1,25 +0,0 @@
-
-TEMPLATE = subdirs
-SUBDIRS += \
- qcameraviewfinder \
- qcamerawidgets \
- qmediaplayerwidgets \
-
-# This is a commment for the mock backend directory so that maketestselftest
-# doesn't believe it's an untested directory
-# qmultimedia_common
-
-# Tests depending on private interfaces should only be built if
-# these interfaces are exported.
-contains (QT_CONFIG, private_tests) {
- SUBDIRS += \
- qgraphicsvideoitem \
- qpaintervideosurface \
- qmediaimageviewerwidgets \
- qvideowidget \
-
- contains (QT_CONFIG, declarative) {
- disabled:SUBDIRS += qdeclarativevideo
- }
-}
-
diff --git a/tests/auto/qabstractvideobuffer/qabstractvideobuffer.pro b/tests/auto/qabstractvideobuffer/qabstractvideobuffer.pro
deleted file mode 100644
index dfb7e5d..0000000
--- a/tests/auto/qabstractvideobuffer/qabstractvideobuffer.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qabstractvideobuffer
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qabstractvideobuffer.cpp
-
diff --git a/tests/auto/qabstractvideobuffer/tst_qabstractvideobuffer.cpp b/tests/auto/qabstractvideobuffer/tst_qabstractvideobuffer.cpp
deleted file mode 100644
index 999e36c..0000000
--- a/tests/auto/qabstractvideobuffer/tst_qabstractvideobuffer.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <qabstractvideobuffer.h>
-
-class tst_QAbstractVideoBuffer : public QObject
-{
- Q_OBJECT
-public:
- tst_QAbstractVideoBuffer();
- ~tst_QAbstractVideoBuffer();
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void handleType_data();
- void handleType();
- void handle();
- void mapMode();
-};
-
-class QtTestVideoBuffer : public QAbstractVideoBuffer
-{
-public:
- QtTestVideoBuffer(QAbstractVideoBuffer::HandleType type) : QAbstractVideoBuffer(type) {}
-
- MapMode mapMode() const { return QAbstractVideoBuffer::ReadWrite; }
-
- uchar *map(MapMode, int *, int *) { return 0; }
- void unmap() {}
-};
-
-tst_QAbstractVideoBuffer::tst_QAbstractVideoBuffer()
-{
-}
-
-tst_QAbstractVideoBuffer::~tst_QAbstractVideoBuffer()
-{
-}
-
-void tst_QAbstractVideoBuffer::initTestCase()
-{
-}
-
-void tst_QAbstractVideoBuffer::cleanupTestCase()
-{
-}
-
-void tst_QAbstractVideoBuffer::init()
-{
-}
-
-void tst_QAbstractVideoBuffer::cleanup()
-{
-}
-
-#define ADD_HANDLE_TEST(x) \
- QTest::newRow(#x) \
- << QAbstractVideoBuffer::x \
- << QString(QLatin1String(#x));
-
-void tst_QAbstractVideoBuffer::handleType_data()
-{
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("type");
- QTest::addColumn<QString>("stringized");
-
- ADD_HANDLE_TEST(NoHandle);
- ADD_HANDLE_TEST(GLTextureHandle);
- ADD_HANDLE_TEST(XvShmImageHandle);
- ADD_HANDLE_TEST(QPixmapHandle);
- ADD_HANDLE_TEST(CoreImageHandle);
-
- // User handles are different
-
- QTest::newRow("user1")
- << QAbstractVideoBuffer::UserHandle << QString::fromAscii("UserHandle(1000)");
- QTest::newRow("user2")
- << QAbstractVideoBuffer::HandleType(QAbstractVideoBuffer::UserHandle + 1) << QString::fromAscii("UserHandle(1001)");
-}
-
-void tst_QAbstractVideoBuffer::handleType()
-{
- QFETCH(QAbstractVideoBuffer::HandleType, type);
- QFETCH(QString, stringized);
-
- QtTestVideoBuffer buffer(type);
-
- QCOMPARE(buffer.handleType(), type);
-
- QTest::ignoreMessage(QtDebugMsg, stringized.toLatin1().constData());
- qDebug() << type;
-}
-
-void tst_QAbstractVideoBuffer::handle()
-{
- QtTestVideoBuffer buffer(QAbstractVideoBuffer::NoHandle);
-
- QVERIFY(buffer.handle().isNull());
-}
-
-void tst_QAbstractVideoBuffer::mapMode()
-{
- QtTestVideoBuffer maptest(QAbstractVideoBuffer::NoHandle);
- QVERIFY2(maptest.mapMode() == QAbstractVideoBuffer::ReadWrite, "ReadWrite Failed");
-}
-
-QTEST_MAIN(tst_QAbstractVideoBuffer)
-
-#include "tst_qabstractvideobuffer.moc"
diff --git a/tests/auto/qabstractvideosurface/qabstractvideosurface.pro b/tests/auto/qabstractvideosurface/qabstractvideosurface.pro
deleted file mode 100644
index c1718a6..0000000
--- a/tests/auto/qabstractvideosurface/qabstractvideosurface.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qabstractvideosurface
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qabstractvideosurface.cpp
-
diff --git a/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp b/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp
deleted file mode 100644
index 7413fdd..0000000
--- a/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp
+++ /dev/null
@@ -1,399 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <qabstractvideosurface.h>
-#include <qvideosurfaceformat.h>
-
-class tst_QAbstractVideoSurface : public QObject
-{
- Q_OBJECT
-public:
- tst_QAbstractVideoSurface();
- ~tst_QAbstractVideoSurface();
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void setError();
- void isFormatSupported_data();
- void isFormatSupported();
- void nearestFormat_data();
- void nearestFormat();
- void start_data();
- void start();
- void nativeResolution();
- void supportedFormatsChanged();
-};
-
-typedef QMap<QAbstractVideoBuffer::HandleType, QVideoFrame::PixelFormat> SupportedFormatMap;
-
-Q_DECLARE_METATYPE(SupportedFormatMap)
-Q_DECLARE_METATYPE(QVideoSurfaceFormat)
-Q_DECLARE_METATYPE(QAbstractVideoSurface::Error);
-
-class QtTestVideoSurface : public QAbstractVideoSurface
-{
- Q_OBJECT
-public:
- explicit QtTestVideoSurface(QObject *parent = 0) : QAbstractVideoSurface(parent) {}
- explicit QtTestVideoSurface(SupportedFormatMap formats, QObject *parent = 0)
- : QAbstractVideoSurface(parent), supportedFormats(formats) {}
-
- QList<QVideoFrame::PixelFormat> supportedPixelFormats(
- QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const
- {
- return supportedFormats.values(handleType);
- }
-
- bool present(const QVideoFrame &) { return false; }
-
- using QAbstractVideoSurface::setError;
-
- /* adding protected setNativeResolution*/
- using QAbstractVideoSurface::setNativeResolution;
-
- /* fun to generate supportedFormatsChanged signal */
- QList<QVideoFrame::PixelFormat> supportedPixelFormatsChange(QList<QVideoFrame::PixelFormat> formats)
- {
- supportedFormats.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_RGB32);
- QList<QVideoFrame::PixelFormat> supportedFormats = supportedPixelFormats();
- if (supportedFormats.count() != formats.count()) {
- emit supportedFormatsChanged();
- }
- return supportedFormats;
- }
-
-private:
- SupportedFormatMap supportedFormats;
-};
-
-tst_QAbstractVideoSurface::tst_QAbstractVideoSurface()
-{
-}
-
-tst_QAbstractVideoSurface::~tst_QAbstractVideoSurface()
-{
-}
-
-void tst_QAbstractVideoSurface::initTestCase()
-{
-}
-
-void tst_QAbstractVideoSurface::cleanupTestCase()
-{
-}
-
-void tst_QAbstractVideoSurface::init()
-{
-}
-
-void tst_QAbstractVideoSurface::cleanup()
-{
-}
-
-void tst_QAbstractVideoSurface::setError()
-{
- qRegisterMetaType<QAbstractVideoSurface::Error>();
-
- QtTestVideoSurface surface;
-
- QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
-
- surface.setError(QAbstractVideoSurface::StoppedError);
- QCOMPARE(surface.error(), QAbstractVideoSurface::StoppedError);
-
- surface.setError(QAbstractVideoSurface::ResourceError);
- QCOMPARE(surface.error(), QAbstractVideoSurface::ResourceError);
-
- surface.setError(QAbstractVideoSurface::NoError);
- QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
-
- surface.setError(QAbstractVideoSurface::UnsupportedFormatError);
- QCOMPARE(surface.error(), QAbstractVideoSurface::UnsupportedFormatError);
-
- surface.setError(QAbstractVideoSurface::IncorrectFormatError);
- QCOMPARE(surface.error(), QAbstractVideoSurface::IncorrectFormatError);
-}
-
-void tst_QAbstractVideoSurface::isFormatSupported_data()
-{
- QTest::addColumn<SupportedFormatMap>("supportedFormats");
- QTest::addColumn<QVideoSurfaceFormat>("format");
- QTest::addColumn<bool>("supported");
-
- SupportedFormatMap formats;
-
- QTest::newRow("no formats: rgb32")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_RGB32)
- << false;
- QTest::newRow("no formats: yv12")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_YV12)
- << false;
- QTest::newRow("no formats: rgb32 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB32,
- QAbstractVideoBuffer::GLTextureHandle)
- << false;
- QTest::newRow("no formats: rgb24 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB24,
- QAbstractVideoBuffer::GLTextureHandle)
- << false;
-
- formats.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_RGB32);
- formats.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_RGB24);
- formats.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_YUV444);
- formats.insertMulti(QAbstractVideoBuffer::GLTextureHandle, QVideoFrame::Format_RGB32);
-
- QTest::newRow("supported: rgb32")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_RGB32)
- << true;
- QTest::newRow("supported: rgb24")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_RGB24)
- << true;
- QTest::newRow("unsupported: yv12")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_YV12)
- << false;
- QTest::newRow("supported: rgb32 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB32,
- QAbstractVideoBuffer::GLTextureHandle)
- << true;
- QTest::newRow("unsupported: rgb24 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB24,
- QAbstractVideoBuffer::GLTextureHandle)
- << false;
- QTest::newRow("unsupported: yv12 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_YV12,
- QAbstractVideoBuffer::GLTextureHandle)
- << false;
-
- formats.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_YV12);
- formats.insertMulti(QAbstractVideoBuffer::GLTextureHandle, QVideoFrame::Format_RGB24);
-
- QTest::newRow("supported: yv12")
- << formats
- << QVideoSurfaceFormat(QSize(800, 600), QVideoFrame::Format_YV12)
- << true;
- QTest::newRow("supported: rgb24 gl")
- << formats
- << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB24,
- QAbstractVideoBuffer::GLTextureHandle)
- << true;
-}
-
-void tst_QAbstractVideoSurface::isFormatSupported()
-{
- QFETCH(SupportedFormatMap, supportedFormats);
- QFETCH(QVideoSurfaceFormat, format);
- QFETCH(bool, supported);
-
- QtTestVideoSurface surface(supportedFormats);
-
- QCOMPARE(surface.isFormatSupported(format), supported);
-}
-
-void tst_QAbstractVideoSurface::nearestFormat_data()
-{
- isFormatSupported_data();
-}
-
-void tst_QAbstractVideoSurface::nearestFormat()
-{
- QFETCH(SupportedFormatMap, supportedFormats);
- QFETCH(QVideoSurfaceFormat, format);
- QFETCH(bool, supported);
-
- QtTestVideoSurface surface(supportedFormats);
-
- QCOMPARE(surface.nearestFormat(format) == format, supported);
-}
-
-void tst_QAbstractVideoSurface::start_data()
-{
- QTest::addColumn<QVideoSurfaceFormat>("format");
-
- QTest::newRow("rgb32") << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB32);
- QTest::newRow("yv12") << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_YV12);
- QTest::newRow("rgb32 gl") << QVideoSurfaceFormat(
- QSize(800, 600),
- QVideoFrame::Format_RGB32,
- QAbstractVideoBuffer::GLTextureHandle);
-}
-
-void tst_QAbstractVideoSurface::start()
-{
- QFETCH(QVideoSurfaceFormat, format);
-
- QtTestVideoSurface surface;
- surface.setError(QAbstractVideoSurface::ResourceError);
-
- QSignalSpy formatSpy(&surface, SIGNAL(surfaceFormatChanged(QVideoSurfaceFormat)));
- QSignalSpy activeSpy(&surface, SIGNAL(activeChanged(bool)));
-
- QVERIFY(!surface.isActive());
- QCOMPARE(surface.surfaceFormat(), QVideoSurfaceFormat());
-
- QVERIFY(surface.start(format));
-
- QVERIFY(surface.isActive());
- QCOMPARE(surface.surfaceFormat(), format);
-
- QCOMPARE(formatSpy.count(), 1);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.last().at(0)), format);
-
- QCOMPARE(activeSpy.count(), 1);
- QCOMPARE(activeSpy.last().at(0).toBool(), true);
-
- // Starting twice won't change active
- // XXX should this also not emit surfaceFormatChanged?
- QVERIFY(surface.start(format));
- QCOMPARE(activeSpy.count(), 1);
- QVERIFY(surface.isActive());
-
- // error() is reset on a successful start.
- QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
-
- surface.stop();
-
- QVERIFY(!surface.isActive());
- QCOMPARE(surface.surfaceFormat(), QVideoSurfaceFormat());
-
- QCOMPARE(formatSpy.count(), 3);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.last().at(0)), QVideoSurfaceFormat());
-
- QCOMPARE(activeSpy.count(), 2);
- QCOMPARE(activeSpy.last().at(0).toBool(), false);
-
- // Stopping a stopped surface shouldn't hurt
- surface.stop();
-
- QVERIFY(!surface.isActive());
- QCOMPARE(surface.surfaceFormat(), QVideoSurfaceFormat());
-
- QCOMPARE(formatSpy.count(), 3);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.last().at(0)), QVideoSurfaceFormat());
-
- QCOMPARE(activeSpy.count(), 2);
- QCOMPARE(activeSpy.last().at(0).toBool(), false);
-}
-
-// Test nativeResolution property
-void tst_QAbstractVideoSurface::nativeResolution()
-{
- QtTestVideoSurface surface;
- QSignalSpy spy(&surface, SIGNAL(nativeResolutionChanged(QSize)));
- QSize size1 = surface.nativeResolution();
- QVERIFY(size1.width() == -1);
- QVERIFY(size1.height() == -1);
- QVERIFY(spy.count() == 0);
-
- QSize res(100,150);
- surface.setNativeResolution(res);
- QVERIFY(spy.count() == 1);
-
- QSize size2 = qvariant_cast<QSize>(spy.at(0).at(0));
- QVERIFY(size2.width() == 100);
- QVERIFY(size2.height() == 150);
-
- // Setting again should not emit
- surface.setNativeResolution(res);
- QVERIFY(spy.count() == 1);
-
- size2 = qvariant_cast<QSize>(spy.at(0).at(0));
- QVERIFY(size2.width() == 100);
- QVERIFY(size2.height() == 150);
-
- spy.clear();
-}
-
-// QAbstractVideoSurface's supported Formats Changed Signal
-void tst_QAbstractVideoSurface::supportedFormatsChanged()
-{
- SupportedFormatMap formatMap;
- formatMap.insertMulti(QAbstractVideoBuffer::NoHandle, QVideoFrame::Format_RGB24);
- QtTestVideoSurface surface(formatMap);
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
- QList<QVideoFrame::PixelFormat> formats = surface.supportedPixelFormats();
- QVERIFY(formats.count() == 1);
- QVERIFY(spy.count() == 0);
-
- // user defined implementation for generation of supportedFormatsChanged signal
- QList<QVideoFrame::PixelFormat> newFormats = surface.supportedPixelFormatsChange(formats);
- QVERIFY(newFormats.count() == (formats.count() + 1));
- QVERIFY(spy.count() == 1);
- spy.clear();
-}
-
-QTEST_MAIN(tst_QAbstractVideoSurface)
-
-#include "tst_qabstractvideosurface.moc"
diff --git a/tests/auto/qaudiocapturesource/qaudiocapturesource.pro b/tests/auto/qaudiocapturesource/qaudiocapturesource.pro
deleted file mode 100644
index 1d0c2e2..0000000
--- a/tests/auto/qaudiocapturesource/qaudiocapturesource.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qaudiocapturesource
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qaudiocapturesource.cpp
-
-include (../qmultimedia_common/mockrecorder.pri)
-include (../qmultimedia_common/mock.pri)
-
diff --git a/tests/auto/qaudiocapturesource/tst_qaudiocapturesource.cpp b/tests/auto/qaudiocapturesource/tst_qaudiocapturesource.cpp
deleted file mode 100644
index d2620b8..0000000
--- a/tests/auto/qaudiocapturesource/tst_qaudiocapturesource.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QDebug>
-
-#include <qaudioformat.h>
-
-#include <qaudiocapturesource.h>
-#include <qaudioencodercontrol.h>
-#include <qmediarecordercontrol.h>
-#include <qaudioendpointselector.h>
-#include <qaudiodeviceinfo.h>
-#include <qaudioinput.h>
-#include <qmediaobject.h>
-
-//TESTED_COMPONENT=src/multimedia
-
-#include "mockmediaserviceprovider.h"
-#include "mockmediarecorderservice.h"
-
-QT_USE_NAMESPACE
-
-class tst_QAudioCaptureSource: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- //void testNullService();
- //void testNullControl();
- void testAudioSource();
- void testOptions();
- void testDevices();
- void testAvailability();
- void testAvailableAudioInputChangedSignal();
-
-private:
- QAudioCaptureSource *audiosource;
- MockMediaRecorderService *mockMediaRecorderService;
- MockMediaServiceProvider *mockProvider;
-};
-
-void tst_QAudioCaptureSource::initTestCase()
-{
- mockMediaRecorderService = new MockMediaRecorderService;
- mockProvider = new MockMediaServiceProvider(mockMediaRecorderService);
-}
-
-void tst_QAudioCaptureSource::cleanupTestCase()
-{
- delete audiosource;
- delete mockProvider;
- audiosource = 0;
-}
-/*
-void tst_QAudioCaptureSource::testNullService()
-{
- MockProvider provider(0);
- QAudioCaptureSource source(0, &provider);
-
- QCOMPARE(source.audioInputs().size(), 0);
- QCOMPARE(source.defaultAudioInput(), QString());
- QCOMPARE(source.activeAudioInput(), QString());
-}
-*/
-/*
-void tst_QAudioCaptureSource::testNullControl()
-{
- MockRecorderService service;
- service.hasAudioDeviceControl = false;
- MockProvider provider(&service);
- QAudioCaptureSource source(0, &provider);
-
- QCOMPARE(source.audioInputs().size(), 0);
- QCOMPARE(source.defaultAudioInput(), QString());
- QCOMPARE(source.activeAudioInput(), QString());
-
- QCOMPARE(source.audioDescription("blah"), QString());
-
- QSignalSpy deviceNameSpy(&source, SIGNAL(activeAudioInputChanged(QString)));
-
- source.setAudioInput("blah");
- QCOMPARE(deviceNameSpy.count(), 0);
-}
-*/
-void tst_QAudioCaptureSource::testAudioSource()
-{
- audiosource = new QAudioCaptureSource(0, mockProvider);
-
- QCOMPARE(audiosource->service(),(QMediaService *) mockMediaRecorderService);
-}
-
-void tst_QAudioCaptureSource::testOptions()
-{
- const QString codec(QLatin1String("audio/mpeg"));
-
- QStringList options = mockMediaRecorderService->mockAudioEncoderControl->supportedEncodingOptions(codec);
- QCOMPARE(options.count(), 4);
- mockMediaRecorderService->mockAudioEncoderControl->setEncodingOption(codec, options.first(),8000);
- QVERIFY(mockMediaRecorderService->mockAudioEncoderControl->encodingOption(codec, options.first()).toInt() == 8000);
-}
-
-void tst_QAudioCaptureSource::testDevices()
-{
- audiosource = new QAudioCaptureSource(0,mockProvider);
- QList<QString> devices = audiosource->audioInputs();
- QVERIFY(devices.size() > 0);
- QVERIFY(devices.at(0).compare("device1") == 0);
- QVERIFY(audiosource->audioDescription("device1").compare("dev1 comment") == 0);
- QVERIFY(audiosource->defaultAudioInput() == "device1");
- QVERIFY(audiosource->isAvailable() == true);
-
- QSignalSpy checkSignal(audiosource, SIGNAL(activeAudioInputChanged(QString)));
- audiosource->setAudioInput("device2");
- QVERIFY(audiosource->activeAudioInput().compare("device2") == 0);
- QVERIFY(checkSignal.count() == 1);
- QVERIFY(audiosource->isAvailable() == true);
-}
-
-void tst_QAudioCaptureSource::testAvailability()
-{
- MockMediaRecorderService service;
- service.hasControls = false;
- MockMediaServiceProvider provider(&service);
- QAudioCaptureSource source(0, &provider);
-
- QVERIFY(source.isAvailable() == false);
- QVERIFY(source.availabilityError() == QtMultimedia::ServiceMissingError);
-
- service.hasControls = true;
- MockMediaServiceProvider provider2(&service);
- QAudioCaptureSource source2(0, &provider2);
-
- QVERIFY(source2.isAvailable() == true);
- QVERIFY(source2.availabilityError() == QtMultimedia::NoError);
-}
-
-void tst_QAudioCaptureSource::testAvailableAudioInputChangedSignal()
-{
- // The availabilityChangedSignal is implemented in QAudioCaptureSource. SO using it to test the signal.
- audiosource = new QAudioCaptureSource(0, mockProvider);
-
- /* Spy the signal availableEndpointChanged and audioInputchanged */
- QSignalSpy changed(mockMediaRecorderService->mockAudioEndpointSelector, SIGNAL(availableEndpointsChanged()));
- QSignalSpy audioInputchange(audiosource, SIGNAL(availableAudioInputsChanged()));
-
- /* Add the end points and verify if the available end point changed signal is emitted. */
- QMetaObject::invokeMethod(mockMediaRecorderService->mockAudioEndpointSelector, "addEndpoints");
- QVERIFY(changed.count() == 1);
- QVERIFY(audioInputchange.count() == 1);
-
- /* Now try removes */
- changed.clear();
- audioInputchange.clear();
- QMetaObject::invokeMethod(mockMediaRecorderService->mockAudioEndpointSelector, "removeEndpoints");
- QVERIFY(changed.count() == 1);
- QVERIFY(audioInputchange.count() == 1);
-}
-
-QTEST_MAIN(tst_QAudioCaptureSource)
-
-#include "tst_qaudiocapturesource.moc"
diff --git a/tests/auto/qaudiodeviceinfo/qaudiodeviceinfo.pro b/tests/auto/qaudiodeviceinfo/qaudiodeviceinfo.pro
deleted file mode 100644
index ffe9829..0000000
--- a/tests/auto/qaudiodeviceinfo/qaudiodeviceinfo.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-TARGET = tst_qaudiodeviceinfo
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-SOURCES += tst_qaudiodeviceinfo.cpp
-
diff --git a/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp b/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
deleted file mode 100644
index f459a74..0000000
--- a/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include <QtCore/qlocale.h>
-#include <qaudiodeviceinfo.h>
-
-#include <QStringList>
-#include <QList>
-
-//TESTED_COMPONENT=src/multimedia
-
-class tst_QAudioDeviceInfo : public QObject
-{
- Q_OBJECT
-public:
- tst_QAudioDeviceInfo(QObject* parent=0) : QObject(parent) {}
-
-private slots:
- void initTestCase();
- void checkAvailableDefaultInput();
- void checkAvailableDefaultOutput();
- void outputList();
- void codecs();
- void channels();
- void sampleSizes();
- void byteOrders();
- void sampleTypes();
- void frequencies();
- void isFormatSupported();
- void preferred();
- void nearest();
- void supportedChannelCounts();
- void supportedSampleRates();
- void assignOperator();
- void deviceName();
- void defaultConstructor();
-
-private:
- bool available;
- QAudioDeviceInfo* device;
-};
-
-void tst_QAudioDeviceInfo::initTestCase()
-{
- // Only perform tests if audio output device exists!
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
- if (devices.size() > 0)
- available = true;
- else {
- qWarning()<<"NOTE: no audio output device found, no test will be performed";
- available = false;
- }
-}
-
-void tst_QAudioDeviceInfo::checkAvailableDefaultInput()
-{
- // Only perform tests if audio input device exists!
- bool storeAvailable = available;
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
- if (devices.size() > 0)
- available = true;
- else {
- qWarning()<<"NOTE: no audio input device found, no test will be performed";
- available = false;
- }
- if (available)
- QVERIFY(!QAudioDeviceInfo::defaultInputDevice().isNull());
- available = storeAvailable;
-}
-
-void tst_QAudioDeviceInfo::checkAvailableDefaultOutput()
-{
- if (available)
- QVERIFY(!QAudioDeviceInfo::defaultOutputDevice().isNull());
-}
-
-void tst_QAudioDeviceInfo::outputList()
-{
- if (available) {
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
- QVERIFY(devices.size() > 0);
- device = new QAudioDeviceInfo(devices.at(0));
- }
-}
-
-void tst_QAudioDeviceInfo::codecs()
-{
- if (available) {
- QStringList avail = device->supportedCodecs();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::channels()
-{
- if (available) {
- QList<int> avail = device->supportedChannels();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::sampleSizes()
-{
- if (available) {
- QList<int> avail = device->supportedSampleSizes();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::byteOrders()
-{
- if (available) {
- QList<QAudioFormat::Endian> avail = device->supportedByteOrders();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::sampleTypes()
-{
- if (available) {
- QList<QAudioFormat::SampleType> avail = device->supportedSampleTypes();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::frequencies()
-{
- if (available) {
- QList<int> avail = device->supportedFrequencies();
- QVERIFY(avail.size() > 0);
- }
-}
-
-void tst_QAudioDeviceInfo::isFormatSupported()
-{
- if (available) {
- QAudioFormat format;
- format.setFrequency(44100);
- format.setChannels(2);
- format.setSampleType(QAudioFormat::SignedInt);
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setSampleSize(16);
- format.setCodec("audio/pcm");
-
- // Should always be true for these format
- QVERIFY(device->isFormatSupported(format));
- }
-}
-
-void tst_QAudioDeviceInfo::preferred()
-{
- if (available) {
- QAudioFormat format = device->preferredFormat();
- QVERIFY(format.isValid());
- }
-}
-
-// Returns closest QAudioFormat to settings that system audio supports.
-void tst_QAudioDeviceInfo::nearest()
-{
- if (available) {
- /*
- QAudioFormat format1, format2;
- format1.setFrequency(8000);
- format2 = device->nearestFormat(format1);
- QVERIFY(format2.frequency() == 44100);
- */
- QAudioFormat format;
- format.setFrequency(44100);
- format.setChannels(2);
- format.setSampleType(QAudioFormat::SignedInt);
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setSampleSize(16);
- format.setCodec("audio/pcm");
-
- QAudioFormat format2 = device->nearestFormat(format);
-
- // This is definitely dependent on platform support (but isFormatSupported tests that above)
- QVERIFY(format2.frequency() == 44100);
- }
-}
-
-// Returns a list of supported channel counts.
-void tst_QAudioDeviceInfo::supportedChannelCounts()
-{
- if (available) {
- QList<int> avail = device->supportedChannelCounts();
- QVERIFY(avail.size() > 0);
- }
-}
-
-// Returns a list of supported sample rates.
-void tst_QAudioDeviceInfo::supportedSampleRates()
-{
- if (available) {
- QList<int> avail = device->supportedSampleRates();
- QVERIFY(avail.size() > 0);
- }
-}
-
-// QAudioDeviceInfo's assignOperator method
-void tst_QAudioDeviceInfo::assignOperator()
-{
- QAudioDeviceInfo dev;
- QVERIFY(dev.deviceName() == NULL);
- QVERIFY(dev.isNull() == true);
-
- if (available) {
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
- QVERIFY(devices.size() > 0);
- QAudioDeviceInfo dev1(devices.at(0));
- dev = dev1;
- QVERIFY(dev.isNull() == false);
- QVERIFY(dev.deviceName() == dev1.deviceName());
- }
-}
-
-// Returns human readable name of audio device
-void tst_QAudioDeviceInfo::deviceName()
-{
- if (available) {
- QVERIFY(device->deviceName() != NULL);
- QVERIFY(device->deviceName() == QAudioDeviceInfo::availableDevices(QAudio::AudioOutput).at(0).deviceName());
- }
-}
-
-// QAudioDeviceInfo's defaultConstructor method
-void tst_QAudioDeviceInfo::defaultConstructor()
-{
- QAudioDeviceInfo dev;
- QVERIFY(dev.isNull() == true);
- QVERIFY(dev.deviceName() == NULL);
-}
-
-QTEST_MAIN(tst_QAudioDeviceInfo)
-
-#include "tst_qaudiodeviceinfo.moc"
diff --git a/tests/auto/qaudioformat/qaudioformat.pro b/tests/auto/qaudioformat/qaudioformat.pro
deleted file mode 100644
index 59ba5c3..0000000
--- a/tests/auto/qaudioformat/qaudioformat.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qaudioformat
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qaudioformat.cpp
-
diff --git a/tests/auto/qaudioformat/tst_qaudioformat.cpp b/tests/auto/qaudioformat/tst_qaudioformat.cpp
deleted file mode 100644
index 4685805..0000000
--- a/tests/auto/qaudioformat/tst_qaudioformat.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include <QtCore/qlocale.h>
-#include <qaudioformat.h>
-
-#include <QStringList>
-#include <QList>
-
-//TESTED_COMPONENT=src/multimedia
-
-class tst_QAudioFormat : public QObject
-{
- Q_OBJECT
-
-public:
- tst_QAudioFormat(QObject* parent=0) : QObject(parent) {}
-
-private slots:
- void checkNull();
- void checkFrequency();
- void checkSampleSize();
- void checkCodec();
- void checkByteOrder();
- void checkSampleType();
- void checkEquality();
- void checkAssignment();
- void checkSampleRate();
- void checkChannelCount();
-};
-
-void tst_QAudioFormat::checkNull()
-{
- // Default constructed QAudioFormat is invalid.
- QAudioFormat audioFormat0;
- QVERIFY(!audioFormat0.isValid());
-
- // validity is transferred
- QAudioFormat audioFormat1(audioFormat0);
- QVERIFY(!audioFormat1.isValid());
-
- audioFormat0.setFrequency(44100);
- audioFormat0.setChannels(2);
- audioFormat0.setSampleSize(16);
- audioFormat0.setCodec("audio/pcm");
- audioFormat0.setSampleType(QAudioFormat::SignedInt);
- QVERIFY(audioFormat0.isValid());
-}
-
-void tst_QAudioFormat::checkFrequency()
-{
- QAudioFormat audioFormat;
- audioFormat.setFrequency(44100);
- QVERIFY(audioFormat.frequency() == 44100);
-}
-
-void tst_QAudioFormat::checkSampleSize()
-{
- QAudioFormat audioFormat;
- audioFormat.setSampleSize(16);
- QVERIFY(audioFormat.sampleSize() == 16);
-}
-
-void tst_QAudioFormat::checkCodec()
-{
- QAudioFormat audioFormat;
- audioFormat.setCodec(QString::fromLatin1("audio/pcm"));
- QVERIFY(audioFormat.codec() == QString::fromLatin1("audio/pcm"));
-}
-
-void tst_QAudioFormat::checkByteOrder()
-{
- QAudioFormat audioFormat;
- audioFormat.setByteOrder(QAudioFormat::LittleEndian);
- QVERIFY(audioFormat.byteOrder() == QAudioFormat::LittleEndian);
-
- audioFormat.setByteOrder(QAudioFormat::BigEndian);
- QVERIFY(audioFormat.byteOrder() == QAudioFormat::BigEndian);
-}
-
-void tst_QAudioFormat::checkSampleType()
-{
- QAudioFormat audioFormat;
- audioFormat.setSampleType(QAudioFormat::SignedInt);
- QVERIFY(audioFormat.sampleType() == QAudioFormat::SignedInt);
-
- audioFormat.setSampleType(QAudioFormat::Unknown);
- QVERIFY(audioFormat.sampleType() == QAudioFormat::Unknown);
-
- audioFormat.setSampleType(QAudioFormat::Float);
- QVERIFY(audioFormat.sampleType() == QAudioFormat::Float);
-}
-
-void tst_QAudioFormat::checkEquality()
-{
- QAudioFormat audioFormat0;
- QAudioFormat audioFormat1;
-
- // Null formats are equivalent
- QVERIFY(audioFormat0 == audioFormat1);
- QVERIFY(!(audioFormat0 != audioFormat1));
-
- // on filled formats
- audioFormat0.setFrequency(8000);
- audioFormat0.setChannels(1);
- audioFormat0.setSampleSize(8);
- audioFormat0.setCodec("audio/pcm");
- audioFormat0.setByteOrder(QAudioFormat::LittleEndian);
- audioFormat0.setSampleType(QAudioFormat::UnSignedInt);
-
- audioFormat1.setFrequency(8000);
- audioFormat1.setChannels(1);
- audioFormat1.setSampleSize(8);
- audioFormat1.setCodec("audio/pcm");
- audioFormat1.setByteOrder(QAudioFormat::LittleEndian);
- audioFormat1.setSampleType(QAudioFormat::UnSignedInt);
-
- QVERIFY(audioFormat0 == audioFormat1);
- QVERIFY(!(audioFormat0 != audioFormat1));
-
- audioFormat0.setFrequency(44100);
- QVERIFY(audioFormat0 != audioFormat1);
- QVERIFY(!(audioFormat0 == audioFormat1));
-}
-
-void tst_QAudioFormat::checkAssignment()
-{
- QAudioFormat audioFormat0;
- QAudioFormat audioFormat1;
-
- audioFormat0.setFrequency(8000);
- audioFormat0.setChannels(1);
- audioFormat0.setSampleSize(8);
- audioFormat0.setCodec("audio/pcm");
- audioFormat0.setByteOrder(QAudioFormat::LittleEndian);
- audioFormat0.setSampleType(QAudioFormat::UnSignedInt);
-
- audioFormat1 = audioFormat0;
- QVERIFY(audioFormat1 == audioFormat0);
-
- QAudioFormat audioFormat2(audioFormat0);
- QVERIFY(audioFormat2 == audioFormat0);
-}
-
-/* sampleRate() API property test. */
-void tst_QAudioFormat::checkSampleRate()
-{
- QAudioFormat audioFormat;
- QVERIFY(audioFormat.sampleRate() == -1);
-
- audioFormat.setSampleRate(123);
- QVERIFY(audioFormat.sampleRate() == 123);
-}
-
-/* channelCount() API property test. */
-void tst_QAudioFormat::checkChannelCount()
-{
- // channels is the old name for channelCount, so
- // they should always be equal
- QAudioFormat audioFormat;
- QVERIFY(audioFormat.channelCount() == -1);
- QVERIFY(audioFormat.channels() == -1);
-
- audioFormat.setChannelCount(123);
- QVERIFY(audioFormat.channelCount() == 123);
- QVERIFY(audioFormat.channels() == 123);
-
- audioFormat.setChannels(5);
- QVERIFY(audioFormat.channelCount() == 5);
- QVERIFY(audioFormat.channels() == 5);
-}
-
-QTEST_MAIN(tst_QAudioFormat)
-
-#include "tst_qaudioformat.moc"
diff --git a/tests/auto/qaudioinput/qaudioinput.pro b/tests/auto/qaudioinput/qaudioinput.pro
deleted file mode 100644
index b70c6ee..0000000
--- a/tests/auto/qaudioinput/qaudioinput.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = tst_qaudioinput
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
-
-HEADERS += wavheader.h
-SOURCES += wavheader.cpp tst_qaudioinput.cpp
diff --git a/tests/auto/qaudioinput/tst_qaudioinput.cpp b/tests/auto/qaudioinput/tst_qaudioinput.cpp
deleted file mode 100755
index 4b6bb66..0000000
--- a/tests/auto/qaudioinput/tst_qaudioinput.cpp
+++ /dev/null
@@ -1,852 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QtCore/qlocale.h>
-
-#include <qaudioinput.h>
-#include <qaudiodeviceinfo.h>
-#include <qaudioformat.h>
-#include <qaudio.h>
-
-#include "wavheader.h"
-
-//TESTED_COMPONENT=src/multimedia
-
-#define AUDIO_BUFFER 192000
-
-#ifndef QTRY_VERIFY2
-#define QTRY_VERIFY2(__expr,__msg) \
- do { \
- const int __step = 50; \
- const int __timeout = 5000; \
- if (!(__expr)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QVERIFY2(__expr,__msg); \
- } while(0)
-#endif
-
-Q_DECLARE_METATYPE(QAudioFormat)
-
-class tst_QAudioInput : public QObject
-{
- Q_OBJECT
-public:
- tst_QAudioInput(QObject* parent=0) : QObject(parent) {}
-
-private slots:
- void initTestCase();
-
- void format();
- void invalidFormat_data();
- void invalidFormat();
-
- void bufferSize();
-
- void notifyInterval();
- void disableNotifyInterval();
-
- void stopWhileStopped();
- void suspendWhileStopped();
- void resumeWhileStopped();
-
- void pull();
- void pullSuspendResume();
-
- void push();
- void pushSuspendResume();
-
- void reset();
-
- void cleanupTestCase();
-
-private:
- QString formatToFileName(const QAudioFormat &format);
- QString workingDir();
-
- QAudioDeviceInfo audioDevice;
- QList<QAudioFormat> testFormats;
- QList<QFile*> audioFiles;
-
- QScopedPointer<QByteArray> m_byteArray;
- QScopedPointer<QBuffer> m_buffer;
-};
-
-QString tst_QAudioInput::formatToFileName(const QAudioFormat &format)
-{
- const QString formatEndian = (format.byteOrder() == QAudioFormat::LittleEndian)
- ? QString("LE") : QString("BE");
-
- const QString formatSigned = (format.sampleType() == QAudioFormat::SignedInt)
- ? QString("signed") : QString("unsigned");
-
- return QString("%1_%2_%3_%4_%5")
- .arg(format.frequency())
- .arg(format.sampleSize())
- .arg(formatSigned)
- .arg(formatEndian)
- .arg(format.channels());
-}
-
-
-QString tst_QAudioInput::workingDir()
-{
- QDir working(QString(SRCDIR));
-
- if (working.exists())
- return QString(SRCDIR);
-
- return QDir::currentPath();
-}
-
-void tst_QAudioInput::initTestCase()
-{
- qRegisterMetaType<QAudioFormat>();
-
- // Only perform tests if audio output device exists
- const QList<QAudioDeviceInfo> devices =
- QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
-
- if (devices.size() <= 0)
- QSKIP("No audio backend", SkipAll);
-
- audioDevice = QAudioDeviceInfo::defaultInputDevice();
-
-
- QAudioFormat format;
-
- format.setCodec("audio/pcm");
-
- if (audioDevice.isFormatSupported(audioDevice.preferredFormat()))
- testFormats.append(audioDevice.preferredFormat());
-
- // PCM 8000 mono S8
- format.setFrequency(8000);
- format.setSampleSize(8);
- format.setSampleType(QAudioFormat::SignedInt);
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setChannels(1);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 11025 mono S16LE
- format.setFrequency(11025);
- format.setSampleSize(16);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 22050 mono S16LE
- format.setFrequency(22050);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 22050 stereo S16LE
- format.setChannels(2);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 44100 stereo S16LE
- format.setFrequency(44100);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 48000 stereo S16LE
- format.setFrequency(48000);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- QVERIFY(testFormats.size());
-
- foreach (const QAudioFormat &format, testFormats) {
- QFile* file = new QFile(workingDir() + formatToFileName(format) + QString(".wav"));
- audioFiles.append(file);
- }
-}
-
-void tst_QAudioInput::format()
-{
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QAudioFormat requested = audioDevice.preferredFormat();
- QAudioFormat actual = audioInput.format();
-
- QVERIFY2((requested.channels() == actual.channels()),
- QString("channels: requested=%1, actual=%2").arg(requested.channels()).arg(actual.channels()).toLocal8Bit().constData());
- QVERIFY2((requested.frequency() == actual.frequency()),
- QString("frequency: requested=%1, actual=%2").arg(requested.frequency()).arg(actual.frequency()).toLocal8Bit().constData());
- QVERIFY2((requested.sampleSize() == actual.sampleSize()),
- QString("sampleSize: requested=%1, actual=%2").arg(requested.sampleSize()).arg(actual.sampleSize()).toLocal8Bit().constData());
- QVERIFY2((requested.codec() == actual.codec()),
- QString("codec: requested=%1, actual=%2").arg(requested.codec()).arg(actual.codec()).toLocal8Bit().constData());
- QVERIFY2((requested.byteOrder() == actual.byteOrder()),
- QString("byteOrder: requested=%1, actual=%2").arg(requested.byteOrder()).arg(actual.byteOrder()).toLocal8Bit().constData());
- QVERIFY2((requested.sampleType() == actual.sampleType()),
- QString("sampleType: requested=%1, actual=%2").arg(requested.sampleType()).arg(actual.sampleType()).toLocal8Bit().constData());
-}
-
-void tst_QAudioInput::invalidFormat_data()
-{
- QTest::addColumn<QAudioFormat>("invalidFormat");
-
- QAudioFormat format;
-
- QTest::newRow("Null Format")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setChannelCount(0);
- QTest::newRow("Channel count 0")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setSampleRate(0);
- QTest::newRow("Sample rate 0")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setSampleSize(0);
- QTest::newRow("Sample size 0")
- << format;
-}
-
-void tst_QAudioInput::invalidFormat()
-{
- QFETCH(QAudioFormat, invalidFormat);
-
- QVERIFY2(!audioDevice.isFormatSupported(invalidFormat),
- "isFormatSupported() is returning true on an invalid format");
-
- QAudioInput audioInput(invalidFormat, this);
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- audioInput.start();
-
- // Check that error is raised
- QTRY_VERIFY2((audioInput.error() == QAudio::OpenError),"error() was not set to QAudio::OpenError after start()");
-}
-
-void tst_QAudioInput::bufferSize()
-{
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioInput.setBufferSize(512);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(512)");
- QVERIFY2((audioInput.bufferSize() == 512),
- QString("bufferSize: requested=512, actual=%2").arg(audioInput.bufferSize()).toLocal8Bit().constData());
-
- audioInput.setBufferSize(4096);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(4096)");
- QVERIFY2((audioInput.bufferSize() == 4096),
- QString("bufferSize: requested=4096, actual=%2").arg(audioInput.bufferSize()).toLocal8Bit().constData());
-
- audioInput.setBufferSize(8192);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(8192)");
- QVERIFY2((audioInput.bufferSize() == 8192),
- QString("bufferSize: requested=8192, actual=%2").arg(audioInput.bufferSize()).toLocal8Bit().constData());
-}
-
-void tst_QAudioInput::notifyInterval()
-{
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioInput.setNotifyInterval(50);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(50)");
- QVERIFY2((audioInput.notifyInterval() == 50),
- QString("notifyInterval: requested=50, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData());
-
- audioInput.setNotifyInterval(100);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(100)");
- QVERIFY2((audioInput.notifyInterval() == 100),
- QString("notifyInterval: requested=100, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData());
-
- audioInput.setNotifyInterval(250);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(250)");
- QVERIFY2((audioInput.notifyInterval() == 250),
- QString("notifyInterval: requested=250, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData());
-
- audioInput.setNotifyInterval(1000);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(1000)");
- QVERIFY2((audioInput.notifyInterval() == 1000),
- QString("notifyInterval: requested=1000, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData());
-}
-
-void tst_QAudioInput::disableNotifyInterval()
-{
- // Sets an invalid notification interval (QAudioInput::setNotifyInterval(0))
- // Checks that
- // - No error is raised (QAudioInput::error() returns QAudio::NoError)
- // - if <= 0, set to zero and disable notify signal
-
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioInput.setNotifyInterval(0);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(0)");
- QVERIFY2((audioInput.notifyInterval() == 0),
- "notifyInterval() is not zero after setNotifyInterval(0)");
-
- audioInput.setNotifyInterval(-1);
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(-1)");
- QVERIFY2((audioInput.notifyInterval() == 0),
- "notifyInterval() is not zero after setNotifyInterval(-1)");
-
- //start and run to check if notify() is emitted
- if (audioFiles.size() > 0) {
- QAudioInput audioInputCheck(testFormats.at(0), this);
- audioInputCheck.setNotifyInterval(0);
- QSignalSpy notifySignal(&audioInputCheck, SIGNAL(notify()));
- audioFiles.at(0)->open(QIODevice::WriteOnly);
- audioInputCheck.start(audioFiles.at(0));
- QTest::qWait(3000); // 3 seconds should be plenty
- audioInputCheck.stop();
- QVERIFY2((notifySignal.count() == 0),
- QString("didn't disable notify interval: shouldn't have got any but got %1").arg(notifySignal.count()).toLocal8Bit().constData());
- audioFiles.at(0)->close();
- }
-}
-
-void tst_QAudioInput::stopWhileStopped()
-{
- // Calls QAudioInput::stop() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioInput::error() returns QAudio::NoError)
-
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
- audioInput.stop();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "stop() while stopped is emitting a signal and it shouldn't");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after stop()");
-}
-
-void tst_QAudioInput::suspendWhileStopped()
-{
- // Calls QAudioInput::suspend() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioInput::error() returns QAudio::NoError)
-
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
- audioInput.suspend();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "stop() while suspended is emitting a signal and it shouldn't");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after stop()");
-}
-
-void tst_QAudioInput::resumeWhileStopped()
-{
- // Calls QAudioInput::resume() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioInput::error() returns QAudio::NoError)
-
- QAudioInput audioInput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
- audioInput.resume();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "resume() while stopped is emitting a signal and it shouldn't");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after resume()");
-}
-
-void tst_QAudioInput::pull()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioInput audioInput(testFormats.at(i), this);
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::WriteOnly);
- WavHeader wavHeader(testFormats.at(i));
- QVERIFY(wavHeader.write(*audioFiles.at(i)));
-
- audioInput.start(audioFiles.at(i));
-
- // Check that QAudioInput immediately transitions to ActiveState or IdleState
- QTRY_VERIFY2((stateSignal.count() > 0),"didn't emit signals on start()");
- QVERIFY2((audioInput.state() == QAudio::ActiveState || audioInput.state() == QAudio::IdleState),
- "didn't transition to ActiveState or IdleState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
-
- // Allow some recording to happen
- QTest::qWait(3000); // 3 seconds should be plenty
-
- stateSignal.clear();
-
- qint64 processedUs = audioInput.processedUSecs();
-
- audioInput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs > 2800000 && processedUs < 3200000),
- QString("processedUSecs() doesn't fall in acceptable range, should be 3040000 (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioInput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
- QVERIFY2((notifySignal.count() > 20 && notifySignal.count() < 40),
- QString("notify() signals emitted (%1) should be 30").arg(notifySignal.count()).toLocal8Bit().constData());
-
- WavHeader::writeDataLength(*audioFiles.at(i),audioFiles.at(i)->pos()-WavHeader::headerLength());
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioInput::pullSuspendResume()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioInput audioInput(testFormats.at(i), this);
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::WriteOnly);
- WavHeader wavHeader(testFormats.at(i));
- QVERIFY(wavHeader.write(*audioFiles.at(i)));
-
- audioInput.start(audioFiles.at(i));
-
- // Check that QAudioInput immediately transitions to ActiveState or IdleState
- QTRY_VERIFY2((stateSignal.count() > 0),"didn't emit signals on start()");
- QVERIFY2((audioInput.state() == QAudio::ActiveState || audioInput.state() == QAudio::IdleState),
- "didn't transition to ActiveState or IdleState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
-
- // Allow some recording to happen
- QTest::qWait(3000); // 3 seconds should be plenty
-
- QVERIFY2((audioInput.state() == QAudio::ActiveState),
- "didn't transition to ActiveState after some recording");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after some recording");
-
- stateSignal.clear();
-
- audioInput.suspend();
-
- // Give backends running in separate threads a chance to suspend.
- QTest::qWait(100);
-
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit SuspendedState signal after suspend(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::SuspendedState), "didn't transitions to SuspendedState after stop()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- stateSignal.clear();
-
- // Check that only 'elapsed', and not 'processed' increases while suspended
- qint64 elapsedUs = audioInput.elapsedUSecs();
- qint64 processedUs = audioInput.processedUSecs();
- QTest::qWait(1000);
- QVERIFY(audioInput.elapsedUSecs() > elapsedUs);
- QVERIFY(audioInput.processedUSecs() == processedUs);
-
- audioInput.resume();
-
- // Give backends running in separate threads a chance to resume.
- QTest::qWait(100);
-
- // Check that QAudioInput immediately transitions to ActiveState
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after resume(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::ActiveState), "didn't transition to ActiveState after resume()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after resume()");
- stateSignal.clear();
-
- processedUs = audioInput.processedUSecs();
-
- audioInput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs > 2800000 && processedUs < 3200000),
- QString("processedUSecs() doesn't fall in acceptable range, should be 3040000 (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioInput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
- QVERIFY2((notifySignal.count() > 20 && notifySignal.count() < 40),
- QString("notify() signals emitted (%1) should be 30").arg(notifySignal.count()).toLocal8Bit().constData());
-
- WavHeader::writeDataLength(*audioFiles.at(i),audioFiles.at(i)->pos()-WavHeader::headerLength());
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioInput::push()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioInput audioInput(testFormats.at(i), this);
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::WriteOnly);
- WavHeader wavHeader(testFormats.at(i));
- QVERIFY(wavHeader.write(*audioFiles.at(i)));
-
- QIODevice* feed = audioInput.start();
-
- // Check that QAudioInput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),"didn't emit IdleState signal on start()");
- QVERIFY2((audioInput.state() == QAudio::IdleState),
- "didn't transition to IdleState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
-
- qint64 totalBytesRead = 0;
- bool firstBuffer = true;
- QByteArray buffer(AUDIO_BUFFER, 0);
- qint64 len = (testFormats.at(i).frequency()*testFormats.at(i).channels()*(testFormats.at(i).sampleSize()/8)*2); // 2 seconds
- while (totalBytesRead < len) {
- if (audioInput.bytesReady() >= audioInput.periodSize()) {
- qint64 bytesRead = feed->read(buffer.data(), audioInput.periodSize());
- audioFiles.at(i)->write(buffer.constData(),bytesRead);
- totalBytesRead+=bytesRead;
- if (firstBuffer && bytesRead) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),"didn't emit ActiveState signal on data");
- QVERIFY2((audioInput.state() == QAudio::ActiveState),
- "didn't transition to ActiveState after data");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
-
- QTest::qWait(1000);
-
- stateSignal.clear();
-
- qint64 processedUs = audioInput.processedUSecs();
-
- audioInput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs > 1800000 && processedUs < 2200000),
- QString("processedUSecs() doesn't fall in acceptable range, should be 2040000 (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioInput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
- QVERIFY2((notifySignal.count() > 20 && notifySignal.count() < 40),
- QString("notify() signals emitted (%1) should be 30").arg(notifySignal.count()).toLocal8Bit().constData());
-
- WavHeader::writeDataLength(*audioFiles.at(i),audioFiles.at(i)->pos()-WavHeader::headerLength());
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioInput::pushSuspendResume()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioInput audioInput(testFormats.at(i), this);
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::WriteOnly);
- WavHeader wavHeader(testFormats.at(i));
- QVERIFY(wavHeader.write(*audioFiles.at(i)));
-
- QIODevice* feed = audioInput.start();
-
- // Check that QAudioInput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),"didn't emit IdleState signal on start()");
- QVERIFY2((audioInput.state() == QAudio::IdleState),
- "didn't transition to IdleState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioInput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
-
- qint64 totalBytesRead = 0;
- bool firstBuffer = true;
- QByteArray buffer(AUDIO_BUFFER, 0);
- qint64 len = (testFormats.at(i).frequency()*testFormats.at(i).channels()*(testFormats.at(i).sampleSize()/8)); // 1 seconds
- while (totalBytesRead < len) {
- if (audioInput.bytesReady() >= audioInput.periodSize()) {
- qint64 bytesRead = feed->read(buffer.data(), audioInput.periodSize());
- audioFiles.at(i)->write(buffer.constData(),bytesRead);
- totalBytesRead+=bytesRead;
- if (firstBuffer && bytesRead) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),"didn't emit ActiveState signal on data");
- QVERIFY2((audioInput.state() == QAudio::ActiveState),
- "didn't transition to ActiveState after data");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- audioInput.suspend();
-
- // Give backends running in separate threads a chance to suspend
- QTest::qWait(100);
-
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit SuspendedState signal after suspend(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::SuspendedState), "didn't transitions to SuspendedState after stop()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- stateSignal.clear();
-
- // Check that only 'elapsed', and not 'processed' increases while suspended
- qint64 elapsedUs = audioInput.elapsedUSecs();
- qint64 processedUs = audioInput.processedUSecs();
- QTest::qWait(1000);
- QVERIFY(audioInput.elapsedUSecs() > elapsedUs);
- QVERIFY(audioInput.processedUSecs() == processedUs);
-
- audioInput.resume();
-
- // Give backends running in separate threads a chance to resume.
- QTest::qWait(100);
-
- // Check that QAudioInput immediately transitions to Active or IdleState
- QVERIFY2((stateSignal.count() > 0),"didn't emit signals on resume()");
- QVERIFY2((audioInput.state() == QAudio::ActiveState || audioInput.state() == QAudio::IdleState),
- "didn't transition to ActiveState or IdleState after resume()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after resume()");
- QVERIFY(audioInput.periodSize() > 0);
-
- // Let it play out what is in buffer and go to Idle before continue
- QTest::qWait(1000);
- stateSignal.clear();
-
- // Read another seconds worth
- totalBytesRead = 0;
- firstBuffer = true;
- while (totalBytesRead < len) {
- if (audioInput.bytesReady() >= audioInput.periodSize()) {
- qint64 bytesRead = feed->read(buffer.data(), audioInput.periodSize());
- audioFiles.at(i)->write(buffer.constData(),bytesRead);
- totalBytesRead+=bytesRead;
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- processedUs = audioInput.processedUSecs();
-
- audioInput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs > 1800000 && processedUs < 2200000),
- QString("processedUSecs() doesn't fall in acceptable range, should be 2040000 (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioInput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
-
- WavHeader::writeDataLength(*audioFiles.at(i),audioFiles.at(i)->pos()-WavHeader::headerLength());
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioInput::reset()
-{
- for(int i=0; i<audioFiles.count(); i++) {
-
- // Try both push/pull.. the vagaries of Active vs Idle are tested elsewhere
- {
- QAudioInput audioInput(testFormats.at(i), this);
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- QIODevice* device = audioInput.start();
- // Check that QAudioInput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),"didn't emit IdleState signal on start()");
- QVERIFY2((audioInput.state() == QAudio::IdleState), "didn't transition to IdleState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- QTRY_VERIFY2((audioInput.bytesReady() > 0), "no bytes available after starting");
-
- // Trigger a read
- QByteArray data = device->read(1);
-
- QTRY_VERIFY2((audioInput.state() == QAudio::ActiveState), "didn't transition to ActiveState after read()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- stateSignal.clear();
-
- audioInput.reset();
- QTRY_VERIFY2((stateSignal.count() == 1),"didn't emit StoppedState signal after reset()");
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after reset()");
- QVERIFY2((audioInput.bytesReady() == 0), "buffer not cleared after reset()");
- }
-
- {
- QAudioInput audioInput(testFormats.at(i), this);
- QBuffer buffer;
-
- audioInput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioInput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioInput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioInput.start(&buffer);
-
- // Check that QAudioInput immediately transitions to ActiveState
- QTRY_VERIFY2((stateSignal.count() >= 1),"didn't emit state changed signal on start()");
- QTRY_VERIFY2((audioInput.state() == QAudio::ActiveState), "didn't transition to ActiveState after start()");
- QVERIFY2((audioInput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioInput.periodSize() > 0);
- QTRY_VERIFY2((audioInput.bytesReady() > 0), "no bytes available after starting");
- stateSignal.clear();
-
- audioInput.reset();
- QTRY_VERIFY2((stateSignal.count() == 1),"didn't emit StoppedState signal after reset()");
- QVERIFY2((audioInput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after reset()");
- QVERIFY2((audioInput.bytesReady() == 0), "buffer not cleared after reset()");
- }
- }
-}
-
-void tst_QAudioInput::cleanupTestCase()
-{
- QFile* file;
-
- foreach (file, audioFiles) {
- file->remove();
- delete file;
- }
-}
-
-QTEST_MAIN(tst_QAudioInput)
-
-#include "tst_qaudioinput.moc"
diff --git a/tests/auto/qaudioinput/wavheader.cpp b/tests/auto/qaudioinput/wavheader.cpp
deleted file mode 100755
index 26fcd6f..0000000
--- a/tests/auto/qaudioinput/wavheader.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#include <QtCore/qendian.h>
-#include "wavheader.h"
-
-
-struct chunk
-{
- char id[4];
- quint32 size;
-};
-
-struct RIFFHeader
-{
- chunk descriptor; // "RIFF"
- char type[4]; // "WAVE"
-};
-
-struct WAVEHeader
-{
- chunk descriptor;
- quint16 audioFormat;
- quint16 numChannels;
- quint32 sampleRate;
- quint32 byteRate;
- quint16 blockAlign;
- quint16 bitsPerSample;
-};
-
-struct DATAHeader
-{
- chunk descriptor;
-};
-
-struct CombinedHeader
-{
- RIFFHeader riff;
- WAVEHeader wave;
- DATAHeader data;
-};
-
-static const int HeaderLength = sizeof(CombinedHeader);
-
-
-WavHeader::WavHeader(const QAudioFormat &format, qint64 dataLength)
- : m_format(format)
- , m_dataLength(dataLength)
-{
-
-}
-
-bool WavHeader::read(QIODevice &device)
-{
- bool result = true;
-
- if (!device.isSequential())
- result = device.seek(0);
- // else, assume that current position is the start of the header
-
- if (result) {
- CombinedHeader header;
- result = (device.read(reinterpret_cast<char *>(&header), HeaderLength) == HeaderLength);
- if (result) {
- if ((memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0
- || memcmp(&header.riff.descriptor.id, "RIFX", 4) == 0)
- && memcmp(&header.riff.type, "WAVE", 4) == 0
- && memcmp(&header.wave.descriptor.id, "fmt ", 4) == 0
- && header.wave.audioFormat == 1 // PCM
- ) {
- if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0)
- m_format.setByteOrder(QAudioFormat::LittleEndian);
- else
- m_format.setByteOrder(QAudioFormat::BigEndian);
-
- m_format.setChannels(qFromLittleEndian<quint16>(header.wave.numChannels));
- m_format.setCodec("audio/pcm");
- m_format.setFrequency(qFromLittleEndian<quint32>(header.wave.sampleRate));
- m_format.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample));
-
- switch(header.wave.bitsPerSample) {
- case 8:
- m_format.setSampleType(QAudioFormat::UnSignedInt);
- break;
- case 16:
- m_format.setSampleType(QAudioFormat::SignedInt);
- break;
- default:
- result = false;
- }
-
- m_dataLength = device.size() - HeaderLength;
- } else {
- result = false;
- }
- }
- }
-
- return result;
-}
-
-bool WavHeader::write(QIODevice &device)
-{
- CombinedHeader header;
-
- memset(&header, 0, HeaderLength);
-
- // RIFF header
- if (m_format.byteOrder() == QAudioFormat::LittleEndian)
- memcpy(header.riff.descriptor.id,"RIFF",4);
- else
- memcpy(header.riff.descriptor.id,"RIFX",4);
- qToLittleEndian<quint32>(quint32(m_dataLength + HeaderLength - 8),
- reinterpret_cast<unsigned char*>(&header.riff.descriptor.size));
- memcpy(header.riff.type, "WAVE",4);
-
- // WAVE header
- memcpy(header.wave.descriptor.id,"fmt ",4);
- qToLittleEndian<quint32>(quint32(16),
- reinterpret_cast<unsigned char*>(&header.wave.descriptor.size));
- qToLittleEndian<quint16>(quint16(1),
- reinterpret_cast<unsigned char*>(&header.wave.audioFormat));
- qToLittleEndian<quint16>(quint16(m_format.channels()),
- reinterpret_cast<unsigned char*>(&header.wave.numChannels));
- qToLittleEndian<quint32>(quint32(m_format.frequency()),
- reinterpret_cast<unsigned char*>(&header.wave.sampleRate));
- qToLittleEndian<quint32>(quint32(m_format.frequency() * m_format.channels() * m_format.sampleSize() / 8),
- reinterpret_cast<unsigned char*>(&header.wave.byteRate));
- qToLittleEndian<quint16>(quint16(m_format.channels() * m_format.sampleSize() / 8),
- reinterpret_cast<unsigned char*>(&header.wave.blockAlign));
- qToLittleEndian<quint16>(quint16(m_format.sampleSize()),
- reinterpret_cast<unsigned char*>(&header.wave.bitsPerSample));
-
- // DATA header
- memcpy(header.data.descriptor.id,"data",4);
- qToLittleEndian<quint32>(quint32(m_dataLength),
- reinterpret_cast<unsigned char*>(&header.data.descriptor.size));
-
- return (device.write(reinterpret_cast<const char *>(&header), HeaderLength) == HeaderLength);
-}
-
-const QAudioFormat& WavHeader::format() const
-{
- return m_format;
-}
-
-qint64 WavHeader::dataLength() const
-{
- return m_dataLength;
-}
-
-qint64 WavHeader::headerLength()
-{
- return HeaderLength;
-}
-
-bool WavHeader::writeDataLength(QIODevice &device, qint64 dataLength)
-{
- bool result = false;
- if (!device.isSequential()) {
- device.seek(40);
- unsigned char dataLengthLE[4];
- qToLittleEndian<quint32>(quint32(dataLength), dataLengthLE);
- result = (device.write(reinterpret_cast<const char *>(dataLengthLE), 4) == 4);
- }
- return result;
-}
diff --git a/tests/auto/qaudioinput/wavheader.h b/tests/auto/qaudioinput/wavheader.h
deleted file mode 100755
index 4136da0..0000000
--- a/tests/auto/qaudioinput/wavheader.h
+++ /dev/null
@@ -1,80 +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 test suite 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$
-**
-****************************************************************************/
-
-
-#ifndef WAVHEADER_H
-#define WAVHEADER_H
-
-#include <QtCore/qobject.h>
-#include <QtCore/qfile.h>
-#include <qaudioformat.h>
-
-/**
- * Helper class for parsing WAV file headers.
- *
- * See https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
- */
-class WavHeader
-{
-public:
- WavHeader(const QAudioFormat &format = QAudioFormat(),
- qint64 dataLength = 0);
-
- // Reads WAV header and seeks to start of data
- bool read(QIODevice &device);
-
- // Writes WAV header
- bool write(QIODevice &device);
-
- const QAudioFormat& format() const;
- qint64 dataLength() const;
-
- static qint64 headerLength();
-
- static bool writeDataLength(QIODevice &device, qint64 dataLength);
-
-private:
- QAudioFormat m_format;
- qint64 m_dataLength;
-};
-
-#endif
-
diff --git a/tests/auto/qaudiooutput/qaudiooutput.pro b/tests/auto/qaudiooutput/qaudiooutput.pro
deleted file mode 100644
index e3b5050..0000000
--- a/tests/auto/qaudiooutput/qaudiooutput.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = tst_qaudiooutput
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
-
-HEADERS += wavheader.h
-SOURCES += wavheader.cpp tst_qaudiooutput.cpp
diff --git a/tests/auto/qaudiooutput/tst_qaudiooutput.cpp b/tests/auto/qaudiooutput/tst_qaudiooutput.cpp
deleted file mode 100755
index 18f28a2..0000000
--- a/tests/auto/qaudiooutput/tst_qaudiooutput.cpp
+++ /dev/null
@@ -1,959 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <QtCore/qlocale.h>
-
-#include <qaudiooutput.h>
-#include <qaudiodeviceinfo.h>
-#include <qaudioformat.h>
-#include <qaudio.h>
-
-#include "wavheader.h"
-
-#define AUDIO_BUFFER 192000
-
-#ifndef QTRY_VERIFY2
-#define QTRY_VERIFY2(__expr,__msg) \
- do { \
- const int __step = 50; \
- const int __timeout = 5000; \
- if (!(__expr)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QVERIFY2(__expr,__msg); \
- } while(0)
-#endif
-
-Q_DECLARE_METATYPE(QAudioFormat)
-
-class tst_QAudioOutput : public QObject
-{
- Q_OBJECT
-public:
- tst_QAudioOutput(QObject* parent=0) : QObject(parent) {}
-
-private slots:
- void initTestCase();
-
- void format();
- void invalidFormat_data();
- void invalidFormat();
-
- void bufferSize();
-
- void notifyInterval();
- void disableNotifyInterval();
-
- void stopWhileStopped();
- void suspendWhileStopped();
- void resumeWhileStopped();
-
- void pull();
- void pullSuspendResume();
-
- void push();
- void pushSuspendResume();
- void pushUnderrun();
-
- void cleanupTestCase();
-
-private:
- QString formatToFileName(const QAudioFormat &format);
- QString workingDir();
- void createSineWaveData(const QAudioFormat &format, qint64 length, int frequency = 440);
-
- QAudioDeviceInfo audioDevice;
- QList<QAudioFormat> testFormats;
- QList<QFile*> audioFiles;
-
- QScopedPointer<QByteArray> m_byteArray;
- QScopedPointer<QBuffer> m_buffer;
-};
-
-QString tst_QAudioOutput::formatToFileName(const QAudioFormat &format)
-{
- const QString formatEndian = (format.byteOrder() == QAudioFormat::LittleEndian)
- ? QString("LE") : QString("BE");
-
- const QString formatSigned = (format.sampleType() == QAudioFormat::SignedInt)
- ? QString("signed") : QString("unsigned");
-
- return QString("%1_%2_%3_%4_%5")
- .arg(format.frequency())
- .arg(format.sampleSize())
- .arg(formatSigned)
- .arg(formatEndian)
- .arg(format.channels());
-}
-
-
-QString tst_QAudioOutput::workingDir()
-{
- QDir working(QString(SRCDIR));
-
- if (working.exists())
- return QString(SRCDIR);
-
- return QDir::currentPath();
-}
-
-void tst_QAudioOutput::createSineWaveData(const QAudioFormat &format, qint64 length, int frequency)
-{
- const int channelBytes = format.sampleSize() / 8;
- const int sampleBytes = format.channels() * channelBytes;
-
- Q_ASSERT(length % sampleBytes == 0);
- Q_UNUSED(sampleBytes) // suppress warning in release builds
-
- m_byteArray.reset(new QByteArray(length, 0));
- unsigned char *ptr = reinterpret_cast<unsigned char *>(m_byteArray->data());
- int sampleIndex = 0;
-
- while (length) {
- const qreal x = qSin(2 * M_PI * frequency * qreal(sampleIndex % format.frequency()) / format.frequency());
- for (int i=0; i<format.channels(); ++i) {
- if (format.sampleSize() == 8 && format.sampleType() == QAudioFormat::UnSignedInt) {
- const quint8 value = static_cast<quint8>((1.0 + x) / 2 * 255);
- *reinterpret_cast<quint8*>(ptr) = value;
- } else if (format.sampleSize() == 8 && format.sampleType() == QAudioFormat::SignedInt) {
- const qint8 value = static_cast<qint8>(x * 127);
- *reinterpret_cast<quint8*>(ptr) = value;
- } else if (format.sampleSize() == 16 && format.sampleType() == QAudioFormat::UnSignedInt) {
- quint16 value = static_cast<quint16>((1.0 + x) / 2 * 65535);
- if (format.byteOrder() == QAudioFormat::LittleEndian)
- qToLittleEndian<quint16>(value, ptr);
- else
- qToBigEndian<quint16>(value, ptr);
- } else if (format.sampleSize() == 16 && format.sampleType() == QAudioFormat::SignedInt) {
- qint16 value = static_cast<qint16>(x * 32767);
- if (format.byteOrder() == QAudioFormat::LittleEndian)
- qToLittleEndian<qint16>(value, ptr);
- else
- qToBigEndian<qint16>(value, ptr);
- }
-
- ptr += channelBytes;
- length -= channelBytes;
- }
- ++sampleIndex;
- }
-
- m_buffer.reset(new QBuffer(m_byteArray.data(), this));
- Q_ASSERT(m_buffer->open(QIODevice::ReadOnly));
-}
-
-void tst_QAudioOutput::initTestCase()
-{
- qRegisterMetaType<QAudioFormat>();
-
- // Only perform tests if audio output device exists
- const QList<QAudioDeviceInfo> devices =
- QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
-
- if (devices.size() <= 0)
- QSKIP("No audio backend", SkipAll);
-
- audioDevice = QAudioDeviceInfo::defaultOutputDevice();
-
-
- QAudioFormat format;
-
- format.setCodec("audio/pcm");
-
- if (audioDevice.isFormatSupported(audioDevice.preferredFormat()))
- testFormats.append(audioDevice.preferredFormat());
-
- // PCM 8000 mono S8
- format.setFrequency(8000);
- format.setSampleSize(8);
- format.setSampleType(QAudioFormat::SignedInt);
- format.setByteOrder(QAudioFormat::LittleEndian);
- format.setChannels(1);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 11025 mono S16LE
- format.setFrequency(11025);
- format.setSampleSize(16);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 22050 mono S16LE
- format.setFrequency(22050);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 22050 stereo S16LE
- format.setChannels(2);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 44100 stereo S16LE
- format.setFrequency(44100);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- // PCM 48000 stereo S16LE
- format.setFrequency(48000);
- if (audioDevice.isFormatSupported(format))
- testFormats.append(format);
-
- QVERIFY(testFormats.size());
-
- foreach (const QAudioFormat &format, testFormats) {
- qint64 len = (format.frequency()*format.channels()*(format.sampleSize()/8)*2); // 2 seconds
- createSineWaveData(format, len);
- // Write generate sine wave data to file
- QFile* file = new QFile(workingDir() + QString("generated") + formatToFileName(format) + QString(".wav"));
- if (file->open(QIODevice::WriteOnly)) {
- WavHeader wavHeader(format, len);
- wavHeader.write(*file);
- file->write(m_byteArray->data(), len);
- file->close();
- audioFiles.append(file);
- }
- }
-}
-
-void tst_QAudioOutput::format()
-{
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QAudioFormat requested = audioDevice.preferredFormat();
- QAudioFormat actual = audioOutput.format();
-
- QVERIFY2((requested.channels() == actual.channels()),
- QString("channels: requested=%1, actual=%2").arg(requested.channels()).arg(actual.channels()).toLocal8Bit().constData());
- QVERIFY2((requested.frequency() == actual.frequency()),
- QString("frequency: requested=%1, actual=%2").arg(requested.frequency()).arg(actual.frequency()).toLocal8Bit().constData());
- QVERIFY2((requested.sampleSize() == actual.sampleSize()),
- QString("sampleSize: requested=%1, actual=%2").arg(requested.sampleSize()).arg(actual.sampleSize()).toLocal8Bit().constData());
- QVERIFY2((requested.codec() == actual.codec()),
- QString("codec: requested=%1, actual=%2").arg(requested.codec()).arg(actual.codec()).toLocal8Bit().constData());
- QVERIFY2((requested.byteOrder() == actual.byteOrder()),
- QString("byteOrder: requested=%1, actual=%2").arg(requested.byteOrder()).arg(actual.byteOrder()).toLocal8Bit().constData());
- QVERIFY2((requested.sampleType() == actual.sampleType()),
- QString("sampleType: requested=%1, actual=%2").arg(requested.sampleType()).arg(actual.sampleType()).toLocal8Bit().constData());
-}
-
-void tst_QAudioOutput::invalidFormat_data()
-{
- QTest::addColumn<QAudioFormat>("invalidFormat");
-
- QAudioFormat format;
-
- QTest::newRow("Null Format")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setChannelCount(0);
- QTest::newRow("Channel count 0")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setSampleRate(0);
- QTest::newRow("Sample rate 0")
- << format;
-
- format = audioDevice.preferredFormat();
- format.setSampleSize(0);
- QTest::newRow("Sample size 0")
- << format;
-}
-
-void tst_QAudioOutput::invalidFormat()
-{
- QFETCH(QAudioFormat, invalidFormat);
-
- QVERIFY2(!audioDevice.isFormatSupported(invalidFormat),
- "isFormatSupported() is returning true on an invalid format");
-
- QAudioOutput audioOutput(invalidFormat, this);
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- audioOutput.start();
- // Check that error is raised
- QTRY_VERIFY2((audioOutput.error() == QAudio::OpenError),"error() was not set to QAudio::OpenError after start()");
-}
-
-void tst_QAudioOutput::bufferSize()
-{
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioOutput.setBufferSize(512);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(512)");
- QVERIFY2((audioOutput.bufferSize() == 512),
- QString("bufferSize: requested=512, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
-
- audioOutput.setBufferSize(4096);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(4096)");
- QVERIFY2((audioOutput.bufferSize() == 4096),
- QString("bufferSize: requested=4096, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
-
- audioOutput.setBufferSize(8192);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setBufferSize(8192)");
- QVERIFY2((audioOutput.bufferSize() == 8192),
- QString("bufferSize: requested=8192, actual=%2").arg(audioOutput.bufferSize()).toLocal8Bit().constData());
-}
-
-void tst_QAudioOutput::notifyInterval()
-{
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioOutput.setNotifyInterval(50);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(50)");
- QVERIFY2((audioOutput.notifyInterval() == 50),
- QString("notifyInterval: requested=50, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
-
- audioOutput.setNotifyInterval(100);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(100)");
- QVERIFY2((audioOutput.notifyInterval() == 100),
- QString("notifyInterval: requested=100, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
-
- audioOutput.setNotifyInterval(250);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(250)");
- QVERIFY2((audioOutput.notifyInterval() == 250),
- QString("notifyInterval: requested=250, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
-
- audioOutput.setNotifyInterval(1000);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(1000)");
- QVERIFY2((audioOutput.notifyInterval() == 1000),
- QString("notifyInterval: requested=1000, actual=%2").arg(audioOutput.notifyInterval()).toLocal8Bit().constData());
-}
-
-void tst_QAudioOutput::disableNotifyInterval()
-{
- // Sets an invalid notification interval (QAudioOutput::setNotifyInterval(0))
- // Checks that
- // - No error is raised (QAudioOutput::error() returns QAudio::NoError)
- // - if <= 0, set to zero and disable notify signal
-
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation");
-
- audioOutput.setNotifyInterval(0);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(0)");
- QVERIFY2((audioOutput.notifyInterval() == 0),
- "notifyInterval() is not zero after setNotifyInterval(0)");
-
- audioOutput.setNotifyInterval(-1);
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(-1)");
- QVERIFY2((audioOutput.notifyInterval() == 0),
- "notifyInterval() is not zero after setNotifyInterval(-1)");
-
- //start and run to check if notify() is emitted
- if (audioFiles.size() > 0) {
- QAudioOutput audioOutputCheck(testFormats.at(0), this);
- audioOutputCheck.setNotifyInterval(0);
- QSignalSpy notifySignal(&audioOutputCheck, SIGNAL(notify()));
- audioFiles.at(0)->open(QIODevice::ReadOnly);
- audioOutputCheck.start(audioFiles.at(0));
- QTest::qWait(3000); // 3 seconds should be plenty
- audioOutputCheck.stop();
- QVERIFY2((notifySignal.count() == 0),
- QString("didn't disable notify interval: shouldn't have got any but got %1").arg(notifySignal.count()).toLocal8Bit().constData());
- audioFiles.at(0)->close();
- }
-}
-
-void tst_QAudioOutput::stopWhileStopped()
-{
- // Calls QAudioOutput::stop() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioOutput::error() returns QAudio::NoError)
-
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
- audioOutput.stop();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "stop() while stopped is emitting a signal and it shouldn't");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after stop()");
-}
-
-void tst_QAudioOutput::suspendWhileStopped()
-{
- // Calls QAudioOutput::suspend() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioOutput::error() returns QAudio::NoError)
-
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
- audioOutput.suspend();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "stop() while suspended is emitting a signal and it shouldn't");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after stop()");
-}
-
-void tst_QAudioOutput::resumeWhileStopped()
-{
- // Calls QAudioOutput::resume() when object is already in StoppedState
- // Checks that
- // - No state change occurs
- // - No error is raised (QAudioOutput::error() returns QAudio::NoError)
-
- QAudioOutput audioOutput(audioDevice.preferredFormat(), this);
-
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
-
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
- audioOutput.resume();
-
- // Check that no state transition occurred
- QVERIFY2((stateSignal.count() == 0), "resume() while stopped is emitting a signal and it shouldn't");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError after resume()");
-}
-
-void tst_QAudioOutput::pull()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioOutput audioOutput(testFormats.at(i), this);
-
- audioOutput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioOutput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::ReadOnly);
- audioFiles.at(i)->seek(WavHeader::headerLength());
-
- audioOutput.start(audioFiles.at(i));
-
- // Check that QAudioOutput immediately transitions to ActiveState
- QTRY_VERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioOutput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioOutput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
-
- // Wait until playback finishes
- QTest::qWait(3000); // 3 seconds should be plenty
-
- QVERIFY2(audioFiles.at(i)->atEnd(), "didn't play to EOF");
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal when at EOF, got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transitions to IdleState when at EOF");
- stateSignal.clear();
-
- qint64 processedUs = audioOutput.processedUSecs();
-
- audioOutput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs == 2000000),
- QString("processedUSecs() doesn't equal file duration in us (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
- QVERIFY2((notifySignal.count() > 15 && notifySignal.count() < 25),
- QString("too many notify() signals emitted (%1)").arg(notifySignal.count()).toLocal8Bit().constData());
-
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioOutput::pullSuspendResume()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioOutput audioOutput(testFormats.at(i), this);
-
- audioOutput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioOutput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::ReadOnly);
- audioFiles.at(i)->seek(WavHeader::headerLength());
-
- audioOutput.start(audioFiles.at(i));
- // Check that QAudioOutput immediately transitions to ActiveState
- QTRY_VERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioOutput.periodSize() > 0);
- stateSignal.clear();
-
- // Wait for half of clip to play
- QTest::qWait(1000);
-
- audioOutput.suspend();
-
- // Give backends running in separate threads a chance to suspend.
- QTest::qWait(100);
-
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit SuspendedState signal after suspend(), got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::SuspendedState), "didn't transition to SuspendedState after suspend()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after suspend()");
- stateSignal.clear();
-
- // Check that only 'elapsed', and not 'processed' increases while suspended
- qint64 elapsedUs = audioOutput.elapsedUSecs();
- qint64 processedUs = audioOutput.processedUSecs();
- QTest::qWait(1000);
- QVERIFY(audioOutput.elapsedUSecs() > elapsedUs);
- QVERIFY(audioOutput.processedUSecs() == processedUs);
-
- audioOutput.resume();
-
- // Give backends running in separate threads a chance to suspend.
- QTest::qWait(100);
-
- // Check that QAudioOutput immediately transitions to ActiveState
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after resume(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after resume()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after resume()");
- stateSignal.clear();
-
- // Wait until playback finishes
- QTest::qWait(3000); // 3 seconds should be plenty
-
- QVERIFY2(audioFiles.at(i)->atEnd(), "didn't play to EOF");
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal when at EOF, got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transitions to IdleState when at EOF");
- stateSignal.clear();
-
- processedUs = audioOutput.processedUSecs();
-
- audioOutput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs == 2000000),
- QString("processedUSecs() doesn't equal file duration in us (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
-
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioOutput::push()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioOutput audioOutput(testFormats.at(i), this);
-
- audioOutput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioOutput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::ReadOnly);
- audioFiles.at(i)->seek(WavHeader::headerLength());
-
- QIODevice* feed = audioOutput.start();
-
- // Check that QAudioOutput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transition to IdleState after start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioOutput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioOutput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
- QVERIFY2((audioOutput.processedUSecs() == qint64(0)), "processedUSecs() is not zero after start()");
-
- qint64 written = 0;
- bool firstBuffer = true;
- QByteArray buffer(AUDIO_BUFFER, 0);
-
- while (written < audioFiles.at(i)->size()-WavHeader::headerLength()) {
-
- if (audioOutput.bytesFree() >= audioOutput.periodSize()) {
- qint64 len = audioFiles.at(i)->read(buffer.data(),audioOutput.periodSize());
- written += feed->write(buffer.constData(), len);
-
- if (firstBuffer) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after receiving data, got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after receiving data");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after receiving data");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- // Wait until playback finishes
- QTest::qWait(3000); // 3 seconds should be plenty
-
- QVERIFY2(audioFiles.at(i)->atEnd(), "didn't play to EOF");
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal when at EOF, got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transitions to IdleState when at EOF");
- stateSignal.clear();
-
- qint64 processedUs = audioOutput.processedUSecs();
-
- audioOutput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs == 2000000),
- QString("processedUSecs() doesn't equal file duration in us (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
- QVERIFY2((notifySignal.count() > 15 && notifySignal.count() < 25),
- QString("too many notify() signals emitted (%1)").arg(notifySignal.count()).toLocal8Bit().constData());
-
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioOutput::pushSuspendResume()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioOutput audioOutput(testFormats.at(i), this);
-
- audioOutput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioOutput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::ReadOnly);
- audioFiles.at(i)->seek(WavHeader::headerLength());
-
- QIODevice* feed = audioOutput.start();
-
- // Check that QAudioOutput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transition to IdleState after start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioOutput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioOutput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
- QVERIFY2((audioOutput.processedUSecs() == qint64(0)), "processedUSecs() is not zero after start()");
-
- qint64 written = 0;
- bool firstBuffer = true;
- QByteArray buffer(AUDIO_BUFFER, 0);
-
- // Play half of the clip
- while (written < (audioFiles.at(i)->size()-WavHeader::headerLength())/2) {
-
- if (audioOutput.bytesFree() >= audioOutput.periodSize()) {
- qint64 len = audioFiles.at(i)->read(buffer.data(),audioOutput.periodSize());
- written += feed->write(buffer.constData(), len);
-
- if (firstBuffer) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after receiving data, got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after receiving data");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after receiving data");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- audioOutput.suspend();
-
- // Give backends running in separate threads a chance to suspend.
- QTest::qWait(100);
-
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit SuspendedState signal after suspend(), got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::SuspendedState), "didn't transition to SuspendedState after suspend()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after suspend()");
- stateSignal.clear();
-
- // Check that only 'elapsed', and not 'processed' increases while suspended
- qint64 elapsedUs = audioOutput.elapsedUSecs();
- qint64 processedUs = audioOutput.processedUSecs();
- QTest::qWait(1000);
- QVERIFY(audioOutput.elapsedUSecs() > elapsedUs);
- QVERIFY(audioOutput.processedUSecs() == processedUs);
-
- audioOutput.resume();
-
- // Give backends running in separate threads a chance to suspend.
- QTest::qWait(100);
-
- // Check that QAudioOutput immediately transitions to ActiveState
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after resume(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after resume()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after resume()");
- stateSignal.clear();
-
- // Play rest of the clip
- while (!audioFiles.at(i)->atEnd()) {
- if (audioOutput.bytesFree() >= audioOutput.periodSize()) {
- qint64 len = audioFiles.at(i)->read(buffer.data(),audioOutput.periodSize());
- written += feed->write(buffer.constData(), len);
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- // Wait until playback finishes
- QTest::qWait(1000); // 1 seconds should be plenty
-
- QVERIFY2(audioFiles.at(i)->atEnd(), "didn't play to EOF");
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal when at EOF, got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transitions to IdleState when at EOF");
- stateSignal.clear();
-
- processedUs = audioOutput.processedUSecs();
-
- audioOutput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs == 2000000),
- QString("processedUSecs() doesn't equal file duration in us (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
-
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioOutput::pushUnderrun()
-{
- for(int i=0; i<audioFiles.count(); i++) {
- QAudioOutput audioOutput(testFormats.at(i), this);
-
- audioOutput.setNotifyInterval(100);
-
- QSignalSpy notifySignal(&audioOutput, SIGNAL(notify()));
- QSignalSpy stateSignal(&audioOutput, SIGNAL(stateChanged(QAudio::State)));
-
- // Check that we are in the default state before calling start
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "state() was not set to StoppedState before start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError before start()");
- QVERIFY2((audioOutput.elapsedUSecs() == qint64(0)),"elapsedUSecs() not zero on creation");
-
- audioFiles.at(i)->close();
- audioFiles.at(i)->open(QIODevice::ReadOnly);
- audioFiles.at(i)->seek(WavHeader::headerLength());
-
- QIODevice* feed = audioOutput.start();
-
- // Check that QAudioOutput immediately transitions to IdleState
- QTRY_VERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal on start(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transition to IdleState after start()");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after start()");
- QVERIFY(audioOutput.periodSize() > 0);
- stateSignal.clear();
-
- // Check that 'elapsed' increases
- QTest::qWait(40);
- QVERIFY2((audioOutput.elapsedUSecs() > 0), "elapsedUSecs() is still zero after start()");
- QVERIFY2((audioOutput.processedUSecs() == qint64(0)), "processedUSecs() is not zero after start()");
-
- qint64 written = 0;
- bool firstBuffer = true;
- QByteArray buffer(AUDIO_BUFFER, 0);
-
- // Play half of the clip
- while (written < (audioFiles.at(i)->size()-WavHeader::headerLength())/2) {
-
- if (audioOutput.bytesFree() >= audioOutput.periodSize()) {
- qint64 len = audioFiles.at(i)->read(buffer.data(),audioOutput.periodSize());
- written += feed->write(buffer.constData(), len);
-
- if (firstBuffer) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after receiving data, got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after receiving data");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after receiving data");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- // Wait for data to be played
- QTest::qWait(1000);
-
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal after suspend(), got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transition to IdleState, no data");
- QVERIFY2((audioOutput.error() == QAudio::UnderrunError), "error state is not equal to QAudio::UnderrunError, no data");
- stateSignal.clear();
-
- firstBuffer = true;
- // Play rest of the clip
- while (!audioFiles.at(i)->atEnd()) {
- if (audioOutput.bytesFree() >= audioOutput.periodSize()) {
- qint64 len = audioFiles.at(i)->read(buffer.data(),audioOutput.periodSize());
- written += feed->write(buffer.constData(), len);
- if (firstBuffer) {
- // Check for transition to ActiveState when data is provided
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit signal after receiving data, got %1 signals instead")
- .arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::ActiveState), "didn't transition to ActiveState after receiving data");
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error state is not equal to QAudio::NoError after receiving data");
- firstBuffer = false;
- }
- } else
- QTest::qWait(20);
- }
- stateSignal.clear();
-
- // Wait until playback finishes
- QTest::qWait(1000); // 1 seconds should be plenty
-
- QVERIFY2(audioFiles.at(i)->atEnd(), "didn't play to EOF");
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit IdleState signal when at EOF, got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::IdleState), "didn't transitions to IdleState when at EOF");
- stateSignal.clear();
-
- qint64 processedUs = audioOutput.processedUSecs();
-
- audioOutput.stop();
- QTest::qWait(40);
- QVERIFY2((stateSignal.count() == 1),
- QString("didn't emit StoppedState signal after stop(), got %1 signals instead").arg(stateSignal.count()).toLocal8Bit().constData());
- QVERIFY2((audioOutput.state() == QAudio::StoppedState), "didn't transitions to StoppedState after stop()");
-
- QVERIFY2((processedUs == 2000000),
- QString("processedUSecs() doesn't equal file duration in us (%1)").arg(processedUs).toLocal8Bit().constData());
- QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after stop()");
- QVERIFY2((audioOutput.elapsedUSecs() == (qint64)0), "elapsedUSecs() not equal to zero in StoppedState");
-
- audioFiles.at(i)->close();
- }
-}
-
-void tst_QAudioOutput::cleanupTestCase()
-{
- QFile* file;
-
- foreach (file, audioFiles) {
- file->remove();
- delete file;
- }
-}
-
-QTEST_MAIN(tst_QAudioOutput)
-
-#include "tst_qaudiooutput.moc"
diff --git a/tests/auto/qaudiooutput/wavheader.cpp b/tests/auto/qaudiooutput/wavheader.cpp
deleted file mode 100755
index 26fcd6f..0000000
--- a/tests/auto/qaudiooutput/wavheader.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#include <QtCore/qendian.h>
-#include "wavheader.h"
-
-
-struct chunk
-{
- char id[4];
- quint32 size;
-};
-
-struct RIFFHeader
-{
- chunk descriptor; // "RIFF"
- char type[4]; // "WAVE"
-};
-
-struct WAVEHeader
-{
- chunk descriptor;
- quint16 audioFormat;
- quint16 numChannels;
- quint32 sampleRate;
- quint32 byteRate;
- quint16 blockAlign;
- quint16 bitsPerSample;
-};
-
-struct DATAHeader
-{
- chunk descriptor;
-};
-
-struct CombinedHeader
-{
- RIFFHeader riff;
- WAVEHeader wave;
- DATAHeader data;
-};
-
-static const int HeaderLength = sizeof(CombinedHeader);
-
-
-WavHeader::WavHeader(const QAudioFormat &format, qint64 dataLength)
- : m_format(format)
- , m_dataLength(dataLength)
-{
-
-}
-
-bool WavHeader::read(QIODevice &device)
-{
- bool result = true;
-
- if (!device.isSequential())
- result = device.seek(0);
- // else, assume that current position is the start of the header
-
- if (result) {
- CombinedHeader header;
- result = (device.read(reinterpret_cast<char *>(&header), HeaderLength) == HeaderLength);
- if (result) {
- if ((memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0
- || memcmp(&header.riff.descriptor.id, "RIFX", 4) == 0)
- && memcmp(&header.riff.type, "WAVE", 4) == 0
- && memcmp(&header.wave.descriptor.id, "fmt ", 4) == 0
- && header.wave.audioFormat == 1 // PCM
- ) {
- if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0)
- m_format.setByteOrder(QAudioFormat::LittleEndian);
- else
- m_format.setByteOrder(QAudioFormat::BigEndian);
-
- m_format.setChannels(qFromLittleEndian<quint16>(header.wave.numChannels));
- m_format.setCodec("audio/pcm");
- m_format.setFrequency(qFromLittleEndian<quint32>(header.wave.sampleRate));
- m_format.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample));
-
- switch(header.wave.bitsPerSample) {
- case 8:
- m_format.setSampleType(QAudioFormat::UnSignedInt);
- break;
- case 16:
- m_format.setSampleType(QAudioFormat::SignedInt);
- break;
- default:
- result = false;
- }
-
- m_dataLength = device.size() - HeaderLength;
- } else {
- result = false;
- }
- }
- }
-
- return result;
-}
-
-bool WavHeader::write(QIODevice &device)
-{
- CombinedHeader header;
-
- memset(&header, 0, HeaderLength);
-
- // RIFF header
- if (m_format.byteOrder() == QAudioFormat::LittleEndian)
- memcpy(header.riff.descriptor.id,"RIFF",4);
- else
- memcpy(header.riff.descriptor.id,"RIFX",4);
- qToLittleEndian<quint32>(quint32(m_dataLength + HeaderLength - 8),
- reinterpret_cast<unsigned char*>(&header.riff.descriptor.size));
- memcpy(header.riff.type, "WAVE",4);
-
- // WAVE header
- memcpy(header.wave.descriptor.id,"fmt ",4);
- qToLittleEndian<quint32>(quint32(16),
- reinterpret_cast<unsigned char*>(&header.wave.descriptor.size));
- qToLittleEndian<quint16>(quint16(1),
- reinterpret_cast<unsigned char*>(&header.wave.audioFormat));
- qToLittleEndian<quint16>(quint16(m_format.channels()),
- reinterpret_cast<unsigned char*>(&header.wave.numChannels));
- qToLittleEndian<quint32>(quint32(m_format.frequency()),
- reinterpret_cast<unsigned char*>(&header.wave.sampleRate));
- qToLittleEndian<quint32>(quint32(m_format.frequency() * m_format.channels() * m_format.sampleSize() / 8),
- reinterpret_cast<unsigned char*>(&header.wave.byteRate));
- qToLittleEndian<quint16>(quint16(m_format.channels() * m_format.sampleSize() / 8),
- reinterpret_cast<unsigned char*>(&header.wave.blockAlign));
- qToLittleEndian<quint16>(quint16(m_format.sampleSize()),
- reinterpret_cast<unsigned char*>(&header.wave.bitsPerSample));
-
- // DATA header
- memcpy(header.data.descriptor.id,"data",4);
- qToLittleEndian<quint32>(quint32(m_dataLength),
- reinterpret_cast<unsigned char*>(&header.data.descriptor.size));
-
- return (device.write(reinterpret_cast<const char *>(&header), HeaderLength) == HeaderLength);
-}
-
-const QAudioFormat& WavHeader::format() const
-{
- return m_format;
-}
-
-qint64 WavHeader::dataLength() const
-{
- return m_dataLength;
-}
-
-qint64 WavHeader::headerLength()
-{
- return HeaderLength;
-}
-
-bool WavHeader::writeDataLength(QIODevice &device, qint64 dataLength)
-{
- bool result = false;
- if (!device.isSequential()) {
- device.seek(40);
- unsigned char dataLengthLE[4];
- qToLittleEndian<quint32>(quint32(dataLength), dataLengthLE);
- result = (device.write(reinterpret_cast<const char *>(dataLengthLE), 4) == 4);
- }
- return result;
-}
diff --git a/tests/auto/qaudiooutput/wavheader.h b/tests/auto/qaudiooutput/wavheader.h
deleted file mode 100755
index 5212eca..0000000
--- a/tests/auto/qaudiooutput/wavheader.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-
-#ifndef WAVHEADER_H
-#define WAVHEADER_H
-
-#include <QtCore/qobject.h>
-#include <QtCore/qfile.h>
-#include <qaudioformat.h>
-
-/**
- * Helper class for parsing WAV file headers.
- *
- * See https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
- */
-class WavHeader
-{
-public:
- WavHeader(const QAudioFormat &format = QAudioFormat(),
- qint64 dataLength = 0);
-
- // Reads WAV header and seeks to start of data
- bool read(QIODevice &device);
-
- // Writes WAV header
- bool write(QIODevice &device);
-
- const QAudioFormat& format() const;
- qint64 dataLength() const;
-
- static qint64 headerLength();
-
- static bool writeDataLength(QIODevice &device, qint64 dataLength);
-
-private:
- QAudioFormat m_format;
- qint64 m_dataLength;
-};
-
-#endif
-
diff --git a/tests/auto/qcamera/qcamera.pro b/tests/auto/qcamera/qcamera.pro
deleted file mode 100644
index c697545..0000000
--- a/tests/auto/qcamera/qcamera.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qcamera
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockcamera.pri)
-
-SOURCES += tst_qcamera.cpp
-
-maemo*:CONFIG += insignificant_test
diff --git a/tests/auto/qcamera/tst_qcamera.cpp b/tests/auto/qcamera/tst_qcamera.cpp
deleted file mode 100644
index de44ae0..0000000
--- a/tests/auto/qcamera/tst_qcamera.cpp
+++ /dev/null
@@ -1,1956 +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 <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 <qvideorenderercontrol.h>
-
-#include "mockcameraservice.h"
-
-#include "mockmediaserviceprovider.h"
-#include "mockvideosurface.h"
-#include "mockvideorenderercontrol.h"
-#include "mockvideowindowcontrol.h"
-
-QT_USE_NAMESPACE
-
-
-class tst_QCamera: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testAvailableDevices();
- void testDeviceDescription();
- void testCtorWithDevice();
- void testSimpleCamera();
- void testSimpleCameraWhiteBalance();
- void testSimpleCameraExposure();
- void testSimpleCameraFocus();
- void testSimpleCameraCapture();
- void testSimpleCameraLock();
- void testSimpleCaptureDestination();
- void testSimpleCaptureFormat();
-
- void testCameraWhiteBalance();
- void testCameraExposure();
- void testCameraFocus();
- void testCameraCapture();
- void testCameraCaptureMetadata();
- void testImageSettings();
- void testCameraLock();
- void testCameraLockCancel();
- void testCameraEncodingProperyChange();
- void testCaptureDestination();
- void testCaptureFormat();
-
- void testConstructorWithDefaultProvider();
- void testCaptureMode();
- void testIsCaptureModeSupported();
- void testRequestedLocks();
- void testSupportedLocks();
- void testQCameraIsAvailable();
- void testAvailabilityError();
- void testSearchAndLockWithLockTypes();
- void testSetCaptureMode();
- void testUnlockWithType();
- void testCaptureModeChangedSignal();
- void testLockStatusChangedWithTypesSignal();
- void testErrorSignal();
- void testError();
- void testErrorString();
- void testStatus();
- void testLockType();
- void testLockChangeReason();
-
-
- // Test cases to for QCameraFocus
- void testCameraFocusIsAvailable();
- void testFocusModes();
- void testOpticalAndDigitalZoomChanged();
- void testMaxOpticalZoomChangedSignal();
- void testMaxDigitalZoomChangedSignal();
- void testfocusZonesChangedSignal();
-
- // Test cases for QCameraControl class.
- void testCameraControl();
- void testCaptureModeChanged_signal();
- void testEnumsOfQCameraControl();
-
- // Test case for QCameraImageProcessing class
- void testContrast();
- void testDenoisingLevel();
- void testIsAvailable();
- void testSaturation();
- void testSharpeningLevel();
- void testEnumOfQCameraImageProcessing();
-
- void testSetVideoOutput();
- void testSetVideoOutputNoService();
- void testSetVideoOutputNoControl();
- void testSetVideoOutputDestruction();
-
- void testEnumDebug();
-
- // constructor for QCameraImageProceesing
- void testImageProcessingControl();
-
- // Signals test cases for QCameraExposure
- void testSignalApertureChanged();
- void testSignalExposureCompensationChanged();
- void testSignalIsoSensitivityChanged();
- void testSignalShutterSpeedChanged();
- void testSignalFlashReady();
-
- // test constructor
- void testExposureControlConstructor();
-
-private:
- MockSimpleCameraService *mockSimpleCameraService;
- MockMediaServiceProvider *provider;
-};
-
-void tst_QCamera::initTestCase()
-{
- provider = new MockMediaServiceProvider;
- mockSimpleCameraService = new MockSimpleCameraService;
- provider->service = mockSimpleCameraService;
- qRegisterMetaType<QtMultimedia::MetaData>("QtMultimedia::MetaData");
-}
-
-void tst_QCamera::cleanupTestCase()
-{
- delete mockSimpleCameraService;
- delete provider;
-}
-
-void tst_QCamera::testAvailableDevices()
-{
- int deviceCount = QMediaServiceProvider::defaultServiceProvider()->devices(QByteArray(Q_MEDIASERVICE_CAMERA)).count();
-
- QVERIFY(QCamera::availableDevices().count() == deviceCount);
-}
-
-void tst_QCamera::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_QCamera::testCtorWithDevice()
-{
- int deviceCount = QMediaServiceProvider::defaultServiceProvider()->devices(QByteArray(Q_MEDIASERVICE_CAMERA)).count();
- QCamera *camera = 0;
-
- if (deviceCount == 0) {
- camera = new QCamera("random");
- QVERIFY(camera->error() == QCamera::ServiceMissingError);
- }
- else {
- camera = new QCamera(QCamera::availableDevices().first());
- QVERIFY(camera->error() == QCamera::NoError);
- }
-
- delete camera;
-}
-
-void tst_QCamera::testSimpleCamera()
-{
- QCamera camera(0, provider);
- QCOMPARE(camera.service(), (QMediaService*)mockSimpleCameraService);
-
- QCOMPARE(camera.state(), QCamera::UnloadedState);
- camera.start();
- QCOMPARE(camera.state(), QCamera::ActiveState);
- camera.stop();
- QCOMPARE(camera.state(), QCamera::LoadedState);
- camera.unload();
- QCOMPARE(camera.state(), QCamera::UnloadedState);
- camera.load();
- QCOMPARE(camera.state(), QCamera::LoadedState);
-}
-
-void tst_QCamera::testSimpleCameraWhiteBalance()
-{
- QCamera camera(0, provider);
-
- //only WhiteBalanceAuto is supported
- QVERIFY(!camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceAuto));
- QVERIFY(!camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceCloudy));
- QCOMPARE(camera.imageProcessing()->whiteBalanceMode(), QCameraImageProcessing::WhiteBalanceAuto);
- camera.imageProcessing()->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceCloudy);
- QCOMPARE(camera.imageProcessing()->whiteBalanceMode(), QCameraImageProcessing::WhiteBalanceAuto);
- QCOMPARE(camera.imageProcessing()->manualWhiteBalance(), 0);
- camera.imageProcessing()->setManualWhiteBalance(5000);
- QCOMPARE(camera.imageProcessing()->manualWhiteBalance(), 0);
-}
-
-void tst_QCamera::testSimpleCameraExposure()
-{
- QCamera camera(0, provider);
- QCameraExposure *cameraExposure = camera.exposure();
- QVERIFY(cameraExposure != 0);
-
- QVERIFY(!cameraExposure->isExposureModeSupported(QCameraExposure::ExposureAuto));
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureAuto);
- cameraExposure->setExposureMode(QCameraExposure::ExposureManual);//should be ignored
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureAuto);
-
- QVERIFY(!cameraExposure->isFlashModeSupported(QCameraExposure::FlashOff));
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashOff);
- QCOMPARE(cameraExposure->isFlashReady(), false);
- cameraExposure->setFlashMode(QCameraExposure::FlashOn);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashOff);
-
- QVERIFY(!cameraExposure->isMeteringModeSupported(QCameraExposure::MeteringAverage));
- QVERIFY(!cameraExposure->isMeteringModeSupported(QCameraExposure::MeteringSpot));
- QVERIFY(!cameraExposure->isMeteringModeSupported(QCameraExposure::MeteringMatrix));
- QCOMPARE(cameraExposure->meteringMode(), QCameraExposure::MeteringMatrix);
- cameraExposure->setMeteringMode(QCameraExposure::MeteringSpot);
- QCOMPARE(cameraExposure->meteringMode(), QCameraExposure::MeteringMatrix);
-
- QCOMPARE(cameraExposure->exposureCompensation(), 0.0);
- cameraExposure->setExposureCompensation(2.0);
- QCOMPARE(cameraExposure->exposureCompensation(), 0.0);
-
- QCOMPARE(cameraExposure->isoSensitivity(), -1);
- QVERIFY(cameraExposure->supportedIsoSensitivities().isEmpty());
- cameraExposure->setManualIsoSensitivity(100);
- QCOMPARE(cameraExposure->isoSensitivity(), -1);
- cameraExposure->setAutoIsoSensitivity();
- QCOMPARE(cameraExposure->isoSensitivity(), -1);
-
- QVERIFY(cameraExposure->aperture() < 0);
- QVERIFY(cameraExposure->supportedApertures().isEmpty());
- cameraExposure->setAutoAperture();
- QVERIFY(cameraExposure->aperture() < 0);
- cameraExposure->setManualAperture(5.6);
- QVERIFY(cameraExposure->aperture() < 0);
-
- QVERIFY(cameraExposure->shutterSpeed() < 0);
- QVERIFY(cameraExposure->supportedShutterSpeeds().isEmpty());
- cameraExposure->setAutoShutterSpeed();
- QVERIFY(cameraExposure->shutterSpeed() < 0);
- cameraExposure->setManualShutterSpeed(1/128.0);
- QVERIFY(cameraExposure->shutterSpeed() < 0);
-}
-
-void tst_QCamera::testSimpleCameraFocus()
-{
- QCamera camera(0, provider);
-
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
-
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::AutoFocus));
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::ContinuousFocus));
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::InfinityFocus));
-
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
- QTest::ignoreMessage(QtWarningMsg, "Focus points mode selection is not supported");
- cameraFocus->setFocusMode(QCameraFocus::ContinuousFocus);
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
-
- QCOMPARE(cameraFocus->maximumOpticalZoom(), 1.0);
- QCOMPARE(cameraFocus->maximumDigitalZoom(), 1.0);
- QCOMPARE(cameraFocus->opticalZoom(), 1.0);
- QCOMPARE(cameraFocus->digitalZoom(), 1.0);
-
- QTest::ignoreMessage(QtWarningMsg, "The camera doesn't support zooming.");
- cameraFocus->zoomTo(100.0, 100.0);
- QCOMPARE(cameraFocus->opticalZoom(), 1.0);
- QCOMPARE(cameraFocus->digitalZoom(), 1.0);
-
-
- QVERIFY(!cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
-
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
- QCOMPARE(cameraFocus->customFocusPoint(), QPointF(0.5, 0.5));
- QTest::ignoreMessage(QtWarningMsg, "Focus points selection is not supported");
- cameraFocus->setCustomFocusPoint(QPointF(1.0, 1.0));
- QCOMPARE(cameraFocus->customFocusPoint(), QPointF(0.5, 0.5));
-}
-
-void tst_QCamera::testSimpleCameraCapture()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QVERIFY(!imageCapture.isReadyForCapture());
- QVERIFY(!imageCapture.isAvailable());
-
- QCOMPARE(imageCapture.error(), QCameraImageCapture::NoError);
- QVERIFY(imageCapture.errorString().isEmpty());
-
- QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString)));
- imageCapture.capture(QString::fromLatin1("/dev/null"));
- QCOMPARE(errorSignal.size(), 1);
- QCOMPARE(imageCapture.error(), QCameraImageCapture::NotSupportedFeatureError);
- QVERIFY(!imageCapture.errorString().isEmpty());
-}
-
-void tst_QCamera::testSimpleCameraLock()
-{
- QCamera camera(0, provider);
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)));
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Locked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Locked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockExposure), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockFocus), QCamera::Unlocked);
- QCOMPARE(camera.lockStatus(QCamera::LockWhiteBalance), QCamera::Unlocked);
-
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-}
-
-void tst_QCamera::testSimpleCaptureDestination()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QVERIFY(imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToFile));
- QVERIFY(!imageCapture.isCaptureDestinationSupported(QCameraImageCapture::CaptureToBuffer));
- QVERIFY(!imageCapture.isCaptureDestinationSupported(
- QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile));
-
- QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToFile);
- imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
- QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToFile);
-}
-
-void tst_QCamera::testSimpleCaptureFormat()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Invalid);
- QVERIFY(imageCapture.supportedBufferFormats().isEmpty());
-
- imageCapture.setBufferFormat(QVideoFrame::Format_AdobeDng);
- QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Invalid);
-}
-
-void tst_QCamera::testCaptureDestination()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- 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);
-
- //not supported combination
- imageCapture.setCaptureDestination(QCameraImageCapture::CaptureToBuffer | QCameraImageCapture::CaptureToFile);
- QCOMPARE(imageCapture.captureDestination(), QCameraImageCapture::CaptureToBuffer);
- QCOMPARE(destinationChangedSignal.size(), 1);
-}
-
-void tst_QCamera::testCaptureFormat()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QSignalSpy formatChangedSignal(&imageCapture, SIGNAL(bufferFormatChanged(QVideoFrame::PixelFormat)));
-
- QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_Jpeg);
- QCOMPARE(imageCapture.supportedBufferFormats().size(), 3);
-
- imageCapture.setBufferFormat(QVideoFrame::Format_AdobeDng);
- QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_AdobeDng);
-
- QCOMPARE(formatChangedSignal.size(), 1);
- QCOMPARE(formatChangedSignal.first().first().value<QVideoFrame::PixelFormat>(),
- QVideoFrame::Format_AdobeDng);
-
- imageCapture.setBufferFormat(QVideoFrame::Format_Y16);
- QCOMPARE(imageCapture.bufferFormat(), QVideoFrame::Format_AdobeDng);
-
- QCOMPARE(formatChangedSignal.size(), 1);
-}
-
-
-void tst_QCamera::testCameraCapture()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QVERIFY(!imageCapture.isReadyForCapture());
-
- QSignalSpy capturedSignal(&imageCapture, SIGNAL(imageCaptured(int,QImage)));
- QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString)));
-
- imageCapture.capture(QString::fromLatin1("/dev/null"));
- QCOMPARE(capturedSignal.size(), 0);
- QCOMPARE(errorSignal.size(), 1);
- QCOMPARE(imageCapture.error(), QCameraImageCapture::NotReadyError);
-
- errorSignal.clear();
-
- camera.start();
- QVERIFY(imageCapture.isReadyForCapture());
- QCOMPARE(errorSignal.size(), 0);
-
- imageCapture.capture(QString::fromLatin1("/dev/null"));
-
- for (int i=0; i<100 && capturedSignal.isEmpty(); i++)
- QTest::qWait(10);
-
- QCOMPARE(capturedSignal.size(), 1);
- QCOMPARE(errorSignal.size(), 0);
- QCOMPARE(imageCapture.error(), QCameraImageCapture::NoError);
-}
-
-void tst_QCamera::testCameraCaptureMetadata()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QSignalSpy metadataSignal(&imageCapture, SIGNAL(imageMetadataAvailable(int,QtMultimedia::MetaData,QVariant)));
- QSignalSpy extendedMetadataSignal(&imageCapture, SIGNAL(imageMetadataAvailable(int,QString,QVariant)));
- QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString)));
-
- camera.start();
- int id = imageCapture.capture(QString::fromLatin1("/dev/null"));
-
- for (int i=0; i<100 && savedSignal.isEmpty(); i++)
- QTest::qWait(10);
-
- QCOMPARE(savedSignal.size(), 1);
-
- QCOMPARE(metadataSignal.size(), 2);
-
- QVariantList metadata = metadataSignal[0];
- QCOMPARE(metadata[0].toInt(), id);
- QCOMPARE(metadata[1].value<QtMultimedia::MetaData>(), QtMultimedia::FocalLengthIn35mmFilm);
- QCOMPARE(metadata[2].value<QVariant>().toInt(), 50);
-
- metadata = metadataSignal[1];
- QCOMPARE(metadata[0].toInt(), id);
- QCOMPARE(metadata[1].value<QtMultimedia::MetaData>(), QtMultimedia::DateTimeOriginal);
- QDateTime captureTime = metadata[2].value<QVariant>().value<QDateTime>();
- QVERIFY(qAbs(captureTime.secsTo(QDateTime::currentDateTime()) < 5)); //it should not takes more than 5 seconds for signal to arrive here
-
- QCOMPARE(extendedMetadataSignal.size(), 1);
- metadata = extendedMetadataSignal.first();
- QCOMPARE(metadata[0].toInt(), id);
- QCOMPARE(metadata[1].toString(), QLatin1String("Answer to the Ultimate Question of Life, the Universe, and Everything"));
- QCOMPARE(metadata[2].value<QVariant>().toInt(), 42);
-}
-
-
-void tst_QCamera::testCameraWhiteBalance()
-{
- QSet<QCameraImageProcessing::WhiteBalanceMode> whiteBalanceModes;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceAuto;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceFlash;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceTungsten;
-
- MockCameraService service;
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceFlash);
- service.mockImageProcessingControl->setSupportedWhiteBalanceModes(whiteBalanceModes);
- service.mockImageProcessingControl->setProcessingParameter(
- QCameraImageProcessingControl::ColorTemperature,
- QVariant(34));
-
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
-
- QCOMPARE(cameraImageProcessing->whiteBalanceMode(), QCameraImageProcessing::WhiteBalanceFlash);
- QVERIFY(camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceAuto));
- QVERIFY(camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceFlash));
- QVERIFY(camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceTungsten));
- QVERIFY(!camera.imageProcessing()->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceCloudy));
-
- cameraImageProcessing->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceTungsten);
- QCOMPARE(cameraImageProcessing->whiteBalanceMode(), QCameraImageProcessing::WhiteBalanceTungsten);
-
- cameraImageProcessing->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceManual);
- QCOMPARE(cameraImageProcessing->whiteBalanceMode(), QCameraImageProcessing::WhiteBalanceManual);
- QCOMPARE(cameraImageProcessing->manualWhiteBalance(), 34);
-
- cameraImageProcessing->setManualWhiteBalance(432);
- QCOMPARE(cameraImageProcessing->manualWhiteBalance(), 432);
-}
-
-void tst_QCamera::testCameraExposure()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCameraExposure *cameraExposure = camera.exposure();
- QVERIFY(cameraExposure != 0);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureAuto));
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureAuto);
-
- // Test Cases For QCameraExposure
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureManual));
- cameraExposure->setExposureMode(QCameraExposure::ExposureManual);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureManual);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureNight));
- cameraExposure->setExposureMode(QCameraExposure::ExposureNight);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureNight);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureBacklight));
- cameraExposure->setExposureMode(QCameraExposure::ExposureBacklight);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureBacklight);
-
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureSpotlight ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureSpotlight);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureSpotlight);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureSports ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureSports);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureSports);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureSnow ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureSnow);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureSnow);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureBeach ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureBeach);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureBeach);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureLargeAperture ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureLargeAperture);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureLargeAperture);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureSmallAperture ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureSmallAperture);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureSmallAperture);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposurePortrait ));
- cameraExposure->setExposureMode(QCameraExposure::ExposurePortrait);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposurePortrait);
-
- QVERIFY(cameraExposure->isExposureModeSupported(QCameraExposure::ExposureModeVendor ));
- cameraExposure->setExposureMode(QCameraExposure::ExposureModeVendor);
- QCOMPARE(cameraExposure->exposureMode(), QCameraExposure::ExposureModeVendor);
-
-
- cameraExposure->setFlashMode(QCameraExposure::FlashAuto);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashAuto);
- QCOMPARE(cameraExposure->isFlashReady(), true);
- cameraExposure->setFlashMode(QCameraExposure::FlashRedEyeReduction);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashRedEyeReduction);
- cameraExposure->setFlashMode(QCameraExposure::FlashOn);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashOn);
- cameraExposure->setFlashMode(QCameraExposure::FlashFill);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashFill);
- cameraExposure->setFlashMode(QCameraExposure::FlashTorch);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashTorch);
- cameraExposure->setFlashMode(QCameraExposure::FlashSlowSyncFrontCurtain);
- QCOMPARE(cameraExposure->flashMode(), QCameraExposure::FlashSlowSyncFrontCurtain);
-
-
- cameraExposure->setMeteringMode(QCameraExposure::MeteringMatrix);
- QCOMPARE(cameraExposure->meteringMode(), QCameraExposure::MeteringMatrix);
- cameraExposure->setMeteringMode(QCameraExposure::MeteringAverage);
- QCOMPARE(cameraExposure->meteringMode(), QCameraExposure::MeteringAverage);
- cameraExposure->setMeteringMode(QCameraExposure::MeteringSpot);
- QCOMPARE(cameraExposure->meteringMode(), QCameraExposure::MeteringSpot);
-
- QCOMPARE(cameraExposure->exposureCompensation(), 0.0);
- cameraExposure->setExposureCompensation(2.0);
- QCOMPARE(cameraExposure->exposureCompensation(), 2.0);
-
- int minIso = cameraExposure->supportedIsoSensitivities().first();
- int maxIso = cameraExposure->supportedIsoSensitivities().last();
- QVERIFY(cameraExposure->isoSensitivity() > 0);
- QVERIFY(minIso > 0);
- QVERIFY(maxIso > 0);
- cameraExposure->setManualIsoSensitivity(minIso);
- QCOMPARE(cameraExposure->isoSensitivity(), minIso);
- cameraExposure->setManualIsoSensitivity(maxIso*10);
- QCOMPARE(cameraExposure->isoSensitivity(), maxIso);
- cameraExposure->setManualIsoSensitivity(-10);
- QCOMPARE(cameraExposure->isoSensitivity(), minIso);
- cameraExposure->setAutoIsoSensitivity();
- QCOMPARE(cameraExposure->isoSensitivity(), 100);
-
- qreal minAperture = cameraExposure->supportedApertures().first();
- qreal maxAperture = cameraExposure->supportedApertures().last();
- QVERIFY(minAperture > 0);
- QVERIFY(maxAperture > 0);
- QVERIFY(cameraExposure->aperture() >= minAperture);
- QVERIFY(cameraExposure->aperture() <= maxAperture);
-
- cameraExposure->setAutoAperture();
- QVERIFY(cameraExposure->aperture() >= minAperture);
- QVERIFY(cameraExposure->aperture() <= maxAperture);
-
- cameraExposure->setManualAperture(0);
- QCOMPARE(cameraExposure->aperture(), minAperture);
-
- cameraExposure->setManualAperture(10000);
- QCOMPARE(cameraExposure->aperture(), maxAperture);
-
-
- qreal minShutterSpeed = cameraExposure->supportedShutterSpeeds().first();
- qreal maxShutterSpeed = cameraExposure->supportedShutterSpeeds().last();
- QVERIFY(minShutterSpeed > 0);
- QVERIFY(maxShutterSpeed > 0);
- QVERIFY(cameraExposure->shutterSpeed() >= minShutterSpeed);
- QVERIFY(cameraExposure->shutterSpeed() <= maxShutterSpeed);
-
- cameraExposure->setAutoShutterSpeed();
- QVERIFY(cameraExposure->shutterSpeed() >= minShutterSpeed);
- QVERIFY(cameraExposure->shutterSpeed() <= maxShutterSpeed);
-
- cameraExposure->setManualShutterSpeed(0);
- QCOMPARE(cameraExposure->shutterSpeed(), minShutterSpeed);
-
- cameraExposure->setManualShutterSpeed(10000);
- QCOMPARE(cameraExposure->shutterSpeed(), maxShutterSpeed);
-}
-
-void tst_QCamera::testCameraFocus()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
-
- QVERIFY(cameraFocus->isFocusModeSupported(QCameraFocus::AutoFocus));
- QVERIFY(cameraFocus->isFocusModeSupported(QCameraFocus::ContinuousFocus));
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::InfinityFocus));
-
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
- cameraFocus->setFocusMode(QCameraFocus::ManualFocus);
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
- cameraFocus->setFocusMode(QCameraFocus::ContinuousFocus);
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::ContinuousFocus);
-
- QVERIFY(cameraFocus->maximumOpticalZoom() >= 1.0);
- QVERIFY(cameraFocus->maximumDigitalZoom() >= 1.0);
- QCOMPARE(cameraFocus->opticalZoom(), 1.0);
- QCOMPARE(cameraFocus->digitalZoom(), 1.0);
- cameraFocus->zoomTo(0.5, 1.0);
- QCOMPARE(cameraFocus->opticalZoom(), 1.0);
- QCOMPARE(cameraFocus->digitalZoom(), 1.0);
- cameraFocus->zoomTo(2.0, 0.5);
- QCOMPARE(cameraFocus->opticalZoom(), 2.0);
- QCOMPARE(cameraFocus->digitalZoom(), 1.0);
- cameraFocus->zoomTo(2.0, 2.5);
- QCOMPARE(cameraFocus->opticalZoom(), 2.0);
- QCOMPARE(cameraFocus->digitalZoom(), 2.5);
- cameraFocus->zoomTo(2000000.0, 1000000.0);
- QVERIFY(qFuzzyCompare(cameraFocus->opticalZoom(), cameraFocus->maximumOpticalZoom()));
- QVERIFY(qFuzzyCompare(cameraFocus->digitalZoom(), cameraFocus->maximumDigitalZoom()));
-
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointAuto));
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointCenter));
- QVERIFY(cameraFocus->isFocusPointModeSupported(QCameraFocus::FocusPointCustom));
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointAuto);
-
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointCenter );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointCenter);
-
- cameraFocus->setFocusPointMode( QCameraFocus::FocusPointFaceDetection );
- QCOMPARE(cameraFocus->focusPointMode(), QCameraFocus::FocusPointCenter);
-
- QCOMPARE(cameraFocus->customFocusPoint(), QPointF(0.5, 0.5));
- cameraFocus->setCustomFocusPoint(QPointF(1.0, 1.0));
- QCOMPARE(cameraFocus->customFocusPoint(), QPointF(1.0, 1.0));
-}
-
-void tst_QCamera::testImageSettings()
-{
- QImageEncoderSettings settings;
- QVERIFY(settings.isNull());
- QVERIFY(settings == QImageEncoderSettings());
-
- QCOMPARE(settings.codec(), QString());
- settings.setCodec(QLatin1String("codecName"));
- QCOMPARE(settings.codec(), QLatin1String("codecName"));
- QVERIFY(!settings.isNull());
- QVERIFY(settings != QImageEncoderSettings());
-
- settings = QImageEncoderSettings();
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- settings.setQuality(QtMultimedia::HighQuality);
- QCOMPARE(settings.quality(), QtMultimedia::HighQuality);
- QVERIFY(!settings.isNull());
-
- settings = QImageEncoderSettings();
- QCOMPARE(settings.resolution(), QSize());
- settings.setResolution(QSize(320,240));
- QCOMPARE(settings.resolution(), QSize(320,240));
- settings.setResolution(800,600);
- QCOMPARE(settings.resolution(), QSize(800,600));
- QVERIFY(!settings.isNull());
-
- settings = QImageEncoderSettings();
- QVERIFY(settings.isNull());
- QCOMPARE(settings.codec(), QString());
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- QCOMPARE(settings.resolution(), QSize());
-
- {
- QImageEncoderSettings settings1;
- QImageEncoderSettings settings2;
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- {
- QImageEncoderSettings settings1;
- QImageEncoderSettings settings2(settings1);
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- QImageEncoderSettings settings1;
- QImageEncoderSettings settings2;
-
- settings1 = QImageEncoderSettings();
- settings1.setResolution(800,600);
- settings2 = QImageEncoderSettings();
- settings2.setResolution(QSize(800,600));
- QVERIFY(settings1 == settings2);
- settings2.setResolution(QSize(400,300));
- QVERIFY(settings1 != settings2);
-
- settings1 = QImageEncoderSettings();
- settings1.setCodec("codec1");
- settings2 = QImageEncoderSettings();
- settings2.setCodec("codec1");
- QVERIFY(settings1 == settings2);
- settings2.setCodec("codec2");
- QVERIFY(settings1 != settings2);
-
- settings1 = QImageEncoderSettings();
- settings1.setQuality(QtMultimedia::NormalQuality);
- settings2 = QImageEncoderSettings();
- settings2.setQuality(QtMultimedia::NormalQuality);
- QVERIFY(settings1 == settings2);
- settings2.setQuality(QtMultimedia::LowQuality);
- QVERIFY(settings1 != settings2);
-}
-
-void tst_QCamera::testCameraLock()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- camera.focus()->setFocusMode(QCameraFocus::AutoFocus);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus,QCamera::LockChangeReason)));
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- for (int i=0; i<200 && camera.lockStatus() == QCamera::Searching; i++)
- QTest::qWait(10);
-
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-}
-
-void tst_QCamera::testCameraLockCancel()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- camera.focus()->setFocusMode(QCameraFocus::AutoFocus);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)));
- camera.searchAndLock();
- QCOMPARE(camera.lockStatus(), QCamera::Searching);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
-
- camera.unlock();
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
-}
-
-void tst_QCamera::testCameraEncodingProperyChange()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State)));
- QSignalSpy statusChangedSignal(&camera, SIGNAL(statusChanged(QCamera::Status)));
-
- camera.start();
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
-
- QCOMPARE(stateChangedSignal.count(), 1);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
-
- camera.setCaptureMode(QCamera::CaptureVideo);
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //backens should not be stopped since the capture mode is Video
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 0);
-
- camera.setCaptureMode(QCamera::CaptureStillImage);
- QTest::qWait(10);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //the settings change should trigger camera stop/start
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //the settings change should trigger camera stop/start only once
- camera.setCaptureMode(QCamera::CaptureVideo);
- camera.setCaptureMode(QCamera::CaptureStillImage);
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- imageCapture.setEncodingSettings(QImageEncoderSettings());
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
-}
-
-void tst_QCamera::testSetVideoOutput()
-{
- MockVideoSurface surface;
-
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(reinterpret_cast<QVideoWidget *>(0));
-
- camera.setViewfinder(reinterpret_cast<QGraphicsVideoItem *>(0));
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- camera.setViewfinder(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- camera.setViewfinder(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-}
-
-
-void tst_QCamera::testSetVideoOutputNoService()
-{
- MockVideoSurface surface;
-
- MockMediaServiceProvider provider;
- provider.service = 0;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(&surface);
- // Nothing we can verify here other than it doesn't assert.
-}
-
-void tst_QCamera::testSetVideoOutputNoControl()
-{
- MockVideoSurface surface;
-
- MockCameraService service;
- service.rendererRef = 1;
-
- MockMediaServiceProvider provider;
- provider.service = &service;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == 0);
-}
-
-void tst_QCamera::testSetVideoOutputDestruction()
-{
- MockVideoSurface surface;
-
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- {
- QCamera camera(0, &provider);
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
- QCOMPARE(service.rendererRef, 1);
- }
- QVERIFY(service.rendererControl->surface() == 0);
- QCOMPARE(service.rendererRef, 0);
-}
-
-void tst_QCamera::testEnumDebug()
-{
- QTest::ignoreMessage(QtDebugMsg, "QCamera::ActiveState ");
- qDebug() << QCamera::ActiveState;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::ActiveStatus ");
- qDebug() << QCamera::ActiveStatus;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::CaptureVideo ");
- qDebug() << QCamera::CaptureVideo;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::CameraError ");
- qDebug() << QCamera::CameraError;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::Unlocked ");
- qDebug() << QCamera::Unlocked;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::LockAcquired ");
- qDebug() << QCamera::LockAcquired;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::NoLock ");
- qDebug() << QCamera::NoLock;
- QTest::ignoreMessage(QtDebugMsg, "QCamera::LockExposure ");
- qDebug() << QCamera::LockExposure;
-}
-
-void tst_QCamera::testCameraControl()
-{
- MockCameraControl *m_cameraControl=new MockCameraControl(this);
- QVERIFY(m_cameraControl != NULL);
-}
-
-/* Test case for constructor with default provider */
-void tst_QCamera::testConstructorWithDefaultProvider()
-{
- QCamera *camera = new QCamera(0);
- QVERIFY(camera != NULL);
- QCOMPARE(camera->state(), QCamera::UnloadedState);
- delete camera;
-}
-
-/* captureModeChanged Signal test case. */
-void tst_QCamera::testCaptureModeChanged_signal()
-{
- MockCameraControl *m_cameraControl= new MockCameraControl(this);
- QSignalSpy spy(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureMode)));
- QVERIFY(spy.size() == 0);
-
- m_cameraControl->setCaptureMode(QCamera::CaptureVideo);
- QVERIFY(spy.size() == 1);
-
- m_cameraControl->setCaptureMode(QCamera::CaptureStillImage);
- QVERIFY(spy.size() == 2);
-}
-
-/* Test case for captureMode */
-void tst_QCamera::testCaptureMode()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QVERIFY(camera.captureMode() == QCamera::CaptureStillImage);
-
- camera.setCaptureMode(QCamera::CaptureVideo);
- QVERIFY(camera.captureMode() == QCamera::CaptureVideo);
-}
-
-/* Test case for isCaptureModeSupported */
-void tst_QCamera::testIsCaptureModeSupported()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QVERIFY(camera.isCaptureModeSupported(QCamera::CaptureStillImage) == true);
- QVERIFY(camera.isCaptureModeSupported(QCamera::CaptureVideo) == true);
-}
-
-/* Test case for requestedLocks. LockType is stored in OR combination so all
- types of combinations are verified here.*/
-void tst_QCamera::testRequestedLocks()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.requestedLocks(),QCamera::NoLock);
-
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure);
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockFocus);
- QCOMPARE(camera.requestedLocks(),QCamera::LockFocus );
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockWhiteBalance);
- QCOMPARE(camera.requestedLocks(),QCamera::LockWhiteBalance);
-
- camera.unlock();
- camera.searchAndLock(QCamera::LockExposure |QCamera::LockFocus );
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure |QCamera::LockFocus );
- camera.searchAndLock(QCamera::LockWhiteBalance);
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure |QCamera::LockFocus|QCamera::LockWhiteBalance );
- camera.unlock(QCamera::LockExposure);
- QCOMPARE(camera.requestedLocks(),QCamera::LockFocus|QCamera::LockWhiteBalance );
- camera.unlock(QCamera::LockFocus);
- camera.searchAndLock(QCamera::LockExposure |QCamera::LockWhiteBalance );
- QCOMPARE(camera.requestedLocks(),QCamera::LockExposure|QCamera::LockWhiteBalance );
-}
-
-/* Test case for supportedLocks() */
-void tst_QCamera::testSupportedLocks()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.supportedLocks(),QCamera::LockExposure | QCamera::LockFocus);
-}
-
-/* Test case for isAvailable */
-void tst_QCamera::testQCameraIsAvailable()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QVERIFY(camera.isAvailable());
-
- QCamera *camera1 = new QCamera("random");
-
- QVERIFY(camera1->error() == QCamera::ServiceMissingError);
- QVERIFY(!camera1->isAvailable());
- delete camera1;
-}
-
-/* Test case for availabilityError */
-void tst_QCamera::testAvailabilityError()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QVERIFY(camera.availabilityError() == QtMultimedia::NoError);
-
- QCamera *camera1 = new QCamera("random");
- QVERIFY(camera1->availabilityError() == QtMultimedia::ServiceMissingError);
- delete camera1;
-}
-
-/* Test case for searchAndLock ( QCamera::LockTypes locks ) */
-void tst_QCamera::testSearchAndLockWithLockTypes()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signals */
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)));
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason)));
-
- /* search and lock the camera with QCamera::LockExposure and verify if the signal is emitted correctly */
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
-}
-
-/* Test case for setCaptureMode() */
-void tst_QCamera::testSetCaptureMode()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- /* Set the capture mode and verify if it set correctly */
- camera.setCaptureMode(QCamera::CaptureVideo);
- QVERIFY(camera.captureMode() == QCamera::CaptureVideo);
-
- camera.setCaptureMode(QCamera::CaptureStillImage);
- QVERIFY(camera.captureMode() == QCamera::CaptureStillImage);
-}
-
-/* Test case for unlock (QCamera::LockTypes) */
-void tst_QCamera::testUnlockWithType()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signal */
- QSignalSpy lockedSignal(&camera, SIGNAL(locked()));
- QSignalSpy lockFailedSignal(&camera, SIGNAL(lockFailed()));
- QSignalSpy lockStatusChangedSignal(&camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)));
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason)));
-
- /* lock the camera with QCamera::LockExposure and Verify if the signal is emitted correctly */
- camera.searchAndLock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockedSignal.count(), 1);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
-
- /* Clear the signal */
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera and verify if the signal is emitted correctly */
- camera.unlock(QCamera::LockExposure);
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockType lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- QCamera::LockStatus lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Unlocked);
-
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Lock the camera with QCamera::LockFocus */
- camera.searchAndLock(QCamera::LockFocus);
- lockedSignal.clear();
- lockFailedSignal.clear();
- lockStatusChangedSignal.clear();
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera and Verify if the signal is emitted correctly */
- camera.unlock(QCamera::LockFocus);
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockedSignal.count(), 0);
- QCOMPARE(lockFailedSignal.count(), 0);
- QCOMPARE(lockStatusChangedSignal.count(), 1);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockFocus);
- QVERIFY(lockStatus == QCamera::Unlocked);
-}
-
-/* Test case for signal captureModeChanged(QCamera::CaptureMode) */
-void tst_QCamera::testCaptureModeChangedSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QVERIFY(camera.captureMode() == QCamera::CaptureStillImage);
-
- qRegisterMetaType<QCamera::CaptureMode>("QCamera::CaptureMode");
-
- /* Spy the signal */
- QSignalSpy lockCaptureModeChangedSignal(&camera, SIGNAL(captureModeChanged(QCamera::CaptureMode)));
-
- /* set the capture mode and Verify if the signal is emitted */
- camera.setCaptureMode(QCamera::CaptureVideo);
- QVERIFY(camera.captureMode() == QCamera::CaptureVideo);
- QCOMPARE(lockCaptureModeChangedSignal.count(), 1);
- QCamera::CaptureMode lockCaptureMode = qvariant_cast<QCamera::CaptureMode >(lockCaptureModeChangedSignal.at(0).at(0));
- QVERIFY(lockCaptureMode == QCamera::CaptureVideo);
-}
-
-/* Test case for signal lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason) */
-void tst_QCamera::testLockStatusChangedWithTypesSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
-
- /* Spy the signal lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason) */
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason)));
-
- /* Lock the camera with type QCamera::LockExposure */
- camera.searchAndLock(QCamera::LockExposure);
-
- /* Verify if the signal is emitted and lock status is set correclty */
- QCOMPARE(camera.lockStatus(), QCamera::Locked);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockType lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- QCamera::LockStatus lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Locked);
-
- lockStatusChangedSignalWithType.clear();
-
- /* Unlock the camera */
- camera.unlock();
-
- /* Verify if the signal is emitted and lock status is set correclty */
- QCOMPARE(camera.lockStatus(), QCamera::Unlocked);
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- lockType = qvariant_cast<QCamera::LockType >(lockStatusChangedSignalWithType.at(0).at(0));
- lockStatus = qvariant_cast<QCamera::LockStatus >(lockStatusChangedSignalWithType.at(0).at(1));
- QVERIFY(lockType == QCamera::LockExposure);
- QVERIFY(lockStatus == QCamera::Unlocked);
-}
-
-/* Test case for verifying if error signal generated correctly */
-void tst_QCamera::testErrorSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QSignalSpy spyError(&camera, SIGNAL(error(QCamera::Error)));
-
- /* Set the QCameraControl error and verify if the signal is emitted correctly in QCamera */
- service.mockControl->setError(QCamera::CameraError,QString("Camera Error"));
-
- QVERIFY(spyError.count() == 1);
- QCamera::Error err = qvariant_cast<QCamera::Error >(spyError.at(0).at(0));
- QVERIFY(err == QCamera::CameraError);
-
- spyError.clear();
-
- /* Set the QCameraControl error and verify if the signal is emitted correctly in QCamera */
- service.mockControl->setError(QCamera::InvalidRequestError,QString("InvalidRequestError Error"));
- QVERIFY(spyError.count() == 1);
- err = qvariant_cast<QCamera::Error >(spyError.at(0).at(0));
- QVERIFY(err == QCamera::InvalidRequestError);
-
- spyError.clear();
-
- /* Set the QCameraControl error and verify if the signal is emitted correctly in QCamera */
- service.mockControl->setError(QCamera::NotSupportedFeatureError,QString("NotSupportedFeatureError Error"));
- QVERIFY(spyError.count() == 1);
- err = qvariant_cast<QCamera::Error >(spyError.at(0).at(0));
- QVERIFY(err == QCamera::NotSupportedFeatureError);
-
-}
-
-/* Test case for verifying the QCamera error */
-void tst_QCamera::testError()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::CameraError,QString("Camera Error"));
- QVERIFY(camera.error() == QCamera::CameraError);
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::InvalidRequestError,QString("InvalidRequestError Error"));
- QVERIFY(camera.error() == QCamera::InvalidRequestError);
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::NotSupportedFeatureError,QString("NotSupportedFeatureError Error"));
- QVERIFY(camera.error() == QCamera::NotSupportedFeatureError);
-
-}
-
-/* Test the error strings for QCamera class */
-void tst_QCamera::testErrorString()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::CameraError,QString("Camera Error"));
- QVERIFY(camera.errorString() == QString("Camera Error"));
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::InvalidRequestError,QString("InvalidRequestError Error"));
- QVERIFY(camera.errorString() == QString("InvalidRequestError Error"));
-
- /* Set the QCameraControl error and verify if it is set correctly in QCamera */
- service.mockControl->setError(QCamera::NotSupportedFeatureError,QString("NotSupportedFeatureError Error"));
- QVERIFY(camera.errorString() == QString("NotSupportedFeatureError Error"));
-}
-
-/* Test case for verifying Status of QCamera. */
-void tst_QCamera::testStatus()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- /* Set the QCameraControl status and verify if it is set correctly in QCamera */
- service.mockControl->setStatus(QCamera::StartingStatus);
- QVERIFY(camera.status() == QCamera::StartingStatus);
-
- /* Set the QCameraControl status and verify if it is set correctly in QCamera */
- service.mockControl->setStatus(QCamera::StandbyStatus);
- QVERIFY(camera.status() == QCamera::StandbyStatus);
-
- /* Set the QCameraControl status and verify if it is set correctly in QCamera */
- service.mockControl->setStatus(QCamera::LoadingStatus);
- QVERIFY(camera.status() == QCamera::LoadingStatus);
-
- /* Set the QCameraControl status and verify if it is set correctly in QCamera */
- service.mockControl->setStatus(QCamera::UnavailableStatus);
- QVERIFY(camera.status() == QCamera::UnavailableStatus);
-}
-
-/* Test case for verifying default locktype QCamera::NoLock */
-void tst_QCamera::testLockType()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QCOMPARE(camera.requestedLocks(),QCamera::NoLock);
-}
-
-/* Test case for QCamera::LockChangeReason with QCamera::LockAcquired */
-void tst_QCamera::testLockChangeReason()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
-
- QSignalSpy lockStatusChangedSignalWithType(&camera, SIGNAL(lockStatusChanged(QCamera::LockType,QCamera::LockStatus, QCamera::LockChangeReason)));
-
- /* Set the lockChangeReason */
- service.mockLocksControl->setLockChangeReason(QCamera::LockAcquired);
-
- /* Verify if lockChangeReson is eqaul toQCamera::LockAcquired */
- QCOMPARE(lockStatusChangedSignalWithType.count(), 1);
- QCamera::LockChangeReason LockChangeReason = qvariant_cast<QCamera::LockChangeReason >(lockStatusChangedSignalWithType.at(0).at(2));
- QVERIFY(LockChangeReason == QCamera::LockAcquired);
-
-}
-/* All the enums test case for QCameraControl class*/
-void tst_QCamera::testEnumsOfQCameraControl()
-{
- MockCameraControl *m_cameraControl = new MockCameraControl(this);
- bool result;
-
- // In still mode, can't change much
- QVERIFY(m_cameraControl->captureMode() == QCamera::CaptureStillImage);
- result = m_cameraControl->canChangeProperty(MockCameraControl::CaptureMode, QCamera::ActiveStatus);
- QVERIFY(!result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(!result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::Viewfinder, QCamera::ActiveStatus);
- QVERIFY(!result);
-
- // In video mode can change image encoding settings
- m_cameraControl->setCaptureMode(QCamera::CaptureVideo);
- result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::Viewfinder, QCamera::ActiveStatus);
- QVERIFY(!result);
-
- // Flip the allow everything bit
- m_cameraControl->m_propertyChangesSupported = true;
- result = m_cameraControl->canChangeProperty(MockCameraControl::CaptureMode, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus);
- QVERIFY(result);
- result = m_cameraControl->canChangeProperty(MockCameraControl::Viewfinder, QCamera::ActiveStatus);
- QVERIFY(result);
-}
-
-// Test case for QCameraImageProcessing class
-void tst_QCamera::testContrast()
-{
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
- QVERIFY(cameraImageProcessing->contrast() ==0);
-
- cameraImageProcessing->setContrast(123);
- QVERIFY(cameraImageProcessing->contrast() ==123);
-
- cameraImageProcessing->setContrast(4.56);
- QVERIFY(cameraImageProcessing->contrast() ==4);
-}
-
-void tst_QCamera::testDenoisingLevel()
-{
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
-
- if (cameraImageProcessing->isDenoisingSupported())
- {
- QVERIFY(cameraImageProcessing->denoisingLevel() == -1);
-
- cameraImageProcessing->setDenoisingLevel(0);
- QVERIFY(cameraImageProcessing->denoisingLevel() == 0);
-
- cameraImageProcessing->setDenoisingLevel(12);
- QVERIFY(cameraImageProcessing->denoisingLevel() == 12);
- }
- else
- QVERIFY(cameraImageProcessing->denoisingLevel() == -1);
-}
-
-void tst_QCamera::testIsAvailable()
-{
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
- QVERIFY(cameraImageProcessing->isAvailable() == true);
-}
-
-void tst_QCamera::testSaturation()
-{
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
- QVERIFY(cameraImageProcessing->saturation() == 0);
-
- cameraImageProcessing->setSaturation(50);
- QVERIFY(cameraImageProcessing->saturation() == 50);
-
- cameraImageProcessing->setSaturation(-50);
- QVERIFY(cameraImageProcessing->saturation() == -50);
-
- cameraImageProcessing->setSaturation(100);
- QVERIFY(cameraImageProcessing->saturation() == 100);
-
- cameraImageProcessing->setSaturation(-100);
- QVERIFY(cameraImageProcessing->saturation() == -100);
-}
-
-void tst_QCamera::testSharpeningLevel()
-{
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
-
- QCamera camera(0, &provider);
- QCameraImageProcessing *cameraImageProcessing = camera.imageProcessing();
- QVERIFY(cameraImageProcessing->isSharpeningSupported());
- QVERIFY(cameraImageProcessing->sharpeningLevel() == -1);
-
- cameraImageProcessing->setSharpeningLevel(123);
- QVERIFY(cameraImageProcessing->sharpeningLevel() == 123);
-
- cameraImageProcessing->setSharpeningLevel(4.67);
- QVERIFY(cameraImageProcessing->sharpeningLevel() == 4);
-}
-
-void tst_QCamera::testEnumOfQCameraImageProcessing()
-{
- QSet<QCameraImageProcessing::WhiteBalanceMode> whiteBalanceModes;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceManual;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceAuto;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceSunlight;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceCloudy;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceShade;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceTungsten;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceFluorescent;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceFlash;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceSunset;
- whiteBalanceModes << QCameraImageProcessing::WhiteBalanceVendor;
-
- MockCameraService service;
- service.mockImageProcessingControl->setSupportedWhiteBalanceModes(whiteBalanceModes);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceManual);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceManual));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceManual);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceAuto);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceAuto));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceAuto);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceSunlight);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceSunlight));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceSunlight);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceCloudy);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceCloudy));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceCloudy);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceShade);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceShade));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceShade);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceTungsten);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceTungsten));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceTungsten);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceFluorescent);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceFluorescent));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceFluorescent);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceFlash);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceFlash));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceFlash);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceSunset);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceSunset));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceSunset);
-
- service.mockImageProcessingControl->setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceVendor);
- QVERIFY(service.mockImageProcessingControl->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceVendor));
- QVERIFY(service.mockImageProcessingControl->whiteBalanceMode() == QCameraImageProcessing::WhiteBalanceVendor);
-}
-
-//Added test cases for QCameraFocus
-void tst_QCamera::testCameraFocusIsAvailable()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
- QVERIFY(cameraFocus->isAvailable());
-}
-
-//Added this code to cover QCameraFocus::HyperfocalFocus and QCameraFocus::MacroFocus
-//As the HyperfocalFocus and MacroFocus are not supported we can not set the focus mode to these Focus Modes
-void tst_QCamera::testFocusModes()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::HyperfocalFocus));
- QVERIFY(!cameraFocus->isFocusModeSupported(QCameraFocus::MacroFocus));
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
- cameraFocus->setFocusMode(QCameraFocus::HyperfocalFocus);
- QVERIFY(cameraFocus->focusMode()!= QCameraFocus::HyperfocalFocus);
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
- cameraFocus->setFocusMode(QCameraFocus::MacroFocus);
- QVERIFY(cameraFocus->focusMode()!= QCameraFocus::MacroFocus);
- QCOMPARE(cameraFocus->focusMode(), QCameraFocus::AutoFocus);
-}
-
-void tst_QCamera::testOpticalAndDigitalZoomChanged()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
- QSignalSpy spy1(cameraFocus,SIGNAL(digitalZoomChanged(qreal)));
- QSignalSpy spy2(cameraFocus,SIGNAL(opticalZoomChanged(qreal)));
- QVERIFY(spy1.count() == 0);
- QVERIFY(spy2.count() == 0);
- cameraFocus->zoomTo(2.0,3.0);
- QVERIFY(spy1.count() == 1);
- QVERIFY(spy2.count() == 1);
-}
-
-void tst_QCamera::testMaxDigitalZoomChangedSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
- QSignalSpy spy(cameraFocus,SIGNAL(maximumDigitalZoomChanged(qreal)));
- QVERIFY(spy.count() == 0);
- cameraFocus->zoomTo(5.0,6.0);
- QVERIFY(spy.count() == 1);
-}
-
-void tst_QCamera::testMaxOpticalZoomChangedSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
- QSignalSpy spy(cameraFocus,SIGNAL(maximumOpticalZoomChanged(qreal)));
- QVERIFY(spy.count() == 0);
- cameraFocus->zoomTo(5.0,6.0);
- QVERIFY(spy.count() == 1);
-}
-
-void tst_QCamera::testfocusZonesChangedSignal()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraFocus *cameraFocus = camera.focus();
- QVERIFY(cameraFocus != 0);
-
- QSignalSpy spy(cameraFocus,SIGNAL(focusZonesChanged()));
- cameraFocus->zoomTo(5.0,6.0);
- QVERIFY(spy.count() == 1);
-}
-
-// test constructor for abstract class of ImageProcessingControl
-void tst_QCamera :: testImageProcessingControl()
-{
- QObject parent;
- MockImageProcessingControl processCtrl(&parent);
-}
-
-void tst_QCamera::testSignalApertureChanged()
-{
- MockMediaServiceProvider provider1;
- MockCameraService service;
- provider1.service = &service;
- QCamera camera(0, &provider1);
-
- QCameraExposure *cameraExposure = camera.exposure(); //create camera expose instance
- QVERIFY(cameraExposure != 0);
-
- QSignalSpy spyApertureChanged(cameraExposure , SIGNAL(apertureChanged(qreal)));
- QSignalSpy spyApertureRangeChanged(cameraExposure , SIGNAL(apertureRangeChanged()));
-
-
- QVERIFY(spyApertureChanged.count() ==0);
- cameraExposure->setManualAperture(10.0);//set the ManualAperture to 10.0
-
- QTest::qWait(100);
- QVERIFY(spyApertureChanged.count() ==1);
- QVERIFY(spyApertureRangeChanged.count() ==1);
-}
-
-void tst_QCamera::testSignalExposureCompensationChanged()
-{
- MockMediaServiceProvider provider1;
- MockCameraService service;
- provider1.service = &service;
- QCamera camera(0, &provider1);
-
- QCameraExposure *cameraExposure = camera.exposure(); //create camera expose instance
- QVERIFY(cameraExposure != 0);
-
- QSignalSpy spyExposureCompensationChanged(cameraExposure , SIGNAL(exposureCompensationChanged(qreal)));
-
- QVERIFY(spyExposureCompensationChanged.count() ==0);
-
- QVERIFY(cameraExposure->exposureCompensation() != 800);
- cameraExposure->setExposureCompensation(2.0);
-
- QTest::qWait(100);
-
- QVERIFY(cameraExposure->exposureCompensation() == 2.0);
-
- QCOMPARE(spyExposureCompensationChanged.count(),1);
-
- // Setting the same should not result in a signal
- cameraExposure->setExposureCompensation(2.0);
- QTest::qWait(100);
-
- QVERIFY(cameraExposure->exposureCompensation() == 2.0);
- QCOMPARE(spyExposureCompensationChanged.count(),1);
-}
-
-void tst_QCamera::testSignalIsoSensitivityChanged()
-{
-
- MockMediaServiceProvider provider1;
- MockCameraService service;
- provider1.service = &service;
- QCamera camera(0, &provider1);
-
- QCameraExposure *cameraExposure = camera.exposure(); //create camera expose instance
- QVERIFY(cameraExposure != 0);
-
- QSignalSpy spyisoSensitivityChanged(cameraExposure , SIGNAL(isoSensitivityChanged(int)));
-
- QVERIFY(spyisoSensitivityChanged.count() ==0);
-
- cameraExposure->setManualIsoSensitivity(800); //set the manualiso sentivity to 800
- QTest::qWait(100);
- QVERIFY(spyisoSensitivityChanged.count() ==1);
-
-}
-void tst_QCamera::testSignalShutterSpeedChanged()
-{
-
- MockMediaServiceProvider provider1;
- MockCameraService service;
- provider1.service = &service;
- QCamera camera(0, &provider1);
-
- QCameraExposure *cameraExposure = camera.exposure(); //create camera expose instance
- QVERIFY(cameraExposure != 0);
-
- QSignalSpy spySignalShutterSpeedChanged(cameraExposure , SIGNAL(shutterSpeedChanged(qreal)));
- QSignalSpy spySignalShutterSpeedRangeChanged(cameraExposure , SIGNAL(shutterSpeedRangeChanged()));
-
- QVERIFY(spySignalShutterSpeedChanged.count() ==0);
-
- cameraExposure->setManualShutterSpeed(2.0);//set the ManualShutterSpeed to 2.0
- QTest::qWait(100);
-
- QVERIFY(spySignalShutterSpeedChanged.count() ==1);
- QVERIFY(spySignalShutterSpeedRangeChanged.count() ==1);
-}
-
-void tst_QCamera::testSignalFlashReady()
-{
- MockMediaServiceProvider provider1;
- MockCameraService service;
- provider1.service = &service;
- QCamera camera(0, &provider1);
-
- QCameraExposure *cameraExposure = camera.exposure(); //create camera expose instance
- QVERIFY(cameraExposure != 0);
-
-
- QSignalSpy spyflashReady(cameraExposure,SIGNAL(flashReady(bool)));
-
- QVERIFY(spyflashReady.count() ==0);
-
- QVERIFY(cameraExposure->flashMode() ==QCameraExposure::FlashAuto);
-
- cameraExposure->setFlashMode(QCameraExposure::FlashOff);//set theFlashMode to QCameraExposure::FlashOff
-
- QVERIFY(cameraExposure->flashMode() ==QCameraExposure::FlashOff);
-
- QVERIFY(spyflashReady.count() ==1);
-}
-
-// test constructor
-void tst_QCamera::testExposureControlConstructor()
-{
- // To check changes in abstract classes's pure virtual functions
- MockCameraExposureControl obj;
-}
-
-QTEST_MAIN(tst_QCamera)
-
-#include "tst_qcamera.moc"
diff --git a/tests/auto/qcamerabackend/qcamerabackend.pro b/tests/auto/qcamerabackend/qcamerabackend.pro
deleted file mode 100644
index 147885f..0000000
--- a/tests/auto/qcamerabackend/qcamerabackend.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qcamerabackend
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-SOURCES += tst_qcamerabackend.cpp
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"
diff --git a/tests/auto/qcameraimagecapture/qcameraimagecapture.pro b/tests/auto/qcameraimagecapture/qcameraimagecapture.pro
deleted file mode 100644
index fdd2cf5..0000000
--- a/tests/auto/qcameraimagecapture/qcameraimagecapture.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qcameraimagecapture
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += \
- tst_qcameraimagecapture.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockcamera.pri)
diff --git a/tests/auto/qcameraimagecapture/tst_qcameraimagecapture.cpp b/tests/auto/qcameraimagecapture/tst_qcameraimagecapture.cpp
deleted file mode 100644
index e842cbb..0000000
--- a/tests/auto/qcameraimagecapture/tst_qcameraimagecapture.cpp
+++ /dev/null
@@ -1,432 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-/****************************************************************************
-Author : Vijay/Avinash
-
-Reviewer Name Date Coverage ( Full / Test Case IDs ).
----------------------------------------------------------------------------
- Initial review of test cases.
-****************************************************************************/
-
-//TESTED_COMPONENT=src/multimedia
-
-#include <QtTest/QtTest>
-#include <QDebug>
-
-#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 <qmediaservice.h>
-#include <qcamera.h>
-#include <qcameraimagecapture.h>
-
-#include "mockcameraservice.h"
-#include "mockmediaserviceprovider.h"
-
-QT_USE_NAMESPACE
-
-class NullService: public QMediaService
-{
- Q_OBJECT
-
-public:
- NullService(): QMediaService(0)
- {
-
- }
-
- ~NullService()
- {
-
- }
-
- QMediaControl* requestControl(const char *iid)
- {
- Q_UNUSED(iid);
- return 0;
- }
-
- void releaseControl(QMediaControl*) {}
-
-};
-
-class tst_QCameraImageCapture: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void constructor();
- void mediaObject();
- void deleteMediaObject();
- void isReadyForCapture();
- void capture();
- void cancelCapture();
- void encodingSettings();
- void errors();
- void error();
- void imageCaptured();
- void imageExposed();
- void imageSaved();
- void readyForCaptureChanged();
- void supportedResolutions();
- void imageCodecDescription();
- void supportedImageCodecs();
- void cameraImageCaptureControl();
-
-private:
- MockCameraService *mockcameraservice;
- MockMediaServiceProvider *provider;
-};
-
-void tst_QCameraImageCapture::initTestCase()
-{
- provider = new MockMediaServiceProvider;
- mockcameraservice = new MockCameraService;
- provider->service = mockcameraservice;
-}
-
-void tst_QCameraImageCapture::cleanupTestCase()
-{
- delete mockcameraservice;
- delete provider;
-}
-
-//MaemoAPI-1823:test QCameraImageCapture Constructor
-void tst_QCameraImageCapture::constructor()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
-}
-
-//MaemoAPI-1824:test mediaObject
-void tst_QCameraImageCapture::mediaObject()
-{
- MockMediaServiceProvider provider1;
- NullService mymockcameraservice ;
- provider1.service = &mymockcameraservice;
- QCamera camera(0, &provider1);
- QCameraImageCapture imageCapture(&camera);
- QMediaObject *medobj = imageCapture.mediaObject();
- QVERIFY(medobj == NULL);
-
- QCamera camera1(0, provider);
- QCameraImageCapture imageCapture1(&camera1);
- QMediaObject *medobj1 = imageCapture1.mediaObject();
- QCOMPARE(medobj1, &camera1);
-}
-
-void tst_QCameraImageCapture::deleteMediaObject()
-{
- MockMediaServiceProvider *provider = new MockMediaServiceProvider;
- provider->service = new MockCameraService;
-
- QCamera *camera = new QCamera(0, provider);
- QCameraImageCapture *capture = new QCameraImageCapture(camera);
-
- QVERIFY(capture->mediaObject() == camera);
- QVERIFY(capture->isAvailable());
-
- delete camera;
- delete provider->service;
- delete provider;
-
- //capture should detach from camera
- QVERIFY(capture->mediaObject() == 0);
- QVERIFY(!capture->isAvailable());
-
- capture->capture();
- delete capture;
-}
-
-//MaemoAPI-1825:test isReadyForCapture
-void tst_QCameraImageCapture::isReadyForCapture()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture();
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
- camera.stop();
-}
-
-//MaemoAPI-1826:test capture
-void tst_QCameraImageCapture::capture()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- QVERIFY(imageCapture.capture() == -1);
- camera.start();
- QVERIFY(imageCapture.isReadyForCapture() == true);
- QTest::qWait(300);
- QVERIFY(imageCapture.capture() != -1);
- camera.stop();
-}
-
-//MaemoAPI-1827:test cancelCapture
-void tst_QCameraImageCapture::cancelCapture()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(imageCaptured(int,QImage)));
- QSignalSpy spy1(&imageCapture, SIGNAL(imageSaved(int,QString)));
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture();
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
- QVERIFY(spy.count() == 1 && spy1.count() == 1);
- spy.clear();
- spy1.clear();
- camera.stop();
-
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture();
- imageCapture.cancelCapture();
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
- QVERIFY(spy.count() == 0 && spy1.count() == 0);
- camera.stop();
-}
-
-//MaemoAPI-1828:test encodingSettings
-//MaemoAPI-1829:test set encodingSettings
-void tst_QCameraImageCapture::encodingSettings()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.encodingSettings() == QImageEncoderSettings());
- QImageEncoderSettings settings;
- settings.setCodec("JPEG");
- settings.setQuality(QtMultimedia::NormalQuality);
- imageCapture.setEncodingSettings(settings);
- QVERIFY(!imageCapture.encodingSettings().isNull());
- QVERIFY(imageCapture.encodingSettings().codec() == "JPEG");
- QVERIFY(imageCapture.encodingSettings().quality() == QtMultimedia::NormalQuality);
-}
-
-//MaemoAPI-1838:test supportedImageCodecs
-void tst_QCameraImageCapture::supportedImageCodecs()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(!imageCapture.supportedImageCodecs().isEmpty());
-}
-
-//MaemoAPI-1836:test supportedResolutions
-void tst_QCameraImageCapture::supportedResolutions()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.supportedResolutions().count() == 2);
- QImageEncoderSettings settings1;
- settings1.setCodec("PNG");;
- settings1.setResolution(320, 240);
- int result = imageCapture.supportedResolutions(settings1).count();
- QVERIFY(result == 1);
-}
-
-//MaemoAPI-1837:test imageCodecDescription
-void tst_QCameraImageCapture::imageCodecDescription()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.imageCodecDescription(" ").isNull());
- QVERIFY(imageCapture.imageCodecDescription("PNG").isNull() == false);
-}
-
-//MaemoAPI-1830:test errors
-void tst_QCameraImageCapture::errors()
-{
- MockMediaServiceProvider provider1 ;
- MockSimpleCameraService mockSimpleCameraService ;
- provider1.service = &mockSimpleCameraService;
-
- QCamera camera1(0, &provider1);
- QCameraImageCapture imageCapture1(&camera1);
- QVERIFY(imageCapture1.isAvailable() == false);
- imageCapture1.capture(QString::fromLatin1("/dev/null"));
- QVERIFY(imageCapture1.error() == QCameraImageCapture::NotSupportedFeatureError);
- QVERIFY2(!imageCapture1.errorString().isEmpty(), "Device does not support images capture");
- QVERIFY(imageCapture1.availabilityError() == QtMultimedia::ServiceMissingError);
-
-
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.error() == QCameraImageCapture::NoError);
- QVERIFY(imageCapture.errorString().isEmpty());
- QVERIFY(imageCapture.availabilityError() == QtMultimedia::NoError);
-
- imageCapture.capture();
- QVERIFY(imageCapture.error() == QCameraImageCapture::NotReadyError);
- QVERIFY2(!imageCapture.errorString().isEmpty(), "Could not capture in stopped state");
- QVERIFY(imageCapture.availabilityError() == QtMultimedia::NoError);
-}
-
-//MaemoAPI-1831:test error
-void tst_QCameraImageCapture::error()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(error(int,QCameraImageCapture::Error,QString)));
- imageCapture.capture();
- QTest::qWait(30);
- QVERIFY(spy.count() == 1);
- QVERIFY(qvariant_cast<int>(spy.at(0).at(0)) == -1);
- QVERIFY(qvariant_cast<QCameraImageCapture::Error>(spy.at(0).at(1)) == QCameraImageCapture::NotReadyError);
- QVERIFY(qvariant_cast<QString>(spy.at(0).at(2)) == "Could not capture in stopped state");
- spy.clear();
-}
-
-//MaemoAPI-1832:test imageCaptured
-void tst_QCameraImageCapture::imageCaptured()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(imageCaptured(int,QImage)));
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture();
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
-
- QVERIFY(spy.count() == 1);
- QVERIFY(qvariant_cast<int>(spy.at(0).at(0)) > 0);
- QImage image = qvariant_cast<QImage>(spy.at(0).at(1));
- QVERIFY(image.isNull() == true);
- spy.clear();
- camera.stop();
-}
-
-//MaemoAPI-1833:test imageExposed
-void tst_QCameraImageCapture::imageExposed()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(imageExposed(int)));
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture();
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
-
- QVERIFY(spy.count() == 1);
- QVERIFY(qvariant_cast<int>(spy.at(0).at(0)) > 0);
- spy.clear();
- camera.stop();
-}
-
-//MaemoAPI-1834:test imageSaved
-void tst_QCameraImageCapture::imageSaved()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(imageSaved(int,QString)));
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.isReadyForCapture() == false);
- camera.start();
- imageCapture.capture(QString::fromLatin1("/usr/share"));
- QTest::qWait(300);
- QVERIFY(imageCapture.isReadyForCapture() == true);
-
- QVERIFY(spy.count() == 1);
- QVERIFY(qvariant_cast<int>(spy.at(0).at(0)) > 0);
- QVERIFY(qvariant_cast<QString>(spy.at(0).at(1)) == "/usr/share");
- spy.clear();
- camera.stop();
-}
-
-//MaemoAPI-1835:test readyForCaptureChanged
-void tst_QCameraImageCapture::readyForCaptureChanged()
-{
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
- QSignalSpy spy(&imageCapture, SIGNAL(readyForCaptureChanged(bool)));
- QVERIFY(imageCapture.isReadyForCapture() == false);
- imageCapture.capture();
- QTest::qWait(100);
- QVERIFY(spy.count() == 0);
- QVERIFY2(!imageCapture.errorString().isEmpty(),"Could not capture in stopped state" );
- camera.start();
- QTest::qWait(100);
- imageCapture.capture();
- QTest::qWait(100);
- QVERIFY(spy.count() == 2);
- QVERIFY(spy.at(0).at(0).toBool() == false);
- QVERIFY(spy.at(1).at(0).toBool() == true);
- camera.stop();
- spy.clear();
-}
-
-//MaemoAPI-1853:test cameraImageCapture control constructor
-void tst_QCameraImageCapture::cameraImageCaptureControl()
-{
- MockCameraControl ctrl;
- MockCaptureControl capctrl(&ctrl);
-}
-
-QTEST_MAIN(tst_QCameraImageCapture)
-
-#include "tst_qcameraimagecapture.moc"
diff --git a/tests/auto/qcameraviewfinder/qcameraviewfinder.pro b/tests/auto/qcameraviewfinder/qcameraviewfinder.pro
deleted file mode 100644
index a53729a..0000000
--- a/tests/auto/qcameraviewfinder/qcameraviewfinder.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qcameraviewfinder
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockcamera.pri)
-
-SOURCES += tst_qcameraviewfinder.cpp
-QT+=widgets
diff --git a/tests/auto/qcameraviewfinder/tst_qcameraviewfinder.cpp b/tests/auto/qcameraviewfinder/tst_qcameraviewfinder.cpp
deleted file mode 100644
index 106a87b..0000000
--- a/tests/auto/qcameraviewfinder/tst_qcameraviewfinder.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-
-
-#include <QtTest/QtTest>
-#include <QDebug>
-
-#include "qcameraviewfinder.h"
-#include "qcamera.h"
-#include "qmediaobject.h"
-
-#include "mockcameraservice.h"
-#include "mockmediaserviceprovider.h"
-
-class tst_QCameraViewFinder : public QObject
-{
- Q_OBJECT
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testConstructor();
- void testMediaObject();
-
-private:
- MockCameraService *mockcameraservice;
- MockMediaServiceProvider *provider;
- QCamera *camera;
- QCameraViewfinder *viewFinder;
-};
-
-void tst_QCameraViewFinder::initTestCase()
-{
- provider = new MockMediaServiceProvider;
- mockcameraservice = new MockCameraService;
- provider->service = mockcameraservice;
-
- camera = new QCamera(0, provider);
- viewFinder = new QCameraViewfinder();
-}
-
-void tst_QCameraViewFinder::cleanupTestCase()
-{
- delete mockcameraservice;
- delete provider;
-}
-
-void tst_QCameraViewFinder::testConstructor()
-{
- /* Verify whether the object is created or not */
- QVERIFY(viewFinder != NULL);
- QCOMPARE(viewFinder->isVisible(),false);
- QCOMPARE(viewFinder->isEnabled(),true);
- viewFinder->show();
-}
-
-void tst_QCameraViewFinder::testMediaObject()
-{
- QVERIFY(viewFinder != NULL);
- viewFinder->show();
- /* Sets the QVideoWidget based camera viewfinder.*/
- camera->setViewfinder(viewFinder);
- QCOMPARE(viewFinder->isVisible(),true);
-
- /* Return the currently attached media object.*/
- QMediaObject *media = viewFinder->mediaObject();
-
- /* Verifying the object */
- QCOMPARE(media, camera);
-}
-
-QTEST_MAIN(tst_QCameraViewFinder)
-#include "tst_qcameraviewfinder.moc"
diff --git a/tests/auto/qcamerawidgets/qcamerawidgets.pro b/tests/auto/qcamerawidgets/qcamerawidgets.pro
deleted file mode 100644
index f8de4af..0000000
--- a/tests/auto/qcamerawidgets/qcamerawidgets.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qcamerawidgets
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockcamera.pri)
-
-SOURCES += tst_qcamerawidgets.cpp
-
-maemo*:CONFIG += insignificant_test
-QT+=widgets
diff --git a/tests/auto/qcamerawidgets/tst_qcamerawidgets.cpp b/tests/auto/qcamerawidgets/tst_qcamerawidgets.cpp
deleted file mode 100644
index 92cafda..0000000
--- a/tests/auto/qcamerawidgets/tst_qcamerawidgets.cpp
+++ /dev/null
@@ -1,318 +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 <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>
-
-#include "mockcameraservice.h"
-
-#include "mockmediaserviceprovider.h"
-#include "mockvideosurface.h"
-#include "mockvideorenderercontrol.h"
-#include "mockvideowindowcontrol.h"
-
-QT_USE_NAMESPACE
-
-
-class tst_QCameraWidgets: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testCameraEncodingProperyChange();
- void testSetVideoOutput();
- void testSetVideoOutputNoService();
- void testSetVideoOutputNoControl();
-
-private:
- MockSimpleCameraService *mockSimpleCameraService;
- MockMediaServiceProvider *provider;
-};
-
-void tst_QCameraWidgets::initTestCase()
-{
- provider = new MockMediaServiceProvider;
- mockSimpleCameraService = new MockSimpleCameraService;
- provider->service = mockSimpleCameraService;
- qRegisterMetaType<QtMultimedia::MetaData>("QtMultimedia::MetaData");
-}
-
-void tst_QCameraWidgets::cleanupTestCase()
-{
- delete mockSimpleCameraService;
- delete provider;
-}
-
-void tst_QCameraWidgets::testCameraEncodingProperyChange()
-{
- MockCameraService service;
- provider->service = &service;
- QCamera camera(0, provider);
- QCameraImageCapture imageCapture(&camera);
-
- QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State)));
- QSignalSpy statusChangedSignal(&camera, SIGNAL(statusChanged(QCamera::Status)));
-
- camera.start();
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
-
- QCOMPARE(stateChangedSignal.count(), 1);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
-
- camera.setCaptureMode(QCamera::CaptureVideo);
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //backens should not be stopped since the capture mode is Video
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 0);
-
- camera.setCaptureMode(QCamera::CaptureStillImage);
- QTest::qWait(10);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //the settings change should trigger camera stop/start
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //the settings change should trigger camera stop/start only once
- camera.setCaptureMode(QCamera::CaptureVideo);
- camera.setCaptureMode(QCamera::CaptureStillImage);
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- imageCapture.setEncodingSettings(QImageEncoderSettings());
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- QTest::qWait(10);
-
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::ActiveStatus);
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- //setting the viewfinder should also trigger backend to be restarted:
- camera.setViewfinder(new QGraphicsVideoItem());
- QCOMPARE(camera.state(), QCamera::ActiveState);
- QCOMPARE(camera.status(), QCamera::LoadedStatus);
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 1);
-
- QTest::qWait(10);
-
- service.mockControl->m_propertyChangesSupported = true;
- //the changes to encoding settings,
- //capture mode and encoding parameters should not trigger service restart
- stateChangedSignal.clear();
- statusChangedSignal.clear();
-
- camera.setCaptureMode(QCamera::CaptureVideo);
- camera.setCaptureMode(QCamera::CaptureStillImage);
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- imageCapture.setEncodingSettings(QImageEncoderSettings());
- camera.setViewfinder(new QGraphicsVideoItem());
-
- QCOMPARE(stateChangedSignal.count(), 0);
- QCOMPARE(statusChangedSignal.count(), 0);
-}
-
-void tst_QCameraWidgets::testSetVideoOutput()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockCameraService service;
- MockMediaServiceProvider provider;
- provider.service = &service;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(&widget);
- qDebug() << widget.mediaObject();
- QVERIFY(widget.mediaObject() == &camera);
-
- camera.setViewfinder(&item);
- QVERIFY(widget.mediaObject() == 0);
- QVERIFY(item.mediaObject() == &camera);
-
- camera.setViewfinder(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(item.mediaObject() == 0);
-
- camera.setViewfinder(&widget);
- QVERIFY(widget.mediaObject() == &camera);
-
- camera.setViewfinder(reinterpret_cast<QGraphicsVideoItem *>(0));
- QVERIFY(widget.mediaObject() == 0);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- camera.setViewfinder(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- camera.setViewfinder(&widget);
- QVERIFY(service.rendererControl->surface() == 0);
- QVERIFY(widget.mediaObject() == &camera);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
- QVERIFY(widget.mediaObject() == 0);
-}
-
-
-void tst_QCameraWidgets::testSetVideoOutputNoService()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockMediaServiceProvider provider;
- provider.service = 0;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(&widget);
- QVERIFY(widget.mediaObject() == 0);
-
- camera.setViewfinder(&item);
- QVERIFY(item.mediaObject() == 0);
-
- camera.setViewfinder(&surface);
- // Nothing we can verify here other than it doesn't assert.
-}
-
-void tst_QCameraWidgets::testSetVideoOutputNoControl()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockCameraService service;
- service.rendererRef = 1;
- service.windowRef = 1;
-
- MockMediaServiceProvider provider;
- provider.service = &service;
- QCamera camera(0, &provider);
-
- camera.setViewfinder(&widget);
- QVERIFY(widget.mediaObject() == 0);
-
- camera.setViewfinder(&item);
- QVERIFY(item.mediaObject() == 0);
-
- camera.setViewfinder(&surface);
- QVERIFY(service.rendererControl->surface() == 0);
-}
-
-QTEST_MAIN(tst_QCameraWidgets)
-
-#include "tst_qcamerawidgets.moc"
diff --git a/tests/auto/qdeclarativeaudio/qdeclarativeaudio.pro b/tests/auto/qdeclarativeaudio/qdeclarativeaudio.pro
deleted file mode 100644
index 35f1173..0000000
--- a/tests/auto/qdeclarativeaudio/qdeclarativeaudio.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qdeclarativeaudio
-
-QT += multimedia-private declarative testlib
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativeaudio_p.h \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediabase_p.h \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediametadata_p.h
-
-SOURCES += \
- tst_qdeclarativeaudio.cpp \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativeaudio.cpp \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediabase.cpp
-
-INCLUDEPATH += $$QT.multimedia.sources/../imports/multimedia
diff --git a/tests/auto/qdeclarativeaudio/tst_qdeclarativeaudio.cpp b/tests/auto/qdeclarativeaudio/tst_qdeclarativeaudio.cpp
deleted file mode 100644
index ef538b6..0000000
--- a/tests/auto/qdeclarativeaudio/tst_qdeclarativeaudio.cpp
+++ /dev/null
@@ -1,1301 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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=plugins/declarative/multimedia
-
-#include <QtTest/QtTest>
-
-#include "qdeclarativeaudio_p.h"
-#include "qdeclarativemediametadata_p.h"
-
-#include <qmediaplayercontrol.h>
-#include <qmediaservice.h>
-#include <qmediaserviceprovider.h>
-#include <qmetadatareadercontrol.h>
-
-#include <QtWidgets/qapplication.h>
-
-class tst_QDeclarativeAudio : public QObject
-{
- Q_OBJECT
-public slots:
- void initTestCase();
-
-private slots:
- void nullPlayerControl();
- void nullMetaDataControl();
- void nullService();
-
- void source();
- void autoLoad();
- void playing();
- void paused();
- void duration();
- void position();
- void volume();
- void muted();
- void bufferProgress();
- void seekable();
- void playbackRate();
- void status();
- void metaData_data();
- void metaData();
- void error();
- void loops();
-};
-
-Q_DECLARE_METATYPE(QDeclarativeAudio::Error);
-
-class QtTestMediaPlayerControl : public QMediaPlayerControl
-{
- Q_OBJECT
-public:
- QtTestMediaPlayerControl(QObject *parent = 0)
- : QMediaPlayerControl(parent)
- , m_state(QMediaPlayer::StoppedState)
- , m_mediaStatus(QMediaPlayer::NoMedia)
- , m_duration(0)
- , m_position(0)
- , m_playbackRate(1.0)
- , m_volume(100)
- , m_bufferStatus(0)
- , m_muted(false)
- , m_audioAvailable(false)
- , m_videoAvailable(false)
- , m_seekable(false)
- {
- }
-
- QMediaPlayer::State state() const { return m_state; }
- void updateState(QMediaPlayer::State state) { emit stateChanged(m_state = state); }
-
- QMediaPlayer::MediaStatus mediaStatus() const { return m_mediaStatus; }
- void updateMediaStatus(QMediaPlayer::MediaStatus status) {
- emit mediaStatusChanged(m_mediaStatus = status); }
- void updateMediaStatus(QMediaPlayer::MediaStatus status, QMediaPlayer::State state)
- {
- m_mediaStatus = status;
- m_state = state;
-
- emit mediaStatusChanged(m_mediaStatus);
- emit stateChanged(m_state);
- }
-
- qint64 duration() const { return m_duration; }
- void setDuration(qint64 duration) { emit durationChanged(m_duration = duration); }
-
- qint64 position() const { return m_position; }
- void setPosition(qint64 position) { emit positionChanged(m_position = position); }
-
- int volume() const { return m_volume; }
- void setVolume(int volume) { emit volumeChanged(m_volume = volume); }
-
- bool isMuted() const { return m_muted; }
- void setMuted(bool muted) { emit mutedChanged(m_muted = muted); }
-
- int bufferStatus() const { return m_bufferStatus; }
- void setBufferStatus(int status) { emit bufferStatusChanged(m_bufferStatus = status); }
-
- bool isAudioAvailable() const { return m_audioAvailable; }
- void setAudioAvailable(bool available) {
- emit audioAvailableChanged(m_audioAvailable = available); }
- bool isVideoAvailable() const { return m_videoAvailable; }
- void setVideoAvailable(bool available) {
- emit videoAvailableChanged(m_videoAvailable = available); }
-
- bool isSeekable() const { return m_seekable; }
- void setSeekable(bool seekable) { emit seekableChanged(m_seekable = seekable); }
-
- QMediaTimeRange availablePlaybackRanges() const { return QMediaTimeRange(); }
-
- qreal playbackRate() const { return m_playbackRate; }
- void setPlaybackRate(qreal rate) { emit playbackRateChanged(m_playbackRate = rate); }
-
- QMediaContent media() const { return m_media; }
- const QIODevice *mediaStream() const { return 0; }
- void setMedia(const QMediaContent &media, QIODevice *)
- {
- m_media = media;
-
- m_mediaStatus = m_media.isNull()
- ? QMediaPlayer::NoMedia
- : QMediaPlayer::LoadingMedia;
-
- emit mediaChanged(m_media);
- emit mediaStatusChanged(m_mediaStatus);
- }
-
- void play()
- {
- m_state = QMediaPlayer::PlayingState;
- if (m_mediaStatus == QMediaPlayer::EndOfMedia)
- updateMediaStatus(QMediaPlayer::LoadedMedia);
- emit stateChanged(m_state);
- }
- void pause() { emit stateChanged(m_state = QMediaPlayer::PausedState); }
- void stop() { emit stateChanged(m_state = QMediaPlayer::StoppedState); }
-
- void emitError(QMediaPlayer::Error err, const QString &errorString) {
- emit error(err, errorString); }
-
-private:
- QMediaPlayer::State m_state;
- QMediaPlayer::MediaStatus m_mediaStatus;
- qint64 m_duration;
- qint64 m_position;
- qreal m_playbackRate;
- int m_volume;
- int m_bufferStatus;
- bool m_muted;
- bool m_audioAvailable;
- bool m_videoAvailable;
- bool m_seekable;
- QMediaContent m_media;
-};
-
-class QtTestMetaDataControl : public QMetaDataReaderControl
-{
- Q_OBJECT
-public:
- QtTestMetaDataControl(QObject *parent = 0)
- : QMetaDataReaderControl(parent)
- {
- }
-
- bool isMetaDataAvailable() const { return true; }
-
- QVariant metaData(QtMultimedia::MetaData key) const { return m_metaData.value(key); }
- void setMetaData(QtMultimedia::MetaData key, const QVariant &value) {
- m_metaData.insert(key, value); emit metaDataChanged(); }
-
- QList<QtMultimedia::MetaData> availableMetaData() const { return m_metaData.keys(); }
-
- QVariant extendedMetaData(const QString &) const { return QVariant(); }
- QStringList availableExtendedMetaData() const { return QStringList(); }
-
-private:
- QMap<QtMultimedia::MetaData, QVariant> m_metaData;
-};
-
-class QtTestMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestMediaService(
- QtTestMediaPlayerControl *playerControl,
- QtTestMetaDataControl *metaDataControl,
- QObject *parent)
- : QMediaService(parent)
- , playerControl(playerControl)
- , metaDataControl(metaDataControl)
- {
- }
-
- QMediaControl *requestControl(const char *name)
- {
- if (qstrcmp(name, QMediaPlayerControl_iid) == 0)
- return playerControl;
- else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0)
- return metaDataControl;
- else
- return 0;
- }
-
- void releaseControl(QMediaControl *) {}
-
- QtTestMediaPlayerControl *playerControl;
- QtTestMetaDataControl *metaDataControl;
-};
-
-class QtTestMediaServiceProvider : public QMediaServiceProvider
-{
- Q_OBJECT
-public:
- QtTestMediaServiceProvider()
- : service(new QtTestMediaService(
- new QtTestMediaPlayerControl(this), new QtTestMetaDataControl(this), this))
- {
- setDefaultServiceProvider(this);
- }
-
- QtTestMediaServiceProvider(QtTestMediaService *service)
- : service(service)
- {
- setDefaultServiceProvider(this);
- }
-
- QtTestMediaServiceProvider(
- QtTestMediaPlayerControl *playerControl, QtTestMetaDataControl *metaDataControl)
- : service(new QtTestMediaService(playerControl, metaDataControl, this))
- {
- setDefaultServiceProvider(this);
- }
-
- ~QtTestMediaServiceProvider()
- {
- setDefaultServiceProvider(0);
- }
-
- QMediaService *requestService(
- const QByteArray &type,
- const QMediaServiceProviderHint & = QMediaServiceProviderHint())
- {
- requestedService = type;
-
- return service;
- }
-
- void releaseService(QMediaService *) {}
-
- inline QtTestMediaPlayerControl *playerControl() { return service->playerControl; }
- inline QtTestMetaDataControl *metaDataControl() { return service->metaDataControl; }
-
- QtTestMediaService *service;
- QByteArray requestedService;
-};
-
-void tst_QDeclarativeAudio::initTestCase()
-{
- qRegisterMetaType<QDeclarativeAudio::Error>();
-}
-
-void tst_QDeclarativeAudio::nullPlayerControl()
-{
- QtTestMetaDataControl metaDataControl;
- QtTestMediaServiceProvider provider(0, &metaDataControl);
-
- QDeclarativeAudio audio;
- audio.classBegin();
-
- QCOMPARE(audio.source(), QUrl());
- audio.setSource(QUrl("http://example.com"));
- QCOMPARE(audio.source(), QUrl("http://example.com"));
-
- QCOMPARE(audio.isPlaying(), false);
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- audio.setPlaying(false);
- audio.play();
- QCOMPARE(audio.isPlaying(), false);
-
- QCOMPARE(audio.isPaused(), false);
- audio.pause();
- QCOMPARE(audio.isPaused(), false);
- audio.setPaused(true);
- QCOMPARE(audio.isPaused(), true);
-
- QCOMPARE(audio.duration(), 0);
-
- QCOMPARE(audio.position(), 0);
- audio.setPosition(10000);
- QCOMPARE(audio.position(), 10000);
-
- QCOMPARE(audio.volume(), qreal(1.0));
- audio.setVolume(0.5);
- QCOMPARE(audio.volume(), qreal(0.5));
-
- QCOMPARE(audio.isMuted(), false);
- audio.setMuted(true);
- QCOMPARE(audio.isMuted(), true);
-
- QCOMPARE(audio.bufferProgress(), qreal(0));
-
- QCOMPARE(audio.isSeekable(), false);
-
- QCOMPARE(audio.playbackRate(), qreal(1.0));
-
- QCOMPARE(audio.status(), QDeclarativeAudio::NoMedia);
-
- QCOMPARE(audio.error(), QDeclarativeAudio::ServiceMissing);
-}
-
-void tst_QDeclarativeAudio::nullMetaDataControl()
-{
- QtTestMediaPlayerControl playerControl;
- QtTestMediaServiceProvider provider(&playerControl, 0);
-
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QVERIFY(audio.metaData());
-}
-
-void tst_QDeclarativeAudio::nullService()
-{
- QtTestMediaServiceProvider provider(0);
-
- QDeclarativeAudio audio;
- audio.classBegin();
-
- QCOMPARE(audio.source(), QUrl());
- audio.setSource(QUrl("http://example.com"));
- QCOMPARE(audio.source(), QUrl("http://example.com"));
-
- QCOMPARE(audio.isPlaying(), false);
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- audio.setPlaying(false);
- audio.play();
- QCOMPARE(audio.isPlaying(), false);
-
- QCOMPARE(audio.isPaused(), false);
- audio.pause();
- QCOMPARE(audio.isPaused(), false);
- audio.setPaused(true);
- QCOMPARE(audio.isPaused(), true);
-
- QCOMPARE(audio.duration(), 0);
-
- QCOMPARE(audio.position(), 0);
- audio.setPosition(10000);
- QCOMPARE(audio.position(), 10000);
-
- QCOMPARE(audio.volume(), qreal(1.0));
- audio.setVolume(0.5);
- QCOMPARE(audio.volume(), qreal(0.5));
-
- QCOMPARE(audio.isMuted(), false);
- audio.setMuted(true);
- QCOMPARE(audio.isMuted(), true);
-
- QCOMPARE(audio.bufferProgress(), qreal(0));
-
- QCOMPARE(audio.isSeekable(), false);
-
- QCOMPARE(audio.playbackRate(), qreal(1.0));
-
- QCOMPARE(audio.status(), QDeclarativeAudio::NoMedia);
-
- QCOMPARE(audio.error(), QDeclarativeAudio::ServiceMissing);
-
- QVERIFY(audio.metaData());
-}
-
-void tst_QDeclarativeAudio::source()
-{
- const QUrl url1("http://example.com");
- const QUrl url2("file:///local/path");
- const QUrl url3;
-
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(sourceChanged()));
-
- audio.setSource(url1);
- QCOMPARE(audio.source(), url1);
- QCOMPARE(provider.playerControl()->media().canonicalUrl(), url1);
- QCOMPARE(spy.count(), 1);
-
- audio.setSource(url2);
- QCOMPARE(audio.source(), url2);
- QCOMPARE(provider.playerControl()->media().canonicalUrl(), url2);
- QCOMPARE(spy.count(), 2);
-
- audio.setSource(url3);
- QCOMPARE(audio.source(), url3);
- QCOMPARE(provider.playerControl()->media().canonicalUrl(), url3);
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeAudio::autoLoad()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(autoLoadChanged()));
-
- QCOMPARE(audio.isAutoLoad(), true);
-
- audio.setAutoLoad(false);
- QCOMPARE(audio.isAutoLoad(), false);
- QCOMPARE(spy.count(), 1);
-
- audio.setSource(QUrl("http://example.com"));
- QCOMPARE(audio.source(), QUrl("http://example.com"));
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- audio.stop();
-
- audio.setAutoLoad(true);
- audio.setSource(QUrl("http://example.com"));
- audio.setPaused(true);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(audio.isPaused(), true);
-}
-
-void tst_QDeclarativeAudio::playing()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
-
- QSignalSpy playingChangedSpy(&audio, SIGNAL(playingChanged()));
- QSignalSpy startedSpy(&audio, SIGNAL(started()));
- QSignalSpy stoppedSpy(&audio, SIGNAL(stopped()));
-
- int playingChanged = 0;
- int started = 0;
- int stopped = 0;
-
- audio.componentComplete();
- audio.setSource(QUrl("http://example.com"));
-
- QCOMPARE(audio.isPlaying(), false);
-
- // setPlaying(true) when stopped.
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when playing.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // play() when stopped.
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when playing.
- audio.stop();
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // stop() when stopped.
- audio.stop();
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when stopped.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(true) when playing.
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // play() when playing.
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-}
-
-void tst_QDeclarativeAudio::paused()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
-
- QSignalSpy playingChangedSpy(&audio, SIGNAL(playingChanged()));
- QSignalSpy pausedChangedSpy(&audio, SIGNAL(pausedChanged()));
- QSignalSpy startedSpy(&audio, SIGNAL(started()));
- QSignalSpy pausedSpy(&audio, SIGNAL(paused()));
- QSignalSpy resumedSpy(&audio, SIGNAL(resumed()));
- QSignalSpy stoppedSpy(&audio, SIGNAL(stopped()));
-
- int playingChanged = 0;
- int pausedChanged = 0;
- int started = 0;
- int paused = 0;
- int resumed = 0;
- int stopped = 0;
-
- audio.componentComplete();
- audio.setSource(QUrl("http://example.com"));
-
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), false);
-
- // setPlaying(true) when stopped.
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when playing.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when paused.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when paused.
- audio.pause();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when paused.
- audio.setPaused(false);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), ++resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when playing.
- audio.setPaused(false);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when playing.
- audio.pause();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // setPaused(true) when stopped and paused.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when stopped and paused.
- audio.setPaused(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when stopped.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(true) when stopped and paused.
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // play() when paused.
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), ++resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when playing.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when paused.
- audio.stop();
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // setPaused(true) when stopped.
- audio.setPaused(true);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when stopped and paused.
- audio.stop();
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when stopped.
- audio.pause();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // pause() when stopped and paused.
- audio.pause();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(audio.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // play() when stopped and paused.
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(audio.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-}
-
-void tst_QDeclarativeAudio::duration()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(durationChanged()));
-
- QCOMPARE(audio.duration(), 0);
-
- provider.playerControl()->setDuration(4040);
- QCOMPARE(audio.duration(), 4040);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setDuration(-129);
- QCOMPARE(audio.duration(), -129);
- QCOMPARE(spy.count(), 2);
-
- provider.playerControl()->setDuration(0);
- QCOMPARE(audio.duration(), 0);
- QCOMPARE(spy.count(), 3);
-
- // Unnecessary duration changed signals aren't filtered.
- provider.playerControl()->setDuration(0);
- QCOMPARE(audio.duration(), 0);
- QCOMPARE(spy.count(), 4);
-}
-
-void tst_QDeclarativeAudio::position()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(positionChanged()));
-
- QCOMPARE(audio.position(), 0);
-
- // QDeclarativeAudio won't bound set positions to the duration. A media service may though.
- QCOMPARE(audio.duration(), 0);
-
- audio.setPosition(450);
- QCOMPARE(audio.position(), 450);
- QCOMPARE(provider.playerControl()->position(), qint64(450));
- QCOMPARE(spy.count(), 1);
-
- audio.setPosition(-5403);
- QCOMPARE(audio.position(), -5403);
- QCOMPARE(provider.playerControl()->position(), qint64(-5403));
- QCOMPARE(spy.count(), 2);
-
- audio.setPosition(-5403);
- QCOMPARE(audio.position(), -5403);
- QCOMPARE(provider.playerControl()->position(), qint64(-5403));
- QCOMPARE(spy.count(), 2);
-
- // Check the signal change signal is emitted if the change originates from the media service.
- provider.playerControl()->setPosition(0);
- QCOMPARE(audio.position(), 0);
- QCOMPARE(spy.count(), 3);
-
- connect(&audio, SIGNAL(positionChanged()), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- provider.playerControl()->updateState(QMediaPlayer::PlayingState);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(spy.count() > 3 && spy.count() < 6); // 4 or 5
-
- provider.playerControl()->updateState(QMediaPlayer::PausedState);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(spy.count() < 6);
-}
-
-void tst_QDeclarativeAudio::volume()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(volumeChanged()));
-
- QCOMPARE(audio.volume(), qreal(1.0));
-
- audio.setVolume(0.7);
- QCOMPARE(audio.volume(), qreal(0.7));
- QCOMPARE(provider.playerControl()->volume(), 70);
- QCOMPARE(spy.count(), 1);
-
- audio.setVolume(0.7);
- QCOMPARE(audio.volume(), qreal(0.7));
- QCOMPARE(provider.playerControl()->volume(), 70);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setVolume(30);
- QCOMPARE(audio.volume(), qreal(0.3));
- QCOMPARE(spy.count(), 2);
-}
-
-void tst_QDeclarativeAudio::muted()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(mutedChanged()));
-
- QCOMPARE(audio.isMuted(), false);
-
- audio.setMuted(true);
- QCOMPARE(audio.isMuted(), true);
- QCOMPARE(provider.playerControl()->isMuted(), true);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setMuted(false);
- QCOMPARE(audio.isMuted(), false);
- QCOMPARE(spy.count(), 2);
-
- audio.setMuted(false);
- QCOMPARE(audio.isMuted(), false);
- QCOMPARE(provider.playerControl()->isMuted(), false);
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeAudio::bufferProgress()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(bufferProgressChanged()));
-
- QCOMPARE(audio.bufferProgress(), qreal(0.0));
-
- provider.playerControl()->setBufferStatus(20);
- QCOMPARE(audio.bufferProgress(), qreal(0.2));
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setBufferStatus(20);
- QCOMPARE(audio.bufferProgress(), qreal(0.2));
- QCOMPARE(spy.count(), 2);
-
- provider.playerControl()->setBufferStatus(40);
- QCOMPARE(audio.bufferProgress(), qreal(0.4));
- QCOMPARE(spy.count(), 3);
-
- connect(&audio, SIGNAL(positionChanged()), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- provider.playerControl()->updateMediaStatus(
- QMediaPlayer::BufferingMedia, QMediaPlayer::PlayingState);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(spy.count() > 3 && spy.count() < 6); // 4 or 5
-
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferedMedia);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(spy.count() < 6);
-}
-
-void tst_QDeclarativeAudio::seekable()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(seekableChanged()));
-
- QCOMPARE(audio.isSeekable(), false);
-
- provider.playerControl()->setSeekable(true);
- QCOMPARE(audio.isSeekable(), true);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setSeekable(true);
- QCOMPARE(audio.isSeekable(), true);
- QCOMPARE(spy.count(), 2);
-
- provider.playerControl()->setSeekable(false);
- QCOMPARE(audio.isSeekable(), false);
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeAudio::playbackRate()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(&audio, SIGNAL(playbackRateChanged()));
-
- QCOMPARE(audio.playbackRate(), qreal(1.0));
-
- audio.setPlaybackRate(0.5);
- QCOMPARE(audio.playbackRate(), qreal(0.5));
- QCOMPARE(provider.playerControl()->playbackRate(), qreal(0.5));
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setPlaybackRate(2.0);
- QCOMPARE(provider.playerControl()->playbackRate(), qreal(2.0));
- QCOMPARE(spy.count(), 2);
-
- audio.setPlaybackRate(2.0);
- QCOMPARE(audio.playbackRate(), qreal(2.0));
- QCOMPARE(provider.playerControl()->playbackRate(), qreal(2.0));
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeAudio::status()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy statusChangedSpy(&audio, SIGNAL(statusChanged()));
-
- QCOMPARE(audio.status(), QDeclarativeAudio::NoMedia);
-
- // Set media, start loading.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::LoadingMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Loading);
- QCOMPARE(statusChangedSpy.count(), 1);
-
- // Finish loading.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::LoadedMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Loaded);
- QCOMPARE(statusChangedSpy.count(), 2);
-
- // Play, start buffering.
- provider.playerControl()->updateMediaStatus(
- QMediaPlayer::StalledMedia, QMediaPlayer::PlayingState);
- QCOMPARE(audio.status(), QDeclarativeAudio::Stalled);
- QCOMPARE(statusChangedSpy.count(), 3);
-
- // Enough data buffered to proceed.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferingMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Buffering);
- QCOMPARE(statusChangedSpy.count(), 4);
-
- // Errant second buffering status changed.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferingMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Buffering);
- QCOMPARE(statusChangedSpy.count(), 4);
-
- // Buffer full.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferedMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Buffered);
- QCOMPARE(statusChangedSpy.count(), 5);
-
- // Buffer getting low.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferingMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Buffering);
- QCOMPARE(statusChangedSpy.count(), 6);
-
- // Buffer full.
- provider.playerControl()->updateMediaStatus(QMediaPlayer::BufferedMedia);
- QCOMPARE(audio.status(), QDeclarativeAudio::Buffered);
- QCOMPARE(statusChangedSpy.count(), 7);
-
- // Finished.
- provider.playerControl()->updateMediaStatus(
- QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- QCOMPARE(audio.status(), QDeclarativeAudio::EndOfMedia);
- QCOMPARE(statusChangedSpy.count(), 8);
-}
-
-void tst_QDeclarativeAudio::metaData_data()
-{
- QTest::addColumn<QByteArray>("propertyName");
- QTest::addColumn<QtMultimedia::MetaData>("propertyKey");
- QTest::addColumn<QVariant>("value");
-
- QTest::newRow("title")
- << QByteArray("title")
- << QtMultimedia::Title
- << QVariant(QString::fromLatin1("This is a title"));
-
- QTest::newRow("genre")
- << QByteArray("genre")
- << QtMultimedia::Genre
- << QVariant(QString::fromLatin1("rock"));
-
- QTest::newRow("trackNumber")
- << QByteArray("trackNumber")
- << QtMultimedia::TrackNumber
- << QVariant(8);
-}
-
-void tst_QDeclarativeAudio::metaData()
-{
- QFETCH(QByteArray, propertyName);
- QFETCH(QtMultimedia::MetaData, propertyKey);
- QFETCH(QVariant, value);
-
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy spy(audio.metaData(), SIGNAL(metaDataChanged()));
-
- const int index = audio.metaData()->metaObject()->indexOfProperty(propertyName.constData());
- QVERIFY(index != -1);
-
- QMetaProperty property = audio.metaData()->metaObject()->property(index);
- QCOMPARE(property.read(&audio), QVariant());
-
- property.write(audio.metaData(), value);
- QCOMPARE(property.read(audio.metaData()), QVariant());
- QCOMPARE(provider.metaDataControl()->metaData(propertyKey), QVariant());
- QCOMPARE(spy.count(), 0);
-
- provider.metaDataControl()->setMetaData(propertyKey, value);
- QCOMPARE(property.read(audio.metaData()), value);
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_QDeclarativeAudio::error()
-{
- const QString errorString = QLatin1String("Failed to open device.");
-
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
- audio.classBegin();
- audio.componentComplete();
-
- QSignalSpy errorSpy(&audio, SIGNAL(error(QDeclarativeAudio::Error,QString)));
- QSignalSpy errorChangedSpy(&audio, SIGNAL(errorChanged()));
-
- QCOMPARE(audio.error(), QDeclarativeAudio::NoError);
- QCOMPARE(audio.errorString(), QString());
-
- provider.playerControl()->emitError(QMediaPlayer::ResourceError, errorString);
-
- QCOMPARE(audio.error(), QDeclarativeAudio::ResourceError);
- QCOMPARE(audio.errorString(), errorString);
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 1);
-
- // Changing the source resets the error properties.
- audio.setSource(QUrl("http://example.com"));
- QCOMPARE(audio.error(), QDeclarativeAudio::NoError);
- QCOMPARE(audio.errorString(), QString());
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 2);
-
- // But isn't noisy.
- audio.setSource(QUrl("file:///file/path"));
- QCOMPARE(audio.error(), QDeclarativeAudio::NoError);
- QCOMPARE(audio.errorString(), QString());
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 2);
-}
-
-void tst_QDeclarativeAudio::loops()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeAudio audio;
-
- QSignalSpy loopsChangedSpy(&audio, SIGNAL(loopCountChanged()));
- QSignalSpy playingChangedSpy(&audio, SIGNAL(playingChanged()));
- QSignalSpy stoppedSpy(&audio, SIGNAL(stopped()));
-
- int playingChanged = 0;
- int stopped = 0;
- int loopsChanged = 0;
-
- audio.classBegin();
- audio.componentComplete();
-
- QCOMPARE(audio.isPlaying(), false);
-
- //setLoopCount(3) when stopped.
- audio.setLoopCount(3);
- QCOMPARE(audio.loopCount(), 3);
- QCOMPARE(loopsChangedSpy.count(), ++loopsChanged);
-
- //play till end
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
-
- // setPlaying(true) when playing.
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- provider.playerControl()->updateMediaStatus(QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
-
- //play to end
- provider.playerControl()->updateMediaStatus(QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- //play to end
- provider.playerControl()->updateMediaStatus(QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // stop when playing
- audio.play();
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- provider.playerControl()->updateMediaStatus(QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- audio.stop();
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- //setPlaying(true) with infinite loop
- audio.setLoopCount(-1);
- QCOMPARE(audio.loopCount(), -1);
- QCOMPARE(loopsChangedSpy.count(), ++loopsChanged);
- audio.setPlaying(true);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- provider.playerControl()->updateMediaStatus(QMediaPlayer::EndOfMedia, QMediaPlayer::StoppedState);
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
-
- // play() when playing.
- audio.play();
- QCOMPARE(audio.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when playing in infinite loop.
- audio.setPlaying(false);
- QCOMPARE(audio.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-}
-
-QTEST_MAIN(tst_QDeclarativeAudio)
-
-#include "tst_qdeclarativeaudio.moc"
diff --git a/tests/auto/qdeclarativevideo/qdeclarativevideo.pro b/tests/auto/qdeclarativevideo/qdeclarativevideo.pro
deleted file mode 100644
index cd1c615..0000000
--- a/tests/auto/qdeclarativevideo/qdeclarativevideo.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qdeclarativevideo
-
-QT += multimedia-private declarative testlib
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativevideo_p.h \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediabase_p.h \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediametadata_p.h
-
-SOURCES += \
- tst_qdeclarativevideo.cpp \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativevideo.cpp \
- $$QT.multimedia.sources/../imports/multimedia/qdeclarativemediabase.cpp
-
-INCLUDEPATH += $$QT.multimedia.sources/../imports/multimedia
-QT+=widgets
diff --git a/tests/auto/qdeclarativevideo/tst_qdeclarativevideo.cpp b/tests/auto/qdeclarativevideo/tst_qdeclarativevideo.cpp
deleted file mode 100644
index 5a0dce3..0000000
--- a/tests/auto/qdeclarativevideo/tst_qdeclarativevideo.cpp
+++ /dev/null
@@ -1,991 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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=plugins/declarative/multimedia
-
-#include <QtTest/QtTest>
-
-#include "qdeclarativevideo_p.h"
-
-
-#include <qabstractvideosurface.h>
-#include <qgraphicsvideoitem.h>
-#include <qmediaplayercontrol.h>
-#include <qmediaservice.h>
-#include <qmediaserviceprovider.h>
-#include <qvideorenderercontrol.h>
-#include <qvideowindowcontrol.h>
-#include <qvideosurfaceformat.h>
-
-#include <QtWidgets/qapplication.h>
-#include <QtGui/qpainter.h>
-
-class tst_QDeclarativeVideo : public QObject
-{
- Q_OBJECT
-public slots:
- void initTestCase();
-
-private slots:
- void nullPlayerControl();
- void nullService();
-
- void playing();
- void paused();
- void error();
-
- void hasAudio();
- void hasVideo();
- void fillMode();
- void geometry();
-};
-
-Q_DECLARE_METATYPE(QDeclarativeVideo::Error);
-
-class QtTestMediaPlayerControl : public QMediaPlayerControl
-{
- Q_OBJECT
-public:
- QtTestMediaPlayerControl(QObject *parent = 0)
- : QMediaPlayerControl(parent)
- , m_state(QMediaPlayer::StoppedState)
- , m_mediaStatus(QMediaPlayer::NoMedia)
- , m_duration(0)
- , m_position(0)
- , m_playbackRate(1.0)
- , m_volume(50)
- , m_bufferStatus(0)
- , m_muted(false)
- , m_audioAvailable(false)
- , m_videoAvailable(false)
- , m_seekable(false)
- {
- }
-
- QMediaPlayer::State state() const { return m_state; }
- void updateState(QMediaPlayer::State state) { emit stateChanged(m_state = state); }
-
- QMediaPlayer::MediaStatus mediaStatus() const { return m_mediaStatus; }
- void updateMediaStatus(QMediaPlayer::MediaStatus status) {
- emit mediaStatusChanged(m_mediaStatus = status); }
- void updateMediaStatus(QMediaPlayer::MediaStatus status, QMediaPlayer::State state)
- {
- m_mediaStatus = status;
- m_state = state;
-
- emit mediaStatusChanged(m_mediaStatus);
- emit stateChanged(m_state);
- }
-
- qint64 duration() const { return m_duration; }
- void setDuration(qint64 duration) { emit durationChanged(m_duration = duration); }
-
- qint64 position() const { return m_position; }
- void setPosition(qint64 position) { emit positionChanged(m_position = position); }
-
- int volume() const { return m_volume; }
- void setVolume(int volume) { emit volumeChanged(m_volume = volume); }
-
- bool isMuted() const { return m_muted; }
- void setMuted(bool muted) { emit mutedChanged(m_muted = muted); }
-
- int bufferStatus() const { return m_bufferStatus; }
- void setBufferStatus(int status) { emit bufferStatusChanged(m_bufferStatus = status); }
-
- bool isAudioAvailable() const { return m_audioAvailable; }
- void setAudioAvailable(bool available) {
- emit audioAvailableChanged(m_audioAvailable = available); }
- bool isVideoAvailable() const { return m_videoAvailable; }
- void setVideoAvailable(bool available) {
- emit videoAvailableChanged(m_videoAvailable = available); }
-
- bool isSeekable() const { return m_seekable; }
- void setSeekable(bool seekable) { emit seekableChanged(m_seekable = seekable); }
-
- QMediaTimeRange availablePlaybackRanges() const { return QMediaTimeRange(); }
-
- qreal playbackRate() const { return m_playbackRate; }
- void setPlaybackRate(qreal rate) { emit playbackRateChanged(m_playbackRate = rate); }
-
- QMediaContent media() const { return m_media; }
- const QIODevice *mediaStream() const { return 0; }
- void setMedia(const QMediaContent &media, QIODevice *)
- {
- m_media = media;
-
- m_mediaStatus = m_media.isNull()
- ? QMediaPlayer::NoMedia
- : QMediaPlayer::LoadingMedia;
-
- emit mediaChanged(m_media);
- emit mediaStatusChanged(m_mediaStatus);
- }
-
- void play() { emit stateChanged(m_state = QMediaPlayer::PlayingState); }
- void pause() { emit stateChanged(m_state = QMediaPlayer::PausedState); }
- void stop() { emit stateChanged(m_state = QMediaPlayer::StoppedState); }
-
- void emitError(QMediaPlayer::Error err, const QString &errorString) {
- emit error(err, errorString); }
-
-private:
- QMediaPlayer::State m_state;
- QMediaPlayer::MediaStatus m_mediaStatus;
- qint64 m_duration;
- qint64 m_position;
- qreal m_playbackRate;
- int m_volume;
- int m_bufferStatus;
- bool m_muted;
- bool m_audioAvailable;
- bool m_videoAvailable;
- bool m_seekable;
- QMediaContent m_media;
-};
-
-class QtTestRendererControl : public QVideoRendererControl
-{
-public:
- QtTestRendererControl(QObject *parent ) : QVideoRendererControl(parent), m_surface(0) {}
-
- QAbstractVideoSurface *surface() const { return m_surface; }
- void setSurface(QAbstractVideoSurface *surface) { m_surface = surface; }
-
-private:
- QAbstractVideoSurface *m_surface;
-};
-
-class QtTestWindowControl : public QVideoWindowControl
-{
-public:
- QtTestWindowControl(QObject *parent)
- : QVideoWindowControl(parent)
- , m_winId(0)
- , m_repaintCount(0)
- , m_brightness(0)
- , m_contrast(0)
- , m_saturation(0)
- , m_aspectRatioMode(Qt::KeepAspectRatio)
- , m_fullScreen(0)
- {
- }
-
- WId winId() const { return m_winId; }
- void setWinId(WId id) { m_winId = id; }
-
- QRect displayRect() const { return m_displayRect; }
- void setDisplayRect(const QRect &rect) { m_displayRect = rect; }
-
- bool isFullScreen() const { return m_fullScreen; }
- void setFullScreen(bool fullScreen) { emit fullScreenChanged(m_fullScreen = fullScreen); }
-
- int repaintCount() const { return m_repaintCount; }
- void setRepaintCount(int count) { m_repaintCount = count; }
- void repaint() { ++m_repaintCount; }
-
- QSize nativeSize() const { return m_nativeSize; }
- void setNativeSize(const QSize &size) { m_nativeSize = size; emit nativeSizeChanged(); }
-
- Qt::AspectRatioMode aspectRatioMode() const { return m_aspectRatioMode; }
- void setAspectRatioMode(Qt::AspectRatioMode mode) { m_aspectRatioMode = mode; }
-
- int brightness() const { return m_brightness; }
- void setBrightness(int brightness) { emit brightnessChanged(m_brightness = brightness); }
-
- int contrast() const { return m_contrast; }
- void setContrast(int contrast) { emit contrastChanged(m_contrast = contrast); }
-
- int hue() const { return m_hue; }
- void setHue(int hue) { emit hueChanged(m_hue = hue); }
-
- int saturation() const { return m_saturation; }
- void setSaturation(int saturation) { emit saturationChanged(m_saturation = saturation); }
-
-private:
- WId m_winId;
- int m_repaintCount;
- int m_brightness;
- int m_contrast;
- int m_hue;
- int m_saturation;
- Qt::AspectRatioMode m_aspectRatioMode;
- QRect m_displayRect;
- QSize m_nativeSize;
- bool m_fullScreen;
-};
-
-class QtTestMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestMediaService(
- QtTestMediaPlayerControl *playerControl,
- QtTestRendererControl *rendererControl,
- QtTestWindowControl *windowControl,
- QObject *parent)
- : QMediaService(parent)
- , playerControl(playerControl)
- , rendererControl(rendererControl)
- , windowControl(windowControl)
- {
- }
-
- QMediaControl *requestControl(const char *name)
- {
- if (qstrcmp(name, QMediaPlayerControl_iid) == 0)
- return playerControl;
- else if (qstrcmp(name, QVideoRendererControl_iid) == 0)
- return rendererControl;
- else if (qstrcmp(name, QVideoWindowControl_iid) == 0)
- return windowControl;
- else
- return 0;
- }
-
- void releaseControl(QMediaControl *) {}
-
- QtTestMediaPlayerControl *playerControl;
- QtTestRendererControl *rendererControl;
- QtTestWindowControl *windowControl;
-};
-
-class QtTestMediaServiceProvider : public QMediaServiceProvider
-{
- Q_OBJECT
-public:
- QtTestMediaServiceProvider()
- : service(
- new QtTestMediaService(
- new QtTestMediaPlayerControl(this),
- new QtTestRendererControl(this),
- new QtTestWindowControl(this),
- this))
- {
- setDefaultServiceProvider(this);
- }
-
- QtTestMediaServiceProvider(QtTestMediaService *service)
- : service(service)
- {
- setDefaultServiceProvider(this);
- }
-
- QtTestMediaServiceProvider(
- QtTestMediaPlayerControl *playerControl,
- QtTestRendererControl *rendererControl,
- QtTestWindowControl *windowControl)
- : service(new QtTestMediaService(playerControl, rendererControl, windowControl, this))
- {
- setDefaultServiceProvider(this);
- }
-
- ~QtTestMediaServiceProvider()
- {
- setDefaultServiceProvider(0);
- }
-
- QMediaService *requestService(
- const QByteArray &type,
- const QMediaServiceProviderHint & = QMediaServiceProviderHint())
- {
- requestedService = type;
-
- return service;
- }
-
- void releaseService(QMediaService *) {}
-
- inline QtTestMediaPlayerControl *playerControl() { return service->playerControl; }
- inline QtTestRendererControl *rendererControl() { return service->rendererControl; }
-
- QtTestMediaService *service;
- QByteArray requestedService;
-};
-
-
-void tst_QDeclarativeVideo::initTestCase()
-{
- qRegisterMetaType<QDeclarativeVideo::Error>();
-}
-
-void tst_QDeclarativeVideo::nullPlayerControl()
-{
- QtTestMediaServiceProvider provider(0, 0, 0);
-
- QDeclarativeVideo video;
- video.classBegin();
-
- QCOMPARE(video.source(), QUrl());
- video.setSource(QUrl("http://example.com"));
- QCOMPARE(video.source(), QUrl("http://example.com"));
-
- QCOMPARE(video.isPlaying(), false);
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- video.setPlaying(false);
- video.play();
- QCOMPARE(video.isPlaying(), false);
-
- QCOMPARE(video.isPaused(), false);
- video.pause();
- QCOMPARE(video.isPaused(), false);
- video.setPaused(true);
- QCOMPARE(video.isPaused(), true);
-
- QCOMPARE(video.duration(), 0);
-
- QCOMPARE(video.position(), 0);
- video.setPosition(10000);
- QCOMPARE(video.position(), 10000);
-
- QCOMPARE(video.volume(), qreal(1.0));
- video.setVolume(0.5);
- QCOMPARE(video.volume(), qreal(0.5));
-
- QCOMPARE(video.isMuted(), false);
- video.setMuted(true);
- QCOMPARE(video.isMuted(), true);
-
- QCOMPARE(video.bufferProgress(), qreal(0));
-
- QCOMPARE(video.isSeekable(), false);
-
- QCOMPARE(video.playbackRate(), qreal(1.0));
-
- QCOMPARE(video.hasAudio(), false);
- QCOMPARE(video.hasVideo(), false);
-
- QCOMPARE(video.status(), QDeclarativeVideo::NoMedia);
-
- QCOMPARE(video.error(), QDeclarativeVideo::ServiceMissing);
-}
-
-void tst_QDeclarativeVideo::nullService()
-{
- QtTestMediaServiceProvider provider(0);
-
- QDeclarativeVideo video;
- video.classBegin();
-
- QCOMPARE(video.source(), QUrl());
- video.setSource(QUrl("http://example.com"));
- QCOMPARE(video.source(), QUrl("http://example.com"));
-
- QCOMPARE(video.isPlaying(), false);
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- video.setPlaying(false);
- video.play();
- QCOMPARE(video.isPlaying(), false);
-
- QCOMPARE(video.isPaused(), false);
- video.pause();
- QCOMPARE(video.isPaused(), false);
- video.setPaused(true);
- QCOMPARE(video.isPaused(), true);
-
- QCOMPARE(video.duration(), 0);
-
- QCOMPARE(video.position(), 0);
- video.setPosition(10000);
- QCOMPARE(video.position(), 10000);
-
- QCOMPARE(video.volume(), qreal(1.0));
- video.setVolume(0.5);
- QCOMPARE(video.volume(), qreal(0.5));
-
- QCOMPARE(video.isMuted(), false);
- video.setMuted(true);
- QCOMPARE(video.isMuted(), true);
-
- QCOMPARE(video.bufferProgress(), qreal(0));
-
- QCOMPARE(video.isSeekable(), false);
-
- QCOMPARE(video.playbackRate(), qreal(1.0));
-
- QCOMPARE(video.hasAudio(), false);
- QCOMPARE(video.hasVideo(), false);
-
- QCOMPARE(video.status(), QDeclarativeVideo::NoMedia);
-
- QCOMPARE(video.error(), QDeclarativeVideo::ServiceMissing);
-
- QCOMPARE(video.metaObject()->indexOfProperty("title"), -1);
- QCOMPARE(video.metaObject()->indexOfProperty("genre"), -1);
- QCOMPARE(video.metaObject()->indexOfProperty("description"), -1);
-}
-
-void tst_QDeclarativeVideo::playing()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
- video.setSource(QUrl("http://example.com"));
-
- QSignalSpy playingChangedSpy(&video, SIGNAL(playingChanged()));
- QSignalSpy startedSpy(&video, SIGNAL(started()));
- QSignalSpy stoppedSpy(&video, SIGNAL(stopped()));
-
- int playingChanged = 0;
- int started = 0;
- int stopped = 0;
-
- QCOMPARE(video.isPlaying(), false);
-
- // setPlaying(true) when stopped.
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when playing.
- video.setPlaying(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // play() when stopped.
- video.play();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when playing.
- video.stop();
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // stop() when stopped.
- video.stop();
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when stopped.
- video.setPlaying(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(true) when playing.
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // play() when playing.
- video.play();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(stoppedSpy.count(), stopped);
-}
-
-void tst_QDeclarativeVideo::paused()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
- video.setSource(QUrl("http://example.com"));
-
- QSignalSpy playingChangedSpy(&video, SIGNAL(playingChanged()));
- QSignalSpy pausedChangedSpy(&video, SIGNAL(pausedChanged()));
- QSignalSpy startedSpy(&video, SIGNAL(started()));
- QSignalSpy pausedSpy(&video, SIGNAL(paused()));
- QSignalSpy resumedSpy(&video, SIGNAL(resumed()));
- QSignalSpy stoppedSpy(&video, SIGNAL(stopped()));
-
- int playingChanged = 0;
- int pausedChanged = 0;
- int started = 0;
- int paused = 0;
- int resumed = 0;
- int stopped = 0;
-
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), false);
-
- // setPlaying(true) when stopped.
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when playing.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when paused.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when paused.
- video.pause();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when paused.
- video.setPaused(false);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), ++resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when playing.
- video.setPaused(false);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when playing.
- video.pause();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- video.setPlaying(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // setPaused(true) when stopped and paused.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(false) when stopped and paused.
- video.setPaused(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when stopped.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(true) when stopped and paused.
- video.setPlaying(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // play() when paused.
- video.play();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), ++resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPaused(true) when playing.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when paused.
- video.stop();
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // setPaused(true) when stopped.
- video.setPaused(true);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // stop() when stopped and paused.
- video.stop();
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // pause() when stopped.
- video.pause();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- video.setPlaying(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // pause() when stopped and paused.
- video.pause();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PausedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), ++paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-
- // setPlaying(false) when paused.
- video.setPlaying(false);
- QCOMPARE(video.isPlaying(), false);
- QCOMPARE(video.isPaused(), true);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::StoppedState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), pausedChanged);
- QCOMPARE(startedSpy.count(), started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), ++stopped);
-
- // play() when stopped and paused.
- video.play();
- QCOMPARE(video.isPlaying(), true);
- QCOMPARE(video.isPaused(), false);
- QCOMPARE(provider.playerControl()->state(), QMediaPlayer::PlayingState);
- QCOMPARE(playingChangedSpy.count(), ++playingChanged);
- QCOMPARE(pausedChangedSpy.count(), ++pausedChanged);
- QCOMPARE(startedSpy.count(), ++started);
- QCOMPARE(pausedSpy.count(), paused);
- QCOMPARE(resumedSpy.count(), resumed);
- QCOMPARE(stoppedSpy.count(), stopped);
-}
-
-void tst_QDeclarativeVideo::error()
-{
- const QString errorString = QLatin1String("Failed to open device.");
-
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
-
- QSignalSpy errorSpy(&video, SIGNAL(error(QDeclarativeVideo::Error,QString)));
- QSignalSpy errorChangedSpy(&video, SIGNAL(errorChanged()));
-
- QCOMPARE(video.error(), QDeclarativeVideo::NoError);
- QCOMPARE(video.errorString(), QString());
-
- provider.playerControl()->emitError(QMediaPlayer::ResourceError, errorString);
-
- QCOMPARE(video.error(), QDeclarativeVideo::ResourceError);
- QCOMPARE(video.errorString(), errorString);
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 1);
-
- // Changing the source resets the error properties.
- video.setSource(QUrl("http://example.com"));
- QCOMPARE(video.error(), QDeclarativeVideo::NoError);
- QCOMPARE(video.errorString(), QString());
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 2);
-
- // But isn't noisy.
- video.setSource(QUrl("file:///file/path"));
- QCOMPARE(video.error(), QDeclarativeVideo::NoError);
- QCOMPARE(video.errorString(), QString());
- QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(errorChangedSpy.count(), 2);
-}
-
-
-void tst_QDeclarativeVideo::hasAudio()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
-
- QSignalSpy spy(&video, SIGNAL(hasAudioChanged()));
-
- QCOMPARE(video.hasAudio(), false);
-
- provider.playerControl()->setAudioAvailable(true);
- QCOMPARE(video.hasAudio(), true);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setAudioAvailable(true);
- QCOMPARE(video.hasAudio(), true);
- QCOMPARE(spy.count(), 2);
-
- provider.playerControl()->setAudioAvailable(false);
- QCOMPARE(video.hasAudio(), false);
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeVideo::hasVideo()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
-
- QSignalSpy spy(&video, SIGNAL(hasVideoChanged()));
-
- QCOMPARE(video.hasVideo(), false);
-
- provider.playerControl()->setVideoAvailable(true);
- QCOMPARE(video.hasVideo(), true);
- QCOMPARE(spy.count(), 1);
-
- provider.playerControl()->setVideoAvailable(true);
- QCOMPARE(video.hasVideo(), true);
- QCOMPARE(spy.count(), 2);
-
- provider.playerControl()->setVideoAvailable(false);
- QCOMPARE(video.hasVideo(), false);
- QCOMPARE(spy.count(), 3);
-}
-
-void tst_QDeclarativeVideo::fillMode()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
-
- QList<QGraphicsItem *> children = video.childItems();
- QCOMPARE(children.count(), 1);
- QGraphicsVideoItem *videoItem = qgraphicsitem_cast<QGraphicsVideoItem *>(children.first());
- QVERIFY(videoItem != 0);
-
- QCOMPARE(video.fillMode(), QDeclarativeVideo::PreserveAspectFit);
-
- video.setFillMode(QDeclarativeVideo::PreserveAspectCrop);
- QCOMPARE(video.fillMode(), QDeclarativeVideo::PreserveAspectCrop);
- QCOMPARE(videoItem->aspectRatioMode(), Qt::KeepAspectRatioByExpanding);
-
- video.setFillMode(QDeclarativeVideo::Stretch);
- QCOMPARE(video.fillMode(), QDeclarativeVideo::Stretch);
- QCOMPARE(videoItem->aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- video.setFillMode(QDeclarativeVideo::PreserveAspectFit);
- QCOMPARE(video.fillMode(), QDeclarativeVideo::PreserveAspectFit);
- QCOMPARE(videoItem->aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QDeclarativeVideo::geometry()
-{
- QtTestMediaServiceProvider provider;
- QDeclarativeVideo video;
- video.classBegin();
- video.componentComplete();
-
- QList<QGraphicsItem *> children = video.childItems();
- QCOMPARE(children.count(), 1);
- QGraphicsVideoItem *videoItem = qgraphicsitem_cast<QGraphicsVideoItem *>(children.first());
- QVERIFY(videoItem != 0);
-
- { // Surface setup is deferred until after the first paint.
- QImage image(320, 240, QImage::Format_RGB32);
- QPainter painter(&image);
-
- videoItem->paint(&painter, 0);
- }
-
- QAbstractVideoSurface *surface = provider.rendererControl()->surface();
-
- //video item can use overlay, QAbstractVideoSurface is not used than.
- if (surface) {
- QVideoSurfaceFormat format(QSize(640, 480), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface->start(format));
- QCoreApplication::processEvents();
-
- QCOMPARE(video.implicitWidth(), qreal(640));
- QCOMPARE(video.implicitHeight(), qreal(480));
- }
-
- video.setWidth(560);
- video.setHeight(328);
-
- QCOMPARE(videoItem->size().width(), qreal(560));
- QCOMPARE(videoItem->size().height(), qreal(328));
-}
-
-QTEST_MAIN(tst_QDeclarativeVideo)
-
-#include "tst_qdeclarativevideo.moc"
diff --git a/tests/auto/qgraphicsvideoitem/qgraphicsvideoitem.pro b/tests/auto/qgraphicsvideoitem/qgraphicsvideoitem.pro
deleted file mode 100644
index d3514cf..0000000
--- a/tests/auto/qgraphicsvideoitem/qgraphicsvideoitem.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qgraphicsvideoitem
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qgraphicsvideoitem.cpp
-
-# QPA minimal crashes with this test in QBackingStore
-qpa:CONFIG += insignificant_test
-QT+=widgets
diff --git a/tests/auto/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp b/tests/auto/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp
deleted file mode 100644
index 393ac7a..0000000
--- a/tests/auto/qgraphicsvideoitem/tst_qgraphicsvideoitem.cpp
+++ /dev/null
@@ -1,675 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <qtmultimediadefs.h>
-#include "qgraphicsvideoitem.h"
-#include <QtTest/QtTest>
-#include "qmediaobject.h"
-#include "qmediaservice.h"
-#include <private/qpaintervideosurface_p.h>
-#include "qvideorenderercontrol.h"
-
-#include <qabstractvideosurface.h>
-#include <qvideosurfaceformat.h>
-
-#include <QtWidgets/qapplication.h>
-#include <QtWidgets/qgraphicsscene.h>
-#include <QtWidgets/qgraphicsview.h>
-
-QT_USE_NAMESPACE
-class tst_QGraphicsVideoItem : public QObject
-{
- Q_OBJECT
-public slots:
- void initTestCase();
-
-private slots:
- void nullObject();
- void nullService();
- void noOutputs();
- void serviceDestroyed();
- void mediaObjectDestroyed();
- void setMediaObject();
-
- void show();
-
- void aspectRatioMode();
- void offset();
- void size();
- void nativeSize_data();
- void nativeSize();
-
- void boundingRect_data();
- void boundingRect();
-
- void paint();
-};
-
-Q_DECLARE_METATYPE(const uchar *)
-Q_DECLARE_METATYPE(Qt::AspectRatioMode)
-
-class QtTestRendererControl : public QVideoRendererControl
-{
-public:
- QtTestRendererControl()
- : m_surface(0)
- {
- }
-
- QAbstractVideoSurface *surface() const { return m_surface; }
- void setSurface(QAbstractVideoSurface *surface) { m_surface = surface; }
-
-private:
- QAbstractVideoSurface *m_surface;
-};
-
-class QtTestVideoService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestVideoService(
- QtTestRendererControl *renderer)
- : QMediaService(0)
- , rendererRef(0)
- , rendererControl(renderer)
- {
- }
-
- ~QtTestVideoService()
- {
- delete rendererControl;
- }
-
- QMediaControl *requestControl(const char *name)
- {
- if (qstrcmp(name, QVideoRendererControl_iid) == 0 && rendererControl) {
- rendererRef += 1;
-
- return rendererControl;
- } else {
- return 0;
- }
- }
-
- void releaseControl(QMediaControl *control)
- {
- Q_ASSERT(control);
-
- if (control == rendererControl) {
- rendererRef -= 1;
-
- if (rendererRef == 0)
- rendererControl->setSurface(0);
- }
- }
-
- int rendererRef;
- QtTestRendererControl *rendererControl;
-};
-
-class QtTestVideoObject : public QMediaObject
-{
- Q_OBJECT
-public:
- QtTestVideoObject(QtTestRendererControl *renderer)
- : QMediaObject(0, new QtTestVideoService(renderer))
- {
- testService = qobject_cast<QtTestVideoService*>(service());
- }
-
- QtTestVideoObject(QtTestVideoService *service):
- QMediaObject(0, service),
- testService(service)
- {
- }
-
- ~QtTestVideoObject()
- {
- delete testService;
- }
-
- QtTestVideoService *testService;
-};
-
-class QtTestGraphicsVideoItem : public QGraphicsVideoItem
-{
-public:
- QtTestGraphicsVideoItem(QGraphicsItem *parent = 0)
- : QGraphicsVideoItem(parent)
- , m_paintCount(0)
- {
- }
-
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
- {
- ++m_paintCount;
-
- QTestEventLoop::instance().exitLoop();
-
- QGraphicsVideoItem::paint(painter, option, widget);
- }
-
- bool waitForPaint(int secs)
- {
- const int paintCount = m_paintCount;
-
- QTestEventLoop::instance().enterLoop(secs);
-
- return m_paintCount != paintCount;
- }
-
- int paintCount() const
- {
- return m_paintCount;
- }
-
-private:
- int m_paintCount;
-};
-
-void tst_QGraphicsVideoItem::initTestCase()
-{
- qRegisterMetaType<Qt::AspectRatioMode>();
-}
-
-void tst_QGraphicsVideoItem::nullObject()
-{
- QGraphicsVideoItem item(0);
-
- QVERIFY(item.boundingRect().isEmpty());
-}
-
-void tst_QGraphicsVideoItem::nullService()
-{
- QtTestVideoService *service = 0;
-
- QtTestVideoObject object(service);
-
- QtTestGraphicsVideoItem *item = new QtTestGraphicsVideoItem;
- object.bind(item);
-
- QVERIFY(item->boundingRect().isEmpty());
-
- item->hide();
- item->show();
-
- QGraphicsScene graphicsScene;
- graphicsScene.addItem(item);
- QGraphicsView graphicsView(&graphicsScene);
- graphicsView.show();
-}
-
-void tst_QGraphicsVideoItem::noOutputs()
-{
- QtTestRendererControl *control = 0;
- QtTestVideoObject object(control);
-
- QtTestGraphicsVideoItem *item = new QtTestGraphicsVideoItem;
- object.bind(item);
-
- QVERIFY(item->boundingRect().isEmpty());
-
- item->hide();
- item->show();
-
- QGraphicsScene graphicsScene;
- graphicsScene.addItem(item);
- QGraphicsView graphicsView(&graphicsScene);
- graphicsView.show();
-}
-
-void tst_QGraphicsVideoItem::serviceDestroyed()
-{
- QtTestVideoObject object(new QtTestRendererControl);
-
- QGraphicsVideoItem item;
- object.bind(&item);
-
- QCOMPARE(object.testService->rendererRef, 1);
-
- QtTestVideoService *service = object.testService;
- object.testService = 0;
-
- delete service;
-
- QCOMPARE(item.mediaObject(), static_cast<QMediaObject *>(&object));
- QVERIFY(item.boundingRect().isEmpty());
-}
-
-void tst_QGraphicsVideoItem::mediaObjectDestroyed()
-{
- QtTestVideoObject *object = new QtTestVideoObject(new QtTestRendererControl);
-
- QGraphicsVideoItem item;
- object->bind(&item);
-
- QCOMPARE(object->testService->rendererRef, 1);
-
- delete object;
- object = 0;
-
- QCOMPARE(item.mediaObject(), static_cast<QMediaObject *>(object));
- QVERIFY(item.boundingRect().isEmpty());
-}
-
-void tst_QGraphicsVideoItem::setMediaObject()
-{
- QMediaObject *nullObject = 0;
- QtTestVideoObject object(new QtTestRendererControl);
-
- QGraphicsVideoItem item;
-
- QCOMPARE(item.mediaObject(), nullObject);
- QCOMPARE(object.testService->rendererRef, 0);
-
- object.bind(&item);
- QCOMPARE(item.mediaObject(), static_cast<QMediaObject *>(&object));
- QCOMPARE(object.testService->rendererRef, 1);
- QVERIFY(object.testService->rendererControl->surface() == 0);
-
- { // Surface setup is deferred until after the first paint.
- QImage image(320, 240, QImage::Format_RGB32);
- QPainter painter(&image);
-
- item.paint(&painter, 0);
- }
- QVERIFY(object.testService->rendererControl->surface() != 0);
-
- object.unbind(&item);
- QCOMPARE(item.mediaObject(), nullObject);
-
- QCOMPARE(object.testService->rendererRef, 0);
- QVERIFY(object.testService->rendererControl->surface() == 0);
-
- item.setVisible(false);
-
- object.bind(&item);
- QCOMPARE(item.mediaObject(), static_cast<QMediaObject *>(&object));
- QCOMPARE(object.testService->rendererRef, 1);
- QVERIFY(object.testService->rendererControl->surface() != 0);
-}
-
-void tst_QGraphicsVideoItem::show()
-{
- QtTestVideoObject object(new QtTestRendererControl);
- QtTestGraphicsVideoItem *item = new QtTestGraphicsVideoItem;
- object.bind(item);
-
- // Graphics items are visible by default
- QCOMPARE(object.testService->rendererRef, 1);
- QVERIFY(object.testService->rendererControl->surface() == 0);
-
- item->hide();
- QCOMPARE(object.testService->rendererRef, 1);
-
- item->show();
- QCOMPARE(object.testService->rendererRef, 1);
- QVERIFY(object.testService->rendererControl->surface() == 0);
-
- QGraphicsScene graphicsScene;
- graphicsScene.addItem(item);
- QGraphicsView graphicsView(&graphicsScene);
- graphicsView.show();
-
- QVERIFY(item->paintCount() || item->waitForPaint(1));
- QVERIFY(object.testService->rendererControl->surface() != 0);
-
- QVERIFY(item->boundingRect().isEmpty());
-
- QVideoSurfaceFormat format(QSize(320,240),QVideoFrame::Format_RGB32);
- QVERIFY(object.testService->rendererControl->surface()->start(format));
-
- QCoreApplication::processEvents();
- QVERIFY(!item->boundingRect().isEmpty());
-}
-
-void tst_QGraphicsVideoItem::aspectRatioMode()
-{
- QGraphicsVideoItem item;
-
- QCOMPARE(item.aspectRatioMode(), Qt::KeepAspectRatio);
-
- item.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(item.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- item.setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
- QCOMPARE(item.aspectRatioMode(), Qt::KeepAspectRatioByExpanding);
-
- item.setAspectRatioMode(Qt::KeepAspectRatio);
- QCOMPARE(item.aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QGraphicsVideoItem::offset()
-{
- QGraphicsVideoItem item;
-
- QCOMPARE(item.offset(), QPointF(0, 0));
-
- item.setOffset(QPointF(-32.4, 43.0));
- QCOMPARE(item.offset(), QPointF(-32.4, 43.0));
-
- item.setOffset(QPointF(1, 1));
- QCOMPARE(item.offset(), QPointF(1, 1));
-
- item.setOffset(QPointF(12, -30.4));
- QCOMPARE(item.offset(), QPointF(12, -30.4));
-
- item.setOffset(QPointF(-90.4, -75));
- QCOMPARE(item.offset(), QPointF(-90.4, -75));
-}
-
-void tst_QGraphicsVideoItem::size()
-{
- QGraphicsVideoItem item;
-
- QCOMPARE(item.size(), QSizeF(320, 240));
-
- item.setSize(QSizeF(542.5, 436.3));
- QCOMPARE(item.size(), QSizeF(542.5, 436.3));
-
- item.setSize(QSizeF(-43, 12));
- QCOMPARE(item.size(), QSizeF(0, 0));
-
- item.setSize(QSizeF(54, -9));
- QCOMPARE(item.size(), QSizeF(0, 0));
-
- item.setSize(QSizeF(-90, -65));
- QCOMPARE(item.size(), QSizeF(0, 0));
-
- item.setSize(QSizeF(1000, 1000));
- QCOMPARE(item.size(), QSizeF(1000, 1000));
-}
-
-void tst_QGraphicsVideoItem::nativeSize_data()
-{
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<QRect>("viewport");
- QTest::addColumn<QSize>("pixelAspectRatio");
- QTest::addColumn<QSizeF>("nativeSize");
-
- QTest::newRow("640x480")
- << QSize(640, 480)
- << QRect(0, 0, 640, 480)
- << QSize(1, 1)
- << QSizeF(640, 480);
-
- QTest::newRow("800x600, (80,60, 640x480) viewport")
- << QSize(800, 600)
- << QRect(80, 60, 640, 480)
- << QSize(1, 1)
- << QSizeF(640, 480);
-
- QTest::newRow("800x600, (80,60, 640x480) viewport, 4:3")
- << QSize(800, 600)
- << QRect(80, 60, 640, 480)
- << QSize(4, 3)
- << QSizeF(853, 480);
-}
-
-void tst_QGraphicsVideoItem::nativeSize()
-{
- QFETCH(QSize, frameSize);
- QFETCH(QRect, viewport);
- QFETCH(QSize, pixelAspectRatio);
- QFETCH(QSizeF, nativeSize);
-
- QtTestVideoObject object(new QtTestRendererControl);
- QGraphicsVideoItem item;
- object.bind(&item);
-
- QCOMPARE(item.nativeSize(), QSizeF());
-
- QSignalSpy spy(&item, SIGNAL(nativeSizeChanged(QSizeF)));
-
- QVideoSurfaceFormat format(frameSize, QVideoFrame::Format_ARGB32);
- format.setViewport(viewport);
- format.setPixelAspectRatio(pixelAspectRatio);
-
- { // Surface setup is deferred until after the first paint.
- QImage image(320, 240, QImage::Format_RGB32);
- QPainter painter(&image);
-
- item.paint(&painter, 0);
- }
- QVERIFY(object.testService->rendererControl->surface() != 0);
- QVERIFY(object.testService->rendererControl->surface()->start(format));
-
- QCoreApplication::processEvents();
- QCOMPARE(item.nativeSize(), nativeSize);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().first().toSizeF(), nativeSize);
-
- object.testService->rendererControl->surface()->stop();
-
- QCoreApplication::processEvents();
- QVERIFY(item.nativeSize().isEmpty());
- QCOMPARE(spy.count(), 2);
- QVERIFY(spy.last().first().toSizeF().isEmpty());
-}
-
-void tst_QGraphicsVideoItem::boundingRect_data()
-{
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<QPointF>("offset");
- QTest::addColumn<QSizeF>("size");
- QTest::addColumn<Qt::AspectRatioMode>("aspectRatioMode");
- QTest::addColumn<QRectF>("expectedRect");
-
-
- QTest::newRow("640x480: (0,0 640x480), Keep")
- << QSize(640, 480)
- << QPointF(0, 0)
- << QSizeF(640, 480)
- << Qt::KeepAspectRatio
- << QRectF(0, 0, 640, 480);
-
- QTest::newRow("800x600, (0,0, 640x480), Keep")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(640, 480)
- << Qt::KeepAspectRatio
- << QRectF(0, 0, 640, 480);
-
- QTest::newRow("800x600, (0,0, 640x480), KeepByExpanding")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(640, 480)
- << Qt::KeepAspectRatioByExpanding
- << QRectF(0, 0, 640, 480);
-
- QTest::newRow("800x600, (0,0, 640x480), Ignore")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(640, 480)
- << Qt::IgnoreAspectRatio
- << QRectF(0, 0, 640, 480);
-
- QTest::newRow("800x600, (100,100, 640x480), Keep")
- << QSize(800, 600)
- << QPointF(100, 100)
- << QSizeF(640, 480)
- << Qt::KeepAspectRatio
- << QRectF(100, 100, 640, 480);
-
- QTest::newRow("800x600, (100,-100, 640x480), KeepByExpanding")
- << QSize(800, 600)
- << QPointF(100, -100)
- << QSizeF(640, 480)
- << Qt::KeepAspectRatioByExpanding
- << QRectF(100, -100, 640, 480);
-
- QTest::newRow("800x600, (-100,-100, 640x480), Ignore")
- << QSize(800, 600)
- << QPointF(-100, -100)
- << QSizeF(640, 480)
- << Qt::IgnoreAspectRatio
- << QRectF(-100, -100, 640, 480);
-
- QTest::newRow("800x600, (0,0, 1920x1024), Keep")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(1920, 1024)
- << Qt::KeepAspectRatio
- << QRectF(832.0 / 3, 0, 4096.0 / 3, 1024);
-
- QTest::newRow("800x600, (0,0, 1920x1024), KeepByExpanding")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(1920, 1024)
- << Qt::KeepAspectRatioByExpanding
- << QRectF(0, 0, 1920, 1024);
-
- QTest::newRow("800x600, (0,0, 1920x1024), Ignore")
- << QSize(800, 600)
- << QPointF(0, 0)
- << QSizeF(1920, 1024)
- << Qt::IgnoreAspectRatio
- << QRectF(0, 0, 1920, 1024);
-
- QTest::newRow("800x600, (100,100, 1920x1024), Keep")
- << QSize(800, 600)
- << QPointF(100, 100)
- << QSizeF(1920, 1024)
- << Qt::KeepAspectRatio
- << QRectF(100 + 832.0 / 3, 100, 4096.0 / 3, 1024);
-
- QTest::newRow("800x600, (100,-100, 1920x1024), KeepByExpanding")
- << QSize(800, 600)
- << QPointF(100, -100)
- << QSizeF(1920, 1024)
- << Qt::KeepAspectRatioByExpanding
- << QRectF(100, -100, 1920, 1024);
-
- QTest::newRow("800x600, (-100,-100, 1920x1024), Ignore")
- << QSize(800, 600)
- << QPointF(-100, -100)
- << QSizeF(1920, 1024)
- << Qt::IgnoreAspectRatio
- << QRectF(-100, -100, 1920, 1024);
-}
-
-void tst_QGraphicsVideoItem::boundingRect()
-{
- QFETCH(QSize, frameSize);
- QFETCH(QPointF, offset);
- QFETCH(QSizeF, size);
- QFETCH(Qt::AspectRatioMode, aspectRatioMode);
- QFETCH(QRectF, expectedRect);
-
- QtTestVideoObject object(new QtTestRendererControl);
- QGraphicsVideoItem item;
- object.bind(&item);
-
- item.setOffset(offset);
- item.setSize(size);
- item.setAspectRatioMode(aspectRatioMode);
-
- QVideoSurfaceFormat format(frameSize, QVideoFrame::Format_ARGB32);
-
- { // Surface setup is deferred until after the first paint.
- QImage image(320, 240, QImage::Format_RGB32);
- QPainter painter(&image);
-
- item.paint(&painter, 0);
- }
- QVERIFY(object.testService->rendererControl->surface() != 0);
- QVERIFY(object.testService->rendererControl->surface()->start(format));
-
- QCoreApplication::processEvents();
- QCOMPARE(item.boundingRect(), expectedRect);
-}
-
-static const uchar rgb32ImageData[] =
-{
- 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00
-};
-
-void tst_QGraphicsVideoItem::paint()
-{
- QtTestVideoObject object(new QtTestRendererControl);
- QtTestGraphicsVideoItem *item = new QtTestGraphicsVideoItem;
- object.bind(item);
-
- QGraphicsScene graphicsScene;
- graphicsScene.addItem(item);
- QGraphicsView graphicsView(&graphicsScene);
- graphicsView.show();
- QVERIFY(item->waitForPaint(1));
-
- QPainterVideoSurface *surface = qobject_cast<QPainterVideoSurface *>(
- object.testService->rendererControl->surface());
- if (!surface)
- QSKIP("QGraphicsVideoItem is not QPainterVideoSurface based", SkipAll);
-
- QVideoSurfaceFormat format(QSize(2, 2), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface->start(format));
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-
- QVERIFY(item->waitForPaint(1));
-
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-
- QVideoFrame frame(sizeof(rgb32ImageData), QSize(2, 2), 8, QVideoFrame::Format_RGB32);
-
- frame.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frame.bits(), rgb32ImageData, frame.mappedBytes());
- frame.unmap();
-
- QVERIFY(surface->present(frame));
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), false);
-
- QVERIFY(item->waitForPaint(1));
-
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-}
-
-
-QTEST_MAIN(tst_QGraphicsVideoItem)
-
-#include "tst_qgraphicsvideoitem.moc"
diff --git a/tests/auto/qmediabindableinterface/qmediabindableinterface.pro b/tests/auto/qmediabindableinterface/qmediabindableinterface.pro
deleted file mode 100644
index 366a4e6..0000000
--- a/tests/auto/qmediabindableinterface/qmediabindableinterface.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediabindableinterface
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += \
- tst_qmediabindableinterface.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockrecorder.pri)
diff --git a/tests/auto/qmediabindableinterface/tst_qmediabindableinterface.cpp b/tests/auto/qmediabindableinterface/tst_qmediabindableinterface.cpp
deleted file mode 100644
index d7f06db..0000000
--- a/tests/auto/qmediabindableinterface/tst_qmediabindableinterface.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <qmediaobject.h>
-#include <qmediacontrol.h>
-#include <qmediaservice.h>
-#include <qmediarecordercontrol.h>
-#include <qmediarecorder.h>
-#include <qmetadatawritercontrol.h>
-#include <qaudioendpointselector.h>
-#include <qaudioencodercontrol.h>
-#include <qmediacontainercontrol.h>
-#include <qvideoencodercontrol.h>
-#include <qaudioformat.h>
-
-#include "mockmediacontainercontrol.h"
-#include "mockmetadatawritercontrol.h"
-#include "mockmediarecordercontrol.h"
-#include "mockmediaobject.h"
-
-QT_USE_NAMESPACE
-
-class TestBindableService : public QMediaService
-{
- Q_OBJECT
-public:
- TestBindableService(QObject *parent, QMediaControl *control):
- QMediaService(parent),
- mockControl(control),
- hasControls(true)
- {
- mockContainerControl = new MockMediaContainerControl(parent); //Creating the object for Media
- mockMetaDataControl = new MockMetaDataWriterControl(parent); //Creating the object for MetaData
- }
-
- QMediaControl* requestControl(const char *name)
- {
- if (hasControls && qstrcmp(name,QMediaRecorderControl_iid) == 0)
- return mockControl;
- if (hasControls && qstrcmp(name,QMediaContainerControl_iid) == 0)
- return mockContainerControl;
- if (hasControls && qstrcmp(name, QMetaDataWriterControl_iid) == 0)
- return mockMetaDataControl;
-
- return 0;
- }
-
- void releaseControl(QMediaControl*) {}
- //Initialising the objects for the media
- QMediaControl *mockControl;
- QMediaContainerControl *mockContainerControl;
- MockMetaDataWriterControl *mockMetaDataControl;
- bool hasControls;
-};
-
-class tst_QMediaBindableInterface:public QObject
-{
- Q_OBJECT
-private slots:
- void init()
- {
-
- }
-
- void cleanup()
- {
-
- }
-
- void testMediaObject() //Verifying the mediaobject api
- {
- MockMediaRecorderControl recorderControl(0);
- TestBindableService service(0, &recorderControl);
- service.mockMetaDataControl->populateMetaData();
- MockMediaObject object(0, &service);
- QMediaRecorder recorder(&object);
- QMediaObject *obj = recorder.mediaObject();
- QVERIFY(obj != NULL);
- QVERIFY(obj->isAvailable());
- }
-
- void testDestructor() //Invoking the destructor
- {
- MockMediaRecorderControl recorderControl(0);
- TestBindableService service(0, &recorderControl);
- service.mockMetaDataControl->populateMetaData();
- MockMediaObject object(0, &service);
- QMediaRecorder *recorder = new QMediaRecorder(&object);
- QVERIFY(recorder->isAvailable());
- delete recorder;
- recorder = NULL;
- }
-};
-
-QTEST_MAIN(tst_QMediaBindableInterface)
-#include "tst_qmediabindableinterface.moc"
diff --git a/tests/auto/qmediacontainercontrol/qmediacontainercontrol.pro b/tests/auto/qmediacontainercontrol/qmediacontainercontrol.pro
deleted file mode 100644
index 90dcbf8..0000000
--- a/tests/auto/qmediacontainercontrol/qmediacontainercontrol.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediacontainercontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediacontainercontrol.cpp
-
-include (../qmultimedia_common/mockcontainer.pri)
-
diff --git a/tests/auto/qmediacontainercontrol/tst_qmediacontainercontrol.cpp b/tests/auto/qmediacontainercontrol/tst_qmediacontainercontrol.cpp
deleted file mode 100644
index e5dabd1..0000000
--- a/tests/auto/qmediacontainercontrol/tst_qmediacontainercontrol.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 "qmediacontainercontrol.h"
-#include "qmediarecorder.h"
-
-#include "../qmultimedia_common/mockmediacontainercontrol.h"
-
-//MaemoAPI-
-class tst_QMediaContainerControl :public QObject
-{
- Q_OBJECT
-
-private slots:
- //to test the constructor
- void tst_mediacontainercontrol()
- {
-
- QObject obj;
- MockMediaContainerControl control(&obj);
- QStringList strlist=control.supportedContainers();
- QStringList strlist1;
- strlist1 << "wav" << "mp3" << "mov";
- QVERIFY(strlist[0]==strlist1[0]); //checking with "wav" mime type
- QVERIFY(strlist[1]==strlist1[1]); //checking with "mp3" mime type
- QVERIFY(strlist[2]==strlist1[2]); //checking with "mov" mime type
-
- control.setContainerMimeType("wav");
- const QString str("wav");
- QVERIFY2(control.containerMimeType() == str,"Failed");
-
- const QString str1("WAV format");
- QVERIFY2(control.containerDescription("wav") == str1,"FAILED");
- }
-};
-
-QTEST_MAIN(tst_QMediaContainerControl);
-#include "tst_qmediacontainercontrol.moc"
diff --git a/tests/auto/qmediacontent/qmediacontent.pro b/tests/auto/qmediacontent/qmediacontent.pro
deleted file mode 100644
index d55218d..0000000
--- a/tests/auto/qmediacontent/qmediacontent.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediacontent
-
-QT += multimedia-private network testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediacontent.cpp
diff --git a/tests/auto/qmediacontent/tst_qmediacontent.cpp b/tests/auto/qmediacontent/tst_qmediacontent.cpp
deleted file mode 100644
index a215b47..0000000
--- a/tests/auto/qmediacontent/tst_qmediacontent.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QtNetwork/qnetworkrequest.h>
-
-#include <qmediacontent.h>
-
-//TESTED_COMPONENT=src/multimedia
-
-QT_USE_NAMESPACE
-class tst_QMediaContent : public QObject
-{
- Q_OBJECT
-
-private slots:
- void testNull();
- void testUrlCtor();
- void testRequestCtor();
- void testResourceCtor();
- void testResourceListCtor();
- void testCopy();
- void testAssignment();
- void testEquality();
- void testResources();
-};
-
-void tst_QMediaContent::testNull()
-{
- QMediaContent media;
-
- QCOMPARE(media.isNull(), true);
- QCOMPARE(media.canonicalUrl(), QUrl());
- QCOMPARE(media.canonicalResource(), QMediaResource());
- QCOMPARE(media.resources(), QMediaResourceList());
-}
-
-void tst_QMediaContent::testUrlCtor()
-{
- QMediaContent media(QUrl("http://example.com/movie.mov"));
-
- QCOMPARE(media.canonicalUrl(), QUrl("http://example.com/movie.mov"));
- QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
-}
-
-void tst_QMediaContent::testRequestCtor()
-{
- QNetworkRequest request(QUrl("http://example.com/movie.mov"));
- request.setAttribute(QNetworkRequest::User, QVariant(1234));
-
- QMediaContent media(request);
-
- QCOMPARE(media.canonicalUrl(), QUrl("http://example.com/movie.mov"));
- QCOMPARE(media.canonicalRequest(),request);
- QCOMPARE(media.canonicalResource().request(), request);
- QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
-}
-
-void tst_QMediaContent::testResourceCtor()
-{
- QMediaContent media(QMediaResource(QUrl("http://example.com/movie.mov")));
-
- QCOMPARE(media.canonicalResource(), QMediaResource(QUrl("http://example.com/movie.mov")));
-}
-
-void tst_QMediaContent::testResourceListCtor()
-{
- QMediaResourceList resourceList;
- resourceList << QMediaResource(QUrl("http://example.com/movie.mov"));
-
- QMediaContent media(resourceList);
-
- QCOMPARE(media.canonicalUrl(), QUrl("http://example.com/movie.mov"));
- QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
-}
-
-void tst_QMediaContent::testCopy()
-{
- QMediaContent media1(QMediaResource(QUrl("http://example.com/movie.mov")));
- QMediaContent media2(media1);
-
- QVERIFY(media1 == media2);
-}
-
-void tst_QMediaContent::testAssignment()
-{
- QMediaContent media1(QMediaResource(QUrl("http://example.com/movie.mov")));
- QMediaContent media2;
- QMediaContent media3;
-
- media2 = media1;
- QVERIFY(media2 == media1);
-
- media2 = media3;
- QVERIFY(media2 == media3);
-}
-
-void tst_QMediaContent::testEquality()
-{
- QMediaContent media1;
- QMediaContent media2;
- QMediaContent media3(QMediaResource(QUrl("http://example.com/movie.mov")));
- QMediaContent media4(QMediaResource(QUrl("http://example.com/movie.mov")));
- QMediaContent media5(QMediaResource(QUrl("file:///some/where/over/the/rainbow.mp3")));
-
- // null == null
- QCOMPARE(media1 == media2, true);
- QCOMPARE(media1 != media2, false);
-
- // null != something
- QCOMPARE(media1 == media3, false);
- QCOMPARE(media1 != media3, true);
-
- // equiv
- QCOMPARE(media3 == media4, true);
- QCOMPARE(media3 != media4, false);
-
- // not equiv
- QCOMPARE(media4 == media5, false);
- QCOMPARE(media4 != media5, true);
-}
-
-void tst_QMediaContent::testResources()
-{
- QMediaResourceList resourceList;
-
- resourceList << QMediaResource(QUrl("http://example.com/movie-main.mov"));
- resourceList << QMediaResource(QUrl("http://example.com/movie-big.mov"));
- QMediaContent media(resourceList);
-
- QMediaResourceList res = media.resources();
- QCOMPARE(res.size(), 2);
- QCOMPARE(res[0], QMediaResource(QUrl("http://example.com/movie-main.mov")));
- QCOMPARE(res[1], QMediaResource(QUrl("http://example.com/movie-big.mov")));
-}
-
-QTEST_MAIN(tst_QMediaContent)
-
-#include "tst_qmediacontent.moc"
diff --git a/tests/auto/qmediaimageviewer/images.qrc b/tests/auto/qmediaimageviewer/images.qrc
deleted file mode 100644
index 508de13..0000000
--- a/tests/auto/qmediaimageviewer/images.qrc
+++ /dev/null
@@ -1,9 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/coverart.png</file>
- <file>images/image.jpg</file>
- <file>images/image.png</file>
- <file>images/invalid.png</file>
- <file>images/poster.png</file>
- </qresource>
-</RCC>
diff --git a/tests/auto/qmediaimageviewer/images/coverart.png b/tests/auto/qmediaimageviewer/images/coverart.png
deleted file mode 100644
index a24db1b..0000000
--- a/tests/auto/qmediaimageviewer/images/coverart.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaimageviewer/images/image.jpg b/tests/auto/qmediaimageviewer/images/image.jpg
deleted file mode 100644
index 8771224..0000000
--- a/tests/auto/qmediaimageviewer/images/image.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaimageviewer/images/image.png b/tests/auto/qmediaimageviewer/images/image.png
deleted file mode 100644
index a24db1b..0000000
--- a/tests/auto/qmediaimageviewer/images/image.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaimageviewer/images/invalid.png b/tests/auto/qmediaimageviewer/images/invalid.png
deleted file mode 100644
index 3aba327..0000000
--- a/tests/auto/qmediaimageviewer/images/invalid.png
+++ /dev/null
@@ -1,2 +0,0 @@
-This is not really a PNG file.
-
diff --git a/tests/auto/qmediaimageviewer/images/poster.png b/tests/auto/qmediaimageviewer/images/poster.png
deleted file mode 100644
index a24db1b..0000000
--- a/tests/auto/qmediaimageviewer/images/poster.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaimageviewer/qmediaimageviewer.pro b/tests/auto/qmediaimageviewer/qmediaimageviewer.pro
deleted file mode 100644
index 4724f61..0000000
--- a/tests/auto/qmediaimageviewer/qmediaimageviewer.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaimageviewer
-
-QT += multimedia-private network testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaimageviewer.cpp
-
-RESOURCES += \
- images.qrc
-
-!contains(QT_CONFIG, no-jpeg):DEFINES += QTEST_HAVE_JPEG
-
-wince* {
- !contains(QT_CONFIG, no-jpeg): DEPLOYMENT_PLUGIN += qjpeg
-}
diff --git a/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp b/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp
deleted file mode 100644
index 00cfe85..0000000
--- a/tests/auto/qmediaimageviewer/tst_qmediaimageviewer.cpp
+++ /dev/null
@@ -1,1044 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <qtmultimediadefs.h>
-#include <QtTest/QtTest>
-
-#include <QtCore/qdir.h>
-
-#include <qmediaimageviewer.h>
-#include <private/qmediaimageviewerservice_p.h>
-#include <qmediaplaylist.h>
-#include <qmediaservice.h>
-#include <qvideorenderercontrol.h>
-
-#include <QtCore/qfile.h>
-#include <QtNetwork/qnetworkaccessmanager.h>
-#include <QtNetwork/qnetworkreply.h>
-
-#include <qabstractvideosurface.h>
-#include <qvideosurfaceformat.h>
-
-QT_USE_NAMESPACE
-class QtTestNetworkAccessManager;
-
-class tst_QMediaImageViewer : public QObject
-{
- Q_OBJECT
-private slots:
- void initTestCase();
-
- void isValid();
- void timeout();
- void setMedia_data();
- void setMedia();
- void setConsecutiveMedia();
- void setInvalidMedia();
- void playlist();
- void multiplePlaylists();
- void invalidPlaylist();
- void elapsedTime();
- void rendererControl();
- void setVideoOutput();
- void debugEnums();
-
- void mediaChanged_signal();
-
-public:
- tst_QMediaImageViewer() : m_network(0) {}
-
-private:
- QUrl imageUrl(const char *fileName) const {
- return QUrl(QLatin1String("qrc:///images/") + QLatin1String(fileName)); }
- QString imageFileName(const char *fileName) {
- return QLatin1String(":/images/") + QLatin1String(fileName); }
-
- QtTestNetworkAccessManager *m_network;
- QString m_fileProtocol;
-};
-
-class QtTestVideoSurface : public QAbstractVideoSurface
-{
-public:
- QList<QVideoFrame::PixelFormat> supportedPixelFormats(
- QAbstractVideoBuffer::HandleType handleType) const {
- QList<QVideoFrame::PixelFormat> formats;
- if (handleType == QAbstractVideoBuffer::NoHandle) {
- formats << QVideoFrame::Format_RGB32;
- }
- return formats;
- }
-
- QVideoFrame frame() const { return m_frame; }
-
- bool present(const QVideoFrame &frame) { m_frame = frame; return true; }
-
-private:
- QVideoFrame m_frame;
-};
-
-class QtTestNetworkReply : public QNetworkReply
-{
-public:
- QtTestNetworkReply(
- const QNetworkRequest &request,
- const QByteArray &mimeType,
- QObject *parent)
- : QNetworkReply(parent)
- {
- setRequest(request);
- setOperation(QNetworkAccessManager::HeadOperation);
- setRawHeader("content-type", mimeType);
-
- QCoreApplication::postEvent(this, new QEvent(QEvent::User));
- }
-
- QtTestNetworkReply(
- const QNetworkRequest &request,
- const QByteArray &mimeType,
- const QString &fileName,
- QObject *parent)
- : QNetworkReply(parent)
- , m_file(fileName)
- {
- setRequest(request);
- setOperation(QNetworkAccessManager::GetOperation);
- setRawHeader("content-type", mimeType);
-
- if (m_file.open(QIODevice::ReadOnly | QIODevice::Unbuffered)) {
- setOpenMode(QIODevice::ReadOnly);
- }
-
- QCoreApplication::postEvent(this, new QEvent(QEvent::User));
- }
-
- void abort() { m_file.close(); }
-
- bool atEnd () const { return m_file.atEnd(); }
- qint64 bytesAvailable() const { return m_file.bytesAvailable() + QIODevice::bytesAvailable(); }
- void close() { m_file.close(); setOpenMode(QIODevice::NotOpen); }
- bool isSequential() const { return true; }
- bool open(OpenMode) { return false; }
- qint64 pos() const { return 0; }
- bool seek(qint64) { return false; }
- qint64 size() const { return m_file.size(); }
- qint64 readData(char * data, qint64 maxSize) { return m_file.read(data, maxSize); }
- qint64 writeData(const char *, qint64) { return -1; }
-
-protected:
- void customEvent(QEvent *event)
- {
- if (event->type() == QEvent::User) {
- event->accept();
- emit finished();
- }
- }
-
-private:
- QFile m_file;
-};
-
-class QtTestNetworkAccessManager : public QNetworkAccessManager
-{
-public:
- QtTestNetworkAccessManager(QObject *parent = 0)
- : QNetworkAccessManager(parent)
- {
- }
-
- void appendDocument(const QUrl &url, const QByteArray &mimeType, const QString &fileName)
- {
- m_documents.append(Document(url, mimeType, fileName));
- }
-
-protected:
- QNetworkReply *createRequest(
- Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0)
- {
- foreach (const Document &document, m_documents) {
- if (document.url == request.url()) {
- if (op == GetOperation) {
- return new QtTestNetworkReply(
- request, document.mimeType, document.fileName, this);
- } else if (op == HeadOperation) {
- return new QtTestNetworkReply(request, document.mimeType, this);
- }
- }
- }
- return QNetworkAccessManager::createRequest(op, request, outgoingData);
- }
-
-private:
- struct Document
- {
- Document(const QUrl url, const QByteArray mimeType, const QString &fileName)
- : url(url), mimeType(mimeType), fileName(fileName)
- {
- }
-
- QUrl url;
- QByteArray mimeType;
- QString fileName;
- };
-
- QList<Document> m_documents;
-};
-
-void tst_QMediaImageViewer::initTestCase()
-{
- qRegisterMetaType<QMediaImageViewer::State>();
- qRegisterMetaType<QMediaImageViewer::MediaStatus>();
-
- m_network = new QtTestNetworkAccessManager(this);
-
- m_network->appendDocument(
- QUrl(QLatin1String("test://image/png?id=1")),
- "image/png",
- imageFileName("image.png"));
- m_network->appendDocument(
- QUrl(QLatin1String("test://image/png?id=2")),
- QByteArray(),
- imageFileName("image.png"));
- m_network->appendDocument(
- QUrl(QLatin1String("test://image/invalid?id=1")),
- "image/png",
- imageFileName("invalid.png"));
- m_network->appendDocument(
- QUrl(QLatin1String("test://image/invalid?id=2")),
- QByteArray(),
- imageFileName("invalid.png"));
-#ifdef QTEST_HAVE_JPEG
- m_network->appendDocument(
- QUrl(QLatin1String("test://image/jpeg?id=1")),
- "image/jpeg",
- imageFileName("image.jpg"));
-#endif
- m_network->appendDocument(
- QUrl(QLatin1String("test://music/songs/mp3?id=1")),
- "audio/mpeg",
- QString());
- m_network->appendDocument(
- QUrl(QLatin1String("test://music/covers/small?id=1")),
- "image/png",
- imageFileName("coverart.png"));
- m_network->appendDocument(
- QUrl(QLatin1String("test://music/covers/large?id=1")),
- "image/png",
- imageFileName("coverart.png"));
- m_network->appendDocument(
- QUrl(QLatin1String("test://video/movies/mp4?id=1")),
- "video/mp4",
- QString());
- m_network->appendDocument(
- QUrl(QLatin1String("test://video/posters/png?id=1")),
- "image/png",
- imageFileName("poster.png"));
-}
-
-void tst_QMediaImageViewer::isValid()
-{
- QMediaImageViewer viewer;
-
- QVERIFY(viewer.service() != 0);
-}
-
-void tst_QMediaImageViewer::timeout()
-{
- QMediaImageViewer viewer;
-
- QCOMPARE(viewer.timeout(), 3000);
-
- viewer.setTimeout(0);
- QCOMPARE(viewer.timeout(), 0);
-
- viewer.setTimeout(45);
- QCOMPARE(viewer.timeout(), 45);
-
- viewer.setTimeout(-3000);
- QCOMPARE(viewer.timeout(), 0);
-}
-
-void tst_QMediaImageViewer::setMedia_data()
-{
- QTest::addColumn<QMediaContent>("media");
-
- {
- QMediaContent media(imageUrl("image.png"));
-
- QTest::newRow("file: png image")
- << media;
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/png?id=1")));
-
- QTest::newRow("network: png image")
- << media;
- } {
- QMediaContent media(QMediaResource(
- QUrl(QLatin1String("test://image/png?id=1")), QLatin1String("image/png")));
-
- QTest::newRow("network: png image, explicit mime type")
- << media;
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/png?id=2")));
-
- QTest::newRow("network: png image, no mime type")
- << media;
-#ifdef QTEST_HAVE_JPEG
- } {
- QMediaContent media(imageUrl("image.jpg"));
-
- QTest::newRow("file: jpg image")
- << media;
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/jpeg?id=1")));
-
- QTest::newRow("network: jpg image")
- << media;
-#endif
- }
-}
-
-void tst_QMediaImageViewer::setMedia()
-{
- QFETCH(QMediaContent, media);
-
- QMediaImageViewer viewer;
-
- QMediaImageViewerService *service = qobject_cast<QMediaImageViewerService *>(viewer.service());
- service->setNetworkManager(m_network);
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.media(), media);
-
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
-
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-}
-
-void tst_QMediaImageViewer::setConsecutiveMedia()
-{
- QMediaContent fileMedia1(imageUrl("image.png"));
- QMediaContent fileMedia2(imageUrl("coverart.png"));
- QMediaContent networkMedia1(QUrl(QLatin1String("test://image/png?id=1")));
- QMediaContent networkMedia2(QUrl(QLatin1String("test://image/png?id=2")));
-
- QMediaImageViewer viewer;
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- viewer.setMedia(fileMedia1);
- viewer.setMedia(fileMedia2);
-
- QCOMPARE(viewer.media(), fileMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.media(), fileMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-
- QMediaImageViewerService *service = qobject_cast<QMediaImageViewerService *>(viewer.service());
- service->setNetworkManager(m_network);
-
- viewer.setMedia(networkMedia2);
- viewer.setMedia(networkMedia1);
-
- QCOMPARE(viewer.media(), networkMedia1);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.media(), networkMedia1);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-
- viewer.setMedia(fileMedia1);
- viewer.setMedia(networkMedia2);
-
- QCOMPARE(viewer.media(), networkMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.media(), networkMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-
- viewer.setMedia(fileMedia1);
- viewer.setMedia(networkMedia2);
-
- QCOMPARE(viewer.media(), networkMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.media(), networkMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-
- viewer.setMedia(networkMedia1);
- viewer.setMedia(fileMedia2);
-
- QCOMPARE(viewer.media(), fileMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.media(), fileMedia2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-}
-
-void tst_QMediaImageViewer::setInvalidMedia()
-{
- QMediaImageViewer viewer;
- viewer.setTimeout(250);
-
- QMediaImageViewerService *service = qobject_cast<QMediaImageViewerService *>(viewer.service());
- service->setNetworkManager(m_network);
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- {
- QMediaContent media(imageUrl("invalid.png"));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaContent media(imageUrl("deleted.png"));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaResource invalidResource(imageUrl("invalid.png"));
- QMediaResource deletedResource(imageUrl("deleted.png"));
- QMediaContent media(QMediaResourceList() << invalidResource << deletedResource);
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaResource resource(imageUrl("image.png"), QLatin1String("audio/mpeg"));
- QMediaContent media(resource);
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaResource audioResource(imageUrl("image.png"), QLatin1String("audio/mpeg"));
- QMediaResource invalidResource(imageUrl("invalid.png"));
- QMediaContent media(QMediaResourceList() << audioResource << invalidResource);
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/invalid?id=1")));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/invalid?id=2")));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- } {
- QMediaContent media(QUrl(QLatin1String("test://image/invalid?id=3")));
-
- viewer.setMedia(media);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::InvalidMedia);
- QCOMPARE(viewer.media(), media);
- }
-}
-
-void tst_QMediaImageViewer::playlist()
-{
- QMediaContent imageMedia(imageUrl("image.png"));
- QMediaContent posterMedia(imageUrl("poster.png"));
- QMediaContent coverArtMedia(imageUrl("coverart.png"));
-
- QMediaImageViewer viewer;
- viewer.setTimeout(250);
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QSignalSpy stateSpy(&viewer, SIGNAL(stateChanged(QMediaImageViewer::State)));
-
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
-
- // No playlist so can't exit stopped state.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 0);
- viewer.pause();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 0);
-
- QMediaPlaylist playlist;
- viewer.setPlaylist(&playlist);
-
- // Empty playlist so can't exit stopped state.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 0);
- viewer.pause();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 0);
-
- playlist.addMedia(imageMedia);
- playlist.addMedia(posterMedia);
- playlist.addMedia(coverArtMedia);
-
- // Play progresses immediately to the first image and starts loading.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(viewer.media(), imageMedia);
-
- // Image is loaded asynchronously.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 0);
-
- // Time out causes progression to second image, which starts loading.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(playlist.currentIndex(), 1);
- QCOMPARE(viewer.media(), posterMedia);
-
- // Image is loaded asynchronously.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 1);
-
- // Pausing stops progression at current image.
- viewer.pause();
- QCOMPARE(viewer.state(), QMediaImageViewer::PausedState);
- QCOMPARE(stateSpy.count(), 2);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::PausedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 1);
-
- // No time out.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::PausedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 1);
-
- // Resuming playback does not immediately progress to the next item
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 1);
-
- // Time out causes progression to next image, which starts loading.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(playlist.currentIndex(), 2);
- QCOMPARE(viewer.media(), coverArtMedia);
-
- // Image is loaded asynchronously.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 2);
-
- // Time out causes progression to end of list
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 4);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::StoppedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::NoMedia);
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(viewer.media(), QMediaContent());
-
- // Stopped, no time out.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::NoMedia);
- QCOMPARE(playlist.currentIndex(), -1);
-
- // Play progresses immediately to the first image and starts loading.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(stateSpy.count(), 5);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(viewer.media(), imageMedia);
-
- // Image is loaded asynchronously.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 0);
-
- // Stop ends progress, but retains current index.
- viewer.stop();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 6);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::StoppedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(viewer.media(), imageMedia);
-
- // Stoppped, No time out.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(viewer.media(), imageMedia);
-
- // Stop when already stopped doesn't emit additional signals.
- viewer.stop();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 6);
-
- viewer.play();
- QCOMPARE(stateSpy.count(), 7);
-
- // Play when already playing doesn't emit additional signals.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(stateSpy.count(), 7);
-
- playlist.next();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- // Pausing while loading, doesn't stop loading.
- viewer.pause();
- QCOMPARE(viewer.state(), QMediaImageViewer::PausedState);
- QCOMPARE(stateSpy.count(), 8);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::PausedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadedMedia);
-
- // Pause while paused doesn't emit additional signals.
- viewer.pause();
- QCOMPARE(viewer.state(), QMediaImageViewer::PausedState);
- QCOMPARE(stateSpy.count(), 8);
-
- // Calling setMedia stops the playlist.
- viewer.setMedia(imageMedia);
- QCOMPARE(viewer.media(), imageMedia);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(stateSpy.count(), 9);
- QCOMPARE(qvariant_cast<QMediaImageViewer::State>(stateSpy.last().value(0)),
- QMediaImageViewer::StoppedState);
-
-}
-
-void tst_QMediaImageViewer::multiplePlaylists()
-{
- QMediaContent imageMedia(imageUrl("image.png"));
- QMediaContent posterMedia(imageUrl("poster.png"));
- QMediaContent coverArtMedia(imageUrl("coverart.png"));
-
- QMediaImageViewer viewer;
-
- QMediaPlaylist *playlist1 = new QMediaPlaylist;
- viewer.setPlaylist(playlist1);
- playlist1->addMedia(imageMedia);
- playlist1->addMedia(posterMedia);
-
- playlist1->setCurrentIndex(0);
- QCOMPARE(viewer.media(), imageMedia);
-
- QMediaPlaylist *playlist2 = new QMediaPlaylist;
-
- viewer.setPlaylist(playlist2);
- playlist2->addMedia(coverArtMedia);
-
- QVERIFY(viewer.media().isNull());
-
- playlist2->setCurrentIndex(0);
- QCOMPARE(viewer.media(), coverArtMedia);
-
- delete playlist2;
- QVERIFY(viewer.media().isNull());
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
-
- viewer.setPlaylist(playlist1);
- playlist1->setCurrentIndex(0);
- QCOMPARE(viewer.media(), imageMedia);
-
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
-
- delete playlist1;
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
-}
-
-
-void tst_QMediaImageViewer::invalidPlaylist()
-{
- QMediaContent imageMedia(imageUrl("image.png"));
- QMediaContent invalidMedia(imageUrl("invalid.png"));
-
- QMediaImageViewer viewer;
- viewer.setTimeout(250);
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QSignalSpy stateSpy(&viewer, SIGNAL(stateChanged(QMediaImageViewer::State)));
- QSignalSpy statusSpy(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)));
-
- QMediaPlaylist playlist;
- viewer.setPlaylist(&playlist);
- playlist.addMedia(invalidMedia);
- playlist.addMedia(imageMedia);
- playlist.addMedia(invalidMedia);
-
- // Test play initially tries to load the first invalid image.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(viewer.media(), invalidMedia);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(statusSpy.count(), 1);
- QCOMPARE(qvariant_cast<QMediaImageViewer::MediaStatus>(statusSpy.value(0).value(0)),
- QMediaImageViewer::LoadingMedia);
-
- // Test status is changed to InvalidMedia, and loading of the next image is started immediately.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::LoadingMedia);
- QCOMPARE(viewer.media(), imageMedia);
- QCOMPARE(playlist.currentIndex(), 1);
- QCOMPARE(statusSpy.count(), 3);
- QCOMPARE(qvariant_cast<QMediaImageViewer::MediaStatus>(statusSpy.value(1).value(0)),
- QMediaImageViewer::InvalidMedia);
- QCOMPARE(qvariant_cast<QMediaImageViewer::MediaStatus>(statusSpy.value(2).value(0)),
- QMediaImageViewer::LoadingMedia);
-
- // Test if the last image is invalid, the image viewer is stopped.
- playlist.next();
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::NoMedia);
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(stateSpy.count(), 2);
-
- playlist.setCurrentIndex(2);
- QTestEventLoop::instance().enterLoop(2);
-
- // Test play immediately moves to the next item if the current one is invalid, and no state
- // change signals are emitted if the viewer never effectively moves from the StoppedState.
- viewer.play();
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
- QCOMPARE(viewer.mediaStatus(), QMediaImageViewer::NoMedia);
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(stateSpy.count(), 2);
-}
-
-void tst_QMediaImageViewer::elapsedTime()
-{
- QMediaContent imageMedia(imageUrl("image.png"));
-
- QMediaImageViewer viewer;
- viewer.setTimeout(250);
- viewer.setNotifyInterval(150);
-
- QSignalSpy spy(&viewer, SIGNAL(elapsedTimeChanged(int)));
-
- connect(&viewer, SIGNAL(elapsedTimeChanged(int)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
-
- QMediaPlaylist playlist;
- viewer.setPlaylist(&playlist);
- playlist.addMedia(imageMedia);
-
- QCOMPARE(viewer.elapsedTime(), 0);
-
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(spy.count(), 0);
-
- viewer.play();
- QCOMPARE(viewer.elapsedTime(), 0);
-
- // Emits an initial elapsed time at 0 milliseconds signal when the image is loaded.
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().value(0).toInt(), 0);
-
- // Emits a scheduled signal after the notify interval is up. The exact time will be a little
- // fuzzy.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(spy.count(), 2);
- QVERIFY(spy.last().value(0).toInt() != 0);
-
- // Pausing will emit a signal with the elapsed time when paused.
- viewer.pause();
- QCOMPARE(spy.count(), 3);
- QCOMPARE(viewer.elapsedTime(), spy.last().value(0).toInt());
-
- // No elapsed time signals will be emitted while paused.
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(spy.count(), 3);
-
- // Stopping a paused viewer resets the elapsed time to 0 with signals emitted.
- viewer.stop();
- QCOMPARE(viewer.elapsedTime(), 0);
- QCOMPARE(spy.count(), 4);
- QCOMPARE(spy.last().value(0).toInt(), 0);
-
- disconnect(&viewer, SIGNAL(elapsedTimeChanged(int)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- // Play until end.
- viewer.play();
- QTestEventLoop::instance().enterLoop(2);
-
- // Verify at least two more signals are emitted.
- // The second to last at the instant the timeout expired, and the last as it's reset when the
- // current media is cleared.
- QVERIFY(spy.count() >= 5);
- QCOMPARE(spy.value(spy.count() - 2).value(0).toInt(), 250);
- QCOMPARE(spy.value(spy.count() - 1).value(0).toInt(), 0);
-
- viewer.play();
- QTestEventLoop::instance().enterLoop(2);
-
- // Test extending the timeout applies to an already loaded image.
- viewer.setTimeout(10000);
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::PlayingState);
-
- // Test reducing the timeout applies to an already loaded image.
- viewer.setTimeout(1000);
- QTestEventLoop::instance().enterLoop(2);
- QCOMPARE(viewer.state(), QMediaImageViewer::StoppedState);
-
-}
-
-void tst_QMediaImageViewer::rendererControl()
-{
- QtTestVideoSurface surfaceA;
- QtTestVideoSurface surfaceB;
- QAbstractVideoSurface *nullSurface = 0;
-
- QMediaImageViewer viewer;
-
- QMediaService *service = viewer.service();
- if (service == 0)
- QSKIP("Image viewer object has no service.", SkipSingle);
-
- QMediaControl *mediaControl = service->requestControl(QVideoRendererControl_iid);
- QVERIFY(mediaControl != 0);
-
- QVideoRendererControl *rendererControl = qobject_cast<QVideoRendererControl *>(mediaControl);
- QVERIFY(rendererControl != 0);
-
- rendererControl->setSurface(&surfaceA);
- QCOMPARE(rendererControl->surface(), (QAbstractVideoSurface *)&surfaceA);
-
- // Load an image so the viewer has some dimensions to work with.
- viewer.setMedia(QMediaContent(imageUrl("image.png")));
-
- connect(&viewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
- QTestEventLoop::instance().enterLoop(2);
-
- if (viewer.mediaStatus() != QMediaImageViewer::LoadedMedia)
- QSKIP("failed to load test image", SkipSingle);
-
- QCOMPARE(surfaceA.isActive(), true);
-
- {
- QVideoSurfaceFormat format = surfaceA.surfaceFormat();
- QCOMPARE(format.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(format.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(format.frameSize(), QSize(75, 50));
-
- QVideoFrame frame = surfaceA.frame();
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(frame.size(), QSize(75, 50));
- }
- // Test clearing the output stops the video surface.
- service->releaseControl(rendererControl);
- QCOMPARE(surfaceA.isActive(), false);
-
- // Test reseting the output restarts it.
- mediaControl = service->requestControl(QVideoRendererControl_iid);
- QVERIFY(mediaControl != 0);
-
- rendererControl = qobject_cast<QVideoRendererControl *>(mediaControl);
- rendererControl->setSurface(&surfaceA);
- QVERIFY(rendererControl != 0);
- {
- QVideoSurfaceFormat format = surfaceA.surfaceFormat();
- QCOMPARE(format.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(format.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(format.frameSize(), QSize(75, 50));
-
- QVideoFrame frame = surfaceA.frame();
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(frame.size(), QSize(75, 50));
- }
-
- // Test changing the surface while viewing an image stops the old surface and starts
- // the new one and presents the image.
- rendererControl->setSurface(&surfaceB);
- QCOMPARE(rendererControl->surface(), (QAbstractVideoSurface*)&surfaceB);
-
- QCOMPARE(surfaceA.isActive(), false);
- QCOMPARE(surfaceB.isActive(), true);
-
- QVideoSurfaceFormat format = surfaceB.surfaceFormat();
- QCOMPARE(format.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(format.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(format.frameSize(), QSize(75, 50));
-
- QVideoFrame frame = surfaceB.frame();
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_RGB32);
- QCOMPARE(frame.size(), QSize(75, 50));
-
- // Test setting null media stops the surface.
- viewer.setMedia(QMediaContent());
- QCOMPARE(surfaceB.isActive(), false);
-
- // Test the renderer control accepts a null surface.
- rendererControl->setSurface(0);
- QCOMPARE(rendererControl->surface(), nullSurface);
-}
-
-void tst_QMediaImageViewer::setVideoOutput()
-{
- QMediaImageViewer imageViewer;
- imageViewer.setMedia(QMediaContent(imageUrl("image.png")));
-
- connect(&imageViewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
- QTestEventLoop::instance().enterLoop(2);
-
- if (imageViewer.mediaStatus() != QMediaImageViewer::LoadedMedia)
- QSKIP("failed to load test image", SkipSingle);
-
- QtTestVideoSurface surface;
-
- imageViewer.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
-
- imageViewer.setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
-
- imageViewer.setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(!surface.isActive());
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
-
- imageViewer.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(!surface.isActive());
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
-}
-
-void tst_QMediaImageViewer::debugEnums()
-{
- QTest::ignoreMessage(QtDebugMsg, "QMediaImageViewer::PlayingState ");
- qDebug() << QMediaImageViewer::PlayingState;
- QTest::ignoreMessage(QtDebugMsg, "QMediaImageViewer::NoMedia ");
- qDebug() << QMediaImageViewer::NoMedia;
-}
-
-void tst_QMediaImageViewer::mediaChanged_signal()
-{
- QMediaContent imageMedia(imageUrl("image.png"));
- QMediaImageViewer viewer;
- viewer.setTimeout(250);
- viewer.setNotifyInterval(150);
-
- QSignalSpy spy(&viewer, SIGNAL(mediaChanged(QMediaContent)));
- QVERIFY(spy.size() == 0);
-
- viewer.setMedia(imageMedia);
- QVERIFY(spy.size() == 1);
-}
-
-QTEST_MAIN(tst_QMediaImageViewer)
-
-#include "tst_qmediaimageviewer.moc"
diff --git a/tests/auto/qmediaimageviewerwidgets/images.qrc b/tests/auto/qmediaimageviewerwidgets/images.qrc
deleted file mode 100644
index 1d4edce..0000000
--- a/tests/auto/qmediaimageviewerwidgets/images.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/image.png</file>
- </qresource>
-</RCC>
diff --git a/tests/auto/qmediaimageviewerwidgets/images/image.png b/tests/auto/qmediaimageviewerwidgets/images/image.png
deleted file mode 100644
index a24db1b..0000000
--- a/tests/auto/qmediaimageviewerwidgets/images/image.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaimageviewerwidgets/qmediaimageviewerwidgets.pro b/tests/auto/qmediaimageviewerwidgets/qmediaimageviewerwidgets.pro
deleted file mode 100644
index a37ae88..0000000
--- a/tests/auto/qmediaimageviewerwidgets/qmediaimageviewerwidgets.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaimageviewerwidgets
-
-QT += multimedia-private multimediawidgets-private network testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaimageviewerwidgets.cpp
-
-RESOURCES += \
- images.qrc
-
-!contains(QT_CONFIG, no-jpeg):DEFINES += QTEST_HAVE_JPEG
-
-wince* {
- !contains(QT_CONFIG, no-jpeg): DEPLOYMENT_PLUGIN += qjpeg
-}
-QT+=widgets
diff --git a/tests/auto/qmediaimageviewerwidgets/tst_qmediaimageviewerwidgets.cpp b/tests/auto/qmediaimageviewerwidgets/tst_qmediaimageviewerwidgets.cpp
deleted file mode 100644
index 80c745f..0000000
--- a/tests/auto/qmediaimageviewerwidgets/tst_qmediaimageviewerwidgets.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <qtmultimediadefs.h>
-#include <QtTest/QtTest>
-
-#include <QtCore/qdir.h>
-
-#include <qgraphicsvideoitem.h>
-#include <qmediaimageviewer.h>
-#include <private/qmediaimageviewerservice_p.h>
-#include <qmediaplaylist.h>
-#include <qmediaservice.h>
-#include <qvideorenderercontrol.h>
-#include <qvideowidget.h>
-#include <qvideowidgetcontrol.h>
-
-#include <qabstractvideosurface.h>
-#include <qvideosurfaceformat.h>
-
-QT_USE_NAMESPACE
-
-class tst_QMediaImageViewerWidgets : public QObject
-{
- Q_OBJECT
-private slots:
- void setVideoOutput();
-};
-
-class QtTestVideoSurface : public QAbstractVideoSurface
-{
-public:
- QList<QVideoFrame::PixelFormat> supportedPixelFormats(
- QAbstractVideoBuffer::HandleType handleType) const {
- QList<QVideoFrame::PixelFormat> formats;
- if (handleType == QAbstractVideoBuffer::NoHandle) {
- formats << QVideoFrame::Format_RGB32;
- }
- return formats;
- }
-
- QVideoFrame frame() const { return m_frame; }
-
- bool present(const QVideoFrame &frame) { m_frame = frame; return true; }
-
-private:
- QVideoFrame m_frame;
-};
-
-void tst_QMediaImageViewerWidgets::setVideoOutput()
-{
- QMediaImageViewer imageViewer;
- imageViewer.setMedia(QMediaContent(QUrl("qrc:///images/image.png")));
-
- connect(&imageViewer, SIGNAL(mediaStatusChanged(QMediaImageViewer::MediaStatus)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
- QTestEventLoop::instance().enterLoop(2);
-
- if (imageViewer.mediaStatus() != QMediaImageViewer::LoadedMedia)
- QSKIP("failed to load test image", SkipSingle);
-
- QVideoWidget widget;
- QGraphicsVideoItem item;
- QtTestVideoSurface surface;
-
- imageViewer.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == &imageViewer);
-
- imageViewer.setVideoOutput(&item);
- QVERIFY(widget.mediaObject() == 0);
- QVERIFY(item.mediaObject() == &imageViewer);
-
- imageViewer.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(item.mediaObject() == 0);
-
- imageViewer.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == &imageViewer);
-
- imageViewer.setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
- QVERIFY(widget.mediaObject() == 0);
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
-
- imageViewer.setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(!surface.isActive());
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
-
- imageViewer.setVideoOutput(&widget);
- QVERIFY(!surface.isActive());
- QVERIFY(widget.mediaObject() == &imageViewer);
-
- imageViewer.setVideoOutput(&surface);
- QVERIFY(surface.isActive());
- QVERIFY(widget.mediaObject() == 0);
-}
-
-QTEST_MAIN(tst_QMediaImageViewerWidgets)
-
-#include "tst_qmediaimageviewerwidgets.moc"
diff --git a/tests/auto/qmediaobject/main.cpp b/tests/auto/qmediaobject/main.cpp
deleted file mode 100644
index 5e82276..0000000
--- a/tests/auto/qmediaobject/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtCore/qcoreapplication.h>
-#include <QtTest/QtTest>
-
-#include "tst_qmediaobject.h"
-
-int main(int argc, char**argv)
-{
- QCoreApplication app(argc,argv);
- int ret;
- tst_QMediaObject test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qmediaobject/qmediaobject.pro b/tests/auto/qmediaobject/qmediaobject.pro
deleted file mode 100644
index 01ee43e..0000000
--- a/tests/auto/qmediaobject/qmediaobject.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaobject
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-include (../qmultimedia_common/mockrecorder.pri)
-
-HEADERS+= tst_qmediaobject.h
-SOURCES += main.cpp tst_qmediaobject.cpp
-
diff --git a/tests/auto/qmediaobject/tst_qmediaobject.cpp b/tests/auto/qmediaobject/tst_qmediaobject.cpp
deleted file mode 100644
index dde2936..0000000
--- a/tests/auto/qmediaobject/tst_qmediaobject.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qmediaobject.h"
-
-#include "mockmediarecorderservice.h"
-#include "mockmediaserviceprovider.h"
-
-QT_USE_NAMESPACE
-
-void tst_QMediaObject::propertyWatch()
-{
- QtTestMediaObject object;
- object.setNotifyInterval(0);
-
- QEventLoop loop;
- connect(&object, SIGNAL(aChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop()));
- connect(&object, SIGNAL(bChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop()));
- connect(&object, SIGNAL(cChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QSignalSpy aSpy(&object, SIGNAL(aChanged(int)));
- QSignalSpy bSpy(&object, SIGNAL(bChanged(int)));
- QSignalSpy cSpy(&object, SIGNAL(cChanged(int)));
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(aSpy.count(), 0);
- QCOMPARE(bSpy.count(), 0);
- QCOMPARE(cSpy.count(), 0);
-
- int aCount = 0;
- int bCount = 0;
- int cCount = 0;
-
- object.addPropertyWatch("a");
-
- QTestEventLoop::instance().enterLoop(1);
-
- QVERIFY(aSpy.count() > aCount);
- QCOMPARE(bSpy.count(), 0);
- QCOMPARE(cSpy.count(), 0);
- QCOMPARE(aSpy.last().value(0).toInt(), 0);
-
- aCount = aSpy.count();
-
- object.setA(54);
- object.setB(342);
- object.setC(233);
-
- QTestEventLoop::instance().enterLoop(1);
-
- QVERIFY(aSpy.count() > aCount);
- QCOMPARE(bSpy.count(), 0);
- QCOMPARE(cSpy.count(), 0);
- QCOMPARE(aSpy.last().value(0).toInt(), 54);
-
- aCount = aSpy.count();
-
- object.addPropertyWatch("b");
- object.addPropertyWatch("d");
- object.removePropertyWatch("e");
- object.setA(43);
- object.setB(235);
- object.setC(90);
-
- QTestEventLoop::instance().enterLoop(1);
-
- QVERIFY(aSpy.count() > aCount);
- QVERIFY(bSpy.count() > bCount);
- QCOMPARE(cSpy.count(), 0);
- QCOMPARE(aSpy.last().value(0).toInt(), 43);
- QCOMPARE(bSpy.last().value(0).toInt(), 235);
-
- aCount = aSpy.count();
- bCount = bSpy.count();
-
- object.removePropertyWatch("a");
- object.addPropertyWatch("c");
- object.addPropertyWatch("e");
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(aSpy.count(), aCount);
- QVERIFY(bSpy.count() > bCount);
- QVERIFY(cSpy.count() > cCount);
- QCOMPARE(bSpy.last().value(0).toInt(), 235);
- QCOMPARE(cSpy.last().value(0).toInt(), 90);
-
- bCount = bSpy.count();
- cCount = cSpy.count();
-
- object.setA(435);
- object.setC(9845);
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(aSpy.count(), aCount);
- QVERIFY(bSpy.count() > bCount);
- QVERIFY(cSpy.count() > cCount);
- QCOMPARE(bSpy.last().value(0).toInt(), 235);
- QCOMPARE(cSpy.last().value(0).toInt(), 9845);
-
- bCount = bSpy.count();
- cCount = cSpy.count();
-
- object.setA(8432);
- object.setB(324);
- object.setC(443);
- object.removePropertyWatch("c");
- object.removePropertyWatch("d");
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(aSpy.count(), aCount);
- QVERIFY(bSpy.count() > bCount);
- QCOMPARE(cSpy.count(), cCount);
- QCOMPARE(bSpy.last().value(0).toInt(), 324);
- QCOMPARE(cSpy.last().value(0).toInt(), 9845);
-
- bCount = bSpy.count();
-
- object.removePropertyWatch("b");
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(aSpy.count(), aCount);
- QCOMPARE(bSpy.count(), bCount);
- QCOMPARE(cSpy.count(), cCount);
-}
-
-void tst_QMediaObject::setupNotifyTests()
-{
- QTest::addColumn<int>("interval");
- QTest::addColumn<int>("count");
-
- QTest::newRow("single 750ms")
- << 750
- << 1;
- QTest::newRow("single 600ms")
- << 600
- << 1;
- QTest::newRow("x3 300ms")
- << 300
- << 3;
- QTest::newRow("x5 180ms")
- << 180
- << 5;
-}
-
-void tst_QMediaObject::notifySignals_data()
-{
- setupNotifyTests();
-}
-
-void tst_QMediaObject::notifySignals()
-{
- QFETCH(int, interval);
- QFETCH(int, count);
-
- QtTestMediaObject object;
- object.setNotifyInterval(interval);
- object.addPropertyWatch("a");
-
- QSignalSpy spy(&object, SIGNAL(aChanged(int)));
-
- QTestEventLoop::instance().enterLoop(1);
-
- QCOMPARE(spy.count(), count);
-}
-
-void tst_QMediaObject::notifyInterval_data()
-{
- setupNotifyTests();
-}
-
-void tst_QMediaObject::notifyInterval()
-{
- QFETCH(int, interval);
-
- QtTestMediaObject object;
- QSignalSpy spy(&object, SIGNAL(notifyIntervalChanged(int)));
-
- object.setNotifyInterval(interval);
- QCOMPARE(object.notifyInterval(), interval);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().value(0).toInt(), interval);
-
- object.setNotifyInterval(interval);
- QCOMPARE(object.notifyInterval(), interval);
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_QMediaObject::nullMetaDataControl()
-{
- const QString titleKey(QLatin1String("Title"));
- const QString title(QLatin1String("Host of Seraphim"));
-
- QtTestMetaDataService service;
- service.hasMetaData = false;
-
- QtTestMediaObject object(&service);
-
- QSignalSpy spy(&object, SIGNAL(metaDataChanged()));
-
- QCOMPARE(object.isMetaDataAvailable(), false);
-
- QCOMPARE(object.metaData(QtMultimedia::Title).toString(), QString());
- QCOMPARE(object.extendedMetaData(titleKey).toString(), QString());
- QCOMPARE(object.availableMetaData(), QList<QtMultimedia::MetaData>());
- QCOMPARE(object.availableExtendedMetaData(), QStringList());
- QCOMPARE(spy.count(), 0);
-}
-
-void tst_QMediaObject::isMetaDataAvailable()
-{
- QtTestMetaDataService service;
- service.metaData.setMetaDataAvailable(false);
-
- QtTestMediaObject object(&service);
- QCOMPARE(object.isMetaDataAvailable(), false);
-
- QSignalSpy spy(&object, SIGNAL(metaDataAvailableChanged(bool)));
- service.metaData.setMetaDataAvailable(true);
-
- QCOMPARE(object.isMetaDataAvailable(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.at(0).at(0).toBool(), true);
-
- service.metaData.setMetaDataAvailable(false);
-
- QCOMPARE(object.isMetaDataAvailable(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.at(1).at(0).toBool(), false);
-}
-
-void tst_QMediaObject::metaDataChanged()
-{
- QtTestMetaDataService service;
- QtTestMediaObject object(&service);
-
- QSignalSpy spy(&object, SIGNAL(metaDataChanged()));
-
- service.metaData.metaDataChanged();
- QCOMPARE(spy.count(), 1);
-
- service.metaData.metaDataChanged();
- QCOMPARE(spy.count(), 2);
-}
-
-void tst_QMediaObject::metaData_data()
-{
- QTest::addColumn<QString>("artist");
- QTest::addColumn<QString>("title");
- QTest::addColumn<QString>("genre");
-
- QTest::newRow("")
- << QString::fromLatin1("Dead Can Dance")
- << QString::fromLatin1("Host of Seraphim")
- << QString::fromLatin1("Awesome");
-}
-
-void tst_QMediaObject::metaData()
-{
- QFETCH(QString, artist);
- QFETCH(QString, title);
- QFETCH(QString, genre);
-
- QtTestMetaDataService service;
- service.metaData.populateMetaData();
-
- QtTestMediaObject object(&service);
- QVERIFY(object.availableMetaData().isEmpty());
-
- service.metaData.m_data.insert(QtMultimedia::AlbumArtist, artist);
- service.metaData.m_data.insert(QtMultimedia::Title, title);
- service.metaData.m_data.insert(QtMultimedia::Genre, genre);
-
- QCOMPARE(object.metaData(QtMultimedia::AlbumArtist).toString(), artist);
- QCOMPARE(object.metaData(QtMultimedia::Title).toString(), title);
-
- QList<QtMultimedia::MetaData> metaDataKeys = object.availableMetaData();
- QCOMPARE(metaDataKeys.size(), 3);
- QVERIFY(metaDataKeys.contains(QtMultimedia::AlbumArtist));
- QVERIFY(metaDataKeys.contains(QtMultimedia::Title));
- QVERIFY(metaDataKeys.contains(QtMultimedia::Genre));
-}
-
-void tst_QMediaObject::extendedMetaData()
-{
- QFETCH(QString, artist);
- QFETCH(QString, title);
- QFETCH(QString, genre);
-
- QtTestMetaDataService service;
- QtTestMediaObject object(&service);
- QVERIFY(object.availableExtendedMetaData().isEmpty());
-
- service.metaData.m_extendedData.insert(QLatin1String("Artist"), artist);
- service.metaData.m_extendedData.insert(QLatin1String("Title"), title);
- service.metaData.m_extendedData.insert(QLatin1String("Genre"), genre);
-
- QCOMPARE(object.extendedMetaData(QLatin1String("Artist")).toString(), artist);
- QCOMPARE(object.extendedMetaData(QLatin1String("Title")).toString(), title);
-
- QStringList extendedKeys = object.availableExtendedMetaData();
- QCOMPARE(extendedKeys.size(), 3);
- QVERIFY(extendedKeys.contains(QLatin1String("Artist")));
- QVERIFY(extendedKeys.contains(QLatin1String("Title")));
- QVERIFY(extendedKeys.contains(QLatin1String("Genre")));
-}
-
-void tst_QMediaObject::availability()
-{
- QtTestMediaObject nullObject(0);
- QCOMPARE(nullObject.isAvailable(), false);
- QCOMPARE(nullObject.availabilityError(), QtMultimedia::ServiceMissingError);
-
- QtTestMetaDataService service;
- QtTestMediaObject object(&service);
- QCOMPARE(object.isAvailable(), true);
- QCOMPARE(object.availabilityError(), QtMultimedia::NoError);
-}
-
- void tst_QMediaObject::service()
- {
- // Create the mediaobject with service.
- QtTestMetaDataService service;
- QtTestMediaObject mediaObject1(&service);
-
- // Get service and Compare if it equal to the service passed as an argument in mediaObject1.
- QMediaService *service1 = mediaObject1.service();
- QVERIFY(service1 != NULL);
- QCOMPARE(service1,&service);
-
- // Create the mediaobject with empty service and verify that service() returns NULL.
- QtTestMediaObject mediaObject2;
- QMediaService *service2 = mediaObject2.service();
- QVERIFY(service2 == NULL);
- }
-
- void tst_QMediaObject::availabilityChangedSignal()
- {
- // The availabilityChangedSignal is implemented in QAudioCaptureSource. So using it to test the signal.
- MockMediaRecorderService *mockAudioSourceService = new MockMediaRecorderService;
- MockMediaServiceProvider *mockProvider = new MockMediaServiceProvider(mockAudioSourceService);
- QAudioCaptureSource *audiosource = new QAudioCaptureSource(0, mockProvider);
-
- QSignalSpy spy(audiosource, SIGNAL(availabilityChanged(bool)));
-
- // Add the end points and verify if the availablity changed signal emitted with argument true.
- QMetaObject::invokeMethod(mockAudioSourceService->mockAudioEndpointSelector, "addEndpoints");
- QVERIFY(spy.count() == 1);
- bool available = qvariant_cast<bool>(spy.at(0).at(0));
- QVERIFY(available == true);
-
- spy.clear();
-
- // Remove all endpoints and verify if the signal is emitted with argument false.
- QMetaObject::invokeMethod(mockAudioSourceService->mockAudioEndpointSelector, "removeEndpoints");
- QVERIFY(spy.count() == 1);
- available = qvariant_cast<bool>(spy.at(0).at(0));
- QVERIFY(available == false);
- }
diff --git a/tests/auto/qmediaobject/tst_qmediaobject.h b/tests/auto/qmediaobject/tst_qmediaobject.h
deleted file mode 100644
index 5bc70c4..0000000
--- a/tests/auto/qmediaobject/tst_qmediaobject.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QMEDIAOBJECT_H
-#define TST_QMEDIAOBJECT_H
-
-#include <QtTest/QtTest>
-
-#include <QtCore/qtimer.h>
-
-#include <qmediaobject.h>
-#include <qmediaservice.h>
-#include <qmetadatareadercontrol.h>
-#include <qaudiocapturesource.h>
-#include <qaudioendpointselector.h>
-
-//TESTED_COMPONENT=src/multimedia
-
-#include "mockmetadatareadercontrol.h"
-
-class QtTestMetaDataService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestMetaDataService(QObject *parent = 0):QMediaService(parent), metaDataRef(0), hasMetaData(true)
- {
- }
-
- QMediaControl *requestControl(const char *iid)
- {
- if (hasMetaData && qstrcmp(iid, QMetaDataReaderControl_iid) == 0)
- return &metaData;
- else
- return 0;
- }
-
- void releaseControl(QMediaControl *)
- {
- }
-
- MockMetaDataReaderControl metaData;
- int metaDataRef;
- bool hasMetaData;
-};
-
-QT_USE_NAMESPACE
-class tst_QMediaObject : public QObject
-{
- Q_OBJECT
-
-private slots:
- void propertyWatch();
- void notifySignals_data();
- void notifySignals();
- void notifyInterval_data();
- void notifyInterval();
-
- void nullMetaDataControl();
- void isMetaDataAvailable();
- void metaDataChanged();
- void metaData_data();
- void metaData();
- void availability();
- void extendedMetaData_data() { metaData_data(); }
- void extendedMetaData();
-
- void service();
- void availabilityChangedSignal();
-
-private:
- void setupNotifyTests();
-};
-
-class QtTestMediaObject : public QMediaObject
-{
- Q_OBJECT
- Q_PROPERTY(int a READ a WRITE setA NOTIFY aChanged)
- Q_PROPERTY(int b READ b WRITE setB NOTIFY bChanged)
- Q_PROPERTY(int c READ c WRITE setC NOTIFY cChanged)
- Q_PROPERTY(int d READ d WRITE setD)
-public:
- QtTestMediaObject(QMediaService *service = 0): QMediaObject(0, service), m_a(0), m_b(0), m_c(0), m_d(0) {}
-
- using QMediaObject::addPropertyWatch;
- using QMediaObject::removePropertyWatch;
-
- int a() const { return m_a; }
- void setA(int a) { m_a = a; }
-
- int b() const { return m_b; }
- void setB(int b) { m_b = b; }
-
- int c() const { return m_c; }
- void setC(int c) { m_c = c; }
-
- int d() const { return m_d; }
- void setD(int d) { m_d = d; }
-
-Q_SIGNALS:
- void aChanged(int a);
- void bChanged(int b);
- void cChanged(int c);
-
-private:
- int m_a;
- int m_b;
- int m_c;
- int m_d;
-};
-#endif //TST_QMEDIAOBJECT_H
diff --git a/tests/auto/qmediaplayer/main.cpp b/tests/auto/qmediaplayer/main.cpp
deleted file mode 100755
index 417dcd3..0000000
--- a/tests/auto/qmediaplayer/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtCore/qcoreapplication.h>
-#include <QtTest/QtTest>
-
-#include "tst_qmediaplayer.h"
-
-int main(int argc, char**argv)
-{
- QCoreApplication app(argc,argv);
- int ret;
- tst_QMediaPlayer test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qmediaplayer/qmediaplayer.pro b/tests/auto/qmediaplayer/qmediaplayer.pro
deleted file mode 100644
index f770f1e..0000000
--- a/tests/auto/qmediaplayer/qmediaplayer.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaplayer
-
-QT += network multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += tst_qmediaplayer.h
-SOURCES += main.cpp tst_qmediaplayer.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockplayer.pri)
diff --git a/tests/auto/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/qmediaplayer/tst_qmediaplayer.cpp
deleted file mode 100644
index 383a4c4..0000000
--- a/tests/auto/qmediaplayer/tst_qmediaplayer.cpp
+++ /dev/null
@@ -1,1050 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qmediaplayer.h"
-
-#include <QtNetwork/qnetworkconfigmanager.h>
-
-// Encouraging successful diversity through copy and paste.
-#ifndef QTRY_COMPARE
-#define QTRY_COMPARE(__expr, __expected) \
- do { \
- const int __step = 50; \
- const int __timeout = 5000; \
- 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 = 5000; \
- if (!(__expr)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeout && !(__expr); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QVERIFY(__expr); \
- } while(0)
-#endif
-
-QT_USE_NAMESPACE
-
-#include "mockvideosurface.h"
-
-void tst_QMediaPlayer::initTestCase_data()
-{
- QTest::addColumn<bool>("valid");
- QTest::addColumn<QMediaPlayer::State>("state");
- QTest::addColumn<QMediaPlayer::MediaStatus>("status");
- QTest::addColumn<QMediaContent>("mediaContent");
- QTest::addColumn<qint64>("duration");
- QTest::addColumn<qint64>("position");
- QTest::addColumn<bool>("seekable");
- QTest::addColumn<int>("volume");
- QTest::addColumn<bool>("muted");
- QTest::addColumn<bool>("videoAvailable");
- QTest::addColumn<int>("bufferStatus");
- QTest::addColumn<qreal>("playbackRate");
- QTest::addColumn<QMediaPlayer::Error>("error");
- QTest::addColumn<QString>("errorString");
-
- QTest::newRow("invalid") << false << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
- QMediaContent() << qint64(0) << qint64(0) << false << 0 << false << false << 0 <<
- qreal(0) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+null") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
- QMediaContent() << qint64(0) << qint64(0) << false << 0 << false << false << 50 <<
- qreal(0) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+content+stopped") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
- QMediaContent(QUrl("file:///some.mp3")) << qint64(0) << qint64(0) << false << 50 << false << false << 0 <<
- qreal(1) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+content+playing") << true << QMediaPlayer::PlayingState << QMediaPlayer::LoadedMedia <<
- QMediaContent(QUrl("file:///some.mp3")) << qint64(10000) << qint64(10) << true << 50 << true << false << 0 <<
- qreal(1) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+content+paused") << true << QMediaPlayer::PausedState << QMediaPlayer::LoadedMedia <<
- QMediaContent(QUrl("file:///some.mp3")) << qint64(10000) << qint64(10) << true << 50 << true << false << 0 <<
- qreal(1) << QMediaPlayer::NoError << QString();
- QTest::newRow("valud+streaming") << true << QMediaPlayer::PlayingState << QMediaPlayer::LoadedMedia <<
- QMediaContent(QUrl("http://example.com/stream")) << qint64(10000) << qint64(10000) << false << 50 << false << true << 0 <<
- qreal(1) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+error") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
- QMediaContent(QUrl("http://example.com/stream")) << qint64(0) << qint64(0) << false << 50 << false << false << 0 <<
- qreal(0) << QMediaPlayer::ResourceError << QString("Resource unavailable");
-}
-
-void tst_QMediaPlayer::initTestCase()
-{
- qRegisterMetaType<QMediaPlayer::State>("QMediaPlayer::State");
- qRegisterMetaType<QMediaPlayer::Error>("QMediaPlayer::Error");
- qRegisterMetaType<QMediaPlayer::MediaStatus>("QMediaPlayer::MediaStatus");
- qRegisterMetaType<QMediaContent>("QMediaContent");
-
- mockService = new MockMediaPlayerService;
- mockProvider = new MockMediaServiceProvider(mockService, true);
- player = new QMediaPlayer(0, 0, mockProvider);
-}
-
-void tst_QMediaPlayer::cleanupTestCase()
-{
- delete player;
-}
-
-void tst_QMediaPlayer::init()
-{
- mockService->reset();
-}
-
-void tst_QMediaPlayer::cleanup()
-{
-}
-
-void tst_QMediaPlayer::testNullService()
-{
- MockMediaServiceProvider provider(0);
- QMediaPlayer player(0, 0, &provider);
-
- const QIODevice *nullDevice = 0;
-
- QCOMPARE(player.media(), QMediaContent());
- QCOMPARE(player.mediaStream(), nullDevice);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
- QCOMPARE(player.duration(), qint64(-1));
- QCOMPARE(player.position(), qint64(0));
- QCOMPARE(player.volume(), 0);
- QCOMPARE(player.isMuted(), false);
- QCOMPARE(player.isVideoAvailable(), false);
- QCOMPARE(player.bufferStatus(), 0);
- QCOMPARE(player.isSeekable(), false);
- QCOMPARE(player.playbackRate(), qreal(0));
- QCOMPARE(player.error(), QMediaPlayer::ServiceMissingError);
- QCOMPARE(player.isAvailable(), false);
- QCOMPARE(player.availabilityError(), QtMultimedia::ServiceMissingError);
-
- {
- QFETCH_GLOBAL(QMediaContent, mediaContent);
-
- QSignalSpy spy(&player, SIGNAL(mediaChanged(QMediaContent)));
- QFile file;
-
- player.setMedia(mediaContent, &file);
- QCOMPARE(player.media(), QMediaContent());
- QCOMPARE(player.mediaStream(), nullDevice);
- QCOMPARE(spy.count(), 0);
- } {
- QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
-
- player.play();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
- QCOMPARE(stateSpy.count(), 0);
- QCOMPARE(statusSpy.count(), 0);
-
- player.pause();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
- QCOMPARE(stateSpy.count(), 0);
- QCOMPARE(statusSpy.count(), 0);
-
- player.stop();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
- QCOMPARE(stateSpy.count(), 0);
- QCOMPARE(statusSpy.count(), 0);
- } {
- QFETCH_GLOBAL(int, volume);
- QFETCH_GLOBAL(bool, muted);
-
- QSignalSpy volumeSpy(&player, SIGNAL(volumeChanged(int)));
- QSignalSpy mutingSpy(&player, SIGNAL(mutedChanged(bool)));
-
- player.setVolume(volume);
- QCOMPARE(player.volume(), 0);
- QCOMPARE(volumeSpy.count(), 0);
-
- player.setMuted(muted);
- QCOMPARE(player.isMuted(), false);
- QCOMPARE(mutingSpy.count(), 0);
- } {
- QFETCH_GLOBAL(qint64, position);
-
- QSignalSpy spy(&player, SIGNAL(positionChanged(qint64)));
-
- player.setPosition(position);
- QCOMPARE(player.position(), qint64(0));
- QCOMPARE(spy.count(), 0);
- } {
- QFETCH_GLOBAL(qreal, playbackRate);
-
- QSignalSpy spy(&player, SIGNAL(playbackRateChanged(qreal)));
-
- player.setPlaybackRate(playbackRate);
- QCOMPARE(player.playbackRate(), qreal(0));
- QCOMPARE(spy.count(), 0);
- } {
- QMediaPlaylist playlist;
- player.setPlaylist(&playlist);
-
- QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
-
- playlist.addMedia(QUrl("http://example.com/stream"));
- playlist.addMedia(QUrl("file:///some.mp3"));
-
- playlist.setCurrentIndex(0);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(player.media(), QMediaContent());
- QCOMPARE(mediaSpy.count(), 0);
- QCOMPARE(statusSpy.count(), 0);
-
- playlist.next();
- QCOMPARE(playlist.currentIndex(), 1);
- QCOMPARE(player.media(), QMediaContent());
- QCOMPARE(mediaSpy.count(), 0);
- QCOMPARE(statusSpy.count(), 0);
- }
-}
-
-void tst_QMediaPlayer::testValid()
-{
- /*
- QFETCH_GLOBAL(bool, valid);
-
- mockService->setIsValid(valid);
- QCOMPARE(player->isValid(), valid);
- */
-}
-
-void tst_QMediaPlayer::testMedia()
-{
- QFETCH_GLOBAL(QMediaContent, mediaContent);
-
- mockService->setMedia(mediaContent);
- QCOMPARE(player->media(), mediaContent);
-
- QBuffer stream;
- player->setMedia(mediaContent, &stream);
- QCOMPARE(player->media(), mediaContent);
- QCOMPARE((QBuffer*)player->mediaStream(), &stream);
-}
-
-void tst_QMediaPlayer::testDuration()
-{
- QFETCH_GLOBAL(qint64, duration);
-
- mockService->setDuration(duration);
- QVERIFY(player->duration() == duration);
-}
-
-void tst_QMediaPlayer::testPosition()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(bool, seekable);
- QFETCH_GLOBAL(qint64, position);
- QFETCH_GLOBAL(qint64, duration);
-
- mockService->setIsValid(valid);
- mockService->setSeekable(seekable);
- mockService->setPosition(position);
- mockService->setDuration(duration);
- QVERIFY(player->isSeekable() == seekable);
- QVERIFY(player->position() == position);
- QVERIFY(player->duration() == duration);
-
- if (seekable) {
- { QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(position);
- QCOMPARE(player->position(), position);
- QCOMPARE(spy.count(), 0); }
-
- mockService->setPosition(position);
- { QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(0);
- QCOMPARE(player->position(), qint64(0));
- QCOMPARE(spy.count(), position == 0 ? 0 : 1); }
-
- mockService->setPosition(position);
- { QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(duration);
- QCOMPARE(player->position(), duration);
- QCOMPARE(spy.count(), position == duration ? 0 : 1); }
-
- mockService->setPosition(position);
- { QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(-1);
- QCOMPARE(player->position(), qint64(0));
- QCOMPARE(spy.count(), position == 0 ? 0 : 1); }
-
- mockService->setPosition(position);
- { QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(duration + 1);
- QCOMPARE(player->position(), duration);
- QCOMPARE(spy.count(), position == duration ? 0 : 1); }
- }
- else {
- QSignalSpy spy(player, SIGNAL(positionChanged(qint64)));
- player->setPosition(position);
-
- QCOMPARE(player->position(), position);
- QCOMPARE(spy.count(), 0);
- }
-}
-
-void tst_QMediaPlayer::testVolume()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(int, volume);
-
- mockService->setVolume(volume);
- QVERIFY(player->volume() == volume);
-
- if (valid) {
- { QSignalSpy spy(player, SIGNAL(volumeChanged(int)));
- player->setVolume(10);
- QCOMPARE(player->volume(), 10);
- QCOMPARE(spy.count(), 1); }
-
- { QSignalSpy spy(player, SIGNAL(volumeChanged(int)));
- player->setVolume(-1000);
- QCOMPARE(player->volume(), 0);
- QCOMPARE(spy.count(), 1); }
-
- { QSignalSpy spy(player, SIGNAL(volumeChanged(int)));
- player->setVolume(100);
- QCOMPARE(player->volume(), 100);
- QCOMPARE(spy.count(), 1); }
-
- { QSignalSpy spy(player, SIGNAL(volumeChanged(int)));
- player->setVolume(1000);
- QCOMPARE(player->volume(), 100);
- QCOMPARE(spy.count(), 0); }
- }
-}
-
-void tst_QMediaPlayer::testMuted()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(bool, muted);
- QFETCH_GLOBAL(int, volume);
-
- if (valid) {
- mockService->setMuted(muted);
- mockService->setVolume(volume);
- QVERIFY(player->isMuted() == muted);
-
- QSignalSpy spy(player, SIGNAL(mutedChanged(bool)));
- player->setMuted(!muted);
- QCOMPARE(player->isMuted(), !muted);
- QCOMPARE(player->volume(), volume);
- QCOMPARE(spy.count(), 1);
- }
-}
-
-void tst_QMediaPlayer::testVideoAvailable()
-{
- QFETCH_GLOBAL(bool, videoAvailable);
-
- mockService->setVideoAvailable(videoAvailable);
- QVERIFY(player->isVideoAvailable() == videoAvailable);
-}
-
-void tst_QMediaPlayer::testBufferStatus()
-{
- QFETCH_GLOBAL(int, bufferStatus);
-
- mockService->setBufferStatus(bufferStatus);
- QVERIFY(player->bufferStatus() == bufferStatus);
-}
-
-void tst_QMediaPlayer::testSeekable()
-{
- QFETCH_GLOBAL(bool, seekable);
-
- mockService->setSeekable(seekable);
- QVERIFY(player->isSeekable() == seekable);
-}
-
-void tst_QMediaPlayer::testPlaybackRate()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(qreal, playbackRate);
-
- if (valid) {
- mockService->setPlaybackRate(playbackRate);
- QVERIFY(player->playbackRate() == playbackRate);
-
- QSignalSpy spy(player, SIGNAL(playbackRateChanged(qreal)));
- player->setPlaybackRate(playbackRate + 0.5f);
- QCOMPARE(player->playbackRate(), playbackRate + 0.5f);
- QCOMPARE(spy.count(), 1);
- }
-}
-
-void tst_QMediaPlayer::testError()
-{
- QFETCH_GLOBAL(QMediaPlayer::Error, error);
-
- mockService->setError(error);
- QVERIFY(player->error() == error);
-}
-
-void tst_QMediaPlayer::testErrorString()
-{
- QFETCH_GLOBAL(QString, errorString);
-
- mockService->setErrorString(errorString);
- QVERIFY(player->errorString() == errorString);
-}
-
-void tst_QMediaPlayer::testIsAvailable()
-{
- QCOMPARE(player->isAvailable(), true);
- QCOMPARE(player->availabilityError(), QtMultimedia::NoError);
-}
-
-void tst_QMediaPlayer::testService()
-{
- /*
- QFETCH_GLOBAL(bool, valid);
-
- mockService->setIsValid(valid);
-
- if (valid)
- QVERIFY(player->service() != 0);
- else
- QVERIFY(player->service() == 0);
- */
-}
-
-void tst_QMediaPlayer::testPlay()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(QMediaContent, mediaContent);
- QFETCH_GLOBAL(QMediaPlayer::State, state);
-
- mockService->setIsValid(valid);
- mockService->setState(state);
- mockService->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
-
- QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
-
- player->play();
-
- if (!valid || mediaContent.isNull()) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(spy.count(), 0);
- }
- else {
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(spy.count(), state == QMediaPlayer::PlayingState ? 0 : 1);
- }
-}
-
-void tst_QMediaPlayer::testPause()
-{
- QFETCH_GLOBAL(bool, valid);
- QFETCH_GLOBAL(QMediaContent, mediaContent);
- QFETCH_GLOBAL(QMediaPlayer::State, state);
-
- mockService->setIsValid(valid);
- mockService->setState(state);
- mockService->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
-
- QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
-
- player->pause();
-
- if (!valid || mediaContent.isNull()) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(spy.count(), 0);
- }
- else {
- QCOMPARE(player->state(), QMediaPlayer::PausedState);
- QCOMPARE(spy.count(), state == QMediaPlayer::PausedState ? 0 : 1);
- }
-}
-
-void tst_QMediaPlayer::testStop()
-{
- QFETCH_GLOBAL(QMediaContent, mediaContent);
- QFETCH_GLOBAL(QMediaPlayer::State, state);
-
- mockService->setState(state);
- mockService->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
-
- QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
-
- player->stop();
-
- if (mediaContent.isNull() || state == QMediaPlayer::StoppedState) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(spy.count(), 0);
- }
- else {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(spy.count(), 1);
- }
-}
-
-void tst_QMediaPlayer::testMediaStatus()
-{
- QFETCH_GLOBAL(int, bufferStatus);
- int bufferSignals = 0;
-
- player->setNotifyInterval(10);
-
- mockService->setMediaStatus(QMediaPlayer::NoMedia);
- mockService->setBufferStatus(bufferStatus);
-
- AutoConnection connection(
- player, SIGNAL(bufferStatusChanged(int)),
- &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QSignalSpy statusSpy(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy bufferSpy(player, SIGNAL(bufferStatusChanged(int)));
-
- QCOMPARE(player->mediaStatus(), QMediaPlayer::NoMedia);
-
- mockService->setMediaStatus(QMediaPlayer::LoadingMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::LoadingMedia);
- QCOMPARE(statusSpy.count(), 1);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::LoadingMedia);
-
- mockService->setMediaStatus(QMediaPlayer::LoadedMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::LoadedMedia);
- QCOMPARE(statusSpy.count(), 2);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::LoadedMedia);
-
- // Verify the bufferStatusChanged() signal isn't being emitted.
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(bufferSpy.count(), 0);
-
- mockService->setMediaStatus(QMediaPlayer::StalledMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::StalledMedia);
- QCOMPARE(statusSpy.count(), 3);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::StalledMedia);
-
- // Verify the bufferStatusChanged() signal is being emitted.
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(bufferSpy.count() > bufferSignals);
- QCOMPARE(bufferSpy.last().value(0).toInt(), bufferStatus);
- bufferSignals = bufferSpy.count();
-
- mockService->setMediaStatus(QMediaPlayer::BufferingMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::BufferingMedia);
- QCOMPARE(statusSpy.count(), 4);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::BufferingMedia);
-
- // Verify the bufferStatusChanged() signal is being emitted.
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(bufferSpy.count() > bufferSignals);
- QCOMPARE(bufferSpy.last().value(0).toInt(), bufferStatus);
- bufferSignals = bufferSpy.count();
-
- mockService->setMediaStatus(QMediaPlayer::BufferedMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::BufferedMedia);
- QCOMPARE(statusSpy.count(), 5);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::BufferedMedia);
-
- // Verify the bufferStatusChanged() signal isn't being emitted.
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(bufferSpy.count(), bufferSignals);
-
- mockService->setMediaStatus(QMediaPlayer::EndOfMedia);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::EndOfMedia);
- QCOMPARE(statusSpy.count(), 6);
-
- QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
- QMediaPlayer::EndOfMedia);
-}
-
-void tst_QMediaPlayer::testPlaylist()
-{
- QMediaContent content0(QUrl(QLatin1String("test://audio/song1.mp3")));
- QMediaContent content1(QUrl(QLatin1String("test://audio/song2.mp3")));
- QMediaContent content2(QUrl(QLatin1String("test://video/movie1.mp4")));
- QMediaContent content3(QUrl(QLatin1String("test://video/movie2.mp4")));
- QMediaContent content4(QUrl(QLatin1String("test://image/photo.jpg")));
-
- mockService->setIsValid(true);
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia);
-
- QMediaPlaylist *playlist = new QMediaPlaylist;
- player->setPlaylist(playlist);
-
- QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent)));
-
- // Test the player does nothing with an empty playlist attached.
- player->play();
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(player->media(), QMediaContent());
- QCOMPARE(stateSpy.count(), 0);
- QCOMPARE(mediaSpy.count(), 0);
-
- playlist->addMedia(content0);
- playlist->addMedia(content1);
- playlist->addMedia(content2);
- playlist->addMedia(content3);
-
- // Test changing the playlist position, changes the current media, but not the playing state.
- playlist->setCurrentIndex(1);
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 0);
- QCOMPARE(mediaSpy.count(), 1);
-
- // Test playing starts with the current media.
- player->play();
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(mediaSpy.count(), 1);
-
- // Test pausing doesn't change the current media.
- player->pause();
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::PausedState);
- QCOMPARE(stateSpy.count(), 2);
- QCOMPARE(mediaSpy.count(), 1);
-
- // Test stopping doesn't change the current media.
- player->stop();
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 3);
- QCOMPARE(mediaSpy.count(), 1);
-
- // Test when the player service reaches the end of the current media, the player moves onto
- // the next item without stopping.
- player->play();
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 4);
- QCOMPARE(mediaSpy.count(), 1);
-
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia);
- QCOMPARE(player->media(), content2);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 4);
- QCOMPARE(mediaSpy.count(), 2);
-
- // Test skipping the current media doesn't change the state.
- playlist->next();
- QCOMPARE(player->media(), content3);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 4);
- QCOMPARE(mediaSpy.count(), 3);
-
- // Test changing the current media while paused doesn't change the state.
- player->pause();
- mockService->setMediaStatus(QMediaPlayer::BufferedMedia);
- QCOMPARE(player->media(), content3);
- QCOMPARE(player->state(), QMediaPlayer::PausedState);
- QCOMPARE(stateSpy.count(), 5);
- QCOMPARE(mediaSpy.count(), 3);
-
- playlist->previous();
- QCOMPARE(player->media(), content2);
- QCOMPARE(player->state(), QMediaPlayer::PausedState);
- QCOMPARE(stateSpy.count(), 5);
- QCOMPARE(mediaSpy.count(), 4);
-
- // Test changing the current media while stopped doesn't change the state.
- player->stop();
- mockService->setMediaStatus(QMediaPlayer::LoadedMedia);
- QCOMPARE(player->media(), content2);
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 6);
- QCOMPARE(mediaSpy.count(), 4);
-
- playlist->next();
- QCOMPARE(player->media(), content3);
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 6);
- QCOMPARE(mediaSpy.count(), 5);
-
- // Test the player is stopped and the current media cleared when it reaches the end of the last
- // item in the playlist.
- player->play();
- QCOMPARE(player->media(), content3);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 7);
- QCOMPARE(mediaSpy.count(), 5);
-
- // Double up the signals to ensure some noise doesn't destabalize things.
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia);
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::EndOfMedia);
- QCOMPARE(player->media(), QMediaContent());
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 8);
- QCOMPARE(mediaSpy.count(), 6);
-
- // Test starts playing from the start of the playlist if there is no current media selected.
- player->play();
- QCOMPARE(player->media(), content0);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 9);
- QCOMPARE(mediaSpy.count(), 7);
-
- // Test deleting the playlist stops the player and clears the media it set.
- delete playlist;
- QCOMPARE(player->media(), QMediaContent());
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 10);
- QCOMPARE(mediaSpy.count(), 8);
-
- // Test the player works as normal with the playlist removed.
- player->play();
- QCOMPARE(player->media(), QMediaContent());
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.count(), 10);
- QCOMPARE(mediaSpy.count(), 8);
-
- player->setMedia(content1);
- player->play();
-
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(stateSpy.count(), 11);
- QCOMPARE(mediaSpy.count(), 9);
-
- // Test the player can bind to playlist again
- playlist = new QMediaPlaylist;
- player->setPlaylist(playlist);
-
- QCOMPARE(player->media(), QMediaContent());
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
-
- playlist->addMedia(content0);
- playlist->addMedia(content1);
- playlist->addMedia(content2);
- playlist->addMedia(content3);
-
- playlist->setCurrentIndex(1);
- QCOMPARE(player->media(), content1);
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
-
- // Test attaching the new playlist,
- // player should detach the current one
- QMediaPlaylist *playlist2 = new QMediaPlaylist;
- playlist2->addMedia(content1);
- playlist2->addMedia(content2);
- playlist2->addMedia(content3);
- playlist2->setCurrentIndex(2);
-
- player->play();
- player->setPlaylist(playlist2);
- QCOMPARE(player->media(), playlist2->currentMedia());
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
-
- playlist2->setCurrentIndex(1);
- QCOMPARE(player->media(), playlist2->currentMedia());
-
- {
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
- playlist.addMedia(content3);
- playlist.setCurrentIndex(1);
-
- player->setPlaylist(&playlist);
- QCOMPARE(player->playlist(), &playlist);
- QCOMPARE(player->media(), content2);
- } //playlist should be detached now
-
- QVERIFY(player->playlist() == 0);
- QCOMPARE(player->media(), QMediaContent());
-
- // Test when the player service encounters an invalid media, the player moves onto
- // the next item without stopping
- {
- QSignalSpy ss(player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy ms(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
-
- player->setPlaylist(playlist);
- player->play();
- QCOMPARE(ss.count(), 1);
-
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::InvalidMedia);
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QCOMPARE(player->mediaStatus(), QMediaPlayer::InvalidMedia);
- QCOMPARE(ss.count(), 1);
- QCOMPARE(ms.count(), 1);
-
- // NOTE: status should begin transitioning through to BufferedMedia.
- QCOMPARE(player->media(), content2);
- }
-
-}
-
-void tst_QMediaPlayer::testPlayerFlags()
-{
- MockMediaServiceProvider provider(0, true);
- QMediaPlayer::Flag flags = QMediaPlayer::LowLatency;
-
- QMediaPlayer player(0, flags, &provider);
- QMediaServiceProviderHint::Feature feature;
-
- if (flags & QMediaPlayer::LowLatency)
- {
- /* if the flag is low latency set the low latency play back for the service provider */
- feature = QMediaServiceProviderHint::LowLatencyPlayback;
- const QByteArray service(Q_MEDIASERVICE_MEDIAPLAYER);
- const QMediaServiceProviderHint providerHint(feature);
- /* request service for the service provider */
- provider.requestService(service,providerHint);
-
- /* Constructs a SupportedFeatures media service provider hint. */
- QMediaServiceProviderHint servicepro(feature);
-
- /* compare the flag value */
- QVERIFY(servicepro.features() == QMediaServiceProviderHint::LowLatencyPlayback);
- }
-
- /* The player is expected to play QIODevice based streams.
- If passed to QMediaPlayer constructor,
- the service supporting streams playback will be chosen. */
- flags = QMediaPlayer::StreamPlayback;
- /* Construct a QMediaPlayer that uses the playback service from provider,
- parented to parent and with flags.*/
- QMediaPlayer player2(0,flags , &provider);
-
- if (flags & QMediaPlayer::StreamPlayback)
- {
- /* if the flag is stream play back set the stream play back for the service provider */
- feature = QMediaServiceProviderHint::StreamPlayback;
- const QByteArray service(Q_MEDIASERVICE_MEDIAPLAYER);
- const QMediaServiceProviderHint providerHint(feature);
-
- /* request service for the service provider */
- provider.requestService(service,providerHint);
-
- /* Constructs a SupportedFeatures media service provider hint. */
- QMediaServiceProviderHint servicepro(feature);
-
- /* compare the flag value */
- QVERIFY(servicepro.features() == QMediaServiceProviderHint::StreamPlayback);
- }
-}
-
-void tst_QMediaPlayer::testDestructor()
-{
- /* create an object for player */
- QMediaPlayer *player = new QMediaPlayer;
-
- /* check whether the object is created */
- QVERIFY(player);
-
- /* delete the instance */
- delete player;
-}
-
-void tst_QMediaPlayer::testNetworkAccess()
-{
- QNetworkConfigurationManager manager;
- QList<QNetworkConfiguration> configs = manager.allConfigurations();
-
- if (configs.count() >= 1) {
- QSignalSpy spy(player, SIGNAL(networkConfigurationChanged(QNetworkConfiguration)));
- int index = qFloor((configs.count())/2);
- player->setNetworkConfigurations(configs);
- mockService->selectCurrentConfiguration(configs.at(index));
-
- QVERIFY(spy.count() == 1);
- QList<QVariant> args = spy.takeFirst();
- QNetworkConfiguration config = args.at(0).value<QNetworkConfiguration>();
- QCOMPARE(config.identifier() , configs.at(index).identifier());
- QCOMPARE(player->currentNetworkConfiguration().identifier() , config.identifier());
- }
-
- // invalidate current network configuration
- QSignalSpy spy(player, SIGNAL(networkConfigurationChanged(QNetworkConfiguration)));
- mockService->selectCurrentConfiguration(QNetworkConfiguration());
- QVERIFY(spy.count() == 1);
- QList<QVariant> args = spy.takeFirst();
- QNetworkConfiguration config = args.at(0).value<QNetworkConfiguration>();
- QVERIFY(config.isValid() == false);
- QVERIFY(player->currentNetworkConfiguration().isValid() == false);
-}
-
-void tst_QMediaPlayer::testSetVideoOutput()
-{
- MockVideoSurface surface;
-
- MockMediaPlayerService service;
- MockMediaServiceProvider provider(&service);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- player.setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- player.setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- player.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-}
-
-
-void tst_QMediaPlayer::testSetVideoOutputNoService()
-{
- MockVideoSurface surface;
-
- MockMediaServiceProvider provider(0, true);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(&surface);
- // Nothing we can verify here other than it doesn't assert.
-}
-
-void tst_QMediaPlayer::testSetVideoOutputNoControl()
-{
- MockVideoSurface surface;
-
- MockMediaPlayerService service;
- service.rendererRef = 1;
-
- MockMediaServiceProvider provider(&service);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == 0);
-}
-
-void tst_QMediaPlayer::testSetVideoOutputDestruction()
-{
- MockVideoSurface surface;
-
- MockMediaPlayerService service;
- MockMediaServiceProvider provider(&service);
-
- {
- QMediaPlayer player(0, 0, &provider);
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
- QCOMPARE(service.rendererRef, 1);
- }
- QVERIFY(service.rendererControl->surface() == 0);
- QCOMPARE(service.rendererRef, 0);
-}
-
-void tst_QMediaPlayer::testPositionPropertyWatch()
-{
- QMediaContent content0(QUrl(QLatin1String("test://audio/song1.mp3")));
- QMediaContent content1(QUrl(QLatin1String("test://audio/song2.mp3")));
-
- mockService->setIsValid(true);
- mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia);
-
- QMediaPlaylist *playlist = new QMediaPlaylist;
-
- playlist->addMedia(content0);
- playlist->addMedia(content1);
-
- player->setPlaylist(playlist);
- player->setNotifyInterval(5);
-
- player->play();
- QSignalSpy positionSpy(player, SIGNAL(positionChanged(qint64)));
- playlist->next();
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
- QTRY_VERIFY(positionSpy.count() > 0);
-
- playlist->next();
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
-
- positionSpy.clear();
- QTRY_COMPARE(positionSpy.count(), 0);
-}
-
-void tst_QMediaPlayer::debugEnums()
-{
- QTest::ignoreMessage(QtDebugMsg, "QMediaPlayer::PlayingState ");
- qDebug() << QMediaPlayer::PlayingState;
- QTest::ignoreMessage(QtDebugMsg, "QMediaPlayer::NoMedia ");
- qDebug() << QMediaPlayer::NoMedia;
- QTest::ignoreMessage(QtDebugMsg, "QMediaPlayer::NetworkError ");
- qDebug() << QMediaPlayer::NetworkError;
-}
-
-void tst_QMediaPlayer::testSupportedMimeTypes()
-{
- QStringList mimeList = QMediaPlayer::supportedMimeTypes(QMediaPlayer::LowLatency);
-
- // This is empty on some platforms, and not on others, so can't test something here at the moment.
-}
diff --git a/tests/auto/qmediaplayer/tst_qmediaplayer.h b/tests/auto/qmediaplayer/tst_qmediaplayer.h
deleted file mode 100755
index 76a94cc..0000000
--- a/tests/auto/qmediaplayer/tst_qmediaplayer.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QMEDIAPLAYER_H
-#define TST_QMEDIAPLAYER_H
-
-#include <QtTest/QtTest>
-#include <QtCore/qdebug.h>
-#include <QtCore/qbuffer.h>
-#include <QtNetwork/qnetworkconfiguration.h>
-
-#include <qabstractvideosurface.h>
-#include <qmediaplayer.h>
-#include <qmediaplayercontrol.h>
-#include <qmediaplaylist.h>
-#include <qmediaservice.h>
-#include <qmediastreamscontrol.h>
-#include <qmedianetworkaccesscontrol.h>
-#include <qvideorenderercontrol.h>
-
-#include "mockmediaserviceprovider.h"
-#include "mockmediaplayerservice.h"
-
-QT_USE_NAMESPACE
-
-class AutoConnection
-{
-public:
- AutoConnection(QObject *sender, const char *signal, QObject *receiver, const char *method)
- : sender(sender), signal(signal), receiver(receiver), method(method)
- {
- QObject::connect(sender, signal, receiver, method);
- }
-
- ~AutoConnection()
- {
- QObject::disconnect(sender, signal, receiver, method);
- }
-
-private:
- QObject *sender;
- const char *signal;
- QObject *receiver;
- const char *method;
-};
-
-class tst_QMediaPlayer: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase_data();
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void testNullService();
- void testValid();
- void testMedia();
- void testDuration();
- void testPosition();
- void testVolume();
- void testMuted();
- void testIsAvailable();
- void testVideoAvailable();
- void testBufferStatus();
- void testSeekable();
- void testPlaybackRate();
- void testError();
- void testErrorString();
- void testService();
- void testPlay();
- void testPause();
- void testStop();
- void testMediaStatus();
- void testPlaylist();
- void testNetworkAccess();
- void testSetVideoOutput();
- void testSetVideoOutputNoService();
- void testSetVideoOutputNoControl();
- void testSetVideoOutputDestruction();
- void testPositionPropertyWatch();
- void debugEnums();
- void testPlayerFlags();
- void testDestructor();
- void testSupportedMimeTypes();
-
-private:
- MockMediaServiceProvider *mockProvider;
- MockMediaPlayerService *mockService;
- QMediaPlayer *player;
-};
-
-#endif //TST_QMEDIAPLAYER_H
diff --git a/tests/auto/qmediaplayerbackend/qmediaplayerbackend.pro b/tests/auto/qmediaplayerbackend/qmediaplayerbackend.pro
deleted file mode 100644
index fdd941d..0000000
--- a/tests/auto/qmediaplayerbackend/qmediaplayerbackend.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = tst_qmediaplayerbackend
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-DEFINES += TESTDATA_DIR=\\\"$$PWD/\\\"
-
-SOURCES += \
- tst_qmediaplayerbackend.cpp
diff --git a/tests/auto/qmediaplayerbackend/testdata/test.wav b/tests/auto/qmediaplayerbackend/testdata/test.wav
deleted file mode 100644
index 4dd0226..0000000
--- a/tests/auto/qmediaplayerbackend/testdata/test.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
deleted file mode 100644
index 29e70c2..0000000
--- a/tests/auto/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
+++ /dev/null
@@ -1,462 +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$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QDebug>
-#include "qmediaservice.h"
-#include "qmediaplayer.h"
-
-//TESTED_COMPONENT=src/multimedia
-
-#ifndef TESTDATA_DIR
-#define TESTDATA_DIR "./"
-#endif
-
-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 = 5000; \
- 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 = 5000; \
- 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 = 5000; \
- 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.
-*/
-
-class tst_QMediaPlayerBackend : public QObject
-{
- Q_OBJECT
-public slots:
- void init();
- void cleanup();
- void initTestCase();
-
-private slots:
- void construction();
- void loadMedia();
- void unloadMedia();
- void playPauseStop();
- void processEOS();
- void volumeAndMuted();
- void volumeAcrossFiles_data();
- void volumeAcrossFiles();
-
-private:
- //one second local wav file
- QMediaContent localWavFile;
-};
-
-void tst_QMediaPlayerBackend::init()
-{
-}
-
-void tst_QMediaPlayerBackend::initTestCase()
-{
- QFileInfo wavFile(QLatin1String(TESTDATA_DIR "testdata/test.wav"));
- QVERIFY(wavFile.exists());
-
- localWavFile = QMediaContent(QUrl::fromLocalFile(wavFile.absoluteFilePath()));
-
- qRegisterMetaType<QMediaContent>();
-}
-
-void tst_QMediaPlayerBackend::cleanup()
-{
-}
-
-void tst_QMediaPlayerBackend::construction()
-{
- QMediaPlayer player;
- QVERIFY(player.isAvailable());
-}
-
-void tst_QMediaPlayerBackend::loadMedia()
-{
- QMediaPlayer player;
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
-
- QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
-
- player.setMedia(localWavFile);
-
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
-
- QVERIFY(player.mediaStatus() != QMediaPlayer::NoMedia);
- QVERIFY(player.mediaStatus() != QMediaPlayer::InvalidMedia);
- QVERIFY(player.media() == localWavFile);
-
- QCOMPARE(stateSpy.count(), 0);
- QVERIFY(statusSpy.count() > 0);
- QCOMPARE(mediaSpy.count(), 1);
- QCOMPARE(mediaSpy.last()[0].value<QMediaContent>(), localWavFile);
-
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
-
- QVERIFY(player.isAudioAvailable());
- QVERIFY(!player.isVideoAvailable());
-}
-
-void tst_QMediaPlayerBackend::unloadMedia()
-{
- QMediaPlayer player;
- player.setNotifyInterval(50);
-
- QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
- QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
- QSignalSpy durationSpy(&player, SIGNAL(positionChanged(qint64)));
-
- player.setMedia(localWavFile);
-
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
-
- QVERIFY(player.position() == 0);
- QVERIFY(player.duration() > 0);
-
- player.play();
-
- QTest::qWait(250);
- QVERIFY(player.position() > 0);
- QVERIFY(player.duration() > 0);
-
- stateSpy.clear();
- statusSpy.clear();
- mediaSpy.clear();
- positionSpy.clear();
- durationSpy.clear();
-
- player.setMedia(QMediaContent());
-
- QVERIFY(player.position() <= 0);
- QVERIFY(player.duration() <= 0);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
- QCOMPARE(player.media(), QMediaContent());
-
- QVERIFY(!stateSpy.isEmpty());
- QVERIFY(!statusSpy.isEmpty());
- QVERIFY(!mediaSpy.isEmpty());
- QVERIFY(!positionSpy.isEmpty());
-}
-
-
-void tst_QMediaPlayerBackend::playPauseStop()
-{
- QMediaPlayer player;
- player.setNotifyInterval(50);
-
- QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
-
- player.setMedia(localWavFile);
-
- QCOMPARE(player.position(), qint64(0));
-
- player.play();
-
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
-
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
-
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PlayingState);
- QTRY_VERIFY(statusSpy.count() > 0 &&
- statusSpy.last()[0].value<QMediaPlayer::MediaStatus>() == QMediaPlayer::BufferedMedia);
-
- QTest::qWait(500);
- QVERIFY(player.position() > 0);
- QVERIFY(player.duration() > 0);
- QVERIFY(positionSpy.count() > 0);
- QVERIFY(positionSpy.last()[0].value<qint64>() > 0);
-
- stateSpy.clear();
- statusSpy.clear();
-
- player.pause();
-
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
-
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PausedState);
-
- stateSpy.clear();
- statusSpy.clear();
-
- player.stop();
-
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
-
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
- //it's allowed to emit statusChanged() signal async
- QTRY_COMPARE(statusSpy.count(), 1);
- QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::LoadedMedia);
-
- //ensure the position is reset to 0 at stop and positionChanged(0) is emitted
- QCOMPARE(player.position(), qint64(0));
- QCOMPARE(positionSpy.last()[0].value<qint64>(), qint64(0));
- QVERIFY(player.duration() > 0);
-}
-
-
-void tst_QMediaPlayerBackend::processEOS()
-{
- QMediaPlayer player;
- player.setNotifyInterval(50);
-
- QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
- QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
-
- player.setMedia(localWavFile);
-
- player.play();
- player.setPosition(900);
-
- //wait up to 5 seconds for EOS
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
-
- QVERIFY(statusSpy.count() > 0);
- QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::EndOfMedia);
-
- //at EOS the position stays at the end of file
- QVERIFY(player.position() > 900);
-
- stateSpy.clear();
- statusSpy.clear();
-
- player.play();
-
- //position is reset to start
- QTRY_VERIFY(player.position() < 100);
-
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
- QCOMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
-
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PlayingState);
- QVERIFY(statusSpy.count() > 0);
- QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::BufferedMedia);
-
- player.setPosition(900);
- //wait up to 5 seconds for EOS
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
-
- //ensure the positionChanged() signal is emitted
- QVERIFY(positionSpy.count() > 0);
-
- QCOMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
- //position stays at the end of file
- QVERIFY(player.position() > 900);
-
- //after setPosition EndOfMedia status should be reset to Loaded
- stateSpy.clear();
- statusSpy.clear();
- player.setPosition(500);
-
- //this transition can be async, so allow backend to perform it
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
-
- QCOMPARE(stateSpy.count(), 0);
- QTRY_VERIFY(statusSpy.count() > 0 &&
- statusSpy.last()[0].value<QMediaPlayer::MediaStatus>() == QMediaPlayer::LoadedMedia);
-}
-
-void tst_QMediaPlayerBackend::volumeAndMuted()
-{
- //volume and muted properties should be independent
- QMediaPlayer player;
- QVERIFY(player.volume() > 0);
- QVERIFY(!player.isMuted());
-
- player.setMedia(localWavFile);
- player.pause();
-
- QVERIFY(player.volume() > 0);
- QVERIFY(!player.isMuted());
-
- QSignalSpy volumeSpy(&player, SIGNAL(volumeChanged(int)));
- QSignalSpy mutedSpy(&player, SIGNAL(mutedChanged(bool)));
-
- //setting volume to 0 should not trigger muted
- player.setVolume(0);
- QTRY_COMPARE(player.volume(), 0);
- QVERIFY(!player.isMuted());
- QCOMPARE(volumeSpy.count(), 1);
- QCOMPARE(volumeSpy.last()[0].toInt(), player.volume());
- QCOMPARE(mutedSpy.count(), 0);
-
- player.setVolume(50);
- QTRY_COMPARE(player.volume(), 50);
- QVERIFY(!player.isMuted());
- QCOMPARE(volumeSpy.count(), 2);
- QCOMPARE(volumeSpy.last()[0].toInt(), player.volume());
- QCOMPARE(mutedSpy.count(), 0);
-
- player.setMuted(true);
- QTRY_VERIFY(player.isMuted());
- QVERIFY(player.volume() > 0);
- QCOMPARE(volumeSpy.count(), 2);
- QCOMPARE(mutedSpy.count(), 1);
- QCOMPARE(mutedSpy.last()[0].toBool(), player.isMuted());
-
- player.setMuted(false);
- QTRY_VERIFY(!player.isMuted());
- QVERIFY(player.volume() > 0);
- QCOMPARE(volumeSpy.count(), 2);
- QCOMPARE(mutedSpy.count(), 2);
- QCOMPARE(mutedSpy.last()[0].toBool(), player.isMuted());
-
-}
-
-void tst_QMediaPlayerBackend::volumeAcrossFiles_data()
-{
- QTest::addColumn<int>("volume");
- QTest::addColumn<bool>("muted");
-
- QTest::newRow("100 unmuted") << 100 << false;
- QTest::newRow("50 unmuted") << 50 << false;
- QTest::newRow("0 unmuted") << 0 << false;
- QTest::newRow("100 muted") << 100 << true;
- QTest::newRow("50 muted") << 50 << true;
- QTest::newRow("0 muted") << 0 << true;
-}
-
-void tst_QMediaPlayerBackend::volumeAcrossFiles()
-{
- QFETCH(int, volume);
- QFETCH(bool, muted);
-
- QMediaPlayer player;
-
- //volume and muted should not be preserved between player instances
- QVERIFY(player.volume() > 0);
- QVERIFY(!player.isMuted());
-
- player.setVolume(volume);
- player.setMuted(muted);
-
- QTRY_COMPARE(player.volume(), volume);
- QTRY_COMPARE(player.isMuted(), muted);
-
- player.setMedia(localWavFile);
- QCOMPARE(player.volume(), volume);
- QCOMPARE(player.isMuted(), muted);
-
- player.pause();
-
- //to ensure the backend doesn't change volume/muted
- //async during file loading.
- QTest::qWait(50);
-
- QCOMPARE(player.volume(), volume);
- QCOMPARE(player.isMuted(), muted);
-
- player.setMedia(QMediaContent());
- QTest::qWait(50);
- QCOMPARE(player.volume(), volume);
- QCOMPARE(player.isMuted(), muted);
-
- player.setMedia(localWavFile);
- player.pause();
-
- QTest::qWait(50);
-
- QCOMPARE(player.volume(), volume);
- QCOMPARE(player.isMuted(), muted);
-}
-
-
-QTEST_MAIN(tst_QMediaPlayerBackend)
-#include "tst_qmediaplayerbackend.moc"
-
diff --git a/tests/auto/qmediaplayerwidgets/main.cpp b/tests/auto/qmediaplayerwidgets/main.cpp
deleted file mode 100755
index e7614c9..0000000
--- a/tests/auto/qmediaplayerwidgets/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtWidgets/QApplication>
-#include <QtTest/QtTest>
-
-#include "tst_qmediaplayerwidgets.h"
-
-int main(int argc, char**argv)
-{
- QApplication app(argc,argv);
- int ret;
- tst_QMediaPlayerWidgets test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qmediaplayerwidgets/qmediaplayerwidgets.pro b/tests/auto/qmediaplayerwidgets/qmediaplayerwidgets.pro
deleted file mode 100644
index c5c6029..0000000
--- a/tests/auto/qmediaplayerwidgets/qmediaplayerwidgets.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaplayerwidgets
-
-QT += network multimedia-private multimediawidgets-private testlib widgets
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += tst_qmediaplayerwidgets.h
-SOURCES += main.cpp tst_qmediaplayerwidgets.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockplayer.pri)
diff --git a/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp b/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
deleted file mode 100644
index ac9ffa0..0000000
--- a/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qmediaplayerwidgets.h"
-#include "mockvideosurface.h"
-#include <qgraphicsvideoitem.h>
-
-QT_USE_NAMESPACE
-
-void tst_QMediaPlayerWidgets::initTestCase()
-{
- qRegisterMetaType<QMediaPlayer::State>("QMediaPlayer::State");
- qRegisterMetaType<QMediaPlayer::Error>("QMediaPlayer::Error");
- qRegisterMetaType<QMediaPlayer::MediaStatus>("QMediaPlayer::MediaStatus");
- qRegisterMetaType<QMediaContent>("QMediaContent");
-
- mockService = new MockMediaPlayerService;
- mockProvider = new MockMediaServiceProvider(mockService, true);
- player = new QMediaPlayer(0, 0, mockProvider);
-}
-
-void tst_QMediaPlayerWidgets::cleanupTestCase()
-{
- delete player;
-}
-
-void tst_QMediaPlayerWidgets::init()
-{
- mockService->reset();
-}
-
-void tst_QMediaPlayerWidgets::cleanup()
-{
-}
-
-void tst_QMediaPlayerWidgets::testSetVideoOutput()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockMediaPlayerService service;
- MockMediaServiceProvider provider(&service);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == &player);
-
- player.setVideoOutput(&item);
- QVERIFY(widget.mediaObject() == 0);
- QVERIFY(item.mediaObject() == &player);
-
- player.setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
- QVERIFY(item.mediaObject() == 0);
-
- player.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == &player);
-
- player.setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
- QVERIFY(widget.mediaObject() == 0);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- player.setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
- QVERIFY(service.rendererControl->surface() == 0);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
-
- player.setVideoOutput(&widget);
- QVERIFY(service.rendererControl->surface() == 0);
- QVERIFY(widget.mediaObject() == &player);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == &surface);
- QVERIFY(widget.mediaObject() == 0);
-}
-
-
-void tst_QMediaPlayerWidgets::testSetVideoOutputNoService()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockMediaServiceProvider provider(0, true);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == 0);
-
- player.setVideoOutput(&item);
- QVERIFY(item.mediaObject() == 0);
-
- player.setVideoOutput(&surface);
- // Nothing we can verify here other than it doesn't assert.
-}
-
-void tst_QMediaPlayerWidgets::testSetVideoOutputNoControl()
-{
- QVideoWidget widget;
- QGraphicsVideoItem item;
- MockVideoSurface surface;
-
- MockMediaPlayerService service;
- service.rendererRef = 1;
- service.windowRef = 1;
-
- MockMediaServiceProvider provider(&service);
- QMediaPlayer player(0, 0, &provider);
-
- player.setVideoOutput(&widget);
- QVERIFY(widget.mediaObject() == 0);
-
- player.setVideoOutput(&item);
- QVERIFY(item.mediaObject() == 0);
-
- player.setVideoOutput(&surface);
- QVERIFY(service.rendererControl->surface() == 0);
-}
-
diff --git a/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.h b/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.h
deleted file mode 100755
index e5f9b67..0000000
--- a/tests/auto/qmediaplayerwidgets/tst_qmediaplayerwidgets.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QMEDIAPLAYER_H
-#define TST_QMEDIAPLAYER_H
-
-#include <QtTest/QtTest>
-#include <QtCore/qdebug.h>
-#include <QtCore/qbuffer.h>
-#include <QtNetwork/qnetworkconfiguration.h>
-
-#include <qabstractvideosurface.h>
-#include <qmediaplayer.h>
-#include <qmediaplayercontrol.h>
-
-#include "mockmediaserviceprovider.h"
-#include "mockmediaplayerservice.h"
-
-QT_USE_NAMESPACE
-
-class tst_QMediaPlayerWidgets: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void testSetVideoOutput();
- void testSetVideoOutputNoService();
- void testSetVideoOutputNoControl();
-
-private:
- MockMediaServiceProvider *mockProvider;
- MockMediaPlayerService *mockService;
- QMediaPlayer *player;
-};
-
-#endif //TST_QMEDIAPLAYER_H
diff --git a/tests/auto/qmediaplaylist/qmediaplaylist.pro b/tests/auto/qmediaplaylist/qmediaplaylist.pro
deleted file mode 100644
index d028343..0000000
--- a/tests/auto/qmediaplaylist/qmediaplaylist.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaplaylist
-
-# temporarily blacklist test because is fails miserably
-CONFIG += insignificant_test
-
-include (../qmultimedia_common/mockplaylist.pri)
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-DEFINES += TESTDATA_DIR=\\\"$$PWD/\\\"
-
-HEADERS += \
- $$QT.multimedia.sources/../plugins/m3u/qm3uhandler.h
-
-SOURCES += \
- tst_qmediaplaylist.cpp \
- $$QT.multimedia.sources/../plugins/m3u/qm3uhandler.cpp
-
-INCLUDEPATH += $$QT.multimedia.sources/../plugins/m3u
diff --git a/tests/auto/qmediaplaylist/testdata/test.m3u b/tests/auto/qmediaplaylist/testdata/test.m3u
deleted file mode 100644
index e5cb7c8..0000000
--- a/tests/auto/qmediaplaylist/testdata/test.m3u
+++ /dev/null
@@ -1,11 +0,0 @@
-#comment
-
-http://test.host/path
- http://test.host/path
-testfile
-
-
-testdir/testfile
-/testdir/testfile
-file://path/name#suffix
-testfile2#suffix
diff --git a/tests/auto/qmediaplaylist/testdata/testfile b/tests/auto/qmediaplaylist/testdata/testfile
deleted file mode 100644
index e69de29..0000000
--- a/tests/auto/qmediaplaylist/testdata/testfile
+++ /dev/null
diff --git a/tests/auto/qmediaplaylist/testdata/testfile2#suffix b/tests/auto/qmediaplaylist/testdata/testfile2#suffix
deleted file mode 100644
index e69de29..0000000
--- a/tests/auto/qmediaplaylist/testdata/testfile2#suffix
+++ /dev/null
diff --git a/tests/auto/qmediaplaylist/tst_qmediaplaylist.cpp b/tests/auto/qmediaplaylist/tst_qmediaplaylist.cpp
deleted file mode 100644
index e200243..0000000
--- a/tests/auto/qmediaplaylist/tst_qmediaplaylist.cpp
+++ /dev/null
@@ -1,783 +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$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QDebug>
-#include "qmediaservice.h"
-#include "qmediaplaylist.h"
-#include "qmediaplaylistcontrol.h"
-#include "qmediaplaylistsourcecontrol.h"
-#include "qmediaplaylistnavigator.h"
-#include <private/qmediapluginloader_p.h>
-
-#include "qm3uhandler.h"
-
-//TESTED_COMPONENT=src/multimedia
-
-#include "mockplaylistservice.h"
-#include "mockmediaplaylistcontrol.h"
-#include "mockmediaplaylistsourcecontrol.h"
-#include "mockreadonlyplaylistprovider.h"
-
-#ifndef TESTDATA_DIR
-#define TESTDATA_DIR "./"
-#endif
-
-QT_USE_NAMESPACE
-
-class MockReadOnlyPlaylistObject : public QMediaObject
-{
- Q_OBJECT
-public:
- MockReadOnlyPlaylistObject(QObject *parent = 0)
- :QMediaObject(parent, new MockPlaylistService)
- {
- }
-};
-
-class tst_QMediaPlaylist : public QObject
-{
- Q_OBJECT
-public slots:
- void init();
- void cleanup();
- void initTestCase();
-
-private slots:
- void construction();
- void append();
- void insert();
- void clear();
- void removeMedia();
- void currentItem();
- void saveAndLoad();
- void loadM3uFile();
- void playbackMode();
- void playbackMode_data();
- void shuffle();
- void readOnlyPlaylist();
- void setMediaObject();
-
- void testCurrentIndexChanged_signal();
- void testCurrentMediaChanged_signal();
- void testLoaded_signal();
- void testMediaChanged_signal();
- void testPlaybackModeChanged_signal();
- void testEnums();
-
- void mediaPlayListProvider();
- // TC for Abstract control classes
- void mediaPlayListControl();
- void mediaPlayListSourceControl();
-
-
-private:
- QMediaContent content1;
- QMediaContent content2;
- QMediaContent content3;
-};
-
-void tst_QMediaPlaylist::init()
-{
-}
-
-void tst_QMediaPlaylist::initTestCase()
-{
- qRegisterMetaType<QMediaContent>();
- content1 = QMediaContent(QUrl(QLatin1String("file:///1")));
- content2 = QMediaContent(QUrl(QLatin1String("file:///2")));
- content3 = QMediaContent(QUrl(QLatin1String("file:///3")));
-
- QMediaPluginLoader::setStaticPlugins(QLatin1String("playlistformats"), QObjectList() << new QM3uPlaylistPlugin(this));
-}
-
-void tst_QMediaPlaylist::cleanup()
-{
-}
-
-void tst_QMediaPlaylist::construction()
-{
- QMediaPlaylist playlist;
- QCOMPARE(playlist.mediaCount(), 0);
- QVERIFY(playlist.isEmpty());
-}
-
-void tst_QMediaPlaylist::append()
-{
- QMediaPlaylist playlist;
- QVERIFY(!playlist.isReadOnly());
-
- playlist.addMedia(content1);
- QCOMPARE(playlist.mediaCount(), 1);
- QCOMPARE(playlist.media(0), content1);
-
- QSignalSpy aboutToBeInsertedSignalSpy(&playlist, SIGNAL(mediaAboutToBeInserted(int,int)));
- QSignalSpy insertedSignalSpy(&playlist, SIGNAL(mediaInserted(int,int)));
- playlist.addMedia(content2);
- QCOMPARE(playlist.mediaCount(), 2);
- QCOMPARE(playlist.media(1), content2);
-
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy.first()[1].toInt(), 1);
-
- QCOMPARE(insertedSignalSpy.count(), 1);
- QCOMPARE(insertedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(insertedSignalSpy.first()[1].toInt(), 1);
-
- aboutToBeInsertedSignalSpy.clear();
- insertedSignalSpy.clear();
-
- QMediaContent content4(QUrl(QLatin1String("file:///4")));
- QMediaContent content5(QUrl(QLatin1String("file:///5")));
- playlist.addMedia(QList<QMediaContent>() << content3 << content4 << content5);
- QCOMPARE(playlist.mediaCount(), 5);
- QCOMPARE(playlist.media(2), content3);
- QCOMPARE(playlist.media(3), content4);
- QCOMPARE(playlist.media(4), content5);
-
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy[0][0].toInt(), 2);
- QCOMPARE(aboutToBeInsertedSignalSpy[0][1].toInt(), 4);
-
- QCOMPARE(insertedSignalSpy.count(), 1);
- QCOMPARE(insertedSignalSpy[0][0].toInt(), 2);
- QCOMPARE(insertedSignalSpy[0][1].toInt(), 4);
-
- aboutToBeInsertedSignalSpy.clear();
- insertedSignalSpy.clear();
-
- playlist.addMedia(QList<QMediaContent>());
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 0);
- QCOMPARE(insertedSignalSpy.count(), 0);
-}
-
-void tst_QMediaPlaylist::insert()
-{
- QMediaPlaylist playlist;
- QVERIFY(!playlist.isReadOnly());
-
- playlist.addMedia(content1);
- QCOMPARE(playlist.mediaCount(), 1);
- QCOMPARE(playlist.media(0), content1);
-
- playlist.addMedia(content2);
- QCOMPARE(playlist.mediaCount(), 2);
- QCOMPARE(playlist.media(1), content2);
-
- QSignalSpy aboutToBeInsertedSignalSpy(&playlist, SIGNAL(mediaAboutToBeInserted(int,int)));
- QSignalSpy insertedSignalSpy(&playlist, SIGNAL(mediaInserted(int,int)));
-
- playlist.insertMedia(1, content3);
- QCOMPARE(playlist.mediaCount(), 3);
- QCOMPARE(playlist.media(0), content1);
- QCOMPARE(playlist.media(1), content3);
- QCOMPARE(playlist.media(2), content2);
-
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy.first()[1].toInt(), 1);
-
- QCOMPARE(insertedSignalSpy.count(), 1);
- QCOMPARE(insertedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(insertedSignalSpy.first()[1].toInt(), 1);
-
- aboutToBeInsertedSignalSpy.clear();
- insertedSignalSpy.clear();
-
- QMediaContent content4(QUrl(QLatin1String("file:///4")));
- QMediaContent content5(QUrl(QLatin1String("file:///5")));
- playlist.insertMedia(1, QList<QMediaContent>() << content4 << content5);
-
- QCOMPARE(playlist.media(0), content1);
- QCOMPARE(playlist.media(1), content4);
- QCOMPARE(playlist.media(2), content5);
- QCOMPARE(playlist.media(3), content3);
- QCOMPARE(playlist.media(4), content2);
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy[0][0].toInt(), 1);
- QCOMPARE(aboutToBeInsertedSignalSpy[0][1].toInt(), 2);
-
- QCOMPARE(insertedSignalSpy.count(), 1);
- QCOMPARE(insertedSignalSpy[0][0].toInt(), 1);
- QCOMPARE(insertedSignalSpy[0][1].toInt(), 2);
-
- aboutToBeInsertedSignalSpy.clear();
- insertedSignalSpy.clear();
-
- playlist.insertMedia(1, QList<QMediaContent>());
- QCOMPARE(aboutToBeInsertedSignalSpy.count(), 0);
- QCOMPARE(insertedSignalSpy.count(), 0);
-}
-
-
-void tst_QMediaPlaylist::currentItem()
-{
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
-
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(playlist.currentMedia(), QMediaContent());
-
- QCOMPARE(playlist.nextIndex(), 0);
- QCOMPARE(playlist.nextIndex(2), 1);
- QCOMPARE(playlist.previousIndex(), 1);
- QCOMPARE(playlist.previousIndex(2), 0);
-
- playlist.setCurrentIndex(0);
- QCOMPARE(playlist.currentIndex(), 0);
- QCOMPARE(playlist.currentMedia(), content1);
-
- QCOMPARE(playlist.nextIndex(), 1);
- QCOMPARE(playlist.nextIndex(2), -1);
- QCOMPARE(playlist.previousIndex(), -1);
- QCOMPARE(playlist.previousIndex(2), -1);
-
- playlist.setCurrentIndex(1);
- QCOMPARE(playlist.currentIndex(), 1);
- QCOMPARE(playlist.currentMedia(), content2);
-
- QCOMPARE(playlist.nextIndex(), -1);
- QCOMPARE(playlist.nextIndex(2), -1);
- QCOMPARE(playlist.previousIndex(), 0);
- QCOMPARE(playlist.previousIndex(2), -1);
-
- QTest::ignoreMessage(QtWarningMsg, "QMediaPlaylistNavigator: Jump outside playlist range ");
- playlist.setCurrentIndex(2);
-
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(playlist.currentMedia(), QMediaContent());
-}
-
-void tst_QMediaPlaylist::clear()
-{
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
-
- playlist.clear();
- QVERIFY(playlist.isEmpty());
- QCOMPARE(playlist.mediaCount(), 0);
-}
-
-void tst_QMediaPlaylist::removeMedia()
-{
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
- playlist.addMedia(content3);
-
- QSignalSpy aboutToBeRemovedSignalSpy(&playlist, SIGNAL(mediaAboutToBeRemoved(int,int)));
- QSignalSpy removedSignalSpy(&playlist, SIGNAL(mediaRemoved(int,int)));
- playlist.removeMedia(1);
- QCOMPARE(playlist.mediaCount(), 2);
- QCOMPARE(playlist.media(1), content3);
-
- QCOMPARE(aboutToBeRemovedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeRemovedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(aboutToBeRemovedSignalSpy.first()[1].toInt(), 1);
-
- QCOMPARE(removedSignalSpy.count(), 1);
- QCOMPARE(removedSignalSpy.first()[0].toInt(), 1);
- QCOMPARE(removedSignalSpy.first()[1].toInt(), 1);
-
- aboutToBeRemovedSignalSpy.clear();
- removedSignalSpy.clear();
-
- playlist.removeMedia(0,1);
- QVERIFY(playlist.isEmpty());
-
- QCOMPARE(aboutToBeRemovedSignalSpy.count(), 1);
- QCOMPARE(aboutToBeRemovedSignalSpy.first()[0].toInt(), 0);
- QCOMPARE(aboutToBeRemovedSignalSpy.first()[1].toInt(), 1);
-
- QCOMPARE(removedSignalSpy.count(), 1);
- QCOMPARE(removedSignalSpy.first()[0].toInt(), 0);
- QCOMPARE(removedSignalSpy.first()[1].toInt(), 1);
-
-
- playlist.addMedia(content1);
- playlist.addMedia(content2);
- playlist.addMedia(content3);
-
- playlist.removeMedia(0,1);
- QCOMPARE(playlist.mediaCount(), 1);
- QCOMPARE(playlist.media(0), content3);
-}
-
-void tst_QMediaPlaylist::saveAndLoad()
-{
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
- playlist.addMedia(content3);
-
- QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
- QVERIFY(playlist.errorString().isEmpty());
-
- QBuffer buffer;
- buffer.open(QBuffer::ReadWrite);
-
- bool res = playlist.save(&buffer, "unsupported_format");
- QVERIFY(!res);
- QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
- QVERIFY(!playlist.errorString().isEmpty());
-
- QSignalSpy errorSignal(&playlist, SIGNAL(loadFailed()));
- playlist.load(&buffer, "unsupported_format");
- QCOMPARE(errorSignal.size(), 1);
- QVERIFY(playlist.error() != QMediaPlaylist::NoError);
- QVERIFY(!playlist.errorString().isEmpty());
-
- res = playlist.save(QUrl(QLatin1String("tmp.unsupported_format")), "unsupported_format");
- QVERIFY(!res);
- QVERIFY(playlist.error() != QMediaPlaylist::NoError);
- QVERIFY(!playlist.errorString().isEmpty());
-
- errorSignal.clear();
- playlist.load(QUrl(QLatin1String("tmp.unsupported_format")), "unsupported_format");
- QCOMPARE(errorSignal.size(), 1);
- QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
- QVERIFY(!playlist.errorString().isEmpty());
-
- res = playlist.save(&buffer, "m3u");
-
- QVERIFY(res);
- QVERIFY(buffer.pos() > 0);
- buffer.seek(0);
-
- QMediaPlaylist playlist2;
- playlist2.load(&buffer, "m3u");
- QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
-
- QCOMPARE(playlist.mediaCount(), playlist2.mediaCount());
- QCOMPARE(playlist.media(0), playlist2.media(0));
- QCOMPARE(playlist.media(1), playlist2.media(1));
- QCOMPARE(playlist.media(3), playlist2.media(3));
- res = playlist.save(QUrl(QLatin1String("tmp.m3u")), "m3u");
- QVERIFY(res);
-
- playlist2.clear();
- QVERIFY(playlist2.isEmpty());
- playlist2.load(QUrl(QLatin1String("tmp.m3u")), "m3u");
- QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
-
- QCOMPARE(playlist.mediaCount(), playlist2.mediaCount());
- QCOMPARE(playlist.media(0), playlist2.media(0));
- QCOMPARE(playlist.media(1), playlist2.media(1));
- QCOMPARE(playlist.media(3), playlist2.media(3));
-}
-
-void tst_QMediaPlaylist::loadM3uFile()
-{
- QMediaPlaylist playlist;
-
- playlist.load(QUrl::fromLocalFile(QLatin1String(TESTDATA_DIR "testdata/missing_file.m3u")));
- QVERIFY(playlist.error() != QMediaPlaylist::NoError);
-
- playlist.load(QUrl::fromLocalFile(QLatin1String(TESTDATA_DIR "testdata/test.m3u")));
- QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
- QCOMPARE(playlist.mediaCount(), 7);
-
- QCOMPARE(playlist.media(0).canonicalUrl(), QUrl(QLatin1String("http://test.host/path")));
- QCOMPARE(playlist.media(1).canonicalUrl(), QUrl(QLatin1String("http://test.host/path")));
- QCOMPARE(playlist.media(2).canonicalUrl(),
- QUrl(QLatin1String("file://" TESTDATA_DIR "testdata/testfile")));
- QCOMPARE(playlist.media(3).canonicalUrl(),
- QUrl(QLatin1String("file://" TESTDATA_DIR "testdata/testdir/testfile")));
- QCOMPARE(playlist.media(4).canonicalUrl(), QUrl(QLatin1String("file:///testdir/testfile")));
- QCOMPARE(playlist.media(5).canonicalUrl(), QUrl(QLatin1String("file://path/name#suffix")));
- //ensure #2 suffix is not stripped from path
- QCOMPARE(playlist.media(6).canonicalUrl(), QUrl::fromLocalFile(TESTDATA_DIR "testdata/testfile2#suffix"));
-}
-
-void tst_QMediaPlaylist::playbackMode_data()
-{
- QTest::addColumn<QMediaPlaylist::PlaybackMode>("playbackMode");
- QTest::addColumn<int>("expectedPrevious");
- QTest::addColumn<int>("pos");
- QTest::addColumn<int>("expectedNext");
-
- QTest::newRow("Sequential, 0") << QMediaPlaylist::Sequential << -1 << 0 << 1;
- QTest::newRow("Sequential, 1") << QMediaPlaylist::Sequential << 0 << 1 << 2;
- QTest::newRow("Sequential, 2") << QMediaPlaylist::Sequential << 1 << 2 << -1;
-
- QTest::newRow("Loop, 0") << QMediaPlaylist::Loop << 2 << 0 << 1;
- QTest::newRow("Loop, 1") << QMediaPlaylist::Loop << 0 << 1 << 2;
- QTest::newRow("Lopp, 2") << QMediaPlaylist::Loop << 1 << 2 << 0;
-
- QTest::newRow("ItemOnce, 1") << QMediaPlaylist::CurrentItemOnce << -1 << 1 << -1;
- QTest::newRow("ItemInLoop, 1") << QMediaPlaylist::CurrentItemInLoop << 1 << 1 << 1;
-
- // Bit difficult to test random this way
-}
-
-void tst_QMediaPlaylist::playbackMode()
-{
- QFETCH(QMediaPlaylist::PlaybackMode, playbackMode);
- QFETCH(int, expectedPrevious);
- QFETCH(int, pos);
- QFETCH(int, expectedNext);
-
- QMediaPlaylist playlist;
- playlist.addMedia(content1);
- playlist.addMedia(content2);
- playlist.addMedia(content3);
-
- QCOMPARE(playlist.playbackMode(), QMediaPlaylist::Sequential);
- QCOMPARE(playlist.currentIndex(), -1);
-
- playlist.setPlaybackMode(playbackMode);
- QCOMPARE(playlist.playbackMode(), playbackMode);
-
- playlist.setCurrentIndex(pos);
- QCOMPARE(playlist.currentIndex(), pos);
- QCOMPARE(playlist.nextIndex(), expectedNext);
- QCOMPARE(playlist.previousIndex(), expectedPrevious);
-
- playlist.next();
- QCOMPARE(playlist.currentIndex(), expectedNext);
-
- playlist.setCurrentIndex(pos);
- playlist.previous();
- QCOMPARE(playlist.currentIndex(), expectedPrevious);
-}
-
-void tst_QMediaPlaylist::shuffle()
-{
- QMediaPlaylist playlist;
- QList<QMediaContent> contentList;
-
- for (int i=0; i<100; i++) {
- QMediaContent content(QUrl(QString::number(i)));
- contentList.append(content);
- playlist.addMedia(content);
- }
-
- playlist.shuffle();
-
- QList<QMediaContent> shuffledContentList;
- for (int i=0; i<playlist.mediaCount(); i++)
- shuffledContentList.append(playlist.media(i));
-
- QVERIFY(contentList != shuffledContentList);
-
-}
-
-void tst_QMediaPlaylist::readOnlyPlaylist()
-{
- MockReadOnlyPlaylistObject mediaObject;
- QMediaPlaylist playlist;
- mediaObject.bind(&playlist);
-
- QVERIFY(playlist.isReadOnly());
- QVERIFY(!playlist.isEmpty());
- QCOMPARE(playlist.mediaCount(), 3);
-
- QCOMPARE(playlist.media(0), content1);
- QCOMPARE(playlist.media(1), content2);
- QCOMPARE(playlist.media(2), content3);
- QCOMPARE(playlist.media(3), QMediaContent());
-
- //it's a read only playlist, so all the modification should fail
- QVERIFY(!playlist.addMedia(content1));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.addMedia(QList<QMediaContent>() << content1 << content2));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.insertMedia(1, content1));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.insertMedia(1, QList<QMediaContent>() << content1 << content2));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.removeMedia(1));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.removeMedia(0,2));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(!playlist.clear());
- QCOMPARE(playlist.mediaCount(), 3);
-
- //but it is still allowed to append/insert an empty list
- QVERIFY(playlist.addMedia(QList<QMediaContent>()));
- QVERIFY(playlist.insertMedia(1, QList<QMediaContent>()));
-
- playlist.shuffle();
- //it's still the same
- QCOMPARE(playlist.media(0), content1);
- QCOMPARE(playlist.media(1), content2);
- QCOMPARE(playlist.media(2), content3);
- QCOMPARE(playlist.media(3), QMediaContent());
-
-
- //load to read only playlist should fail,
- //unless underlaying provider supports it
- QBuffer buffer;
- buffer.open(QBuffer::ReadWrite);
- buffer.write(QByteArray("file:///1\nfile:///2"));
- buffer.seek(0);
-
- QSignalSpy errorSignal(&playlist, SIGNAL(loadFailed()));
- playlist.load(&buffer, "m3u");
- QCOMPARE(errorSignal.size(), 1);
- QCOMPARE(playlist.error(), QMediaPlaylist::AccessDeniedError);
- QVERIFY(!playlist.errorString().isEmpty());
- QCOMPARE(playlist.mediaCount(), 3);
-
- errorSignal.clear();
- playlist.load(QUrl(QLatin1String("tmp.m3u")), "m3u");
-
- QCOMPARE(errorSignal.size(), 1);
- QCOMPARE(playlist.error(), QMediaPlaylist::AccessDeniedError);
- QVERIFY(!playlist.errorString().isEmpty());
- QCOMPARE(playlist.mediaCount(), 3);
-}
-
-void tst_QMediaPlaylist::setMediaObject()
-{
- MockReadOnlyPlaylistObject mediaObject;
-
- QMediaPlaylist playlist;
- QVERIFY(playlist.mediaObject() == 0);
- QVERIFY(!playlist.isReadOnly());
-
- mediaObject.bind(&playlist);
- QCOMPARE(playlist.mediaObject(), qobject_cast<QMediaObject*>(&mediaObject));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(playlist.isReadOnly());
-
- mediaObject.unbind(&playlist);
- QVERIFY(playlist.mediaObject() == 0);
- QCOMPARE(playlist.mediaCount(), 0);
- QVERIFY(!playlist.isReadOnly());
-
- mediaObject.bind(&playlist);
- QCOMPARE(playlist.mediaObject(), qobject_cast<QMediaObject*>(&mediaObject));
- QCOMPARE(playlist.mediaCount(), 3);
- QVERIFY(playlist.isReadOnly());
-}
-
-void tst_QMediaPlaylist::testCurrentIndexChanged_signal()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
-
- QSignalSpy spy(&playlist, SIGNAL(currentIndexChanged(int)));
- QVERIFY(spy.size()== 0);
- QCOMPARE(playlist.currentIndex(), -1);
-
- //set the current index for playlist.
- playlist.setCurrentIndex(0);
- QVERIFY(spy.size()== 1); //verify the signal emission.
- QCOMPARE(playlist.currentIndex(), 0); //verify the current index of playlist
-
- //set the current index for playlist.
- playlist.setCurrentIndex(1);
- QVERIFY(spy.size()== 2); //verify the signal emission.
- QCOMPARE(playlist.currentIndex(), 1); //verify the current index of playlist
-}
-
-void tst_QMediaPlaylist::testCurrentMediaChanged_signal()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
-
- QSignalSpy spy(&playlist, SIGNAL(currentMediaChanged(QMediaContent)));
- QVERIFY(spy.size()== 0);
- QCOMPARE(playlist.currentIndex(), -1);
- QCOMPARE(playlist.currentMedia(), QMediaContent());
-
- //set the current index for playlist.
- playlist.setCurrentIndex(0);
- QVERIFY(spy.size()== 1); //verify the signal emission.
- QCOMPARE(playlist.currentIndex(), 0); //verify the current index of playlist
- QCOMPARE(playlist.currentMedia(), content1); //verify the current media of playlist
-
- //set the current index for playlist.
- playlist.setCurrentIndex(1);
- QVERIFY(spy.size()== 2); //verify the signal emission.
- QCOMPARE(playlist.currentIndex(), 1); //verify the current index of playlist
- QCOMPARE(playlist.currentMedia(), content2); //verify the current media of playlist
-}
-
-void tst_QMediaPlaylist::testLoaded_signal()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
- playlist.addMedia(content3); //set the media to playlist
-
- QSignalSpy spy(&playlist, SIGNAL(loaded()));
- QVERIFY(spy.size()== 0);
-
- QBuffer buffer;
- buffer.open(QBuffer::ReadWrite);
-
- //load the playlist
- playlist.load(&buffer,"m3u");
- QVERIFY(spy.size()== 1); //verify the signal emission.
-}
-
-void tst_QMediaPlaylist::testMediaChanged_signal()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
-
- QSignalSpy spy(&playlist, SIGNAL(mediaChanged(int,int)));
-
- // Add media to playlist
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
- playlist.addMedia(content3); //set the media to playlist
-
- // Adds/inserts do not cause change signals
- QVERIFY(spy.size() == 0);
-
- // Now change the list
- playlist.shuffle();
-
- QVERIFY(spy.size() == 1);
- spy.clear();
-
- //create media.
- QMediaContent content4(QUrl(QLatin1String("file:///4")));
- QMediaContent content5(QUrl(QLatin1String("file:///5")));
-
- //insert media to playlist
- playlist.insertMedia(1, content4);
- playlist.insertMedia(2, content5);
- // Adds/inserts do not cause change signals
- QVERIFY(spy.size() == 0);
-
- // And again
- playlist.shuffle();
-
- QVERIFY(spy.size() == 1);
-}
-
-void tst_QMediaPlaylist::testPlaybackModeChanged_signal()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
- playlist.addMedia(content3); //set the media to playlist
-
- QSignalSpy spy(&playlist, SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)));
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::Sequential);
- QVERIFY(spy.size() == 0);
-
- // Set playback mode to the playlist
- playlist.setPlaybackMode(QMediaPlaylist::CurrentItemOnce);
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::CurrentItemOnce);
- QVERIFY(spy.size() == 1);
-
- // Set playback mode to the playlist
- playlist.setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::CurrentItemInLoop);
- QVERIFY(spy.size() == 2);
-
- // Set playback mode to the playlist
- playlist.setPlaybackMode(QMediaPlaylist::Sequential);
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::Sequential);
- QVERIFY(spy.size() == 3);
-
- // Set playback mode to the playlist
- playlist.setPlaybackMode(QMediaPlaylist::Loop);
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::Loop);
- QVERIFY(spy.size() == 4);
-
- // Set playback mode to the playlist
- playlist.setPlaybackMode(QMediaPlaylist::Random);
- QVERIFY(playlist.playbackMode()== QMediaPlaylist::Random);
- QVERIFY(spy.size() == 5);
-}
-
-void tst_QMediaPlaylist::testEnums()
-{
- //create an instance of QMediaPlaylist class.
- QMediaPlaylist playlist;
- playlist.addMedia(content1); //set the media to playlist
- playlist.addMedia(content2); //set the media to playlist
- playlist.addMedia(content3); //set the media to playlist
- QCOMPARE(playlist.error(), QMediaPlaylist::NoError);
-
- QBuffer buffer;
- buffer.open(QBuffer::ReadWrite);
-
- // checking for QMediaPlaylist::FormatNotSupportedError enum
- QVERIFY(!playlist.save(&buffer, "unsupported_format"));
- QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
-
- playlist.load(&buffer,"unsupported_format");
- QVERIFY(playlist.error() == QMediaPlaylist::FormatNotSupportedError);
-}
-
-// MaemoAPI-1849:test QMediaPlayListControl constructor
-void tst_QMediaPlaylist::mediaPlayListControl()
-{
- // To check changes in abstract classe's pure virtual functions
- QObject parent;
- MockMediaPlaylistControl plylistctrl(&parent);
-}
-
-// MaemoAPI-1850:test QMediaPlayListSourceControl constructor
-void tst_QMediaPlaylist::mediaPlayListSourceControl()
-{
- // To check changes in abstract classe's pure virtual functions
- QObject parent;
- MockPlaylistSourceControl plylistsrcctrl(&parent);
-}
-
-// MaemoAPI-1852:test constructor
-void tst_QMediaPlaylist::mediaPlayListProvider()
-{
- // srcs of QMediaPlaylistProvider is incomplete
- QObject parent;
- MockReadOnlyPlaylistProvider provider(&parent);
-}
-
-QTEST_MAIN(tst_QMediaPlaylist)
-#include "tst_qmediaplaylist.moc"
-
diff --git a/tests/auto/qmediaplaylistnavigator/qmediaplaylistnavigator.pro b/tests/auto/qmediaplaylistnavigator/qmediaplaylistnavigator.pro
deleted file mode 100644
index 305d63b..0000000
--- a/tests/auto/qmediaplaylistnavigator/qmediaplaylistnavigator.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaplaylistnavigator
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaplaylistnavigator.cpp
-
diff --git a/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp b/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
deleted file mode 100644
index a888847..0000000
--- a/tests/auto/qmediaplaylistnavigator/tst_qmediaplaylistnavigator.cpp
+++ /dev/null
@@ -1,525 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <QDebug>
-#include "qlocalmediaplaylistprovider.h"
-#include "qmediaplaylistnavigator.h"
-
-QT_USE_NAMESPACE
-class tst_QMediaPlaylistNavigator : public QObject
-{
- Q_OBJECT
-public slots:
- void init();
- void cleanup();
-
-private slots:
- void construction();
- void setPlaylist();
- void linearPlayback();
- void loopPlayback();
- void currentItemOnce();
- void currentItemInLoop();
- void randomPlayback();
-
- void testItemAt();
- void testNextIndex();
- void testPreviousIndex();
- void testCurrentIndexChangedSignal();
- void testPlaybackModeChangedSignal();
- void testSurroundingItemsChangedSignal();
- void testActivatedSignal();
-};
-
-void tst_QMediaPlaylistNavigator::init()
-{
- qRegisterMetaType<QMediaPlaylist::PlaybackMode>("QMediaPlaylist::PlaybackMode");
- qRegisterMetaType<QMediaContent>("QMediaContent");
-}
-
-void tst_QMediaPlaylistNavigator::cleanup()
-{
-}
-
-void tst_QMediaPlaylistNavigator::construction()
-{
- QLocalMediaPlaylistProvider playlist;
- QCOMPARE(playlist.mediaCount(), 0);
-
- QMediaPlaylistNavigator navigator(&playlist);
- QVERIFY(navigator.currentItem().isNull());
- QCOMPARE(navigator.currentIndex(), -1);
-}
-
-void tst_QMediaPlaylistNavigator::setPlaylist()
-{
- QMediaPlaylistNavigator navigator(0);
- QVERIFY(navigator.playlist() != 0);
- QCOMPARE(navigator.playlist()->mediaCount(), 0);
- QCOMPARE(navigator.playlist()->media(0), QMediaContent());
- QVERIFY(navigator.playlist()->isReadOnly() );
-
- QLocalMediaPlaylistProvider playlist;
- QCOMPARE(playlist.mediaCount(), 0);
-
- navigator.setPlaylist(&playlist);
- QCOMPARE(navigator.playlist(), (QMediaPlaylistProvider*)&playlist);
- QCOMPARE(navigator.playlist()->mediaCount(), 0);
- QVERIFY(!navigator.playlist()->isReadOnly() );
-}
-
-void tst_QMediaPlaylistNavigator::linearPlayback()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
-
- navigator.setPlaybackMode(QMediaPlaylist::Sequential);
- QTest::ignoreMessage(QtWarningMsg, "QMediaPlaylistNavigator: Jump outside playlist range ");
- navigator.jump(0);//it's ok to have warning here
- QVERIFY(navigator.currentItem().isNull());
- QCOMPARE(navigator.currentIndex(), -1);
-
- QMediaContent content1(QUrl(QLatin1String("file:///1")));
- playlist.addMedia(content1);
- navigator.jump(0);
- QVERIFY(!navigator.currentItem().isNull());
-
- QCOMPARE(navigator.currentIndex(), 0);
- QCOMPARE(navigator.currentItem(), content1);
- QCOMPARE(navigator.nextItem(), QMediaContent());
- QCOMPARE(navigator.nextItem(2), QMediaContent());
- QCOMPARE(navigator.previousItem(), QMediaContent());
- QCOMPARE(navigator.previousItem(2), QMediaContent());
-
- QMediaContent content2(QUrl(QLatin1String("file:///2")));
- playlist.addMedia(content2);
- QCOMPARE(navigator.currentIndex(), 0);
- QCOMPARE(navigator.currentItem(), content1);
- QCOMPARE(navigator.nextItem(), content2);
- QCOMPARE(navigator.nextItem(2), QMediaContent());
- QCOMPARE(navigator.previousItem(), QMediaContent());
- QCOMPARE(navigator.previousItem(2), QMediaContent());
-
- navigator.jump(1);
- QCOMPARE(navigator.currentIndex(), 1);
- QCOMPARE(navigator.currentItem(), content2);
- QCOMPARE(navigator.nextItem(), QMediaContent());
- QCOMPARE(navigator.nextItem(2), QMediaContent());
- QCOMPARE(navigator.previousItem(), content1);
- QCOMPARE(navigator.previousItem(2), QMediaContent());
-
- navigator.jump(0);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();//jump to the first item
- QCOMPARE(navigator.currentIndex(), 0);
-
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.previous();//jump to the last item
- QCOMPARE(navigator.currentIndex(), 1);
-}
-
-void tst_QMediaPlaylistNavigator::loopPlayback()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
-
- navigator.setPlaybackMode(QMediaPlaylist::Loop);
- QTest::ignoreMessage(QtWarningMsg, "QMediaPlaylistNavigator: Jump outside playlist range ");
- navigator.jump(0);
- QVERIFY(navigator.currentItem().isNull());
- QCOMPARE(navigator.currentIndex(), -1);
-
- QMediaContent content1(QUrl(QLatin1String("file:///1")));
- playlist.addMedia(content1);
- navigator.jump(0);
- QVERIFY(!navigator.currentItem().isNull());
-
- QCOMPARE(navigator.currentIndex(), 0);
- QCOMPARE(navigator.currentItem(), content1);
- QCOMPARE(navigator.nextItem(), content1);
- QCOMPARE(navigator.nextItem(2), content1);
- QCOMPARE(navigator.previousItem(), content1);
- QCOMPARE(navigator.previousItem(2), content1);
-
- QMediaContent content2(QUrl(QLatin1String("file:///2")));
- playlist.addMedia(content2);
- QCOMPARE(navigator.currentIndex(), 0);
- QCOMPARE(navigator.currentItem(), content1);
- QCOMPARE(navigator.nextItem(), content2);
- QCOMPARE(navigator.nextItem(2), content1); //loop over end of the list
- QCOMPARE(navigator.previousItem(), content2);
- QCOMPARE(navigator.previousItem(2), content1);
-
- navigator.jump(1);
- QCOMPARE(navigator.currentIndex(), 1);
- QCOMPARE(navigator.currentItem(), content2);
- QCOMPARE(navigator.nextItem(), content1);
- QCOMPARE(navigator.nextItem(2), content2);
- QCOMPARE(navigator.previousItem(), content1);
- QCOMPARE(navigator.previousItem(2), content2);
-
- navigator.jump(0);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), 0);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), 0);
-}
-
-void tst_QMediaPlaylistNavigator::currentItemOnce()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
-
- navigator.setPlaybackMode(QMediaPlaylist::CurrentItemOnce);
-
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::CurrentItemOnce);
- QCOMPARE(navigator.currentIndex(), -1);
-
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
-
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), -1);
-
- navigator.jump(1);
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.jump(1);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), -1);
-}
-
-void tst_QMediaPlaylistNavigator::currentItemInLoop()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
-
- navigator.setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
-
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::CurrentItemInLoop);
- QCOMPARE(navigator.currentIndex(), -1);
-
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
-
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.jump(1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), 1);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), 1);
-}
-
-void tst_QMediaPlaylistNavigator::randomPlayback()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
-
- navigator.setPlaybackMode(QMediaPlaylist::Random);
-
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
-
- playlist.shuffle();
-
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- int pos1 = navigator.currentIndex();
- navigator.next();
- int pos2 = navigator.currentIndex();
- navigator.next();
- int pos3 = navigator.currentIndex();
-
- QVERIFY(pos1 != -1);
- QVERIFY(pos2 != -1);
- QVERIFY(pos3 != -1);
-
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), pos2);
- navigator.next();
- QCOMPARE(navigator.currentIndex(), pos3);
- navigator.next();
- int pos4 = navigator.currentIndex();
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), pos3);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), pos2);
- navigator.previous();
- QCOMPARE(navigator.currentIndex(), pos1);
- navigator.previous();
- int pos0 = navigator.currentIndex();
- QVERIFY(pos0 != -1);
- navigator.next();
- navigator.next();
- navigator.next();
- navigator.next();
- QCOMPARE(navigator.currentIndex(), pos4);
-
-}
-
-void tst_QMediaPlaylistNavigator::testItemAt()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Adding the media to the playlist
- QMediaContent content = QMediaContent(QUrl(QLatin1String("file:///1")));
- playlist.addMedia(content);
-
- //Currently it is not pointing to any index , Returns Null mediacontent
- QCOMPARE(navigator.currentIndex(), -1);
- QCOMPARE(navigator.itemAt(navigator.currentIndex()),QMediaContent());
- navigator.next();
-
- //Points to the added media
- int pos1 = navigator.currentIndex();
- QCOMPARE(content,navigator.itemAt(pos1));
-}
-
-void tst_QMediaPlaylistNavigator::testNextIndex()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
-
- playlist.shuffle();
-
- //Currently it is not pointing to any index
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- int pos1 = navigator.currentIndex();
- //Pointing to the next index
- navigator.next();
- int pos2 = navigator.currentIndex();
- navigator.next();
- int pos3 = navigator.currentIndex();
-
- //Pointing to the previous index
- navigator.previous();
- QCOMPARE(navigator.nextIndex(1), pos3);
- navigator.previous();
- QCOMPARE(navigator.nextIndex(1), pos2);
- QCOMPARE(navigator.nextIndex(2), pos3);
- navigator.previous();
- QCOMPARE(navigator.nextIndex(1), pos1);
-}
-
-void tst_QMediaPlaylistNavigator::testPreviousIndex()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
- playlist.shuffle();
-
- //Currently it is not pointing to any index
- QCOMPARE(navigator.currentIndex(), -1);
-
- //pointing to next index
- navigator.next();
- int pos1 = navigator.currentIndex();
- navigator.next();
- int pos2 = navigator.currentIndex();
- navigator.next();
- int pos3 = navigator.currentIndex();
- QCOMPARE(navigator.previousIndex(1), pos2);
- QCOMPARE(navigator.previousIndex(2), pos1);
- navigator.next();
- QCOMPARE(navigator.previousIndex(1), pos3);
-}
-
-void tst_QMediaPlaylistNavigator::testCurrentIndexChangedSignal()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Creating a QSignalSpy object for currentIndexChanged() signal
- QSignalSpy spy(&navigator,SIGNAL(currentIndexChanged(int)));
- QVERIFY(spy.count() == 0);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///3"))));
-
- //Currently it is not pointing to any index
- QCOMPARE(navigator.currentIndex(), -1);
- navigator.next();
- QVERIFY(spy.count() == 1);
- int pos1 = navigator.currentIndex();
- //Pointing to the next index
- navigator.next();
- QVERIFY(navigator.previousIndex(1) == pos1);
- QVERIFY(spy.count() == 2);
-}
-
-void tst_QMediaPlaylistNavigator::testPlaybackModeChangedSignal()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Creating a QSignalSpy object for currentIndexChanged() signal
- QSignalSpy spy(&navigator,SIGNAL(playbackModeChanged(QMediaPlaylist::PlaybackMode)));
- QVERIFY(spy.count() == 0);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
-
- //set the play back mode to sequential
- navigator.setPlaybackMode(QMediaPlaylist::Sequential);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Sequential);
- QVERIFY(spy.count() == 1);
-
- //set the play back mode to loop
- navigator.setPlaybackMode(QMediaPlaylist::Loop);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Loop);
- QVERIFY(spy.count() == 2);
-}
-
-void tst_QMediaPlaylistNavigator::testSurroundingItemsChangedSignal()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Creating a QSignalSpy object for surroundingItemsChanged()signal
- QSignalSpy spy(&navigator,SIGNAL(surroundingItemsChanged()));
- QVERIFY(spy.count() == 0);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- QVERIFY(spy.count() == 1);
-
- //set the play back mode to sequential
- navigator.setPlaybackMode(QMediaPlaylist::Sequential);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Sequential);
- QVERIFY(spy.count() == 2);
-
- //Point to the next index
- navigator.next();
- QVERIFY(spy.count() == 3);
-}
-
-void tst_QMediaPlaylistNavigator::testActivatedSignal()
-{
- QLocalMediaPlaylistProvider playlist;
- QMediaPlaylistNavigator navigator(&playlist);
- navigator.setPlaybackMode(QMediaPlaylist::Random);
- QCOMPARE(navigator.playbackMode(), QMediaPlaylist::Random);
- QCOMPARE(navigator.currentIndex(), -1);
-
- //Creating a QSignalSpy object for surroundingItemsChanged()signal
- QSignalSpy spy(&navigator,SIGNAL(activated(QMediaContent)));
- QVERIFY(spy.count() == 0);
-
- //Adding the media to the playlist
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///1"))));
- playlist.addMedia(QMediaContent(QUrl(QLatin1String("file:///2"))));
- playlist.shuffle();
-
- //Point to the next index
- navigator.next();
- QVERIFY(spy.count() == 1);
-
- //Jump to 0th item
- navigator.jump(0);
- QVERIFY(spy.count() == 2);
-
- //move to previous item
- navigator.previous();
- QVERIFY(spy.count() == 3);
-}
-
-QTEST_MAIN(tst_QMediaPlaylistNavigator)
-#include "tst_qmediaplaylistnavigator.moc"
diff --git a/tests/auto/qmediapluginloader/qmediapluginloader.pro b/tests/auto/qmediapluginloader/qmediapluginloader.pro
deleted file mode 100644
index f5947c6..0000000
--- a/tests/auto/qmediapluginloader/qmediapluginloader.pro
+++ /dev/null
@@ -1,14 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediapluginloader
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediapluginloader.cpp
-
-wince* {
- PLUGIN_DEPLOY.sources = $$OUTPUT_DIR/plugins/mediaservice/*.dll
- PLUGIN_DEPLOY.path = mediaservice
- DEPLOYMENT += PLUGIN_DEPLOY
-}
-
diff --git a/tests/auto/qmediapluginloader/tst_qmediapluginloader.cpp b/tests/auto/qmediapluginloader/tst_qmediapluginloader.cpp
deleted file mode 100644
index 198d950..0000000
--- a/tests/auto/qmediapluginloader/tst_qmediapluginloader.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <private/qmediapluginloader_p.h>
-#include <qmediaserviceproviderplugin.h>
-
-#include <QtTest/QtTest>
-#include <QDebug>
-
-QT_USE_NAMESPACE
-
-class tst_QMediaPluginLoader : public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testInstance();
- void testInstances();
- void testInvalidKey();
-
-private:
- QMediaPluginLoader *loader;
-};
-
-void tst_QMediaPluginLoader::initTestCase()
-{
- loader = new QMediaPluginLoader(QMediaServiceProviderFactoryInterface_iid,
- QLatin1String("/mediaservice"),
- Qt::CaseInsensitive);
-}
-
-void tst_QMediaPluginLoader::cleanupTestCase()
-{
- delete loader;
-}
-
-void tst_QMediaPluginLoader::testInstance()
-{
- const QStringList keys = loader->keys();
-
- if (keys.isEmpty()) // Test is invalidated, skip.
- QSKIP("No plug-ins available", SkipAll);
-
- foreach (const QString &key, keys)
- QVERIFY(loader->instance(key) != 0);
-}
-
-void tst_QMediaPluginLoader::testInstances()
-{
- const QStringList keys = loader->keys();
-
- if (keys.isEmpty()) // Test is invalidated, skip.
- QSKIP("No plug-ins available", SkipAll);
-
- foreach (const QString &key, keys)
- QVERIFY(loader->instances(key).size() > 0);
-}
-
-// Last so as to not interfere with the other tests if there is a failure.
-void tst_QMediaPluginLoader::testInvalidKey()
-{
- const QString key(QLatin1String("invalid-key"));
-
- // This test assumes there is no 'invalid-key' in the key list, verify that.
- if (loader->keys().contains(key))
- QSKIP("a plug-in includes the invalid key", SkipAll);
-
- QVERIFY(loader->instance(key) == 0);
-
- // Test looking up the key hasn't inserted it into the list. See QMap::operator[].
- QVERIFY(!loader->keys().contains(key));
-
- QVERIFY(loader->instances(key).isEmpty());
- QVERIFY(!loader->keys().contains(key));
-}
-
-QTEST_MAIN(tst_QMediaPluginLoader)
-
-#include "tst_qmediapluginloader.moc"
diff --git a/tests/auto/qmediarecorder/main.cpp b/tests/auto/qmediarecorder/main.cpp
deleted file mode 100755
index cda3faf..0000000
--- a/tests/auto/qmediarecorder/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtCore/qcoreapplication.h>
-#include <QtTest/QtTest>
-
-#include "tst_qmediarecorder.h"
-
-int main(int argc, char**argv)
-{
- QCoreApplication app(argc,argv);
- int ret;
- tst_QMediaRecorder test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qmediarecorder/qmediarecorder.pro b/tests/auto/qmediarecorder/qmediarecorder.pro
deleted file mode 100644
index 1efaba0..0000000
--- a/tests/auto/qmediarecorder/qmediarecorder.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediarecorder
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockrecorder.pri)
-
-HEADERS += tst_qmediarecorder.h
-SOURCES += main.cpp tst_qmediarecorder.cpp
-
diff --git a/tests/auto/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/qmediarecorder/tst_qmediarecorder.cpp
deleted file mode 100644
index d99d73c..0000000
--- a/tests/auto/qmediarecorder/tst_qmediarecorder.cpp
+++ /dev/null
@@ -1,1286 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qmediarecorder.h"
-
-QT_USE_NAMESPACE
-
-void tst_QMediaRecorder::initTestCase()
-{
- qRegisterMetaType<QMediaRecorder::State>("QMediaRecorder::State");
- qRegisterMetaType<QMediaRecorder::Error>("QMediaRecorder::Error");
-
- mock = new MockMediaRecorderControl(this);
- service = new MockMediaRecorderService(this, mock);
- object = new MockMediaObject(this, service);
- capture = new QMediaRecorder(object);
-
- audio = qobject_cast<QAudioEndpointSelector*>(service->requestControl(QAudioEndpointSelector_iid));
- encode = qobject_cast<QAudioEncoderControl*>(service->requestControl(QAudioEncoderControl_iid));
- videoEncode = qobject_cast<QVideoEncoderControl*>(service->requestControl(QVideoEncoderControl_iid));
-}
-
-void tst_QMediaRecorder::cleanupTestCase()
-{
- delete capture;
- delete object;
- delete service;
- delete mock;
-}
-
-void tst_QMediaRecorder::testNullService()
-{
- const QString id(QLatin1String("application/x-format"));
-
- MockMediaObject object(0, 0);
- QMediaRecorder recorder(&object);
-
- QCOMPARE(recorder.outputLocation(), QUrl());
- QCOMPARE(recorder.state(), QMediaRecorder::StoppedState);
- QCOMPARE(recorder.error(), QMediaRecorder::NoError);
- QCOMPARE(recorder.duration(), qint64(0));
- QCOMPARE(recorder.supportedContainers(), QStringList());
- QCOMPARE(recorder.containerDescription(id), QString());
- QCOMPARE(recorder.supportedAudioCodecs(), QStringList());
- QCOMPARE(recorder.audioCodecDescription(id), QString());
- QCOMPARE(recorder.supportedAudioSampleRates(), QList<int>());
- QCOMPARE(recorder.supportedVideoCodecs(), QStringList());
- QCOMPARE(recorder.videoCodecDescription(id), QString());
- bool continuous = true;
- QCOMPARE(recorder.supportedResolutions(QVideoEncoderSettings(), &continuous), QList<QSize>());
- QCOMPARE(continuous, false);
- continuous = true;
- QCOMPARE(recorder.supportedFrameRates(QVideoEncoderSettings(), &continuous), QList<qreal>());
- QCOMPARE(continuous, false);
- QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings());
- QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings());
- QCOMPARE(recorder.containerMimeType(), QString());
- QVERIFY(!recorder.isMuted());
- recorder.setMuted(true);
- QVERIFY(!recorder.isMuted());
-}
-
-void tst_QMediaRecorder::testNullControls()
-{
- const QString id(QLatin1String("application/x-format"));
-
- MockMediaRecorderService service(0, 0);
- service.hasControls = false;
- MockMediaObject object(0, &service);
- QMediaRecorder recorder(&object);
-
- QCOMPARE(recorder.outputLocation(), QUrl());
- QCOMPARE(recorder.state(), QMediaRecorder::StoppedState);
- QCOMPARE(recorder.error(), QMediaRecorder::NoError);
- QCOMPARE(recorder.duration(), qint64(0));
- QCOMPARE(recorder.supportedContainers(), QStringList());
- QCOMPARE(recorder.containerDescription(id), QString());
- QCOMPARE(recorder.supportedAudioCodecs(), QStringList());
- QCOMPARE(recorder.audioCodecDescription(id), QString());
- QCOMPARE(recorder.supportedAudioSampleRates(), QList<int>());
- QCOMPARE(recorder.supportedVideoCodecs(), QStringList());
- QCOMPARE(recorder.videoCodecDescription(id), QString());
- bool continuous = true;
- QCOMPARE(recorder.supportedResolutions(QVideoEncoderSettings(), &continuous), QList<QSize>());
- QCOMPARE(continuous, false);
- continuous = true;
- QCOMPARE(recorder.supportedFrameRates(QVideoEncoderSettings(), &continuous), QList<qreal>());
- QCOMPARE(continuous, false);
- QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings());
- QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings());
- QCOMPARE(recorder.containerMimeType(), QString());
-
- recorder.setOutputLocation(QUrl("file://test/save/file.mp4"));
- QCOMPARE(recorder.outputLocation(), QUrl());
-
- QAudioEncoderSettings audio;
- audio.setCodec(id);
- audio.setQuality(QtMultimedia::LowQuality);
-
- QVideoEncoderSettings video;
- video.setCodec(id);
- video.setResolution(640, 480);
-
- recorder.setEncodingSettings(audio, video, id);
-
- QCOMPARE(recorder.audioSettings(), QAudioEncoderSettings());
- QCOMPARE(recorder.videoSettings(), QVideoEncoderSettings());
- QCOMPARE(recorder.containerMimeType(), QString());
-
- QSignalSpy spy(&recorder, SIGNAL(stateChanged(QMediaRecorder::State)));
-
- recorder.record();
- QCOMPARE(recorder.state(), QMediaRecorder::StoppedState);
- QCOMPARE(recorder.error(), QMediaRecorder::NoError);
- QCOMPARE(spy.count(), 0);
-
- recorder.pause();
- QCOMPARE(recorder.state(), QMediaRecorder::StoppedState);
- QCOMPARE(recorder.error(), QMediaRecorder::NoError);
- QCOMPARE(spy.count(), 0);
-
- recorder.stop();
- QCOMPARE(recorder.state(), QMediaRecorder::StoppedState);
- QCOMPARE(recorder.error(), QMediaRecorder::NoError);
- QCOMPARE(spy.count(), 0);
-}
-
-void tst_QMediaRecorder::testDeleteMediaObject()
-{
- MockMediaRecorderControl *mock = new MockMediaRecorderControl(this);
- MockMediaRecorderService *service = new MockMediaRecorderService(this, mock);
- MockMediaObject *object = new MockMediaObject(this, service);
- QMediaRecorder *capture = new QMediaRecorder(object);
-
- QVERIFY(capture->mediaObject() == object);
- QVERIFY(capture->isAvailable());
-
- delete object;
- delete service;
- delete mock;
-
- QVERIFY(capture->mediaObject() == 0);
- QVERIFY(!capture->isAvailable());
-
- delete capture;
-}
-
-void tst_QMediaRecorder::testError()
-{
- const QString errorString(QLatin1String("format error"));
-
- QSignalSpy spy(capture, SIGNAL(error(QMediaRecorder::Error)));
-
- QCOMPARE(capture->error(), QMediaRecorder::NoError);
- QCOMPARE(capture->errorString(), QString());
-
- mock->error(QMediaRecorder::FormatError, errorString);
- QCOMPARE(capture->error(), QMediaRecorder::FormatError);
- QCOMPARE(capture->errorString(), errorString);
- QCOMPARE(spy.count(), 1);
-
- QCOMPARE(spy.last()[0].value<QMediaRecorder::Error>(), QMediaRecorder::FormatError);
-}
-
-void tst_QMediaRecorder::testSink()
-{
- capture->setOutputLocation(QUrl("test.tmp"));
- QUrl s = capture->outputLocation();
- QCOMPARE(s.toString(), QString("test.tmp"));
-}
-
-void tst_QMediaRecorder::testRecord()
-{
- QSignalSpy stateSignal(capture,SIGNAL(stateChanged(QMediaRecorder::State)));
- QSignalSpy progressSignal(capture, SIGNAL(durationChanged(qint64)));
- capture->record();
- QCOMPARE(capture->state(), QMediaRecorder::RecordingState);
- QCOMPARE(capture->error(), QMediaRecorder::NoError);
- QCOMPARE(capture->errorString(), QString());
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(stateSignal.count(), 1);
- QCOMPARE(stateSignal.last()[0].value<QMediaRecorder::State>(), QMediaRecorder::RecordingState);
- QVERIFY(progressSignal.count() > 0);
- capture->pause();
- QCOMPARE(capture->state(), QMediaRecorder::PausedState);
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(stateSignal.count(), 2);
- capture->stop();
- QCOMPARE(capture->state(), QMediaRecorder::StoppedState);
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(stateSignal.count(), 3);
- mock->stop();
- QCOMPARE(stateSignal.count(), 3);
-
-}
-
-void tst_QMediaRecorder::testMute()
-{
- QSignalSpy mutedChanged(capture, SIGNAL(mutedChanged(bool)));
- QVERIFY(!capture->isMuted());
- capture->setMuted(true);
-
- QCOMPARE(mutedChanged.size(), 1);
- QCOMPARE(mutedChanged[0][0].toBool(), true);
- QVERIFY(capture->isMuted());
-
- capture->setMuted(false);
-
- QCOMPARE(mutedChanged.size(), 2);
- QCOMPARE(mutedChanged[1][0].toBool(), false);
- QVERIFY(!capture->isMuted());
-
- capture->setMuted(false);
- QCOMPARE(mutedChanged.size(), 2);
-}
-
-void tst_QMediaRecorder::testAudioDeviceControl()
-{
- QSignalSpy readSignal(audio,SIGNAL(activeEndpointChanged(QString)));
- QVERIFY(audio->availableEndpoints().size() == 3);
- QVERIFY(audio->defaultEndpoint().compare("device1") == 0);
- audio->setActiveEndpoint("device2");
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(audio->activeEndpoint().compare("device2") == 0);
- QVERIFY(readSignal.count() == 1);
- QVERIFY(audio->endpointDescription("device2").compare("dev2 comment") == 0);
-}
-
-void tst_QMediaRecorder::testAudioEncodeControl()
-{
- QStringList codecs = capture->supportedAudioCodecs();
- QVERIFY(codecs.count() == 2);
- QVERIFY(capture->audioCodecDescription("audio/pcm") == "Pulse Code Modulation");
- QStringList options = encode->supportedEncodingOptions("audio/mpeg");
- QCOMPARE(options.count(), 4);
- QVERIFY(encode->encodingOption("audio/mpeg","bitrate").isNull());
- encode->setEncodingOption("audio/mpeg", "bitrate", QString("vbr"));
- QCOMPARE(encode->encodingOption("audio/mpeg","bitrate").toString(), QString("vbr"));
- QList<int> rates;
- rates << 8000 << 11025 << 22050 << 44100;
- QCOMPARE(capture->supportedAudioSampleRates(), rates);
-}
-
-void tst_QMediaRecorder::testMediaFormatsControl()
-{
- QCOMPARE(capture->supportedContainers(), QStringList() << "wav" << "mp3" << "mov");
-
- QCOMPARE(capture->containerDescription("wav"), QString("WAV format"));
- QCOMPARE(capture->containerDescription("mp3"), QString("MP3 format"));
- QCOMPARE(capture->containerDescription("ogg"), QString());
-}
-
-void tst_QMediaRecorder::testVideoEncodeControl()
-{
- bool continuous = false;
- QList<QSize> sizes = capture->supportedResolutions(QVideoEncoderSettings(), &continuous);
- QCOMPARE(sizes.count(), 2);
- QCOMPARE(continuous, true);
-
- QList<qreal> rates = capture->supportedFrameRates(QVideoEncoderSettings(), &continuous);
- QCOMPARE(rates.count(), 3);
- QCOMPARE(continuous, false);
-
- QStringList vCodecs = capture->supportedVideoCodecs();
- QVERIFY(vCodecs.count() == 2);
- QCOMPARE(capture->videoCodecDescription("video/3gpp"), QString("video/3gpp"));
-
- QStringList options = videoEncode->supportedEncodingOptions("video/3gpp");
- QCOMPARE(options.count(), 2);
-
- QVERIFY(encode->encodingOption("video/3gpp","me").isNull());
- encode->setEncodingOption("video/3gpp", "me", QString("dia"));
- QCOMPARE(encode->encodingOption("video/3gpp","me").toString(), QString("dia"));
-
-}
-
-void tst_QMediaRecorder::testEncodingSettings()
-{
- QAudioEncoderSettings audioSettings = capture->audioSettings();
- QCOMPARE(audioSettings.codec(), QString("audio/pcm"));
- QCOMPARE(audioSettings.bitRate(), 128*1024);
- QCOMPARE(audioSettings.sampleRate(), 8000);
- QCOMPARE(audioSettings.quality(), QtMultimedia::NormalQuality);
- QCOMPARE(audioSettings.channelCount(), -1);
-
- QCOMPARE(audioSettings.encodingMode(), QtMultimedia::ConstantQualityEncoding);
-
- QVideoEncoderSettings videoSettings = capture->videoSettings();
- QCOMPARE(videoSettings.codec(), QString());
- QCOMPARE(videoSettings.bitRate(), -1);
- QCOMPARE(videoSettings.resolution(), QSize());
- QCOMPARE(videoSettings.frameRate(), 0.0);
- QCOMPARE(videoSettings.quality(), QtMultimedia::NormalQuality);
- QCOMPARE(videoSettings.encodingMode(), QtMultimedia::ConstantQualityEncoding);
-
- QString format = capture->containerMimeType();
- QCOMPARE(format, QString());
-
- audioSettings.setCodec("audio/mpeg");
- audioSettings.setSampleRate(44100);
- audioSettings.setBitRate(256*1024);
- audioSettings.setQuality(QtMultimedia::HighQuality);
- audioSettings.setEncodingMode(QtMultimedia::AverageBitRateEncoding);
-
- videoSettings.setCodec("video/3gpp");
- videoSettings.setBitRate(800);
- videoSettings.setFrameRate(24*1024);
- videoSettings.setResolution(QSize(800,600));
- videoSettings.setQuality(QtMultimedia::HighQuality);
- audioSettings.setEncodingMode(QtMultimedia::TwoPassEncoding);
-
- format = QString("mov");
-
- capture->setEncodingSettings(audioSettings,videoSettings,format);
-
- QCOMPARE(capture->audioSettings(), audioSettings);
- QCOMPARE(capture->videoSettings(), videoSettings);
- QCOMPARE(capture->containerMimeType(), format);
-}
-
-void tst_QMediaRecorder::testAudioSettings()
-{
- QAudioEncoderSettings settings;
- QVERIFY(settings.isNull());
- QVERIFY(settings == QAudioEncoderSettings());
-
- QCOMPARE(settings.codec(), QString());
- settings.setCodec(QLatin1String("codecName"));
- QCOMPARE(settings.codec(), QLatin1String("codecName"));
- QVERIFY(!settings.isNull());
- QVERIFY(settings != QAudioEncoderSettings());
-
- settings = QAudioEncoderSettings();
- QCOMPARE(settings.bitRate(), -1);
- settings.setBitRate(128000);
- QCOMPARE(settings.bitRate(), 128000);
- QVERIFY(!settings.isNull());
-
- settings = QAudioEncoderSettings();
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- settings.setQuality(QtMultimedia::HighQuality);
- QCOMPARE(settings.quality(), QtMultimedia::HighQuality);
- QVERIFY(!settings.isNull());
-
- settings = QAudioEncoderSettings();
- QCOMPARE(settings.sampleRate(), -1);
- settings.setSampleRate(44100);
- QCOMPARE(settings.sampleRate(), 44100);
- QVERIFY(!settings.isNull());
-
- settings = QAudioEncoderSettings();
- QCOMPARE(settings.channelCount(), -1);
- settings.setChannelCount(2);
- QCOMPARE(settings.channelCount(), 2);
- QVERIFY(!settings.isNull());
-
- settings = QAudioEncoderSettings();
- QVERIFY(settings.isNull());
- QCOMPARE(settings.codec(), QString());
- QCOMPARE(settings.bitRate(), -1);
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- QCOMPARE(settings.sampleRate(), -1);
-
- {
- QAudioEncoderSettings settings1;
- QAudioEncoderSettings settings2;
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- {
- QAudioEncoderSettings settings1;
- QAudioEncoderSettings settings2(settings1);
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- QAudioEncoderSettings settings1;
- settings1.setBitRate(1);
- QAudioEncoderSettings settings2;
- settings2.setBitRate(1);
- QVERIFY(settings1 == settings2);
- settings2.setBitRate(2);
- QVERIFY(settings1 != settings2);
-
- settings1 = QAudioEncoderSettings();
- settings1.setChannelCount(1);
- settings2 = QAudioEncoderSettings();
- settings2.setChannelCount(1);
- QVERIFY(settings1 == settings2);
- settings2.setChannelCount(2);
- QVERIFY(settings1 != settings2);
-
- settings1 = QAudioEncoderSettings();
- settings1.setCodec("codec1");
- settings2 = QAudioEncoderSettings();
- settings2.setCodec("codec1");
- QVERIFY(settings1 == settings2);
- settings2.setCodec("codec2");
- QVERIFY(settings1 != settings2);
-
- settings1 = QAudioEncoderSettings();
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings2 = QAudioEncoderSettings();
- settings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- QVERIFY(settings1 == settings2);
- settings2.setEncodingMode(QtMultimedia::TwoPassEncoding);
- QVERIFY(settings1 != settings2);
-
- settings1 = QAudioEncoderSettings();
- settings1.setQuality(QtMultimedia::NormalQuality);
- settings2 = QAudioEncoderSettings();
- settings2.setQuality(QtMultimedia::NormalQuality);
- QVERIFY(settings1 == settings2);
- settings2.setQuality(QtMultimedia::LowQuality);
- QVERIFY(settings1 != settings2);
-
- settings1 = QAudioEncoderSettings();
- settings1.setSampleRate(1);
- settings2 = QAudioEncoderSettings();
- settings2.setSampleRate(1);
- QVERIFY(settings1 == settings2);
- settings2.setSampleRate(2);
- QVERIFY(settings1 != settings2);
-}
-
-void tst_QMediaRecorder::testVideoSettings()
-{
- QVideoEncoderSettings settings;
- QVERIFY(settings.isNull());
- QVERIFY(settings == QVideoEncoderSettings());
-
- QCOMPARE(settings.codec(), QString());
- settings.setCodec(QLatin1String("codecName"));
- QCOMPARE(settings.codec(), QLatin1String("codecName"));
- QVERIFY(!settings.isNull());
- QVERIFY(settings != QVideoEncoderSettings());
-
- settings = QVideoEncoderSettings();
- QCOMPARE(settings.bitRate(), -1);
- settings.setBitRate(128000);
- QCOMPARE(settings.bitRate(), 128000);
- QVERIFY(!settings.isNull());
-
- settings = QVideoEncoderSettings();
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- settings.setQuality(QtMultimedia::HighQuality);
- QCOMPARE(settings.quality(), QtMultimedia::HighQuality);
- QVERIFY(!settings.isNull());
-
- settings = QVideoEncoderSettings();
- QCOMPARE(settings.frameRate(), qreal());
- settings.setFrameRate(30000.0/10001);
- QVERIFY(qFuzzyCompare(settings.frameRate(), qreal(30000.0/10001)));
- settings.setFrameRate(24.0);
- QVERIFY(qFuzzyCompare(settings.frameRate(), qreal(24.0)));
- QVERIFY(!settings.isNull());
-
- settings = QVideoEncoderSettings();
- QCOMPARE(settings.resolution(), QSize());
- settings.setResolution(QSize(320,240));
- QCOMPARE(settings.resolution(), QSize(320,240));
- settings.setResolution(800,600);
- QCOMPARE(settings.resolution(), QSize(800,600));
- QVERIFY(!settings.isNull());
-
- settings = QVideoEncoderSettings();
- QVERIFY(settings.isNull());
- QCOMPARE(settings.codec(), QString());
- QCOMPARE(settings.bitRate(), -1);
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
- QCOMPARE(settings.frameRate(), qreal());
- QCOMPARE(settings.resolution(), QSize());
-
- {
- QVideoEncoderSettings settings1;
- QVideoEncoderSettings settings2;
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- {
- QVideoEncoderSettings settings1;
- QVideoEncoderSettings settings2(settings1);
- QCOMPARE(settings2, settings1);
-
- settings2 = settings1;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- settings1.setQuality(QtMultimedia::HighQuality);
-
- QVERIFY(settings2.isNull());
- QVERIFY(!settings1.isNull());
- QVERIFY(settings1 != settings2);
- }
-
- QVideoEncoderSettings settings1;
- settings1.setBitRate(1);
- QVideoEncoderSettings settings2;
- settings2.setBitRate(1);
- QVERIFY(settings1 == settings2);
- settings2.setBitRate(2);
- QVERIFY(settings1 != settings2);
-
- settings1 = QVideoEncoderSettings();
- settings1.setResolution(800,600);
- settings2 = QVideoEncoderSettings();
- settings2.setResolution(QSize(800,600));
- QVERIFY(settings1 == settings2);
- settings2.setResolution(QSize(400,300));
- QVERIFY(settings1 != settings2);
-
- settings1 = QVideoEncoderSettings();
- settings1.setCodec("codec1");
- settings2 = QVideoEncoderSettings();
- settings2.setCodec("codec1");
- QVERIFY(settings1 == settings2);
- settings2.setCodec("codec2");
- QVERIFY(settings1 != settings2);
-
- settings1 = QVideoEncoderSettings();
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings2 = QVideoEncoderSettings();
- settings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- QVERIFY(settings1 == settings2);
- settings2.setEncodingMode(QtMultimedia::TwoPassEncoding);
- QVERIFY(settings1 != settings2);
-
- settings1 = QVideoEncoderSettings();
- settings1.setQuality(QtMultimedia::NormalQuality);
- settings2 = QVideoEncoderSettings();
- settings2.setQuality(QtMultimedia::NormalQuality);
- QVERIFY(settings1 == settings2);
- settings2.setQuality(QtMultimedia::LowQuality);
- QVERIFY(settings1 != settings2);
-
- settings1 = QVideoEncoderSettings();
- settings1.setFrameRate(1);
- settings2 = QVideoEncoderSettings();
- settings2.setFrameRate(1);
- QVERIFY(settings1 == settings2);
- settings2.setFrameRate(2);
- QVERIFY(settings1 != settings2);
-}
-
-
-void tst_QMediaRecorder::nullMetaDataControl()
-{
- const QString titleKey(QLatin1String("Title"));
- const QString title(QLatin1String("Host of Seraphim"));
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.hasControls = false;
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
-
- QSignalSpy spy(&recorder, SIGNAL(metaDataChanged()));
-
- QCOMPARE(recorder.isMetaDataAvailable(), false);
- QCOMPARE(recorder.isMetaDataWritable(), false);
-
- recorder.setMetaData(QtMultimedia::Title, title);
- recorder.setExtendedMetaData(titleKey, title);
-
- QCOMPARE(recorder.metaData(QtMultimedia::Title).toString(), QString());
- QCOMPARE(recorder.extendedMetaData(titleKey).toString(), QString());
- QCOMPARE(recorder.availableMetaData(), QList<QtMultimedia::MetaData>());
- QCOMPARE(recorder.availableExtendedMetaData(), QStringList());
- QCOMPARE(spy.count(), 0);
-}
-
-void tst_QMediaRecorder::isMetaDataAvailable()
-{
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.mockMetaDataControl->setMetaDataAvailable(false);
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
- QCOMPARE(recorder.isMetaDataAvailable(), false);
-
- QSignalSpy spy(&recorder, SIGNAL(metaDataAvailableChanged(bool)));
- service.mockMetaDataControl->setMetaDataAvailable(true);
-
- QCOMPARE(recorder.isMetaDataAvailable(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.at(0).at(0).toBool(), true);
-
- service.mockMetaDataControl->setMetaDataAvailable(false);
-
- QCOMPARE(recorder.isMetaDataAvailable(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.at(1).at(0).toBool(), false);
-}
-
-void tst_QMediaRecorder::isWritable()
-{
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.mockMetaDataControl->setWritable(false);
-
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
-
- QSignalSpy spy(&recorder, SIGNAL(metaDataWritableChanged(bool)));
-
- QCOMPARE(recorder.isMetaDataWritable(), false);
-
- service.mockMetaDataControl->setWritable(true);
-
- QCOMPARE(recorder.isMetaDataWritable(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.at(0).at(0).toBool(), true);
-
- service.mockMetaDataControl->setWritable(false);
-
- QCOMPARE(recorder.isMetaDataWritable(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.at(1).at(0).toBool(), false);
-}
-
-void tst_QMediaRecorder::metaDataChanged()
-{
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
-
- QSignalSpy spy(&recorder, SIGNAL(metaDataChanged()));
-
- service.mockMetaDataControl->metaDataChanged();
- QCOMPARE(spy.count(), 1);
-
- service.mockMetaDataControl->metaDataChanged();
- QCOMPARE(spy.count(), 2);
-}
-
-void tst_QMediaRecorder::metaData_data()
-{
- QTest::addColumn<QString>("artist");
- QTest::addColumn<QString>("title");
- QTest::addColumn<QString>("genre");
-
- QTest::newRow("")
- << QString::fromLatin1("Dead Can Dance")
- << QString::fromLatin1("Host of Seraphim")
- << QString::fromLatin1("Awesome");
-}
-
-void tst_QMediaRecorder::metaData()
-{
- QFETCH(QString, artist);
- QFETCH(QString, title);
- QFETCH(QString, genre);
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.mockMetaDataControl->populateMetaData();
-
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
- QVERIFY(object.availableMetaData().isEmpty());
-
- service.mockMetaDataControl->m_data.insert(QtMultimedia::AlbumArtist, artist);
- service.mockMetaDataControl->m_data.insert(QtMultimedia::Title, title);
- service.mockMetaDataControl->m_data.insert(QtMultimedia::Genre, genre);
-
- QCOMPARE(recorder.metaData(QtMultimedia::AlbumArtist).toString(), artist);
- QCOMPARE(recorder.metaData(QtMultimedia::Title).toString(), title);
-
- QList<QtMultimedia::MetaData> metaDataKeys = recorder.availableMetaData();
- QCOMPARE(metaDataKeys.size(), 3);
- QVERIFY(metaDataKeys.contains(QtMultimedia::AlbumArtist));
- QVERIFY(metaDataKeys.contains(QtMultimedia::Title));
- QVERIFY(metaDataKeys.contains(QtMultimedia::Genre));
-}
-
-void tst_QMediaRecorder::setMetaData_data()
-{
- QTest::addColumn<QString>("title");
-
- QTest::newRow("")
- << QString::fromLatin1("In the Kingdom of the Blind the One eyed are Kings");
-}
-
-void tst_QMediaRecorder::setMetaData()
-{
- QFETCH(QString, title);
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.mockMetaDataControl->populateMetaData();
-
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
-
- recorder.setMetaData(QtMultimedia::Title, title);
- QCOMPARE(recorder.metaData(QtMultimedia::Title).toString(), title);
- QCOMPARE(service.mockMetaDataControl->m_data.value(QtMultimedia::Title).toString(), title);
-}
-
-void tst_QMediaRecorder::extendedMetaData()
-{
- QFETCH(QString, artist);
- QFETCH(QString, title);
- QFETCH(QString, genre);
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
- QVERIFY(recorder.availableExtendedMetaData().isEmpty());
-
- service.mockMetaDataControl->m_extendedData.insert(QLatin1String("Artist"), artist);
- service.mockMetaDataControl->m_extendedData.insert(QLatin1String("Title"), title);
- service.mockMetaDataControl->m_extendedData.insert(QLatin1String("Genre"), genre);
-
- QCOMPARE(recorder.extendedMetaData(QLatin1String("Artist")).toString(), artist);
- QCOMPARE(recorder.extendedMetaData(QLatin1String("Title")).toString(), title);
-
- QStringList extendedKeys = recorder.availableExtendedMetaData();
- QCOMPARE(extendedKeys.size(), 3);
- QVERIFY(extendedKeys.contains(QLatin1String("Artist")));
- QVERIFY(extendedKeys.contains(QLatin1String("Title")));
- QVERIFY(extendedKeys.contains(QLatin1String("Genre")));
-}
-
-void tst_QMediaRecorder::setExtendedMetaData()
-{
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service(0, &recorderControl);
- service.mockMetaDataControl->populateMetaData();
-
- MockMediaObject object(0, &service);
-
- QMediaRecorder recorder(&object);
-
- QString title(QLatin1String("In the Kingdom of the Blind the One eyed are Kings"));
-
- recorder.setExtendedMetaData(QLatin1String("Title"), title);
- QCOMPARE(recorder.extendedMetaData(QLatin1String("Title")).toString(), title);
- QCOMPARE(service.mockMetaDataControl->m_extendedData.value(QLatin1String("Title")).toString(), title);
-}
-
-
-void tst_QMediaRecorder::testAudioSettingsCopyConstructor()
-{
- /* create an object for AudioEncodersettings */
- QAudioEncoderSettings audiosettings;
- QVERIFY(audiosettings.isNull());
-
- /* setting the desired properties for the AudioEncoder */
- audiosettings.setBitRate(128*1000);
- audiosettings.setChannelCount(4);
- audiosettings.setCodec("audio/pcm");
- audiosettings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings.setQuality(QtMultimedia::LowQuality);
- audiosettings.setSampleRate(44100);
-
- /* Copy constructor */
- QAudioEncoderSettings other(audiosettings);
- QVERIFY(!(other.isNull()));
-
- /* Verifying whether data is copied properly or not */
- QVERIFY(other.bitRate() == audiosettings.bitRate());
- QVERIFY(other.sampleRate() == audiosettings.sampleRate());
- QVERIFY(other.channelCount() == audiosettings.channelCount());
- QCOMPARE(other.codec(), audiosettings.codec());
- QVERIFY(other.encodingMode() == audiosettings.encodingMode());
- QVERIFY(other.quality() == audiosettings.quality());
-}
-
-void tst_QMediaRecorder::testAudioSettingsOperatorNotEqual()
-{
- /* create an object for AudioEncodersettings */
- QAudioEncoderSettings audiosettings1;
- QVERIFY(audiosettings1.isNull());
-
- QAudioEncoderSettings audiosettings2;
- QVERIFY(audiosettings2.isNull());
-
- /* setting the desired properties to for the AudioEncoder */
- audiosettings1.setBitRate(128*1000);
- audiosettings1.setChannelCount(4);
- audiosettings1.setCodec("audio/pcm");
- audiosettings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings1.setQuality(QtMultimedia::LowQuality);
- audiosettings1.setSampleRate(44100);
-
- /* setting the desired properties for the AudioEncoder */
- audiosettings2.setBitRate(128*1000);
- audiosettings2.setChannelCount(4);
- audiosettings2.setCodec("audio/pcm");
- audiosettings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings2.setQuality(QtMultimedia::LowQuality);
- audiosettings2.setSampleRate(44100);
-
- /* verify the both are equal or not */
- QVERIFY(!(audiosettings1 != audiosettings2));
-
- /* Modify the settings value for one object */
- audiosettings2.setBitRate(64*1000);
- audiosettings2.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
-
- /* verify the not equal opertor */
- QVERIFY(audiosettings1 != audiosettings2);
-
- QVERIFY(audiosettings2.bitRate() != audiosettings1.bitRate());
- QVERIFY(audiosettings2.encodingMode() != audiosettings1.encodingMode());
-}
-
-void tst_QMediaRecorder::testAudioSettingsOperatorEqual()
-{
- /* create an object for AudioEncodersettings */
- QAudioEncoderSettings audiosettings1;
- QVERIFY(audiosettings1.isNull());
-
- /* setting the desired properties to for the AudioEncoder */
- audiosettings1.setBitRate(128*1000);
- audiosettings1.setChannelCount(4);
- audiosettings1.setCodec("audio/pcm");
- audiosettings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings1.setQuality(QtMultimedia::LowQuality);
- audiosettings1.setSampleRate(44100);
-
- QAudioEncoderSettings audiosettings2;
- QVERIFY(audiosettings2.isNull());
-
- /* setting the desired properties for the AudioEncoder */
- audiosettings2.setBitRate(128*1000);
- audiosettings2.setChannelCount(4);
- audiosettings2.setCodec("audio/pcm");
- audiosettings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings2.setQuality(QtMultimedia::LowQuality);
- audiosettings2.setSampleRate(44100);
-
- /* verify both the values are same or not */
- QVERIFY(audiosettings1 == audiosettings2);
- audiosettings2.setChannelCount(2);
- QVERIFY(audiosettings1 != audiosettings2);
-}
-
-void tst_QMediaRecorder::testAudioSettingsOperatorAssign()
-{
-
- /* create an object for AudioEncodersettings */
- QAudioEncoderSettings audiosettings1;
- QVERIFY(audiosettings1.isNull());
-
- /* setting the desired properties for the AudioEncoder */
- audiosettings1.setBitRate(128*1000);
- audiosettings1.setChannelCount(4);
- audiosettings1.setCodec("audio/pcm");
- audiosettings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- audiosettings1.setQuality(QtMultimedia::LowQuality);
- audiosettings1.setSampleRate(44100);
-
- QAudioEncoderSettings audiosettings2;
- audiosettings2 = audiosettings1;
- /* Verifying whether data is copied properly or not */
- QVERIFY(audiosettings2.bitRate() == audiosettings1.bitRate());
- QVERIFY(audiosettings2.sampleRate() == audiosettings1.sampleRate());
- QVERIFY(audiosettings2.channelCount() == audiosettings1.channelCount());
- QCOMPARE(audiosettings2.codec(), audiosettings1.codec());
- QVERIFY(audiosettings2.encodingMode() == audiosettings1.encodingMode());
- QVERIFY(audiosettings2.quality() == audiosettings1.quality());
-}
-
-void tst_QMediaRecorder::testAudioSettingsDestructor()
-{
- /* Creating null object for the audioencodersettings */
- QAudioEncoderSettings * audiosettings = new QAudioEncoderSettings;
-
- /* Verifying the object is null or not */
- QVERIFY(audiosettings->isNull());
- /* delete the allocated memory */
- delete audiosettings;
-}
-
-/* availabilityError() API test. */
-void tst_QMediaRecorder::testAvailabilityError()
-{
- MockMediaRecorderService service(0, 0);
- MockMediaObject object(0, &service);
- QMediaRecorder recorder(&object);
- QCOMPARE(recorder.availabilityError(), QtMultimedia::ServiceMissingError);
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service1(0, &recorderControl);
- service1.mockMetaDataControl->populateMetaData();
- MockMediaObject object1(0, &service1);
- QMediaRecorder recorder1(&object1);
- QCOMPARE(recorder1.availabilityError(), QtMultimedia::NoError);
-}
-
-/* isAvailable() API test. */
-void tst_QMediaRecorder::testIsAvailable()
-{
- MockMediaRecorderService service(0, 0);
- MockMediaObject object(0, &service);
- QMediaRecorder recorder(&object);
- QCOMPARE(recorder.isAvailable(), false);
-
- MockMediaRecorderControl recorderControl(0);
- MockMediaRecorderService service1(0, &recorderControl);
- service1.mockMetaDataControl->populateMetaData();
- MockMediaObject object1(0, &service1);
- QMediaRecorder recorder1(&object1);
- QCOMPARE(recorder1.isAvailable(), true);
-}
-
-/* mediaObject() API test. */
-void tst_QMediaRecorder::testMediaObject()
-{
- MockMediaRecorderService service(0, 0);
- service.hasControls = false;
- MockMediaObject object(0, &service);
- QMediaRecorder recorder(&object);
-
- QMediaObject *medobj = recorder.mediaObject();
- QVERIFY(medobj == NULL);
-
- QMediaObject *medobj1 = capture->mediaObject();
- QVERIFY(medobj1 != NULL);
-}
-
-/* enum QMediaRecorder::ResourceError property test. */
-void tst_QMediaRecorder::testEnum()
-{
- const QString errorString(QLatin1String("resource error"));
-
- QSignalSpy spy(capture, SIGNAL(error(QMediaRecorder::Error)));
-
- QCOMPARE(capture->error(), QMediaRecorder::NoError);
- QCOMPARE(capture->errorString(), QString());
-
- mock->error(QMediaRecorder::ResourceError, errorString);
- QCOMPARE(capture->error(), QMediaRecorder::ResourceError);
- QCOMPARE(capture->errorString(), errorString);
- QCOMPARE(spy.count(), 1);
-
- QCOMPARE(spy.last()[0].value<QMediaRecorder::Error>(), QMediaRecorder::ResourceError);
-}
-
-/* Test the QVideoEncoderSettings quality API*/
-void tst_QMediaRecorder::testVideoSettingsQuality()
-{
- /* Create the instance*/
- QVideoEncoderSettings settings;
- QVERIFY(settings.isNull());
- QVERIFY(settings == QVideoEncoderSettings());
-
- /* Verify the default value is intialised correctly*/
- QCOMPARE(settings.quality(), QtMultimedia::NormalQuality);
-
- /* Set all types of Quality parameter and Verify if it is set correctly*/
- settings.setQuality(QtMultimedia::HighQuality);
- QCOMPARE(settings.quality(), QtMultimedia::HighQuality);
- QVERIFY(!settings.isNull());
-
- settings.setQuality(QtMultimedia::VeryLowQuality);
- QCOMPARE(settings.quality(), QtMultimedia::VeryLowQuality);
-
- settings.setQuality(QtMultimedia::LowQuality);
- QCOMPARE(settings.quality(), QtMultimedia::LowQuality);
-
- settings.setQuality(QtMultimedia::VeryHighQuality);
- QCOMPARE(settings.quality(), QtMultimedia::VeryHighQuality);
-}
-
-/* Test QVideoEncoderSettings encodingMode */
-void tst_QMediaRecorder::testVideoSettingsEncodingMode()
-{
- /* Create the instance*/
- QVideoEncoderSettings settings;
- QVERIFY(settings.isNull());
- QVERIFY(settings == QVideoEncoderSettings());
-
- /* Verify the default values are initialised correctly*/
- QCOMPARE(settings.encodingMode(), QtMultimedia::ConstantQualityEncoding);
- QVERIFY(settings.isNull());
-
- /* Set each type of encoding mode and Verify if it is set correctly*/
- settings.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- QCOMPARE(settings.encodingMode(),QtMultimedia::ConstantBitRateEncoding);
- QVERIFY(!settings.isNull());
-
- settings.setEncodingMode(QtMultimedia::AverageBitRateEncoding);
- QCOMPARE(settings.encodingMode(), QtMultimedia::AverageBitRateEncoding);
-
- settings.setEncodingMode(QtMultimedia::TwoPassEncoding);
- QCOMPARE(settings.encodingMode(), QtMultimedia::TwoPassEncoding);
-}
-
-/* Test QVideoEncoderSettings copy constructor */
-void tst_QMediaRecorder::testVideoSettingsCopyConstructor()
-{
- /* Create the instance and initialise it*/
- QVideoEncoderSettings settings1;
- settings1.setCodec(QLatin1String("codecName"));
- settings1.setBitRate(128000);
- settings1.setQuality(QtMultimedia::HighQuality);
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings1.setFrameRate(30000.0/10001);
- settings1.setResolution(QSize(320,240));
-
- /* Create another instance with instance1 as argument*/
- QVideoEncoderSettings settings2(settings1);
-
- /* Verify if all the parameters are copied correctly*/
- QCOMPARE(settings2 != settings1, false);
- QCOMPARE(settings2.codec(), QLatin1String("codecName"));
- QCOMPARE(settings2.bitRate(), 128000);
- QCOMPARE(settings2.encodingMode(), QtMultimedia::ConstantBitRateEncoding);
- QVERIFY(qFuzzyCompare(settings2.frameRate(), qreal(30000.0/10001)));
- QCOMPARE(settings2.resolution(), QSize(320,240));
- QCOMPARE(settings2.quality(), QtMultimedia::HighQuality);
-
- /* Verify both the instances are equal*/
- QCOMPARE(settings2, settings1);
- QVERIFY(!settings2.isNull());
-}
-
-/* Test QVideoEncoderSettings Overloaded Operator assignment*/
-void tst_QMediaRecorder::testVideoSettingsOperatorAssignment()
-{
- /* Create two instances.*/
- QVideoEncoderSettings settings1;
- QVideoEncoderSettings settings2;
- QCOMPARE(settings2, settings1);
- QVERIFY(settings2.isNull());
-
- /* Initialize all the parameters */
- settings1.setCodec(QLatin1String("codecName"));
- settings1.setBitRate(128000);
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings1.setFrameRate(30000.0/10001);
- settings1.setResolution(QSize(320,240));
- settings1.setQuality(QtMultimedia::HighQuality);
- /* Assign one object to other*/
- settings2 = settings1;
-
- /* Verify all the parameters are copied correctly*/
- QCOMPARE(settings2, settings1);
- QCOMPARE(settings2.codec(), QLatin1String("codecName"));
- QCOMPARE(settings2.bitRate(), 128000);
- QCOMPARE(settings2.encodingMode(), QtMultimedia::ConstantBitRateEncoding);
- QVERIFY(qFuzzyCompare(settings2.frameRate(), qreal(30000.0/10001)));
- QCOMPARE(settings2.resolution(), QSize(320,240));
- QCOMPARE(settings2.quality(), QtMultimedia::HighQuality);
- QCOMPARE(settings2, settings1);
- QVERIFY(!settings2.isNull());
-}
-
-/* Test QVideoEncoderSettings Overloaded OperatorNotEqual*/
-void tst_QMediaRecorder::testVideoSettingsOperatorNotEqual()
-{
- /* Create the instance and set the bit rate and Verify objects with OperatorNotEqual*/
- QVideoEncoderSettings settings1;
- settings1.setBitRate(1);
- QVideoEncoderSettings settings2;
- settings2.setBitRate(1);
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setBitRate(2);
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-
- /* Verify Resolution with not equal operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setResolution(800,600);
- settings2 = QVideoEncoderSettings();
- settings2.setResolution(QSize(800,600));
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setResolution(QSize(400,300));
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-
- /* Verify Codec with not equal operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setCodec("codec1");
- settings2 = QVideoEncoderSettings();
- settings2.setCodec("codec1");
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setCodec("codec2");
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-
- /* Verify EncodingMode with not equal operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings2 = QVideoEncoderSettings();
- settings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setEncodingMode(QtMultimedia::TwoPassEncoding);
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-
- /* Verify Quality with not equal operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setQuality(QtMultimedia::NormalQuality);
- settings2 = QVideoEncoderSettings();
- settings2.setQuality(QtMultimedia::NormalQuality);
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setQuality(QtMultimedia::LowQuality);
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-
- /* Verify FrameRate with not equal operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setFrameRate(1);
- settings2 = QVideoEncoderSettings();
- settings2.setFrameRate(1);
- /* OperatorNotEqual returns false when both objects are equal*/
- QCOMPARE(settings1 != settings2, false);
- settings2.setFrameRate(2);
- /* OperatorNotEqual returns true when both objects are not equal*/
- QVERIFY(settings1 != settings2);
-}
-
-/* Test QVideoEncoderSettings Overloaded comparison operator*/
-void tst_QMediaRecorder::testVideoSettingsOperatorComparison()
-{
- /* Create the instance and set the bit rate and Verify objects with comparison operator*/
- QVideoEncoderSettings settings1;
- settings1.setBitRate(1);
- QVideoEncoderSettings settings2;
- settings2.setBitRate(1);
-
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setBitRate(2);
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-
- /* Verify resolution with comparison operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setResolution(800,600);
- settings2 = QVideoEncoderSettings();
- settings2.setResolution(QSize(800,600));
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setResolution(QSize(400,300));
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-
- /* Verify Codec with comparison operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setCodec("codec1");
- settings2 = QVideoEncoderSettings();
- settings2.setCodec("codec1");
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setCodec("codec2");
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-
- /* Verify EncodingMode with comparison operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- settings2 = QVideoEncoderSettings();
- settings2.setEncodingMode(QtMultimedia::ConstantBitRateEncoding);
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setEncodingMode(QtMultimedia::TwoPassEncoding);
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-
- /* Verify Quality with comparison operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setQuality(QtMultimedia::NormalQuality);
- settings2 = QVideoEncoderSettings();
- settings2.setQuality(QtMultimedia::NormalQuality);
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setQuality(QtMultimedia::LowQuality);
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-
- /* Verify FrameRate with comparison operator*/
- settings1 = QVideoEncoderSettings();
- settings1.setFrameRate(1);
- settings2 = QVideoEncoderSettings();
- settings2.setFrameRate(1);
- /* Comparison operator returns true when both objects are equal*/
- QVERIFY(settings1 == settings2);
- settings2.setFrameRate(2);
- /* Comparison operator returns false when both objects are not equal*/
- QCOMPARE(settings1 == settings2, false);
-}
-
-/* Test the destuctor of the QVideoEncoderSettings*/
-void tst_QMediaRecorder::testVideoSettingsDestructor()
-{
- /* Create the instance on heap and verify if object deleted correctly*/
- QVideoEncoderSettings *settings1 = new QVideoEncoderSettings();
- QVERIFY(settings1 != NULL);
- QVERIFY(settings1->isNull());
- delete settings1;
-
- /* Create the instance on heap and initialise it and verify if object deleted correctly.*/
- QVideoEncoderSettings *settings2 = new QVideoEncoderSettings();
- QVERIFY(settings2 != NULL);
- settings2->setCodec(QString("codec"));
- QVERIFY(!settings2->isNull());
- delete settings2;
-}
diff --git a/tests/auto/qmediarecorder/tst_qmediarecorder.h b/tests/auto/qmediarecorder/tst_qmediarecorder.h
deleted file mode 100755
index d0202a0..0000000
--- a/tests/auto/qmediarecorder/tst_qmediarecorder.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QMEDIARECORDER_H
-#define TST_QMEDIARECORDER_H
-
-#include <QtTest/QtTest>
-#include <QDebug>
-#include <qmediaobject.h>
-#include <qmediacontrol.h>
-#include <qmediaservice.h>
-#include <qmediarecordercontrol.h>
-#include <qmediarecorder.h>
-#include <qmetadatawritercontrol.h>
-#include <qaudioendpointselector.h>
-#include <qaudioencodercontrol.h>
-#include <qmediacontainercontrol.h>
-#include <qvideoencodercontrol.h>
-
-#include <qaudioformat.h>
-
-#include "mockmediarecorderservice.h"
-#include "mockmediaobject.h"
-
-class tst_QMediaRecorder: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testNullService();
- void testNullControls();
- void testDeleteMediaObject();
- void testError();
- void testSink();
- void testRecord();
- void testMute();
- void testAudioDeviceControl();
- void testAudioEncodeControl();
- void testMediaFormatsControl();
- void testVideoEncodeControl();
- void testEncodingSettings();
- void testAudioSettings();
- void testVideoSettings();
-
- void nullMetaDataControl();
- void isMetaDataAvailable();
- void isWritable();
- void metaDataChanged();
- void metaData_data();
- void metaData();
- void setMetaData_data();
- void setMetaData();
- void extendedMetaData_data() { metaData_data(); }
- void extendedMetaData();
- void setExtendedMetaData_data() { extendedMetaData_data(); }
- void setExtendedMetaData();
-
- void testAudioSettingsCopyConstructor();
- void testAudioSettingsOperatorNotEqual();
- void testAudioSettingsOperatorEqual();
- void testAudioSettingsOperatorAssign();
- void testAudioSettingsDestructor();
-
- void testAvailabilityError();
- void testIsAvailable();
- void testMediaObject();
- void testEnum();
-
- void testVideoSettingsQuality();
- void testVideoSettingsEncodingMode();
- void testVideoSettingsCopyConstructor();
- void testVideoSettingsOperatorAssignment();
- void testVideoSettingsOperatorNotEqual();
- void testVideoSettingsOperatorComparison();
- void testVideoSettingsDestructor();
-
-private:
- QAudioEncoderControl* encode;
- QAudioEndpointSelector* audio;
- MockMediaObject *object;
- MockMediaRecorderService*service;
- MockMediaRecorderControl *mock;
- QMediaRecorder *capture;
- QVideoEncoderControl* videoEncode;
-};
-#endif //TST_QMEDIARECORDER_H
diff --git a/tests/auto/qmediaresource/qmediaresource.pro b/tests/auto/qmediaresource/qmediaresource.pro
deleted file mode 100644
index b6c1e71..0000000
--- a/tests/auto/qmediaresource/qmediaresource.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaresource
-
-QT += network multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaresource.cpp
-
diff --git a/tests/auto/qmediaresource/tst_qmediaresource.cpp b/tests/auto/qmediaresource/tst_qmediaresource.cpp
deleted file mode 100644
index 8051deb..0000000
--- a/tests/auto/qmediaresource/tst_qmediaresource.cpp
+++ /dev/null
@@ -1,700 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "qmediaresource.h"
-
-QT_USE_NAMESPACE
-class tst_QMediaResource : public QObject
-{
- Q_OBJECT
-private slots:
- void constructNull();
- void construct_data();
- void construct();
- void setResolution();
- void equality();
- void copy();
- void assign();
-
- void constructorRequest();
- void copyConstructor();
-};
-
-void tst_QMediaResource::constructNull()
-{
- QMediaResource resource;
-
- QCOMPARE(resource.isNull(), true);
- QCOMPARE(resource.url(), QUrl());
- QCOMPARE(resource.request(), QNetworkRequest());
- QCOMPARE(resource.mimeType(), QString());
- QCOMPARE(resource.language(), QString());
- QCOMPARE(resource.audioCodec(), QString());
- QCOMPARE(resource.videoCodec(), QString());
- QCOMPARE(resource.dataSize(), qint64(0));
- QCOMPARE(resource.audioBitRate(), 0);
- QCOMPARE(resource.sampleRate(), 0);
- QCOMPARE(resource.channelCount(), 0);
- QCOMPARE(resource.videoBitRate(), 0);
- QCOMPARE(resource.resolution(), QSize());
-}
-
-void tst_QMediaResource::construct_data()
-{
- QTest::addColumn<QUrl>("url");
- QTest::addColumn<QNetworkRequest>("request");
- QTest::addColumn<QString>("mimeType");
- QTest::addColumn<QString>("language");
- QTest::addColumn<QString>("audioCodec");
- QTest::addColumn<QString>("videoCodec");
- QTest::addColumn<qint64>("dataSize");
- QTest::addColumn<int>("audioBitRate");
- QTest::addColumn<int>("sampleRate");
- QTest::addColumn<int>("channelCount");
- QTest::addColumn<int>("videoBitRate");
- QTest::addColumn<QSize>("resolution");
-
- QTest::newRow("audio content")
- << QUrl(QString::fromLatin1("http:://test.com/test.mp3"))
- << QNetworkRequest(QUrl(QString::fromLatin1("http:://test.com/test.mp3")))
- << QString::fromLatin1("audio/mpeg")
- << QString::fromLatin1("eng")
- << QString::fromLatin1("mp3")
- << QString()
- << qint64(5465433)
- << 128000
- << 44100
- << 2
- << 0
- << QSize();
- QTest::newRow("image content")
- << QUrl(QString::fromLatin1("http:://test.com/test.jpg"))
- << QNetworkRequest(QUrl(QString::fromLatin1("http:://test.com/test.jpg")))
- << QString::fromLatin1("image/jpeg")
- << QString()
- << QString()
- << QString()
- << qint64(23600)
- << 0
- << 0
- << 0
- << 0
- << QSize(640, 480);
- QTest::newRow("video content")
- << QUrl(QString::fromLatin1("http:://test.com/test.mp4"))
- << QNetworkRequest(QUrl(QString::fromLatin1("http:://test.com/test.mp4")))
- << QString::fromLatin1("video/mp4")
- << QString()
- << QString::fromLatin1("aac")
- << QString::fromLatin1("h264")
- << qint64(36245851)
- << 96000
- << 44000
- << 5
- << 750000
- << QSize(720, 576);
- QTest::newRow("thumbnail")
- << QUrl(QString::fromLatin1("file::///thumbs/test.png"))
- << QNetworkRequest(QUrl(QString::fromLatin1("file::///thumbs/test.png")))
- << QString::fromLatin1("image/png")
- << QString()
- << QString()
- << QString()
- << qint64(2360)
- << 0
- << 0
- << 0
- << 0
- << QSize(128, 128);
-}
-
-void tst_QMediaResource::construct()
-{
- QFETCH(QUrl, url);
- QFETCH(QNetworkRequest, request);
- QFETCH(QString, mimeType);
- QFETCH(QString, language);
- QFETCH(QString, audioCodec);
- QFETCH(QString, videoCodec);
- QFETCH(qint64, dataSize);
- QFETCH(int, audioBitRate);
- QFETCH(int, sampleRate);
- QFETCH(int, channelCount);
- QFETCH(int, videoBitRate);
- QFETCH(QSize, resolution);
-
- {
- QMediaResource resource(url);
-
- QCOMPARE(resource.isNull(), false);
- QCOMPARE(resource.url(), url);
- QCOMPARE(resource.mimeType(), QString());
- QCOMPARE(resource.language(), QString());
- QCOMPARE(resource.audioCodec(), QString());
- QCOMPARE(resource.videoCodec(), QString());
- QCOMPARE(resource.dataSize(), qint64(0));
- QCOMPARE(resource.audioBitRate(), 0);
- QCOMPARE(resource.sampleRate(), 0);
- QCOMPARE(resource.channelCount(), 0);
- QCOMPARE(resource.videoBitRate(), 0);
- QCOMPARE(resource.resolution(), QSize());
- }
- {
- QMediaResource resource(url, mimeType);
-
- QCOMPARE(resource.isNull(), false);
- QCOMPARE(resource.url(), url);
- QCOMPARE(resource.request(), request);
- QCOMPARE(resource.mimeType(), mimeType);
- QCOMPARE(resource.language(), QString());
- QCOMPARE(resource.audioCodec(), QString());
- QCOMPARE(resource.videoCodec(), QString());
- QCOMPARE(resource.dataSize(), qint64(0));
- QCOMPARE(resource.audioBitRate(), 0);
- QCOMPARE(resource.sampleRate(), 0);
- QCOMPARE(resource.channelCount(), 0);
- QCOMPARE(resource.videoBitRate(), 0);
- QCOMPARE(resource.resolution(), QSize());
-
- resource.setLanguage(language);
- resource.setAudioCodec(audioCodec);
- resource.setVideoCodec(videoCodec);
- resource.setDataSize(dataSize);
- resource.setAudioBitRate(audioBitRate);
- resource.setSampleRate(sampleRate);
- resource.setChannelCount(channelCount);
- resource.setVideoBitRate(videoBitRate);
- resource.setResolution(resolution);
-
- QCOMPARE(resource.language(), language);
- QCOMPARE(resource.audioCodec(), audioCodec);
- QCOMPARE(resource.videoCodec(), videoCodec);
- QCOMPARE(resource.dataSize(), dataSize);
- QCOMPARE(resource.audioBitRate(), audioBitRate);
- QCOMPARE(resource.sampleRate(), sampleRate);
- QCOMPARE(resource.channelCount(), channelCount);
- QCOMPARE(resource.videoBitRate(), videoBitRate);
- QCOMPARE(resource.resolution(), resolution);
- }
- {
- QMediaResource resource(request, mimeType);
-
- QCOMPARE(resource.isNull(), false);
- QCOMPARE(resource.url(), url);
- QCOMPARE(resource.request(), request);
- QCOMPARE(resource.mimeType(), mimeType);
- QCOMPARE(resource.language(), QString());
- QCOMPARE(resource.audioCodec(), QString());
- QCOMPARE(resource.videoCodec(), QString());
- QCOMPARE(resource.dataSize(), qint64(0));
- QCOMPARE(resource.audioBitRate(), 0);
- QCOMPARE(resource.sampleRate(), 0);
- QCOMPARE(resource.channelCount(), 0);
- QCOMPARE(resource.videoBitRate(), 0);
- QCOMPARE(resource.resolution(), QSize());
-
- resource.setLanguage(language);
- resource.setAudioCodec(audioCodec);
- resource.setVideoCodec(videoCodec);
- resource.setDataSize(dataSize);
- resource.setAudioBitRate(audioBitRate);
- resource.setSampleRate(sampleRate);
- resource.setChannelCount(channelCount);
- resource.setVideoBitRate(videoBitRate);
- resource.setResolution(resolution);
-
- QCOMPARE(resource.language(), language);
- QCOMPARE(resource.audioCodec(), audioCodec);
- QCOMPARE(resource.videoCodec(), videoCodec);
- QCOMPARE(resource.dataSize(), dataSize);
- QCOMPARE(resource.audioBitRate(), audioBitRate);
- QCOMPARE(resource.sampleRate(), sampleRate);
- QCOMPARE(resource.channelCount(), channelCount);
- QCOMPARE(resource.videoBitRate(), videoBitRate);
- QCOMPARE(resource.resolution(), resolution);
- }
-}
-
-void tst_QMediaResource::setResolution()
-{
- QMediaResource resource(
- QUrl(QString::fromLatin1("file::///thumbs/test.png")),
- QString::fromLatin1("image/png"));
-
- QCOMPARE(resource.resolution(), QSize());
-
- resource.setResolution(QSize(120, 80));
- QCOMPARE(resource.resolution(), QSize(120, 80));
-
- resource.setResolution(QSize(-1, 23));
- QCOMPARE(resource.resolution(), QSize(-1, 23));
-
- resource.setResolution(QSize(-43, 34));
- QCOMPARE(resource.resolution(), QSize(-43, 34));
-
- resource.setResolution(QSize(64, -1));
- QCOMPARE(resource.resolution(), QSize(64, -1));
-
- resource.setResolution(QSize(64, -83));
- QCOMPARE(resource.resolution(), QSize(64, -83));
-
- resource.setResolution(QSize(-12, -83));
- QCOMPARE(resource.resolution(), QSize(-12, -83));
-
- resource.setResolution(QSize());
- QCOMPARE(resource.resolution(), QSize(-1, -1));
-
- resource.setResolution(120, 80);
- QCOMPARE(resource.resolution(), QSize(120, 80));
-
- resource.setResolution(-1, 23);
- QCOMPARE(resource.resolution(), QSize(-1, 23));
-
- resource.setResolution(-43, 34);
- QCOMPARE(resource.resolution(), QSize(-43, 34));
-
- resource.setResolution(64, -1);
- QCOMPARE(resource.resolution(), QSize(64, -1));
-
- resource.setResolution(64, -83);
- QCOMPARE(resource.resolution(), QSize(64, -83));
-
- resource.setResolution(-12, -83);
- QCOMPARE(resource.resolution(), QSize(-12, -83));
-
- resource.setResolution(-1, -1);
- QCOMPARE(resource.resolution(), QSize());
-}
-
-void tst_QMediaResource::equality()
-{
- QMediaResource resource1(
- QUrl(QString::fromLatin1("http://test.com/test.mp4")),
- QString::fromLatin1("video/mp4"));
- QMediaResource resource2(
- QUrl(QString::fromLatin1("http://test.com/test.mp4")),
- QString::fromLatin1("video/mp4"));
- QMediaResource resource3(
- QUrl(QString::fromLatin1("file:///thumbs/test.jpg")));
- QMediaResource resource4(
- QUrl(QString::fromLatin1("file:///thumbs/test.jpg")));
- QMediaResource resource5(
- QUrl(QString::fromLatin1("http://test.com/test.mp3")),
- QString::fromLatin1("audio/mpeg"));
-
- QNetworkRequest request(QUrl("http://test.com/test.mp3"));
- QString requestMimeType("audio/mp3");
-
- QMediaResource requestResource1(request, requestMimeType);
- QMediaResource requestResource2(request, requestMimeType);
-
- QCOMPARE(requestResource1 == requestResource2, true);
- QCOMPARE(requestResource1 != requestResource2, false);
- QCOMPARE(requestResource1 != resource5, true);
-
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- QCOMPARE(resource3 == resource4, true);
- QCOMPARE(resource3 != resource4, false);
-
- QCOMPARE(resource1 == resource3, false);
- QCOMPARE(resource1 != resource3, true);
-
- QCOMPARE(resource1 == resource5, false);
- QCOMPARE(resource1 != resource5, true);
-
- resource1.setAudioCodec(QString::fromLatin1("mp3"));
- resource2.setAudioCodec(QString::fromLatin1("aac"));
-
- // Not equal differing audio codecs.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource1.setAudioCodec(QString::fromLatin1("aac"));
-
- // Equal.
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setVideoCodec(QString());
-
- // Equal.
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setVideoCodec(QString::fromLatin1("h264"));
-
- // Not equal differing video codecs.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource2.setVideoCodec(QString::fromLatin1("h264"));
-
- // Equal.
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource2.setDataSize(0);
-
- // Equal.
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setDataSize(546423);
-
- // Not equal differing video codecs.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource2.setDataSize(546423);
-
- // Equal.
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setAudioBitRate(96000);
- resource1.setSampleRate(48000);
- resource2.setSampleRate(44100);
- resource1.setChannelCount(0);
- resource1.setVideoBitRate(900000);
- resource2.setLanguage(QString::fromLatin1("eng"));
-
- // Not equal, audio bit rate, sample rate, video bit rate, and
- // language.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource2.setAudioBitRate(96000);
- resource1.setSampleRate(44100);
-
- // Not equal, differing video bit rate, and language.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource2.setVideoBitRate(900000);
- resource1.setLanguage(QString::fromLatin1("eng"));
-
- // Equal
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setResolution(QSize());
-
- // Equal
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource2.setResolution(-1, -1);
-
- // Equal
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- resource1.setResolution(QSize(-640, -480));
-
- // Not equal, differing resolution.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
- resource1.setResolution(QSize(640, 480));
- resource2.setResolution(QSize(800, 600));
-
- // Not equal, differing resolution.
- QCOMPARE(resource1 == resource2, false);
- QCOMPARE(resource1 != resource2, true);
-
- resource1.setResolution(800, 600);
-
- // Equal
- QCOMPARE(resource1 == resource2, true);
- QCOMPARE(resource1 != resource2, false);
-
- /* equality tests for constructor of QMediaresource(QNetworkrequest,mimeType)*/
- QNetworkRequest request2(QUrl(QString::fromLatin1("http://test.com/test.mp4")));
- QUrl url(QString::fromLatin1("http://test.com/test.mp4"));
- QString mimeType(QLatin1String("video/mp4"));
-
- QMediaResource resource6(request2,mimeType);
- QMediaResource resource7(request2,mimeType);
-
-
- QVERIFY(resource6.request()==request2);
- QVERIFY(resource6.mimeType()==mimeType);
-
-
- QVERIFY(resource7.request()==request2);
- QVERIFY(resource7.mimeType()==mimeType);
-
- QVERIFY(resource6.request()==resource7.request());
- QVERIFY(resource6.mimeType()==resource7.mimeType());
-
- QVERIFY(resource6==resource7);
-
- /*for copy constructor*/
- QMediaResource resource8(resource7);
-
- QVERIFY(resource8.request()==request2);
- QVERIFY(resource8.mimeType()==mimeType);
-
-
- QVERIFY(resource7.request()==request2);
- QVERIFY(resource7.mimeType()==mimeType);
-
- QVERIFY(resource8.request()==resource7.request());
- QVERIFY(resource8.mimeType()==resource7.mimeType());
-
-
- QVERIFY(resource8==resource7);
-
- /*for assign constructor*/
-
- QMediaResource resource9(request2,mimeType);
-
- QMediaResource resource10=resource9;
-
- QVERIFY(resource10.request()==request2);
- QVERIFY(resource10.mimeType()==mimeType);
-
-
- QVERIFY(resource9.request()==request2);
- QVERIFY(resource9.mimeType()==mimeType);
-
- QVERIFY(resource8.request()==resource7.request());
- QVERIFY(resource8.mimeType()==resource7.mimeType());
-
- QVERIFY(resource8==resource7);
-}
-
-void tst_QMediaResource::copy()
-{
- const QUrl url(QString::fromLatin1("http://test.com/test.mp4"));
- const QString mimeType(QLatin1String("video/mp4"));
- const QString amrCodec(QLatin1String("amr"));
- const QString mp3Codec(QLatin1String("mp3"));
- const QString aacCodec(QLatin1String("aac"));
- const QString h264Codec(QLatin1String("h264"));
-
- QMediaResource original(url, mimeType);
- original.setAudioCodec(amrCodec);
-
- QMediaResource copy(original);
-
- QCOMPARE(copy.url(), url);
- QCOMPARE(copy.mimeType(), mimeType);
- QCOMPARE(copy.audioCodec(), amrCodec);
-
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-
- original.setAudioCodec(mp3Codec);
-
- QCOMPARE(copy.audioCodec(), amrCodec);
- QCOMPARE(original == copy, false);
- QCOMPARE(original != copy, true);
-
- copy.setAudioCodec(aacCodec);
- copy.setVideoCodec(h264Codec);
-
- QCOMPARE(copy.url(), url);
- QCOMPARE(copy.mimeType(), mimeType);
-
- QCOMPARE(original.audioCodec(), mp3Codec);
-}
-
-void tst_QMediaResource::assign()
-{
- const QUrl url(QString::fromLatin1("http://test.com/test.mp4"));
- const QString mimeType(QLatin1String("video/mp4"));
- const QString amrCodec(QLatin1String("amr"));
- const QString mp3Codec(QLatin1String("mp3"));
- const QString aacCodec(QLatin1String("aac"));
- const QString h264Codec(QLatin1String("h264"));
-
- QNetworkRequest request(QUrl(QString::fromLatin1("http://test.com/test.mp4")));
- const qint64 dataSize(23600);
- int audioBitRate = 1, sampleRate = 2, channelCount = 3, videoBitRate = 4;
- QSize resolution(QSize(640, 480));
- QString language("eng");
-
- QMediaResource copy(QUrl(QString::fromLatin1("file:///thumbs/test.jpg")));
-
- QMediaResource original(url, mimeType);
- original.setAudioCodec(amrCodec);
-
- copy = original;
-
- QCOMPARE(copy.url(), url);
- QCOMPARE(copy.mimeType(), mimeType);
- QCOMPARE(copy.audioCodec(), amrCodec);
-
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-
- original.setAudioCodec(mp3Codec);
-
- QCOMPARE(copy.audioCodec(), amrCodec);
- QCOMPARE(original == copy, false);
- QCOMPARE(original != copy, true);
-
- copy.setAudioCodec(aacCodec);
- copy.setVideoCodec(h264Codec);
-
- QCOMPARE(copy.url(), url);
- QCOMPARE(copy.mimeType(), mimeType);
-
- QCOMPARE(original.audioCodec(), mp3Codec);
-
- /* for constructor of QMediaresource(QNetworkrequest,mimeType)*/
-
- QMediaResource copy1(QNetworkRequest(QUrl(QString::fromLatin1("file:///thumbs/test.jpg"))));
-
- QMediaResource original1(request, mimeType);
-
- original1.setAudioCodec(amrCodec);
- original1.setLanguage(QString("eng"));
- original1.setVideoCodec(h264Codec);
- original1.setDataSize(dataSize);
- original1.setAudioBitRate(audioBitRate);
- original1.setSampleRate(sampleRate);
- original1.setChannelCount(channelCount);
- original1.setVideoBitRate(videoBitRate);
- original1.setResolution(resolution);
-
- copy1 = original1;
-
- QCOMPARE(original1 == copy1, true);
-}
-
-// Constructor for request without passing mimetype.
-void tst_QMediaResource::constructorRequest()
-{
- //Initialise the request and url.
- QNetworkRequest request(QUrl(QString::fromLatin1("http:://test.com/test.mp3")));
- QUrl url(QString::fromLatin1("http:://test.com/test.mp3"));
-
- // Create the instance with request as parameter.
- QMediaResource resource(request);
-
- // Verify all the parameters of objects.
- QCOMPARE(resource.isNull(), false);
- QCOMPARE(resource.url(), url);
- QCOMPARE(resource.request(), request);
- QCOMPARE(resource.mimeType(), QString());
- QCOMPARE(resource.language(), QString());
- QCOMPARE(resource.audioCodec(), QString());
- QCOMPARE(resource.videoCodec(), QString());
- QCOMPARE(resource.dataSize(), qint64(0));
- QCOMPARE(resource.audioBitRate(), 0);
- QCOMPARE(resource.sampleRate(), 0);
- QCOMPARE(resource.channelCount(), 0);
- QCOMPARE(resource.videoBitRate(), 0);
- QCOMPARE(resource.resolution(), QSize());
-}
-
-// Copy constructor with all the parameter and copy constructor for constructor with request and mimetype as parameter.
-void tst_QMediaResource::copyConstructor()
-{
- // Initialise all the parameters.
- const QUrl url(QString::fromLatin1("http://test.com/test.mp4"));
- const QString mimeType(QLatin1String("video/mp4"));
- const QString amrCodec(QLatin1String("amr"));
- const QString h264Codec(QLatin1String("h264"));
-
- const qint64 dataSize(23600);
- int audioBitRate = 1, sampleRate = 2, channelCount = 3, videoBitRate = 4;
- QSize resolution(QSize(640, 480));
- QString language("eng");
-
- // Create the instance with url and mimetype.
- QMediaResource original(url, mimeType);
-
- // Set all the parameters.
- original.setAudioCodec(amrCodec);
- original.setLanguage(QString("eng"));
- original.setVideoCodec(h264Codec);
- original.setDataSize(dataSize);
- original.setAudioBitRate(audioBitRate);
- original.setSampleRate(sampleRate);
- original.setChannelCount(channelCount);
- original.setVideoBitRate(videoBitRate);
- original.setResolution(resolution);
-
- // Copy the instance to new object.
- QMediaResource copy(original);
-
- // Verify all the parameters of the copied object.
- QCOMPARE(copy.url(), url);
- QCOMPARE(copy.mimeType(), mimeType);
- QCOMPARE(copy.audioCodec(), amrCodec);
- QCOMPARE(copy.language(), language );
- QCOMPARE(copy.videoCodec(), h264Codec);
- QCOMPARE(copy.dataSize(), dataSize);
- QCOMPARE(copy.audioBitRate(), audioBitRate);
- QCOMPARE(copy.sampleRate(), sampleRate);
- QCOMPARE(copy.channelCount(), channelCount);
- QCOMPARE(copy.videoBitRate(), videoBitRate);
- QCOMPARE(copy.resolution(), resolution);
-
- // Compare both the objects are equal.
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-
- // Initialise the request parameter.
- QNetworkRequest request1(QUrl(QString::fromLatin1("http://test.com/test.mp4")));
-
- // Constructor with rerquest and mimetype.
- QMediaResource original1(request1, mimeType);
-
- // Copy the object and verify if both are eqaul or not.
- QMediaResource copy1(original1);
- QCOMPARE(copy1.url(), url);
- QCOMPARE(copy1.mimeType(), mimeType);
- QCOMPARE(copy1.request(), request1);
- QCOMPARE(original1 == copy1, true);
-}
-
-QTEST_MAIN(tst_QMediaResource)
-
-#include "tst_qmediaresource.moc"
diff --git a/tests/auto/qmediaservice/qmediaservice.pro b/tests/auto/qmediaservice/qmediaservice.pro
deleted file mode 100644
index 9ae2c54..0000000
--- a/tests/auto/qmediaservice/qmediaservice.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaservice
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaservice.cpp
diff --git a/tests/auto/qmediaservice/tst_qmediaservice.cpp b/tests/auto/qmediaservice/tst_qmediaservice.cpp
deleted file mode 100644
index 3a46c56..0000000
--- a/tests/auto/qmediaservice/tst_qmediaservice.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <qvideodevicecontrol.h>
-#include <qmediacontrol.h>
-#include <qmediaservice.h>
-
-#include <QtCore/qcoreapplication.h>
-
-QT_BEGIN_NAMESPACE
-
-class QtTestMediaService;
-
-class QtTestMediaControlA : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QtTestMediaControlA_iid "com.nokia.QtTestMediaControlA"
-Q_MEDIA_DECLARE_CONTROL(QtTestMediaControlA, QtTestMediaControlA_iid)
-
-class QtTestMediaControlB : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QtTestMediaControlB_iid "com.nokia.QtTestMediaControlB"
-Q_MEDIA_DECLARE_CONTROL(QtTestMediaControlB, QtTestMediaControlB_iid)
-
-
-class QtTestMediaControlC : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QtTestMediaControlC_iid "com.nokia.QtTestMediaControlC"
-Q_MEDIA_DECLARE_CONTROL(QtTestMediaControlC, QtTestMediaControlA_iid) // Yes A.
-
-class QtTestMediaControlD : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QtTestMediaControlD_iid "com.nokia.QtTestMediaControlD"
-Q_MEDIA_DECLARE_CONTROL(QtTestMediaControlD, QtTestMediaControlD_iid)
-
-//unimplemented service
-#define QtTestMediaControlE_iid "com.nokia.QtTestMediaControlF"
-class QtTestMediaControlE : public QMediaControl
-{
- Q_OBJECT
-};
-
-/* implementation of child class by inheriting The QMediaService base class for media service implementations. */
-class QtTestMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- int refA;
- int refB;
- int refC;
- QtTestMediaControlA controlA;
- QtTestMediaControlB controlB;
- QtTestMediaControlC controlC;
-
- //constructor
- QtTestMediaService(): QMediaService(0), refA(0), refB(0), refC(0)
- {
- }
-
- //requestControl() pure virtual function of QMediaService class.
- QMediaControl *requestControl(const char *name)
- {
- if (strcmp(name, QtTestMediaControlA_iid) == 0) {
- refA += 1;
-
- return &controlA;
- } else if (strcmp(name, QtTestMediaControlB_iid) == 0) {
- refB += 1;
-
- return &controlB;
- } else if (strcmp(name, QtTestMediaControlC_iid) == 0) {
- refA += 1;
-
- return &controlA;
- } else {
- return 0;
- }
- }
-
- //releaseControl() pure virtual function of QMediaService class.
- void releaseControl(QMediaControl *control)
- {
- if (control == &controlA)
- refA -= 1;
- else if (control == &controlB)
- refB -= 1;
- else if (control == &controlC)
- refC -= 1;
- }
-
- //requestControl() function of QMediaService class.
- using QMediaService::requestControl;
-};
-
-/* Test case implementation for QMediaService class which provides a common base class for media service implementations.*/
-class tst_QMediaService : public QObject
-{
- Q_OBJECT
-private slots:
- void tst_destructor();
- void tst_releaseControl();
- void tst_requestControl();
- void tst_requestControlTemplate();
-
- void initTestCase();
-
- void control_iid();
- void control();
-
-};
-
-/*MaemoAPI-1668 :destructor property test. */
-void tst_QMediaService::tst_destructor()
-{
- QtTestMediaService *service = new QtTestMediaService;
- delete service;
-}
-
-void tst_QMediaService::initTestCase()
-{
-}
-
-/*MaemoAPI-1669 :releaseControl() API property test. */
-void tst_QMediaService::tst_releaseControl()
-{
- //test class instance creation
- QtTestMediaService service;
-
- //Get a pointer to the media control implementing interface and verify.
- QMediaControl* controlA = service.requestControl(QtTestMediaControlA_iid);
- QCOMPARE(controlA, &service.controlA);
- service.releaseControl(controlA); //Controls must be returned to the service when no longer needed
- QVERIFY(service.refA == 0);
-
- //Get a pointer to the media control implementing interface and verify.
- QMediaControl* controlB = service.requestControl(QtTestMediaControlB_iid);
- QCOMPARE(controlB, &service.controlB);
- service.releaseControl(controlB); //Controls must be returned to the service when no longer needed
- QVERIFY(service.refB == 0);
-}
-
-/*MaemoAPI-1670 :requestControl() API property test. */
-void tst_QMediaService::tst_requestControl()
-{
- //test class instance creation
- QtTestMediaService service;
-
- //Get a pointer to the media control implementing interface and verify.
- QMediaControl* controlA = service.requestControl(QtTestMediaControlA_iid);
- QCOMPARE(controlA, &service.controlA);
- service.releaseControl(controlA); //Controls must be returned to the service when no longer needed
-
- //Get a pointer to the media control implementing interface and verify.
- QMediaControl* controlB = service.requestControl(QtTestMediaControlB_iid);
- QCOMPARE(controlB, &service.controlB);
- service.releaseControl(controlB); //Controls must be returned to the service when no longer needed
-
- //If the service does not implement the control, a null pointer is returned instead.
- QMediaControl* controlE = service.requestControl(QtTestMediaControlE_iid);
- QVERIFY(!controlE); //should return null pointer
- service.releaseControl(controlE); //Controls must be returned to the service when no longer needed
-
- //If the service is unavailable a null pointer is returned instead.
- QMediaControl* control = service.requestControl("");
- QVERIFY(!control); //should return null pointer
- service.releaseControl(control); //Controls must be returned to the service when no longer needed
-}
-
-/*MaemoAPI-1671 :requestControl() API property test. */
-void tst_QMediaService::tst_requestControlTemplate()
-{
- //test class instance creation
- QtTestMediaService service;
-
- //Get a pointer to the media control of type T implemented by a media service.
- QtTestMediaControlA *controlA = service.requestControl<QtTestMediaControlA *>();
- QCOMPARE(controlA, &service.controlA);
- service.releaseControl(controlA);
-
- //Get a pointer to the media control of type T implemented by a media service.
- QtTestMediaControlB *controlB = service.requestControl<QtTestMediaControlB *>();
- QCOMPARE(controlB, &service.controlB);
- service.releaseControl(controlB);
-
- QVERIFY(!service.requestControl<QtTestMediaControlC *>()); // Faulty implementation returns A.
- QCOMPARE(service.refA, 0); // Verify the control was released.
-
- QVERIFY(!service.requestControl<QtTestMediaControlD *>()); // No control of that type.
-}
-
-
-void tst_QMediaService::control_iid()
-{
- const char *nullString = 0;
-
- // Default implementation.
- QCOMPARE(qmediacontrol_iid<QtTestMediaControlE *>(), nullString);
-
- // Partial template.
- QVERIFY(qstrcmp(qmediacontrol_iid<QtTestMediaControlA *>(), QtTestMediaControlA_iid) == 0);
-}
-
-void tst_QMediaService::control()
-{
- QtTestMediaService service;
-
- QtTestMediaControlA *controlA = service.requestControl<QtTestMediaControlA *>();
- QCOMPARE(controlA, &service.controlA);
- service.releaseControl(controlA);
-
- QtTestMediaControlB *controlB = service.requestControl<QtTestMediaControlB *>();
- QCOMPARE(controlB, &service.controlB);
- service.releaseControl(controlB);
-
- QVERIFY(!service.requestControl<QtTestMediaControlC *>()); // Faulty implementation returns A, but is wrong class
- QCOMPARE(service.refA, 0); // Verify the control was released.
-
- QVERIFY(!service.requestControl<QtTestMediaControlD *>()); // No control of that type.
-}
-
-QT_END_NAMESPACE
-
-QT_USE_NAMESPACE
-
-QTEST_MAIN(tst_QMediaService)
-
-#include "tst_qmediaservice.moc"
diff --git a/tests/auto/qmediaserviceprovider/qmediaserviceprovider.pro b/tests/auto/qmediaserviceprovider/qmediaserviceprovider.pro
deleted file mode 100644
index d74c936..0000000
--- a/tests/auto/qmediaserviceprovider/qmediaserviceprovider.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediaserviceprovider
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediaserviceprovider.cpp
-
diff --git a/tests/auto/qmediaserviceprovider/tst_qmediaserviceprovider.cpp b/tests/auto/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
deleted file mode 100644
index c70401f..0000000
--- a/tests/auto/qmediaserviceprovider/tst_qmediaserviceprovider.cpp
+++ /dev/null
@@ -1,499 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <QDebug>
-#include <QStringList>
-
-#include <qmediaserviceprovider.h>
-#include <qmediaserviceproviderplugin.h>
-#include <private/qmediapluginloader_p.h>
-#include <qmediaobject.h>
-#include <qmediaservice.h>
-#include <qmediaplayer.h>
-#include <qaudiocapturesource.h>
-
-QT_USE_NAMESPACE
-class MockMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- MockMediaService(const QString& name, QObject *parent = 0) : QMediaService(parent)
- { setObjectName(name); }
- ~MockMediaService() {}
-
- QMediaControl* requestControl(const char *) {return 0;}
- void releaseControl(QMediaControl *) {}
-};
-
-class MockServicePlugin1 : public QMediaServiceProviderPlugin,
- public QMediaServiceSupportedFormatsInterface,
- public QMediaServiceSupportedDevicesInterface
-{
- Q_OBJECT
- Q_INTERFACES(QMediaServiceSupportedFormatsInterface)
- Q_INTERFACES(QMediaServiceSupportedDevicesInterface)
-public:
- QStringList keys() const
- {
- return QStringList() <<
- QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER);
- }
-
- QMediaService* create(QString const& key)
- {
- if (keys().contains(key))
- return new MockMediaService("MockServicePlugin1");
- else
- return 0;
- }
-
- void release(QMediaService *service)
- {
- delete service;
- }
-
- QtMultimedia::SupportEstimate hasSupport(const QString &mimeType, const QStringList& codecs) const
- {
- if (codecs.contains(QLatin1String("mpeg4")))
- return QtMultimedia::NotSupported;
-
- if (mimeType == "audio/ogg") {
- return QtMultimedia::ProbablySupported;
- }
-
- return QtMultimedia::MaybeSupported;
- }
-
- QStringList supportedMimeTypes() const
- {
- return QStringList("audio/ogg");
- }
-
- QList<QByteArray> devices(const QByteArray &service) const
- {
- QList<QByteArray> res;
- return res;
- }
-
- QString deviceDescription(const QByteArray &service, const QByteArray &device)
- {
- if (devices(service).contains(device))
- return QString(device)+" description";
- else
- return QString();
- }
-};
-
-class MockServicePlugin2 : public QMediaServiceProviderPlugin,
- public QMediaServiceSupportedFormatsInterface,
- public QMediaServiceFeaturesInterface
-{
- Q_OBJECT
- Q_INTERFACES(QMediaServiceSupportedFormatsInterface)
- Q_INTERFACES(QMediaServiceFeaturesInterface)
-public:
- QStringList keys() const
- {
- return QStringList() << QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)
- << QLatin1String(Q_MEDIASERVICE_RADIO);
- }
-
- QMediaService* create(QString const& key)
- {
- if (keys().contains(key))
- return new MockMediaService("MockServicePlugin2");
- else
- return 0;
- }
-
- void release(QMediaService *service)
- {
- delete service;
- }
-
- QtMultimedia::SupportEstimate hasSupport(const QString &mimeType, const QStringList& codecs) const
- {
- Q_UNUSED(codecs);
-
- if (mimeType == "audio/wav")
- return QtMultimedia::PreferredService;
-
- return QtMultimedia::NotSupported;
- }
-
- QStringList supportedMimeTypes() const
- {
- return QStringList("audio/wav");
- }
-
- QMediaServiceProviderHint::Features supportedFeatures(const QByteArray &service) const
- {
- if (service == QByteArray(Q_MEDIASERVICE_MEDIAPLAYER))
- return QMediaServiceProviderHint::LowLatencyPlayback;
- else
- return 0;
- }
-};
-
-
-class MockServicePlugin3 : public QMediaServiceProviderPlugin,
- public QMediaServiceSupportedDevicesInterface
-{
- Q_OBJECT
- Q_INTERFACES(QMediaServiceSupportedDevicesInterface)
-public:
- QStringList keys() const
- {
- return QStringList() <<
- QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER) <<
- QLatin1String(Q_MEDIASERVICE_AUDIOSOURCE);
- }
-
- QMediaService* create(QString const& key)
- {
- if (keys().contains(key))
- return new MockMediaService("MockServicePlugin3");
- else
- return 0;
- }
-
- void release(QMediaService *service)
- {
- delete service;
- }
-
- QList<QByteArray> devices(const QByteArray &service) const
- {
- QList<QByteArray> res;
- if (service == QByteArray(Q_MEDIASERVICE_AUDIOSOURCE))
- res << "audiosource1" << "audiosource2";
-
- return res;
- }
-
- QString deviceDescription(const QByteArray &service, const QByteArray &device)
- {
- if (devices(service).contains(device))
- return QString(device)+" description";
- else
- return QString();
- }
-};
-
-class MockServicePlugin4 : public QMediaServiceProviderPlugin,
- public QMediaServiceSupportedFormatsInterface,
- public QMediaServiceFeaturesInterface
-{
- Q_OBJECT
- Q_INTERFACES(QMediaServiceSupportedFormatsInterface)
- Q_INTERFACES(QMediaServiceFeaturesInterface)
-public:
- QStringList keys() const
- {
- return QStringList() << QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER);
- }
-
- QMediaService* create(QString const& key)
- {
- if (keys().contains(key))
- return new MockMediaService("MockServicePlugin4");
- else
- return 0;
- }
-
- void release(QMediaService *service)
- {
- delete service;
- }
-
- QtMultimedia::SupportEstimate hasSupport(const QString &mimeType, const QStringList& codecs) const
- {
- if (codecs.contains(QLatin1String("jpeg2000")))
- return QtMultimedia::NotSupported;
-
- if (supportedMimeTypes().contains(mimeType))
- return QtMultimedia::ProbablySupported;
-
- return QtMultimedia::MaybeSupported;
- }
-
- QStringList supportedMimeTypes() const
- {
- return QStringList() << "video/mp4" << "video/quicktime";
- }
-
- QMediaServiceProviderHint::Features supportedFeatures(const QByteArray &service) const
- {
- if (service == QByteArray(Q_MEDIASERVICE_MEDIAPLAYER))
- return QMediaServiceProviderHint::StreamPlayback;
- else
- return 0;
- }
-};
-
-
-
-class MockMediaServiceProvider : public QMediaServiceProvider
-{
- QMediaService* requestService(const QByteArray &type, const QMediaServiceProviderHint &)
- {
- Q_UNUSED(type);
- return 0;
- }
-
- void releaseService(QMediaService *service)
- {
- Q_UNUSED(service);
- }
-};
-
-
-class tst_QMediaServiceProvider : public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
-
-private slots:
- void testDefaultProviderAvailable();
- void testObtainService();
- void testHasSupport();
- void testSupportedMimeTypes();
- void testProviderHints();
-
-private:
- QObjectList plugins;
-};
-
-void tst_QMediaServiceProvider::initTestCase()
-{
- plugins << new MockServicePlugin1;
- plugins << new MockServicePlugin2;
- plugins << new MockServicePlugin3;
- plugins << new MockServicePlugin4;
-
- QMediaPluginLoader::setStaticPlugins(QLatin1String("mediaservice"), plugins);
-}
-
-void tst_QMediaServiceProvider::testDefaultProviderAvailable()
-{
- // Must always be a default provider available
- QVERIFY(QMediaServiceProvider::defaultServiceProvider() != 0);
-}
-
-void tst_QMediaServiceProvider::testObtainService()
-{
- QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
-
- if (provider == 0)
- QSKIP("No default provider", SkipSingle);
-
- QMediaService *service = 0;
-
- // Player
- service = provider->requestService(Q_MEDIASERVICE_MEDIAPLAYER);
- QVERIFY(service != 0);
- provider->releaseService(service);
-}
-
-void tst_QMediaServiceProvider::testHasSupport()
-{
- MockMediaServiceProvider mockProvider;
- QCOMPARE(mockProvider.hasSupport(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER), "video/ogv", QStringList()),
- QtMultimedia::MaybeSupported);
-
- QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
-
- if (provider == 0)
- QSKIP("No default provider", SkipSingle);
-
- QCOMPARE(provider->hasSupport(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER), "video/ogv", QStringList()),
- QtMultimedia::MaybeSupported);
-
- QCOMPARE(provider->hasSupport(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER), "audio/ogg", QStringList()),
- QtMultimedia::ProbablySupported);
-
- //while the service returns PreferredService, provider should return ProbablySupported
- QCOMPARE(provider->hasSupport(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER), "audio/wav", QStringList()),
- QtMultimedia::ProbablySupported);
-
- //even while all the plugins with "hasSupport" returned NotSupported,
- //MockServicePlugin3 has no "hasSupport" interface, so MaybeSupported
- QCOMPARE(provider->hasSupport(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER), "video/avi",
- QStringList() << "mpeg4"),
- QtMultimedia::MaybeSupported);
-
- QCOMPARE(provider->hasSupport(QByteArray("non existing service"), "video/ogv", QStringList()),
- QtMultimedia::NotSupported);
-
- QCOMPARE(QMediaPlayer::hasSupport("video/ogv"), QtMultimedia::MaybeSupported);
- QCOMPARE(QMediaPlayer::hasSupport("audio/ogg"), QtMultimedia::ProbablySupported);
- QCOMPARE(QMediaPlayer::hasSupport("audio/wav"), QtMultimedia::ProbablySupported);
-
- //test low latency flag support
- QCOMPARE(QMediaPlayer::hasSupport("audio/wav", QStringList(), QMediaPlayer::LowLatency),
- QtMultimedia::ProbablySupported);
- //plugin1 probably supports audio/ogg, it checked because it doesn't provide features iface
- QCOMPARE(QMediaPlayer::hasSupport("audio/ogg", QStringList(), QMediaPlayer::LowLatency),
- QtMultimedia::ProbablySupported);
- //Plugin4 is not checked here, sine it's known not support low latency
- QCOMPARE(QMediaPlayer::hasSupport("video/quicktime", QStringList(), QMediaPlayer::LowLatency),
- QtMultimedia::MaybeSupported);
-
- //test streaming flag support
- QCOMPARE(QMediaPlayer::hasSupport("video/quicktime", QStringList(), QMediaPlayer::StreamPlayback),
- QtMultimedia::ProbablySupported);
- //Plugin2 is not checked here, sine it's known not support streaming
- QCOMPARE(QMediaPlayer::hasSupport("audio/wav", QStringList(), QMediaPlayer::StreamPlayback),
- QtMultimedia::MaybeSupported);
-
- //ensure the correct media player plugin is chosen for mime type
- QMediaPlayer simplePlayer(0, QMediaPlayer::LowLatency);
- QCOMPARE(simplePlayer.service()->objectName(), QLatin1String("MockServicePlugin2"));
-
- QMediaPlayer mediaPlayer;
- QVERIFY(mediaPlayer.service()->objectName() != QLatin1String("MockServicePlugin2"));
-
- QMediaPlayer streamPlayer(0, QMediaPlayer::StreamPlayback);
- QCOMPARE(streamPlayer.service()->objectName(), QLatin1String("MockServicePlugin4"));
-}
-
-void tst_QMediaServiceProvider::testSupportedMimeTypes()
-{
- QMediaServiceProvider *provider = QMediaServiceProvider::defaultServiceProvider();
-
- if (provider == 0)
- QSKIP("No default provider", SkipSingle);
-
- QVERIFY(provider->supportedMimeTypes(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER)).contains("audio/ogg"));
- QVERIFY(!provider->supportedMimeTypes(QByteArray(Q_MEDIASERVICE_MEDIAPLAYER)).contains("audio/mp3"));
-}
-
-void tst_QMediaServiceProvider::testProviderHints()
-{
- {
- QMediaServiceProviderHint hint;
- QVERIFY(hint.isNull());
- QCOMPARE(hint.type(), QMediaServiceProviderHint::Null);
- QVERIFY(hint.device().isEmpty());
- QVERIFY(hint.mimeType().isEmpty());
- QVERIFY(hint.codecs().isEmpty());
- QCOMPARE(hint.features(), 0);
- }
-
- {
- QByteArray deviceName(QByteArray("testDevice"));
- QMediaServiceProviderHint hint(deviceName);
- QVERIFY(!hint.isNull());
- QCOMPARE(hint.type(), QMediaServiceProviderHint::Device);
- QCOMPARE(hint.device(), deviceName);
- QVERIFY(hint.mimeType().isEmpty());
- QVERIFY(hint.codecs().isEmpty());
- QCOMPARE(hint.features(), 0);
- }
-
- {
- QMediaServiceProviderHint hint(QMediaServiceProviderHint::LowLatencyPlayback);
- QVERIFY(!hint.isNull());
- QCOMPARE(hint.type(), QMediaServiceProviderHint::SupportedFeatures);
- QVERIFY(hint.device().isEmpty());
- QVERIFY(hint.mimeType().isEmpty());
- QVERIFY(hint.codecs().isEmpty());
- QCOMPARE(hint.features(), QMediaServiceProviderHint::LowLatencyPlayback);
- }
-
- {
- QMediaServiceProviderHint hint(QMediaServiceProviderHint::RecordingSupport);
- QVERIFY(!hint.isNull());
- QCOMPARE(hint.type(), QMediaServiceProviderHint::SupportedFeatures);
- QVERIFY(hint.device().isEmpty());
- QVERIFY(hint.mimeType().isEmpty());
- QVERIFY(hint.codecs().isEmpty());
- QCOMPARE(hint.features(), QMediaServiceProviderHint::RecordingSupport);
- }
-
- {
- QString mimeType(QLatin1String("video/ogg"));
- QStringList codecs;
- codecs << "theora" << "vorbis";
-
- QMediaServiceProviderHint hint(mimeType,codecs);
- QVERIFY(!hint.isNull());
- QCOMPARE(hint.type(), QMediaServiceProviderHint::ContentType);
- QVERIFY(hint.device().isEmpty());
- QCOMPARE(hint.mimeType(), mimeType);
- QCOMPARE(hint.codecs(), codecs);
-
- QMediaServiceProviderHint hint2(hint);
-
- QVERIFY(!hint2.isNull());
- QCOMPARE(hint2.type(), QMediaServiceProviderHint::ContentType);
- QVERIFY(hint2.device().isEmpty());
- QCOMPARE(hint2.mimeType(), mimeType);
- QCOMPARE(hint2.codecs(), codecs);
-
- QMediaServiceProviderHint hint3;
- QVERIFY(hint3.isNull());
- hint3 = hint;
- QVERIFY(!hint3.isNull());
- QCOMPARE(hint3.type(), QMediaServiceProviderHint::ContentType);
- QVERIFY(hint3.device().isEmpty());
- QCOMPARE(hint3.mimeType(), mimeType);
- QCOMPARE(hint3.codecs(), codecs);
-
- QCOMPARE(hint, hint2);
- QCOMPARE(hint3, hint2);
-
- QMediaServiceProviderHint hint4(mimeType,codecs);
- QCOMPARE(hint, hint4);
-
- QMediaServiceProviderHint hint5(mimeType,QStringList());
- QVERIFY(hint != hint5);
- }
-}
-
-QTEST_MAIN(tst_QMediaServiceProvider)
-
-#include "tst_qmediaserviceprovider.moc"
diff --git a/tests/auto/qmediastreamscontrol/qmediastreamscontrol.pro b/tests/auto/qmediastreamscontrol/qmediastreamscontrol.pro
deleted file mode 100644
index d271671..0000000
--- a/tests/auto/qmediastreamscontrol/qmediastreamscontrol.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediastreamscontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += \
- tst_qmediastreamscontrol.cpp
-
-include(../multimedia_common.pri)
diff --git a/tests/auto/qmediastreamscontrol/tst_qmediastreamscontrol.cpp b/tests/auto/qmediastreamscontrol/tst_qmediastreamscontrol.cpp
deleted file mode 100644
index d728691..0000000
--- a/tests/auto/qmediastreamscontrol/tst_qmediastreamscontrol.cpp
+++ /dev/null
@@ -1,408 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <QtCore/QString>
-#include <QtTest/QtTest>
-#include <QtCore/QCoreApplication>
-
-
-#include <qmediaplayercontrol.h>
-#include <qmediaservice.h>
-
-#include <qmediastreamscontrol.h>
-
-#include <QtGui/QImage>
-#include <QtCore/QPointer>
-
-QT_USE_NAMESPACE
-
-
-#define WAIT_FOR_CONDITION(a,e) \
- for (int _i = 0; _i < 500; _i += 1) { \
- if ((a) == (e)) break; \
- QTest::qWait(10);}
-
-class tst_qmediastreamscontrol : public QObject
-{
- Q_OBJECT
-
-public:
- tst_qmediastreamscontrol();
-
-private Q_SLOTS:
- void initTestCase();
- void cleanupTestCase();
- void control_iid();
- void control();
- void isActive();
- void streamCount();
- void streamsChanged();
- void metadata();
-};
-
-
-
-class mediaStatusList : public QObject, public QList<QMediaStreamsControl::StreamType>
-{
- Q_OBJECT
-public slots:
- void mediaStatus(QMediaStreamsControl::StreamType status) {
- append(status);
- }
-
-public:
- mediaStatusList(QObject *obj, const char *aSignal)
- : QObject()
- {
- QObject::connect(obj, aSignal, this, SLOT(mediaStatus(QMediaStreamsControl::StreamType)));
- }
-};
-
-class QtTestMediaStreamsControl: public QMediaStreamsControl
-{
-public:
- QtTestMediaStreamsControl(QObject *parent = 0)
- : QMediaStreamsControl(parent)
- {
- }
-
- int streamCount()
- {
- QList <StreamType> m_stype;
-
- return streams.count();
- }
- void setStreamCount(int count)
- {
- streams.resize(count);
- }
-
- StreamType streamType(int index)
- {
- return streams.at(index).type;
- }
- void setStreamType(int index, StreamType type)
- {
- streams[index].type = type;
- }
-
- QVariant metaData(int index, QtMultimedia::MetaData key)
- {
- QtMultimedia::MetaData keys = key;
- return keys;
- }
-
- void setMetaData(int index, QtMultimedia::MetaData key, const QVariant &value)
- {
- streams[index].metaData.insert(key, value);
- }
-
- bool isActive(int index)
- {
- return streams.at(index).active;
- }
- void setActive(int index, bool state)
- {
- streams[index].active = state;
- }
-
- void setAudioOnlyContent()
- {
- mediaContent = audioOnlyContent;
-
- m_player->setMedia(*mediaContent);
- }
-
- void setVideoOnlyContent()
- {
- mediaContent = videoOnlyContent;
- duration = 60000;
-
- m_player->setMedia(*mediaContent);
- }
-
- void setAudioVideoContent()
- {
- if (mediaContent == audioVideoContent)
- {
- mediaContent = audioVideoAltContent;
- duration = 101840;
- }
- else
- {
- mediaContent = audioVideoContent;
- duration = 141000;
- }
-
- m_player->setMedia(*mediaContent);
- }
-
- void setStreamingContent()
- {
- mediaContent = streamingContent;
-
- m_player->setMedia(*mediaContent);
- }
-
-
-
-public:
- struct Stream
- {
- Stream() : type(UnknownStream), active(false) {}
- StreamType type;
- QMap<QtMultimedia::MetaData, QVariant> metaData;
- bool active;
- };
-
- QVector<Stream> streams;
- QMediaContent* audioOnlyContent;
- QMediaContent* videoOnlyContent;
- QMediaContent* audioVideoContent;
- QMediaContent* audioVideoAltContent;
- QMediaContent* mediaContent;
- QMediaContent* streamingContent;
-
- qint64 duration;
- QMediaPlayer *m_player;
- QVideoWidget *m_widget;
- QWidget *m_windowWidget;
-
-
-};
-
-class QTestMediaStreamsControlA : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QTestMediaStreamsControlA_iid "com.nokia.QTestMediaStreamsControlA"
-Q_MEDIA_DECLARE_CONTROL(QTestMediaStreamsControlA, QTestMediaStreamsControlA_iid)
-
-class QTestMediaStreamsControlB : public QMediaControl
-{
- Q_OBJECT
-public:
- QTestMediaStreamsControlB()
- : QMediaControl(0)
- ,ctrlA(0)
- ,ctrlB(0)
- ,ctrlC(0) {}
-
- bool isActive(int stream)
- {
- return 1;
- }
-
- int ctrlA;
- int ctrlB;
- int ctrlC;
-};
-
-#define QTestMediaStreamsControlB_iid "com.nokia.QTestMediaStreamsControlB"
-Q_MEDIA_DECLARE_CONTROL(QTestMediaStreamsControlB, QTestMediaStreamsControlB_iid)
-
-
-class QTestMediaStreamsControlC : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QTestMediaStreamsControlC_iid "com.nokia.QTestMediaStreamsControlC"
-Q_MEDIA_DECLARE_CONTROL(QTestMediaStreamsControlC, QTestMediaStreamsControlC_iid) // Yes A.
-
-class QTestMediaStreamsControlD : public QMediaControl
-{
- Q_OBJECT
-};
-
-#define QTestMediaStreamsControlD_iid "com.nokia.QTestMediaStreamsControlD"
-Q_MEDIA_DECLARE_CONTROL(QTestMediaStreamsControlD, QTestMediaStreamsControlD_iid)
-
-
-class QtTestMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestMediaService()
- : QMediaService(0)
- , refA(0)
- , refB(0)
- , refC(0)
- {
- }
-
- QMediaControl *requestControl(const char *name)
- {
- if (strcmp(name, QTestMediaStreamsControlA_iid) == 0) {
- refA += 1;
-
- return &controlA;
- } else if (strcmp(name, QTestMediaStreamsControlB_iid) == 0) {
- refB += 1;
-
- return &controlB;
- } else if (strcmp(name, QTestMediaStreamsControlC_iid) == 0) {
- refA += 1;
-
- return &controlA;
- } else {
- return 0;
- }
- }
-
- void releaseControl(QMediaControl *control)
- {
- if (control == &controlA)
- refA -= 1;
- else if (control == &controlB)
- refB -= 1;
- else if (control == &controlC)
- refC -= 1;
- }
-
- using QMediaService::requestControl;
-
- int refA;
- int refB;
- int refC;
- QTestMediaStreamsControlA controlA;
- QTestMediaStreamsControlB controlB;
- QTestMediaStreamsControlC controlC;
-};
-
-
-tst_qmediastreamscontrol::tst_qmediastreamscontrol()
-{
-}
-
-void tst_qmediastreamscontrol::initTestCase()
-{
-}
-
-void tst_qmediastreamscontrol::cleanupTestCase()
-{
-}
-
-void tst_qmediastreamscontrol::control_iid()
-{
-
- // Default implementation.
- QCOMPARE(qmediacontrol_iid<QTestMediaStreamsControlA *>(), QTestMediaStreamsControlA_iid);
-
- // Partial template.
- QVERIFY(qstrcmp(qmediacontrol_iid<QTestMediaStreamsControlA *>(), QTestMediaStreamsControlA_iid) == 0);
-}
-
-void tst_qmediastreamscontrol::control()
-{
- QtTestMediaService *service = new QtTestMediaService();
- QMediaStreamsControl *control = qobject_cast<QMediaStreamsControl *>
- (service->requestControl("com.nokia.Qt.MediaStreamsControl/1.0"));
- // QCOMPARE(control,service->controlA.objectName());
- QTestMediaStreamsControlA *controlA = (QTestMediaStreamsControlA *)service->requestControl("controlA");
- // QCOMPARE(controlA,service->controlA);
- QVERIFY(service->requestControl<QTestMediaStreamsControlA *>());
-
- service->releaseControl(controlA);
- delete service;
-}
-
-void tst_qmediastreamscontrol::isActive()
-{
- QTestMediaStreamsControlB ser;
- QVERIFY(ser.isActive(1));
- QtTestMediaStreamsControl m_active;
- //setActive
- m_active.setActive(1,1);
- QVERIFY(m_active.isActive(1));
- //set InActive
- m_active.setActive(2,0);
- QVERIFY(!m_active.isActive(0));
-}
-
-//Returns the number of media streams.
-void tst_qmediastreamscontrol::streamCount()
-{
- QtTestMediaStreamsControl m_cnt;
- m_cnt.setStreamType(0,QMediaStreamsControl::UnknownStream);
- m_cnt.setStreamType(1,QMediaStreamsControl::VideoStream);
- m_cnt.setStreamType(2,QMediaStreamsControl::AudioStream);
- m_cnt.setStreamType(3,QMediaStreamsControl::SubPictureStream);
- m_cnt.setStreamType(4,QMediaStreamsControl::DataStream);
- m_cnt.setStreamCount(5);
- QVERIFY(m_cnt.streamCount() == m_cnt.streams.count());
-}
-
-//The signal is emitted when the available streams list is changed.
-void tst_qmediastreamscontrol::streamsChanged()
-{
- QMediaPlayer *m_player = new QMediaPlayer(0);
- QMediaStreamsControl* m_streamControl = (QMediaStreamsControl*)
- (m_player->service()->requestControl(QTestMediaStreamsControlA_iid));
-
- QMediaContent videoOnlyContent;
-
- m_player->setMedia(videoOnlyContent);
- if (m_streamControl) {
- QSignalSpy m_strm_lst_chgSpy(m_streamControl,SIGNAL(streamsChanged()));
- QVERIFY(m_strm_lst_chgSpy.isValid());
- QVERIFY(m_strm_lst_chgSpy.isEmpty());
- WAIT_FOR_CONDITION(m_player->mediaStatus(),QMediaPlayer::LoadedMedia);
- QVERIFY(m_streamControl->streamCount() == 1);
- QVERIFY(m_strm_lst_chgSpy.count() == 1);
- }
-
- delete m_player;
- m_player = NULL;
-}
-
-void tst_qmediastreamscontrol::metadata()
-{
- QtTestMediaStreamsControl m_metadata;
- m_metadata.metaData(1,QtMultimedia::AlbumArtist);
- qDebug() << m_metadata.metaData(1,QtMultimedia::AlbumArtist);
-}
-QTEST_MAIN(tst_qmediastreamscontrol);
-
-#include "tst_qmediastreamscontrol.moc"
diff --git a/tests/auto/qmediatimerange/qmediatimerange.pro b/tests/auto/qmediatimerange/qmediatimerange.pro
deleted file mode 100644
index 0b66260..0000000
--- a/tests/auto/qmediatimerange/qmediatimerange.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmediatimerange
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmediatimerange.cpp
-
diff --git a/tests/auto/qmediatimerange/tst_qmediatimerange.cpp b/tests/auto/qmediatimerange/tst_qmediatimerange.cpp
deleted file mode 100644
index dd8dc5f..0000000
--- a/tests/auto/qmediatimerange/tst_qmediatimerange.cpp
+++ /dev/null
@@ -1,806 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <QtCore/qdebug.h>
-
-#include <qmediatimerange.h>
-#include <qmediatimerange.h>
-
-QT_USE_NAMESPACE
-
-class tst_QMediaTimeRange: public QObject
-{
- Q_OBJECT
-
-public slots:
-
-private slots:
- void testCtor();
- void testIntervalCtor();
- void testGetters();
- void testAssignment();
- void testIntervalNormalize();
- void testIntervalTranslate();
- void testIntervalContains();
- void testEarliestLatest();
- void testContains();
- void testAddInterval();
- void testAddTimeRange();
- void testRemoveInterval();
- void testRemoveTimeRange();
- void testClear();
- void testComparisons();
- void testArithmetic();
-};
-
-void tst_QMediaTimeRange::testIntervalCtor()
-{
- //Default Ctor for Time Interval
- /* create an instance for the time interval and verify the default cases */
- QMediaTimeInterval tInter;
- QVERIFY(tInter.isNormal());
- QVERIFY(tInter.start() == 0);
- QVERIFY(tInter.end() == 0);
-
- // (qint, qint) Ctor time interval
- /* create an instace of QMediaTimeInterval passing start and end times and verify the all possible scenario's*/
- QMediaTimeInterval time(20,50);
- QVERIFY(time.isNormal());
- QVERIFY(time.start() == 20);
- QVERIFY(time.end() == 50);
-
- // Copy Ctor Time interval
- QMediaTimeInterval other(time);
- QVERIFY(other.isNormal() == time.isNormal());
- QVERIFY(other.start() == time.start());
- QVERIFY(other.end() == time.end());
- QVERIFY(other.contains(20) == time.contains(20));
- QVERIFY(other == time);
-}
-
-void tst_QMediaTimeRange::testIntervalContains()
-{
- QMediaTimeInterval time(20,50);
-
- /* start() <= time <= end(). Returns true if the time interval contains the specified time. */
- QVERIFY(!time.contains(10));
- QVERIFY(time.contains(20));
- QVERIFY(time.contains(30));
- QVERIFY(time.contains(50));
- QVERIFY(!time.contains(60));
-
- QMediaTimeInterval x(20, 10); // denormal
-
- // Check denormal ranges
- QVERIFY(!x.contains(5));
- QVERIFY(x.contains(10));
- QVERIFY(x.contains(15));
- QVERIFY(x.contains(20));
- QVERIFY(!x.contains(25));
-
- QMediaTimeInterval y = x.normalized();
- QVERIFY(!y.contains(5));
- QVERIFY(y.contains(10));
- QVERIFY(y.contains(15));
- QVERIFY(y.contains(20));
- QVERIFY(!y.contains(25));
-}
-
-void tst_QMediaTimeRange::testCtor()
-{
- // Default Ctor
- QMediaTimeRange a;
- QVERIFY(a.isEmpty());
-
- // (qint, qint) Ctor
- QMediaTimeRange b(10, 20);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 20);
-
- // Interval Ctor
- QMediaTimeRange c(QMediaTimeInterval(30, 40));
-
- QVERIFY(!c.isEmpty());
- QVERIFY(c.isContinuous());
- QVERIFY(c.earliestTime() == 30);
- QVERIFY(c.latestTime() == 40);
-
- // Abnormal Interval Ctor
- QMediaTimeRange d(QMediaTimeInterval(20, 10));
-
- QVERIFY(d.isEmpty());
-
- // Copy Ctor
- QMediaTimeRange e(b);
-
- QVERIFY(!e.isEmpty());
- QVERIFY(e.isContinuous());
- QVERIFY(e.earliestTime() == 10);
- QVERIFY(e.latestTime() == 20);
-
- QVERIFY(e == b);
-}
-
-void tst_QMediaTimeRange::testGetters()
-{
- QMediaTimeRange x;
-
- // isEmpty
- QVERIFY(x.isEmpty());
-
- x.addInterval(10, 20);
-
- // isEmpty + isContinuous
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
-
- x.addInterval(30, 40);
-
- // isEmpty + isContinuous + intervals + start + end
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.intervals().count() == 2);
- QVERIFY(x.intervals()[0].start() == 10);
- QVERIFY(x.intervals()[0].end() == 20);
- QVERIFY(x.intervals()[1].start() == 30);
- QVERIFY(x.intervals()[1].end() == 40);
-}
-
-void tst_QMediaTimeRange::testAssignment()
-{
- QMediaTimeRange x;
-
- // Range Assignment
- x = QMediaTimeRange(10, 20);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 20);
-
- // Interval Assignment
- x = QMediaTimeInterval(30, 40);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 30);
- QVERIFY(x.latestTime() == 40);
-
- // Shared Data Check
- QMediaTimeRange y;
-
- y = x;
- y.addInterval(10, 20);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 30);
- QVERIFY(x.latestTime() == 40);
-}
-
-void tst_QMediaTimeRange::testIntervalNormalize()
-{
- QMediaTimeInterval x(20, 10);
-
- QVERIFY(!x.isNormal());
- QVERIFY(x.start() == 20);
- QVERIFY(x.end() == 10);
-
- QMediaTimeInterval y = x.normalized();
-
- QVERIFY(y.isNormal());
- QVERIFY(y.start() == 10);
- QVERIFY(y.end() == 20);
- QVERIFY(x != y);
-}
-
-void tst_QMediaTimeRange::testIntervalTranslate()
-{
- QMediaTimeInterval x(10, 20);
- x = x.translated(10);
-
- QVERIFY(x.start() == 20);
- QVERIFY(x.end() == 30);
-
- /* verifying the backward through time with a negative offset.*/
- x = x.translated(-10);
-
- QVERIFY(x.start() == 10);
- QVERIFY(x.end() == 20);
-}
-
-void tst_QMediaTimeRange::testEarliestLatest()
-{
- // Test over a single interval
- QMediaTimeRange x(30, 40);
-
- QVERIFY(x.earliestTime() == 30);
- QVERIFY(x.latestTime() == 40);
-
- // Test over multiple intervals
- x.addInterval(50, 60);
-
- QVERIFY(x.earliestTime() == 30);
- QVERIFY(x.latestTime() == 60);
-}
-
-void tst_QMediaTimeRange::testContains()
-{
- // Test over a single interval
- QMediaTimeRange x(10, 20);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.contains(15));
- QVERIFY(x.contains(10));
- QVERIFY(x.contains(20));
- QVERIFY(!x.contains(25));
-
- // Test over multiple intervals
- x.addInterval(40, 50);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.contains(15));
- QVERIFY(x.contains(45));
- QVERIFY(!x.contains(30));
-
- // Test over a concrete interval
- QMediaTimeInterval y(10, 20);
- QVERIFY(y.contains(15));
- QVERIFY(y.contains(10));
- QVERIFY(y.contains(20));
- QVERIFY(!y.contains(25));
-}
-
-void tst_QMediaTimeRange::testAddInterval()
-{
- // All intervals Overlap
- QMediaTimeRange x;
- x.addInterval(10, 40);
- x.addInterval(30, 50);
- x.addInterval(20, 60);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 60);
-
- // 1 adjacent interval, 1 encompassed interval
- x = QMediaTimeRange();
- x.addInterval(10, 40);
- x.addInterval(20, 30);
- x.addInterval(41, 50);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 50);
-
- // 1 overlapping interval, 1 disjoint interval
- x = QMediaTimeRange();
- x.addInterval(10, 30);
- x.addInterval(20, 40);
- x.addInterval(50, 60);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.intervals().count() == 2);
- QVERIFY(x.intervals()[0].start() == 10);
- QVERIFY(x.intervals()[0].end() == 40);
- QVERIFY(x.intervals()[1].start() == 50);
- QVERIFY(x.intervals()[1].end() == 60);
-
- // Identical Add
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.addInterval(10, 20);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 20);
-
- // Multi-Merge
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.addInterval(30, 40);
- x.addInterval(50, 60);
- x.addInterval(15, 55);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 60);
-
- // Interval Parameter - All intervals Overlap
- x = QMediaTimeRange();
- x.addInterval(QMediaTimeInterval(10, 40));
- x.addInterval(QMediaTimeInterval(30, 50));
- x.addInterval(QMediaTimeInterval(20, 60));
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 60);
-
- // Interval Parameter - Abnormal Interval
- x = QMediaTimeRange();
- x.addInterval(QMediaTimeInterval(20, 10));
-
- QVERIFY(x.isEmpty());
-}
-
-void tst_QMediaTimeRange::testAddTimeRange()
-{
- // Add Time Range uses Add Interval internally,
- // so in this test the focus is on combinations of number
- // of intervals added, rather than the different types of
- // merges which can occur.
- QMediaTimeRange a, b;
-
- // Add Single into Single
- a = QMediaTimeRange(10, 30);
- b = QMediaTimeRange(20, 40);
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 40);
-
- // Add Multiple into Single
- a = QMediaTimeRange();
- a.addInterval(10, 30);
- a.addInterval(40, 60);
-
- b = QMediaTimeRange(20, 50);
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 60);
-
- // Add Single into Multiple
- a = QMediaTimeRange(20, 50);
-
- b = QMediaTimeRange();
- b.addInterval(10, 30);
- b.addInterval(40, 60);
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 60);
-
- // Add Multiple into Multiple
- a = QMediaTimeRange();
- a.addInterval(10, 30);
- a.addInterval(40, 70);
- a.addInterval(80, 100);
-
- b = QMediaTimeRange();
- b.addInterval(20, 50);
- b.addInterval(60, 90);
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 100);
-
- // Add Nothing to Single
- a = QMediaTimeRange();
- b = QMediaTimeRange(10, 20);
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 20);
-
- // Add Single to Nothing
- a = QMediaTimeRange(10, 20);
- b = QMediaTimeRange();
-
- b.addTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 20);
-
- // Add Nothing to Nothing
- a = QMediaTimeRange();
- b = QMediaTimeRange();
-
- b.addTimeRange(a);
-
- QVERIFY(b.isEmpty());
-}
-
-void tst_QMediaTimeRange::testRemoveInterval()
-{
- // Removing an interval, causing a split
- QMediaTimeRange x;
- x.addInterval(10, 50);
- x.removeInterval(20, 40);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.intervals().count() == 2);
- QVERIFY(x.intervals()[0].start() == 10);
- QVERIFY(x.intervals()[0].end() == 19);
- QVERIFY(x.intervals()[1].start() == 41);
- QVERIFY(x.intervals()[1].end() == 50);
-
- // Removing an interval, causing a deletion
- x = QMediaTimeRange();
- x.addInterval(20, 30);
- x.removeInterval(10, 40);
-
- QVERIFY(x.isEmpty());
-
- // Removing an interval, causing a tail trim
- x = QMediaTimeRange();
- x.addInterval(20, 40);
- x.removeInterval(30, 50);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 20);
- QVERIFY(x.latestTime() == 29);
-
- // Removing an interval, causing a head trim
- x = QMediaTimeRange();
- x.addInterval(20, 40);
- x.removeInterval(10, 30);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 31);
- QVERIFY(x.latestTime() == 40);
-
- // Identical Remove
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.removeInterval(10, 20);
-
- QVERIFY(x.isEmpty());
-
- // Multi-Trim
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.addInterval(30, 40);
- x.removeInterval(15, 35);
-
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.intervals().count() == 2);
- QVERIFY(x.intervals()[0].start() == 10);
- QVERIFY(x.intervals()[0].end() == 14);
- QVERIFY(x.intervals()[1].start() == 36);
- QVERIFY(x.intervals()[1].end() == 40);
-
- // Multi-Delete
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.addInterval(30, 40);
- x.addInterval(50, 60);
- x.removeInterval(10, 60);
-
- QVERIFY(x.isEmpty());
-
- // Interval Parameter - Removing an interval, causing a split
- x = QMediaTimeRange();
- x.addInterval(10, 50);
- x.removeInterval(QMediaTimeInterval(20, 40));
-
- QVERIFY(!x.isEmpty());
- QVERIFY(!x.isContinuous());
- QVERIFY(x.intervals().count() == 2);
- QVERIFY(x.intervals()[0].start() == 10);
- QVERIFY(x.intervals()[0].end() == 19);
- QVERIFY(x.intervals()[1].start() == 41);
- QVERIFY(x.intervals()[1].end() == 50);
-
- // Interval Parameter - Abnormal Interval
- x = QMediaTimeRange();
- x.addInterval(10, 40);
- x.removeInterval(QMediaTimeInterval(30, 20));
-
- QVERIFY(!x.isEmpty());
- QVERIFY(x.isContinuous());
- QVERIFY(x.earliestTime() == 10);
- QVERIFY(x.latestTime() == 40);
-}
-
-void tst_QMediaTimeRange::testRemoveTimeRange()
-{
- // Remove Time Range uses Remove Interval internally,
- // so in this test the focus is on combinations of number
- // of intervals removed, rather than the different types of
- // deletions which can occur.
- QMediaTimeRange a, b;
-
- // Remove Single from Single
- a = QMediaTimeRange(10, 30);
- b = QMediaTimeRange(20, 40);
-
- b.removeTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 31);
- QVERIFY(b.latestTime() == 40);
-
- // Remove Multiple from Single
- a = QMediaTimeRange();
- a.addInterval(10, 30);
- a.addInterval(40, 60);
-
- b = QMediaTimeRange(20, 50);
-
- b.removeTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 31);
- QVERIFY(b.latestTime() == 39);
-
- // Remove Single from Multiple
- a = QMediaTimeRange(20, 50);
-
- b = QMediaTimeRange();
- b.addInterval(10, 30);
- b.addInterval(40, 60);
-
- b.removeTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(!b.isContinuous());
- QVERIFY(b.intervals().count() == 2);
- QVERIFY(b.intervals()[0].start() == 10);
- QVERIFY(b.intervals()[0].end() == 19);
- QVERIFY(b.intervals()[1].start() == 51);
- QVERIFY(b.intervals()[1].end() == 60);
-
- // Remove Multiple from Multiple
- a = QMediaTimeRange();
- a.addInterval(20, 50);
- a.addInterval(50, 90);
-
-
- b = QMediaTimeRange();
- b.addInterval(10, 30);
- b.addInterval(40, 70);
- b.addInterval(80, 100);
-
- b.removeTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(!b.isContinuous());
- QVERIFY(b.intervals().count() == 2);
- QVERIFY(b.intervals()[0].start() == 10);
- QVERIFY(b.intervals()[0].end() == 19);
- QVERIFY(b.intervals()[1].start() == 91);
- QVERIFY(b.intervals()[1].end() == 100);
-
- // Remove Nothing from Single
- a = QMediaTimeRange();
- b = QMediaTimeRange(10, 20);
-
- b.removeTimeRange(a);
-
- QVERIFY(!b.isEmpty());
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 10);
- QVERIFY(b.latestTime() == 20);
-
- // Remove Single from Nothing
- a = QMediaTimeRange(10, 20);
- b = QMediaTimeRange();
-
- b.removeTimeRange(a);
-
- QVERIFY(b.isEmpty());
-
- // Remove Nothing from Nothing
- a = QMediaTimeRange();
- b = QMediaTimeRange();
-
- b.removeTimeRange(a);
-
- QVERIFY(b.isEmpty());
-}
-
-void tst_QMediaTimeRange::testClear()
-{
- QMediaTimeRange x;
-
- // Clear Nothing
- x.clear();
-
- QVERIFY(x.isEmpty());
-
- // Clear Single
- x = QMediaTimeRange(10, 20);
- x.clear();
-
- QVERIFY(x.isEmpty());
-
- // Clear Multiple
- x = QMediaTimeRange();
- x.addInterval(10, 20);
- x.addInterval(30, 40);
- x.clear();
-
- QVERIFY(x.isEmpty());
-}
-
-void tst_QMediaTimeRange::testComparisons()
-{
- // Interval equality
- QVERIFY(QMediaTimeInterval(10, 20) == QMediaTimeInterval(10, 20));
- QVERIFY(QMediaTimeInterval(10, 20) != QMediaTimeInterval(10, 30));
- QVERIFY(!(QMediaTimeInterval(10, 20) != QMediaTimeInterval(10, 20)));
- QVERIFY(!(QMediaTimeInterval(10, 20) == QMediaTimeInterval(10, 30)));
-
- // Time range equality - Single Interval
- QMediaTimeRange a(10, 20), b(20, 30), c(10, 20);
-
- QVERIFY(a == c);
- QVERIFY(!(a == b));
- QVERIFY(a != b);
- QVERIFY(!(a != c));
-
- // Time Range Equality - Multiple Intervals
- QMediaTimeRange x, y, z;
-
- x.addInterval(10, 20);
- x.addInterval(30, 40);
- x.addInterval(50, 60);
-
- y.addInterval(10, 20);
- y.addInterval(35, 45);
- y.addInterval(50, 60);
-
- z.addInterval(10, 20);
- z.addInterval(30, 40);
- z.addInterval(50, 60);
-
- QVERIFY(x == z);
- QVERIFY(!(x == y));
- QVERIFY(x != y);
- QVERIFY(!(x != z));
-}
-
-void tst_QMediaTimeRange::testArithmetic()
-{
- QMediaTimeRange a(10, 20), b(20, 30);
-
- // Test +=
- a += b;
-
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 30);
-
- // Test -=
- a -= b;
-
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 19);
-
- // Test += and -= on intervals
- a -= QMediaTimeInterval(10, 20);
- a += QMediaTimeInterval(40, 50);
-
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 40);
- QVERIFY(a.latestTime() == 50);
-
- // Test Interval + Interval
- a = QMediaTimeInterval(10, 20) + QMediaTimeInterval(20, 30);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 30);
-
- // Test Range + Interval
- a = a + QMediaTimeInterval(30, 40);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 40);
-
- // Test Interval + Range
- a = QMediaTimeInterval(40, 50) + a;
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 50);
-
- // Test Range + Range
- a = a + QMediaTimeRange(50, 60);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 60);
-
- // Test Range - Interval
- a = a - QMediaTimeInterval(50, 60);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 49);
-
- // Test Range - Range
- a = a - QMediaTimeRange(40, 50);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 39);
-
- // Test Interval - Range
- b = QMediaTimeInterval(0, 20) - a;
- QVERIFY(b.isContinuous());
- QVERIFY(b.earliestTime() == 0);
- QVERIFY(b.latestTime() == 9);
-
- // Test Interval - Interval
- a = QMediaTimeInterval(10, 20) - QMediaTimeInterval(15, 30);
- QVERIFY(a.isContinuous());
- QVERIFY(a.earliestTime() == 10);
- QVERIFY(a.latestTime() == 14);
-}
-
-QTEST_MAIN(tst_QMediaTimeRange)
-
-#include "tst_qmediatimerange.moc"
diff --git a/tests/auto/qmetadatareadercontrol/qmetadatareadercontrol.pro b/tests/auto/qmetadatareadercontrol/qmetadatareadercontrol.pro
deleted file mode 100644
index 0793a80..0000000
--- a/tests/auto/qmetadatareadercontrol/qmetadatareadercontrol.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmetadatareadercontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmetadatareadercontrol.cpp
-
-include (../qmultimedia_common/mockcontainer.pri)
-
diff --git a/tests/auto/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp b/tests/auto/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp
deleted file mode 100644
index 30df404..0000000
--- a/tests/auto/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-#include <QtCore/QString>
-#include <QtTest/QtTest>
-#include <QtCore/QCoreApplication>
-
-#include "mockmetadatareadercontrol.h"
-
-class tst_QMetaDataReaderControl : public QObject
-{
- Q_OBJECT
-
-private slots:
- // Test case for QMetaDataReaderControl
- void metaDataReaderControlConstructor();
- void metaDataReaderControlAvailableMetaData();
- void metaDataReaderControlExtendedMetaData();
- void metaDataReaderControlIsMetaDataAvailable();
- void metaDataReaderControlMetaData();
- void metaDataReaderControlAvailableExtendedMetaData();
- void metaDataReaderControlMetaDataAvailableChangedSignal();
- void metaDataReaderControlMetaDataChangedSignal();
-};
-
-QTEST_MAIN(tst_QMetaDataReaderControl);
-
-/* Test case for constructor. */
-void tst_QMetaDataReaderControl::metaDataReaderControlConstructor()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- delete metaData;
-}
-
-/* Test case for availableMetaData() */
-void tst_QMetaDataReaderControl::metaDataReaderControlAvailableMetaData()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- metaData->availableMetaData() ;
- delete metaData;
-}
-
-/* Test case for extendedMetaData */
-void tst_QMetaDataReaderControl::metaDataReaderControlExtendedMetaData ()
-{
- const QString titleKey(QLatin1String("Title"));
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- metaData->extendedMetaData(titleKey);
- delete metaData;
-}
-
-/* Test case for availableMetaData */
-void tst_QMetaDataReaderControl::metaDataReaderControlIsMetaDataAvailable ()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- metaData->availableMetaData();
- delete metaData;
-}
-
-/* Test case for metaData */
-void tst_QMetaDataReaderControl::metaDataReaderControlMetaData ()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- metaData->metaData(QtMultimedia::Title);
- delete metaData;
-}
-
-/* Test case for availableExtendedMetaData */
-void tst_QMetaDataReaderControl::metaDataReaderControlAvailableExtendedMetaData ()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- metaData->availableExtendedMetaData();
- delete metaData;
-}
-
-/* Test case for signal metaDataAvailableChanged */
-void tst_QMetaDataReaderControl::metaDataReaderControlMetaDataAvailableChangedSignal ()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- QSignalSpy spy(metaData,SIGNAL(metaDataAvailableChanged(bool)));
- metaData->setMetaDataAvailable(true);
- QVERIFY(spy.count() == 1);
- delete metaData;
-}
-
- /* Test case for signal metaDataChanged */
-void tst_QMetaDataReaderControl::metaDataReaderControlMetaDataChangedSignal ()
-{
- MockMetaDataReaderControl *metaData = new MockMetaDataReaderControl();
- QVERIFY(metaData !=NULL);
- QSignalSpy spy(metaData,SIGNAL(metaDataChanged()));
- metaData->metaDataChanged();
- QVERIFY(spy.count () == 1);
- delete metaData;
-}
-
-#include "tst_qmetadatareadercontrol.moc"
-
-
diff --git a/tests/auto/qmetadatawritercontrol/qmetadatawritercontrol.pro b/tests/auto/qmetadatawritercontrol/qmetadatawritercontrol.pro
deleted file mode 100644
index eef5d32..0000000
--- a/tests/auto/qmetadatawritercontrol/qmetadatawritercontrol.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmetadatawritercontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qmetadatawritercontrol.cpp
-
-include (../qmultimedia_common/mockcontainer.pri)
diff --git a/tests/auto/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp b/tests/auto/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp
deleted file mode 100644
index 68d4281..0000000
--- a/tests/auto/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-#include <QtCore/QString>
-#include <QtTest/QtTest>
-#include <QtCore/QCoreApplication>
-#include "qmetadatawritercontrol.h"
-
-#include "mockmetadatawritercontrol.h"
-
-class tst_QMetaDataWriterControl: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void constructor();
-};
-
-void tst_QMetaDataWriterControl::initTestCase()
-{
-
-}
-
-void tst_QMetaDataWriterControl::cleanupTestCase()
-{
-
-}
-
-//MaemoAPI-1862:test constructor
-void tst_QMetaDataWriterControl::constructor()
-{
- QMetaDataWriterControl *mock = new MockMetaDataWriterControl();
- mock->availableExtendedMetaData();
- mock->availableMetaData();
- mock->isMetaDataAvailable();
- mock->isWritable();
- mock->metaData((QtMultimedia::MetaData) 1 );
- mock->extendedMetaData(QString("XYZ"));
- mock->setExtendedMetaData(QString("XYZ"),QVariant());
- mock->setMetaData((QtMultimedia::MetaData) 1,QVariant());
- ((MockMetaDataWriterControl*)mock)->setWritable();
- ((MockMetaDataWriterControl*)mock)->setMetaDataAvailable();
- delete mock;
-}
-
-QTEST_MAIN(tst_QMetaDataWriterControl);
-
-#include "tst_qmetadatawritercontrol.moc"
diff --git a/tests/auto/qmultimedia_common/mock.pri b/tests/auto/qmultimedia_common/mock.pri
deleted file mode 100644
index 8b8f3e7..0000000
--- a/tests/auto/qmultimedia_common/mock.pri
+++ /dev/null
@@ -1,7 +0,0 @@
-INCLUDEPATH += $$PWD \
- ../../../src/multimedia \
-
-HEADERS *= \
- ../qmultimedia_common/mockmediaserviceprovider.h \
- ../qmultimedia_common/mockmediaservice.h \
- ../qmultimedia_common/mockmediaobject.h
diff --git a/tests/auto/qmultimedia_common/mockaudioencodercontrol.h b/tests/auto/qmultimedia_common/mockaudioencodercontrol.h
deleted file mode 100644
index 85d1866..0000000
--- a/tests/auto/qmultimedia_common/mockaudioencodercontrol.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKAUDIOENCODERCONTROL_H
-#define MOCKAUDIOENCODERCONTROL_H
-
-#include "qaudioencodercontrol.h"
-
-class MockAudioEncoderControl : public QAudioEncoderControl
-{
- Q_OBJECT
-public:
- MockAudioEncoderControl(QObject *parent):
- QAudioEncoderControl(parent)
- {
- m_codecs << "audio/pcm" << "audio/mpeg";
- m_descriptions << "Pulse Code Modulation" << "mp3 format";
- m_supportedEncodeOptions.insert("audio/pcm", QStringList());
- m_supportedEncodeOptions.insert("audio/mpeg", QStringList() << "quality" << "bitrate" << "mode" << "vbr");
- m_audioSettings.setCodec("audio/pcm");
- m_audioSettings.setBitRate(128*1024);
- m_audioSettings.setSampleRate(8000);
- m_freqs << 8000 << 11025 << 22050 << 44100;
- }
-
- ~MockAudioEncoderControl() {}
-
- QAudioEncoderSettings audioSettings() const
- {
- return m_audioSettings;
- }
-
- void setAudioSettings(const QAudioEncoderSettings &settings)
- {
- m_audioSettings = settings;
- }
-
- QList<int> supportedChannelCounts(const QAudioEncoderSettings & = QAudioEncoderSettings()) const
- {
- QList<int> list; list << 1 << 2; return list;
- }
-
- QList<int> supportedSampleRates(const QAudioEncoderSettings & = QAudioEncoderSettings(), bool *continuous = 0) const
- {
- if (continuous)
- *continuous = false;
-
- return m_freqs;
- }
-
- QStringList supportedAudioCodecs() const
- {
- return m_codecs;
- }
-
- QString codecDescription(const QString &codecName) const
- {
- return m_descriptions.value(m_codecs.indexOf(codecName));
- }
-
- QStringList supportedEncodingOptions(const QString &codec) const
- {
- return m_supportedEncodeOptions.value(codec);
- }
-
- QVariant encodingOption(const QString &codec, const QString &name) const
- {
- return m_encodeOptions[codec].value(name);
- }
-
- void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
- {
- m_encodeOptions[codec][name] = value;
- }
-
-private:
- QAudioEncoderSettings m_audioSettings;
-
- QStringList m_codecs;
- QStringList m_descriptions;
-
- QList<int> m_freqs;
-
- QMap<QString, QStringList> m_supportedEncodeOptions;
- QMap<QString, QMap<QString, QVariant> > m_encodeOptions;
-
-};
-
-#endif // MOCKAUDIOENCODERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockaudioendpointselector.h b/tests/auto/qmultimedia_common/mockaudioendpointselector.h
deleted file mode 100644
index 2bc118d..0000000
--- a/tests/auto/qmultimedia_common/mockaudioendpointselector.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKAUDIOENDPOINTSELECTOR_H
-#define MOCKAUDIOENDPOINTSELECTOR_H
-
-#include "qaudioendpointselector.h"
-
-class MockAudioEndpointSelector : public QAudioEndpointSelector
-{
- Q_OBJECT
-public:
- MockAudioEndpointSelector(QObject *parent):
- QAudioEndpointSelector(parent)
- {
- m_names << "device1" << "device2" << "device3";
- m_descriptions << "dev1 comment" << "dev2 comment" << "dev3 comment";
- m_audioInput = "device1";
- emit availableEndpointsChanged();
- }
- ~MockAudioEndpointSelector() {}
-
- QList<QString> availableEndpoints() const
- {
- return m_names;
- }
-
- QString endpointDescription(const QString& name) const
- {
- QString desc;
-
- for (int i = 0; i < m_names.count(); i++) {
- if (m_names.at(i).compare(name) == 0) {
- desc = m_descriptions.at(i);
- break;
- }
- }
- return desc;
- }
-
- QString defaultEndpoint() const
- {
- return m_names.at(0);
- }
-
- QString activeEndpoint() const
- {
- return m_audioInput;
- }
-
-public Q_SLOTS:
-
- void setActiveEndpoint(const QString& name)
- {
- m_audioInput = name;
- emit activeEndpointChanged(name);
- }
-
- void addEndpoints()
- {
- m_names << "device4";
- emit availableEndpointsChanged();
- }
-
- void removeEndpoints()
- {
- m_names.clear();
- emit availableEndpointsChanged();
- }
-
-private:
- QString m_audioInput;
- QList<QString> m_names;
- QList<QString> m_descriptions;
-};
-
-
-
-#endif // MOCKAUDIOENDPOINTSELECTOR_H
diff --git a/tests/auto/qmultimedia_common/mockcamera.pri b/tests/auto/qmultimedia_common/mockcamera.pri
deleted file mode 100644
index 233d5b8..0000000
--- a/tests/auto/qmultimedia_common/mockcamera.pri
+++ /dev/null
@@ -1,22 +0,0 @@
-# Camera related mock backend files
-INCLUDEPATH += $$PWD \
- ../../../src/multimedia \
- ../../../src/multimedia/video \
- ../../../src/multimedia/camera
-
-HEADERS *= \
- ../qmultimedia_common/mockcameraservice.h \
- ../qmultimedia_common/mockcameraflashcontrol.h \
- ../qmultimedia_common/mockcameralockscontrol.h \
- ../qmultimedia_common/mockcamerafocuscontrol.h \
- ../qmultimedia_common/mockcameraimageprocessingcontrol.h \
- ../qmultimedia_common/mockcameraimagecapturecontrol.h \
- ../qmultimedia_common/mockcameraexposurecontrol.h \
- ../qmultimedia_common/mockcameracapturedestinationcontrol.h \
- ../qmultimedia_common/mockcameracapturebuffercontrol.h \
- ../qmultimedia_common/mockimageencodercontrol.h \
- ../qmultimedia_common/mockcameracontrol.h \
-
-
-include(mockvideo.pri)
-
diff --git a/tests/auto/qmultimedia_common/mockcameracapturebuffercontrol.h b/tests/auto/qmultimedia_common/mockcameracapturebuffercontrol.h
deleted file mode 100644
index d717946..0000000
--- a/tests/auto/qmultimedia_common/mockcameracapturebuffercontrol.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERACAPTUREBUFFERCONTROL_H
-#define MOCKCAMERACAPTUREBUFFERCONTROL_H
-
-#include "qcameracapturebufferformatcontrol.h"
-
-class MockCaptureBufferFormatControl : public QCameraCaptureBufferFormatControl
-{
- Q_OBJECT
-public:
- MockCaptureBufferFormatControl(QObject *parent = 0):
- QCameraCaptureBufferFormatControl(parent),
- m_format(QVideoFrame::Format_Jpeg)
- {
- }
-
- QList<QVideoFrame::PixelFormat> supportedBufferFormats() const
- {
- return QList<QVideoFrame::PixelFormat>()
- << QVideoFrame::Format_Jpeg
- << QVideoFrame::Format_RGB32
- << QVideoFrame::Format_AdobeDng;
- }
-
- QVideoFrame::PixelFormat bufferFormat() const
- {
- return m_format;
- }
-
- void setBufferFormat(QVideoFrame::PixelFormat format)
- {
- if (format != m_format && supportedBufferFormats().contains(format)) {
- m_format = format;
- emit bufferFormatChanged(m_format);
- }
- }
-
-private:
- QVideoFrame::PixelFormat m_format;
-};
-
-
-#endif // MOCKCAMERACAPTUREBUFFERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameracapturedestinationcontrol.h b/tests/auto/qmultimedia_common/mockcameracapturedestinationcontrol.h
deleted file mode 100644
index 3f7697d..0000000
--- a/tests/auto/qmultimedia_common/mockcameracapturedestinationcontrol.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERACAPTUREDESTINATIONCONTROL_H
-#define MOCKCAMERACAPTUREDESTINATIONCONTROL_H
-
-#include "qcameracapturedestinationcontrol.h"
-
-class MockCaptureDestinationControl : public QCameraCaptureDestinationControl
-{
- Q_OBJECT
-public:
- MockCaptureDestinationControl(QObject *parent = 0):
- QCameraCaptureDestinationControl(parent),
- m_destination(QCameraImageCapture::CaptureToFile)
- {
- }
-
- bool isCaptureDestinationSupported(QCameraImageCapture::CaptureDestinations destination) const
- {
- return destination == QCameraImageCapture::CaptureToBuffer ||
- destination == QCameraImageCapture::CaptureToFile;
- }
-
- QCameraImageCapture::CaptureDestinations captureDestination() const
- {
- return m_destination;
- }
-
- void setCaptureDestination(QCameraImageCapture::CaptureDestinations destination)
- {
- if (isCaptureDestinationSupported(destination) && destination != m_destination) {
- m_destination = destination;
- emit captureDestinationChanged(m_destination);
- }
- }
-
-private:
- QCameraImageCapture::CaptureDestinations m_destination;
-};
-
-#endif // MOCKCAMERACAPTUREDESTINATIONCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameracontrol.h b/tests/auto/qmultimedia_common/mockcameracontrol.h
deleted file mode 100644
index 893ecbf..0000000
--- a/tests/auto/qmultimedia_common/mockcameracontrol.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERACONTROL_H
-#define MOCKCAMERACONTROL_H
-
-#include "qcameracontrol.h"
-
-class MockCameraControl : public QCameraControl
-{
- friend class MockCaptureControl;
- Q_OBJECT
-public:
- MockCameraControl(QObject *parent = 0):
- QCameraControl(parent),
- m_state(QCamera::UnloadedState),
- m_captureMode(QCamera::CaptureStillImage),
- m_status(QCamera::UnloadedStatus),
- m_propertyChangesSupported(false)
- {
- }
-
- ~MockCameraControl() {}
-
- void start() { m_state = QCamera::ActiveState; }
- virtual void stop() { m_state = QCamera::UnloadedState; }
- QCamera::State state() const { return m_state; }
- void setState(QCamera::State state) {
- if (m_state != state) {
- m_state = state;
-
- switch (state) {
- case QCamera::UnloadedState:
- m_status = QCamera::UnloadedStatus;
- break;
- case QCamera::LoadedState:
- m_status = QCamera::LoadedStatus;
- break;
- case QCamera::ActiveState:
- m_status = QCamera::ActiveStatus;
- break;
- default:
- emit error(QCamera::NotSupportedFeatureError, "State not supported.");
- return;
- }
-
- emit stateChanged(m_state);
- emit statusChanged(m_status);
- }
- }
-
- QCamera::Status status() const { return m_status; }
-
- QCamera::CaptureMode captureMode() const { return m_captureMode; }
- void setCaptureMode(QCamera::CaptureMode mode)
- {
- if (m_captureMode != mode) {
- if (m_state == QCamera::ActiveState && !m_propertyChangesSupported)
- return;
- m_captureMode = mode;
- emit captureModeChanged(mode);
- }
- }
-
- bool isCaptureModeSupported(QCamera::CaptureMode mode) const
- {
- return mode == QCamera::CaptureStillImage || mode == QCamera::CaptureVideo;
- }
-
- QCamera::LockTypes supportedLocks() const
- {
- return QCamera::LockExposure | QCamera::LockFocus | QCamera::LockWhiteBalance;
- }
-
- bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const
- {
- Q_UNUSED(status);
- if (changeType == QCameraControl::ImageEncodingSettings && m_captureMode == QCamera::CaptureVideo)
- return true;
- else if (changeType== QCameraControl::VideoEncodingSettings)
- return true;
- else
- return m_propertyChangesSupported;
- }
-
- /* helper method to emit the signal error */
- void setError(QCamera::Error err, QString errorString)
- {
- emit error(err, errorString);
- }
-
- /* helper method to emit the signal statusChaged */
- void setStatus(QCamera::Status newStatus)
- {
- m_status = newStatus;
- emit statusChanged(newStatus);
- }
-
- QCamera::State m_state;
- QCamera::CaptureMode m_captureMode;
- QCamera::Status m_status;
- bool m_propertyChangesSupported;
-};
-
-
-
-#endif // MOCKCAMERACONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameraexposurecontrol.h b/tests/auto/qmultimedia_common/mockcameraexposurecontrol.h
deleted file mode 100644
index d89762d..0000000
--- a/tests/auto/qmultimedia_common/mockcameraexposurecontrol.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERAEXPOSURECONTROL_H
-#define MOCKCAMERAEXPOSURECONTROL_H
-
-#include "qcameraexposurecontrol.h"
-
-class MockCameraExposureControl : public QCameraExposureControl
-{
- Q_OBJECT
-public:
- MockCameraExposureControl(QObject *parent = 0):
- QCameraExposureControl(parent),
- m_aperture(2.8),
- m_shutterSpeed(0.01),
- m_isoSensitivity(100),
- m_meteringMode(QCameraExposure::MeteringMatrix),
- m_exposureCompensation(0),
- m_exposureMode(QCameraExposure::ExposureAuto),
- m_flashMode(QCameraExposure::FlashAuto)
- {
- m_isoRanges << 100 << 200 << 400 << 800;
- m_apertureRanges << 2.8 << 4.0 << 5.6 << 8.0 << 11.0 << 16.0;
- m_shutterRanges << 0.001 << 0.01 << 0.1 << 1.0;
- m_exposureRanges << -2.0 << 2.0;
- }
-
- ~MockCameraExposureControl() {}
-
- QCameraExposure::FlashModes flashMode() const {return m_flashMode;}
-
- void setFlashMode(QCameraExposure::FlashModes mode)
- {
- if (isFlashModeSupported(mode)) {
- m_flashMode = mode;
- }
- }
-
- bool isFlashModeSupported(QCameraExposure::FlashModes mode) const
- {
- return mode & (QCameraExposure::FlashAuto | QCameraExposure::FlashOff | QCameraExposure::FlashOn);
- }
-
- bool isFlashReady() const { return true;}
-
- QCameraExposure::ExposureMode exposureMode() const { return m_exposureMode; }
-
- void setExposureMode(QCameraExposure::ExposureMode mode)
- {
- if (isExposureModeSupported(mode))
- m_exposureMode = mode;
- }
-
- //Setting the Exposure Mode Supported Enum values
- bool isExposureModeSupported(QCameraExposure::ExposureMode mode) const
- {
- return ( mode == QCameraExposure::ExposureAuto || mode == QCameraExposure::ExposureManual || mode == QCameraExposure::ExposureBacklight ||
- mode == QCameraExposure::ExposureNight || mode == QCameraExposure::ExposureSpotlight ||mode == QCameraExposure::ExposureSports ||
- mode == QCameraExposure::ExposureSnow || mode == QCameraExposure:: ExposureLargeAperture ||mode == QCameraExposure::ExposureSmallAperture ||
- mode == QCameraExposure::ExposurePortrait || mode == QCameraExposure::ExposureModeVendor ||mode == QCameraExposure::ExposureBeach );
- }
-
- bool isParameterSupported(ExposureParameter parameter) const
- {
- switch (parameter) {
- case QCameraExposureControl::ExposureCompensation:
- case QCameraExposureControl::ISO:
- case QCameraExposureControl::Aperture:
- case QCameraExposureControl::ShutterSpeed:
- return true;
- default:
- return false;
- }
- }
-
- QVariant exposureParameter(ExposureParameter parameter) const
- {
- switch (parameter) {
- case QCameraExposureControl::ExposureCompensation:
- return QVariant(m_exposureCompensation);
- case QCameraExposureControl::ISO:
- return QVariant(m_isoSensitivity);
- case QCameraExposureControl::Aperture:
- return QVariant(m_aperture);
- case QCameraExposureControl::ShutterSpeed:
- return QVariant(m_shutterSpeed);
- default:
- return QVariant();
- }
- }
-
- QVariantList supportedParameterRange(ExposureParameter parameter) const
- {
- QVariantList res;
- switch (parameter) {
- case QCameraExposureControl::ExposureCompensation:
- return m_exposureRanges;
- case QCameraExposureControl::ISO:
- return m_isoRanges;
- case QCameraExposureControl::Aperture:
- return m_apertureRanges;
- case QCameraExposureControl::ShutterSpeed:
- return m_shutterRanges;
- default:
- break;
- }
-
- return res;
- }
-
- ParameterFlags exposureParameterFlags(ExposureParameter parameter) const
- {
- ParameterFlags res = 0;
- switch (parameter) {
- case QCameraExposureControl::ExposureCompensation:
- case QCameraExposureControl::Aperture:
- case QCameraExposureControl::ShutterSpeed:
- res |= ContinuousRange;
- default:
- break;
- }
-
- return res;
- }
-
- // Added exposureParameterChanged and exposureParameterRangeChanged signal
- bool setExposureParameter(ExposureParameter parameter, const QVariant& value)
- {
- switch (parameter) {
- case QCameraExposureControl::ExposureCompensation:
- {
- m_res.clear();
- m_res << -4.0 << 4.0;
- qreal exposureCompensationlocal = qBound<qreal>(-2.0, value.toReal(), 2.0);
- if (exposureParameter(parameter).toReal() != exposureCompensationlocal) {
- m_exposureCompensation = exposureCompensationlocal;
- emit exposureParameterChanged(parameter);
- }
-
- if (m_exposureRanges.last().toReal() != m_res.last().toReal()) {
- m_exposureRanges.clear();
- m_exposureRanges = m_res;
- emit exposureParameterRangeChanged(parameter);
- }
- }
- break;
- case QCameraExposureControl::ISO:
- {
- m_res.clear();
- m_res << 20 << 50;
- qreal exposureCompensationlocal = 100*qRound(qBound(100, value.toInt(), 800)/100.0);
- if (exposureParameter(parameter).toReal() != exposureCompensationlocal) {
- m_isoSensitivity = exposureCompensationlocal;
- emit exposureParameterChanged(parameter);
- }
-
- if (m_isoRanges.last().toInt() != m_res.last().toInt()) {
- m_isoRanges.clear();
- m_isoRanges = m_res;
- emit exposureParameterRangeChanged(parameter);
- }
- }
- break;
- case QCameraExposureControl::Aperture:
- {
- m_res.clear();
- m_res << 12.0 << 18.0 << 20.0;
- qreal exposureCompensationlocal = qBound<qreal>(2.8, value.toReal(), 16.0);
- if (exposureParameter(parameter).toReal() != exposureCompensationlocal) {
- m_aperture = exposureCompensationlocal;
- emit exposureParameterChanged(parameter);
- }
-
- if (m_apertureRanges.last().toReal() != m_res.last().toReal()) {
- m_apertureRanges.clear();
- m_apertureRanges = m_res;
- emit exposureParameterRangeChanged(parameter);
- }
- }
- break;
- case QCameraExposureControl::ShutterSpeed:
- {
- m_res.clear();
- m_res << 0.12 << 1.0 << 2.0;
- qreal exposureCompensationlocal = qBound<qreal>(0.001, value.toReal(), 1.0);
- if (exposureParameter(parameter).toReal() != exposureCompensationlocal) {
- m_shutterSpeed = exposureCompensationlocal;
- emit exposureParameterChanged(parameter);
- }
-
- if (m_shutterRanges.last().toReal() != m_res.last().toReal()) {
- m_shutterRanges.clear();
- m_shutterRanges = m_res;
- emit exposureParameterRangeChanged(parameter);
- }
- }
- break;
- default:
- return false;
- }
-
- emit flashReady(true); // depends on Flashcontrol
-
- return true;
- }
-
- QString extendedParameterName(ExposureParameter)
- {
- return QString();
- }
-
- QCameraExposure::MeteringMode meteringMode() const
- {
- return m_meteringMode;
- }
-
- void setMeteringMode(QCameraExposure::MeteringMode mode)
- {
- if (isMeteringModeSupported(mode))
- m_meteringMode = mode;
- }
-
- //Setting the values for metering mode
- bool isMeteringModeSupported(QCameraExposure::MeteringMode mode) const
- {
- return mode == QCameraExposure::MeteringAverage
- || mode == QCameraExposure::MeteringMatrix
- || mode == QCameraExposure::MeteringAverage
- || mode ==QCameraExposure::MeteringSpot;
- }
-
-private:
- qreal m_aperture;
- qreal m_shutterSpeed;
- int m_isoSensitivity;
- QCameraExposure::MeteringMode m_meteringMode;
- qreal m_exposureCompensation;
- QCameraExposure::ExposureMode m_exposureMode;
- QCameraExposure::FlashModes m_flashMode;
- QVariantList m_isoRanges,m_apertureRanges, m_shutterRanges, m_exposureRanges, m_res;
-};
-
-#endif // MOCKCAMERAEXPOSURECONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameraflashcontrol.h b/tests/auto/qmultimedia_common/mockcameraflashcontrol.h
deleted file mode 100644
index f7a7950..0000000
--- a/tests/auto/qmultimedia_common/mockcameraflashcontrol.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERAFLASHCONTROL_H
-#define MOCKCAMERAFLASHCONTROL_H
-
-#include "qcameraflashcontrol.h"
-
-class MockCameraFlashControl : public QCameraFlashControl
-{
- Q_OBJECT
-public:
- MockCameraFlashControl(QObject *parent = 0):
- QCameraFlashControl(parent),
- m_flashMode(QCameraExposure::FlashAuto)
- {
- }
-
- ~MockCameraFlashControl() {}
-
- QCameraExposure::FlashModes flashMode() const
- {
- return m_flashMode;
- }
-
- void setFlashMode(QCameraExposure::FlashModes mode)
- {
- if (isFlashModeSupported(mode)) {
- m_flashMode = mode;
- }
- emit flashReady(true);
- }
- //Setting the values for Flash mode
-
- bool isFlashModeSupported(QCameraExposure::FlashModes mode) const
- {
- return (mode || (QCameraExposure::FlashAuto | QCameraExposure::FlashOff | QCameraExposure::FlashOn |
- QCameraExposure::FlashFill |QCameraExposure::FlashTorch |QCameraExposure::FlashSlowSyncFrontCurtain |
- QCameraExposure::FlashRedEyeReduction));
- }
-
- bool isFlashReady() const
- {
- return true;
- }
-
-private:
- QCameraExposure::FlashModes m_flashMode;
-};
-
-#endif // MOCKCAMERAFLASHCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcamerafocuscontrol.h b/tests/auto/qmultimedia_common/mockcamerafocuscontrol.h
deleted file mode 100644
index a0fb481..0000000
--- a/tests/auto/qmultimedia_common/mockcamerafocuscontrol.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERAFOCUSCONTROL_H
-#define MOCKCAMERAFOCUSCONTROL_H
-
-#include "qcamerafocuscontrol.h"
-#include "qcamerafocus.h"
-
-class MockCameraFocusControl : public QCameraFocusControl
-{
- Q_OBJECT
-public:
- MockCameraFocusControl(QObject *parent = 0):
- QCameraFocusControl(parent),
- m_opticalZoom(1.0),
- m_digitalZoom(1.0),
- m_focusMode(QCameraFocus::AutoFocus),
- m_focusPointMode(QCameraFocus::FocusPointAuto),
- m_focusPoint(0.5, 0.5),
- m_maxOpticalZoom(3.0),
- m_maxDigitalZoom(4.0)
-
- {
- m_zones << QCameraFocusZone(QRectF(0.45, 0.45, 0.1, 0.1));
- }
-
- ~MockCameraFocusControl() {}
-
- QCameraFocus::FocusMode focusMode() const
- {
- return m_focusMode;
- }
-
- void setFocusMode(QCameraFocus::FocusMode mode)
- {
- if (isFocusModeSupported(mode))
- m_focusMode = mode;
- }
-
- bool isFocusModeSupported(QCameraFocus::FocusMode mode) const
- {
- return mode == QCameraFocus::AutoFocus || mode == QCameraFocus::ContinuousFocus;
- }
-
- qreal maximumOpticalZoom() const
- {
- return m_maxOpticalZoom;
- }
-
- qreal maximumDigitalZoom() const
- {
- return m_maxDigitalZoom;
- }
-
- qreal opticalZoom() const
- {
- return m_opticalZoom;
- }
-
- qreal digitalZoom() const
- {
- return m_digitalZoom;
- }
-
- void zoomTo(qreal optical, qreal digital)
- {
- optical = qBound<qreal>(1.0, optical, maximumOpticalZoom());
- digital = qBound<qreal>(1.0, digital, maximumDigitalZoom());
-
- if (!qFuzzyCompare(digital, m_digitalZoom)) {
- m_digitalZoom = digital;
- emit digitalZoomChanged(m_digitalZoom);
- }
-
- if (!qFuzzyCompare(optical, m_opticalZoom)) {
- m_opticalZoom = optical;
- emit opticalZoomChanged(m_opticalZoom);
- }
-
- maxOpticalDigitalZoomChange(4.0, 5.0);
- focusZonesChange(0.50, 0.50, 0.3, 0.3);
- }
-
- QCameraFocus::FocusPointMode focusPointMode() const
- {
- return m_focusPointMode;
- }
-
- void setFocusPointMode(QCameraFocus::FocusPointMode mode)
- {
- if (isFocusPointModeSupported(mode))
- m_focusPointMode = mode;
- }
-
- bool isFocusPointModeSupported(QCameraFocus::FocusPointMode mode) const
- {
- switch (mode) {
- case QCameraFocus::FocusPointAuto:
- case QCameraFocus::FocusPointCenter:
- case QCameraFocus::FocusPointCustom:
- return true;
- default:
- return false;
- }
- }
-
- QPointF customFocusPoint() const
- {
- return m_focusPoint;
- }
-
- void setCustomFocusPoint(const QPointF &point)
- {
- m_focusPoint = point;
- }
-
- QCameraFocusZoneList focusZones() const
- {
- return m_zones;
- }
-
- // helper function to emit maximum Optical and Digital Zoom Changed signals
- void maxOpticalDigitalZoomChange(qreal maxOptical, qreal maxDigital)
- {
- if (maxOptical != m_maxOpticalZoom) {
- m_maxOpticalZoom = maxOptical;
- emit maximumOpticalZoomChanged(m_maxOpticalZoom);
- }
-
- if (maxDigital != m_maxDigitalZoom) {
- m_maxDigitalZoom = maxDigital;
- emit maximumDigitalZoomChanged(m_maxDigitalZoom);
- }
- }
-
- // helper function to emit Focus Zones Changed signals
- void focusZonesChange(qreal left, qreal top, qreal width, qreal height)
- {
- QCameraFocusZone myZone(QRectF(left, top, width, height));
- if (m_zones.last().area() != myZone.area()) {
- m_zones.clear();
- m_zones << myZone;
- emit focusZonesChanged();
- }
- }
-
-private:
- qreal m_opticalZoom;
- qreal m_digitalZoom;
- QCameraFocus::FocusMode m_focusMode;
- QCameraFocus::FocusPointMode m_focusPointMode;
- QPointF m_focusPoint;
- // to emit maximum Optical and Digital Zoom Changed signals
- qreal m_maxOpticalZoom;
- qreal m_maxDigitalZoom;
- // to emit focus zone changed signal
- QCameraFocusZoneList m_zones;
-};
-
-#endif // MOCKCAMERAFOCUSCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameraimagecapturecontrol.h b/tests/auto/qmultimedia_common/mockcameraimagecapturecontrol.h
deleted file mode 100644
index 5fb3cb1..0000000
--- a/tests/auto/qmultimedia_common/mockcameraimagecapturecontrol.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERACAPTURECONTROL_H
-#define MOCKCAMERACAPTURECONTROL_H
-
-#include <QDateTime>
-#include <QTimer>
-
-#include "qcameraimagecapturecontrol.h"
-#include "qcameracontrol.h"
-#include "mockcameracontrol.h"
-
-class MockCaptureControl : public QCameraImageCaptureControl
-{
- Q_OBJECT
-public:
- MockCaptureControl(MockCameraControl *cameraControl, QObject *parent = 0)
- : QCameraImageCaptureControl(parent), m_cameraControl(cameraControl), m_captureRequest(0), m_ready(true), m_captureCanceled(false)
- {
- }
-
- ~MockCaptureControl()
- {
- }
-
- QCameraImageCapture::DriveMode driveMode() const { return QCameraImageCapture::SingleImageCapture; }
- void setDriveMode(QCameraImageCapture::DriveMode) {}
-
- bool isReadyForCapture() const { return m_ready && m_cameraControl->state() == QCamera::ActiveState; }
-
- int capture(const QString &fileName)
- {
- if (isReadyForCapture()) {
- m_fileName = fileName;
- m_captureRequest++;
- emit readyForCaptureChanged(m_ready = false);
- QTimer::singleShot(5, this, SLOT(captured()));
- return m_captureRequest;
- } else {
- emit error(-1, QCameraImageCapture::NotReadyError,
- QLatin1String("Could not capture in stopped state"));
- }
-
- return -1;
- }
-
- void cancelCapture()
- {
- m_captureCanceled = true;
- }
-
-private Q_SLOTS:
- void captured()
- {
- if (!m_captureCanceled) {
- emit imageCaptured(m_captureRequest, QImage());
-
- emit imageMetadataAvailable(m_captureRequest,
- QtMultimedia::FocalLengthIn35mmFilm,
- QVariant(50));
-
- emit imageMetadataAvailable(m_captureRequest,
- QtMultimedia::DateTimeOriginal,
- QVariant(QDateTime::currentDateTime()));
-
- emit imageMetadataAvailable(m_captureRequest,
- QLatin1String("Answer to the Ultimate Question of Life, the Universe, and Everything"),
- QVariant(42));
- }
-
- if (!m_ready)
- {
- emit readyForCaptureChanged(m_ready = true);
- emit imageExposed(m_captureRequest);
- }
-
- if (!m_captureCanceled)
- emit imageSaved(m_captureRequest, m_fileName);
-
- m_captureCanceled = false;
- }
-
-private:
- MockCameraControl *m_cameraControl;
- QString m_fileName;
- int m_captureRequest;
- bool m_ready;
- bool m_captureCanceled;
-};
-
-#endif // MOCKCAMERACAPTURECONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameraimageprocessingcontrol.h b/tests/auto/qmultimedia_common/mockcameraimageprocessingcontrol.h
deleted file mode 100644
index f02f2b4..0000000
--- a/tests/auto/qmultimedia_common/mockcameraimageprocessingcontrol.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERAIMAGEPROCESSINGCONTROL_H
-#define MOCKCAMERAIMAGEPROCESSINGCONTROL_H
-
-#include "qcameraimageprocessingcontrol.h"
-
-class MockImageProcessingControl : public QCameraImageProcessingControl
-{
- Q_OBJECT
-public:
- MockImageProcessingControl(QObject *parent = 0)
- : QCameraImageProcessingControl(parent)
- {
- m_supportedWhiteBalance.insert(QCameraImageProcessing::WhiteBalanceAuto);
- }
-
- QCameraImageProcessing::WhiteBalanceMode whiteBalanceMode() const
- {
- return m_whiteBalanceMode;
- }
- void setWhiteBalanceMode(QCameraImageProcessing::WhiteBalanceMode mode)
- {
- m_whiteBalanceMode = mode;
- }
-
- bool isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceMode mode) const
- {
- return m_supportedWhiteBalance.contains(mode);
- }
-
- void setSupportedWhiteBalanceModes(QSet<QCameraImageProcessing::WhiteBalanceMode> modes)
- {
- m_supportedWhiteBalance = modes;
- }
-
- bool isProcessingParameterSupported(ProcessingParameter parameter) const
- {
- //return parameter == Contrast || parameter == Sharpening || parameter == ColorTemperature;
- switch (parameter)
- {
- case Contrast:
- case Brightness:
- case Sharpening:
- case Saturation:
- case Denoising:
- case ColorTemperature:
- case ExtendedParameter:
- return true;
- default :
- return false;
- }
- }
- QVariant processingParameter(ProcessingParameter parameter) const
- {
- switch (parameter) {
- case Contrast:
- return m_contrast;
- case Saturation:
- return m_saturation;
- case Brightness:
- return m_brightness;
- case Sharpening:
- return m_sharpeningLevel;
- case Denoising:
- return m_denoising;
- case ColorTemperature:
- return m_manualWhiteBalance;
- case ExtendedParameter:
- return m_extendedParameter;
- default:
- return QVariant();
- }
- }
- void setProcessingParameter(ProcessingParameter parameter, QVariant value)
- {
- switch (parameter) {
- case Contrast:
- m_contrast = value;
- break;
- case Saturation:
- m_saturation = value;
- break;
- case Brightness:
- m_brightness = value;
- break;
- case Sharpening:
- m_sharpeningLevel = value;
- break;
- case Denoising:
- m_denoising = value;
- break;
- case ColorTemperature:
- m_manualWhiteBalance = value;
- break;
- case ExtendedParameter:
- m_extendedParameter = value;
- break;
- default:
- break;
- }
- }
-
-
-private:
- QCameraImageProcessing::WhiteBalanceMode m_whiteBalanceMode;
- QSet<QCameraImageProcessing::WhiteBalanceMode> m_supportedWhiteBalance;
- QVariant m_manualWhiteBalance;
- QVariant m_contrast;
- QVariant m_sharpeningLevel;
- QVariant m_saturation;
- QVariant m_brightness;
- QVariant m_denoising;
- QVariant m_extendedParameter;
-};
-
-#endif // MOCKCAMERAIMAGEPROCESSINGCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameralockscontrol.h b/tests/auto/qmultimedia_common/mockcameralockscontrol.h
deleted file mode 100644
index 87c4094..0000000
--- a/tests/auto/qmultimedia_common/mockcameralockscontrol.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERALOCKCONTROL_H
-#define MOCKCAMERALOCKCONTROL_H
-
-#include <QTimer>
-#include "qcameralockscontrol.h"
-
-class MockCameraLocksControl : public QCameraLocksControl
-{
- Q_OBJECT
-public:
- MockCameraLocksControl(QObject *parent = 0):
- QCameraLocksControl(parent),
- m_focusLock(QCamera::Unlocked),
- m_exposureLock(QCamera::Unlocked)
- {
- }
-
- ~MockCameraLocksControl() {}
-
- QCamera::LockTypes supportedLocks() const
- {
- return QCamera::LockExposure | QCamera::LockFocus;
- }
-
- QCamera::LockStatus lockStatus(QCamera::LockType lock) const
- {
- switch (lock) {
- case QCamera::LockExposure:
- return m_exposureLock;
- case QCamera::LockFocus:
- return m_focusLock;
- default:
- return QCamera::Unlocked;
- }
- }
-
- void searchAndLock(QCamera::LockTypes locks)
- {
- if (locks & QCamera::LockExposure) {
- QCamera::LockStatus newStatus = locks & QCamera::LockFocus ? QCamera::Searching : QCamera::Locked;
-
- if (newStatus != m_exposureLock)
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = newStatus,
- QCamera::UserRequest);
- }
-
- if (locks & QCamera::LockFocus) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Searching,
- QCamera::UserRequest);
-
- QTimer::singleShot(5, this, SLOT(focused()));
- }
- }
-
- void unlock(QCamera::LockTypes locks) {
- if (locks & QCamera::LockFocus && m_focusLock != QCamera::Unlocked) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Unlocked,
- QCamera::UserRequest);
- }
-
- if (locks & QCamera::LockExposure && m_exposureLock != QCamera::Unlocked) {
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = QCamera::Unlocked,
- QCamera::UserRequest);
- }
- }
-
- /* helper method to emit the signal with LockChangeReason */
- void setLockChangeReason (QCamera::LockChangeReason lockChangeReason)
- {
- emit lockStatusChanged(QCamera::NoLock,
- QCamera::Unlocked,
- lockChangeReason);
-
- }
-
-private slots:
- void focused()
- {
- if (m_focusLock == QCamera::Searching) {
- emit lockStatusChanged(QCamera::LockFocus,
- m_focusLock = QCamera::Locked,
- QCamera::UserRequest);
- }
-
- if (m_exposureLock == QCamera::Searching) {
- emit lockStatusChanged(QCamera::LockExposure,
- m_exposureLock = QCamera::Locked,
- QCamera::UserRequest);
- }
- }
-
-
-private:
- QCamera::LockStatus m_focusLock;
- QCamera::LockStatus m_exposureLock;
-};
-
-
-#endif // MOCKCAMERALOCKCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockcameraservice.h b/tests/auto/qmultimedia_common/mockcameraservice.h
deleted file mode 100644
index ea0620a..0000000
--- a/tests/auto/qmultimedia_common/mockcameraservice.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKCAMERASERVICE_H
-#define MOCKCAMERASERVICE_H
-
-#include "qmediaservice.h"
-#include "../qmultimedia_common/mockcameraflashcontrol.h"
-#include "../qmultimedia_common/mockcameralockscontrol.h"
-#include "../qmultimedia_common/mockcamerafocuscontrol.h"
-#include "../qmultimedia_common/mockcameraimageprocessingcontrol.h"
-#include "../qmultimedia_common/mockcameraimagecapturecontrol.h"
-#include "../qmultimedia_common/mockcameraexposurecontrol.h"
-#include "../qmultimedia_common/mockcameracapturedestinationcontrol.h"
-#include "../qmultimedia_common/mockcameracapturebuffercontrol.h"
-#include "../qmultimedia_common/mockimageencodercontrol.h"
-#include "../qmultimedia_common/mockcameracontrol.h"
-#include "../qmultimedia_common/mockvideosurface.h"
-#include "../qmultimedia_common/mockvideorenderercontrol.h"
-
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
-#include "../qmultimedia_common/mockvideowindowcontrol.h"
-#endif
-
-class MockSimpleCameraService : public QMediaService
-{
- Q_OBJECT
-
-public:
- MockSimpleCameraService(): QMediaService(0)
- {
- mockControl = new MockCameraControl(this);
- }
-
- ~MockSimpleCameraService()
- {
- }
-
- QMediaControl* requestControl(const char *iid)
- {
- if (qstrcmp(iid, QCameraControl_iid) == 0)
- return mockControl;
- return 0;
- }
-
- void releaseControl(QMediaControl*) {}
-
- MockCameraControl *mockControl;
-};
-
-
-class MockCameraService : public QMediaService
-{
- Q_OBJECT
-
-public:
- MockCameraService(): QMediaService(0)
- {
- mockControl = new MockCameraControl(this);
- mockLocksControl = new MockCameraLocksControl(this);
- mockExposureControl = new MockCameraExposureControl(this);
- mockFlashControl = new MockCameraFlashControl(this);
- mockFocusControl = new MockCameraFocusControl(this);
- mockCaptureControl = new MockCaptureControl(mockControl, this);
- mockCaptureBufferControl = new MockCaptureBufferFormatControl(this);
- mockCaptureDestinationControl = new MockCaptureDestinationControl(this);
- mockImageProcessingControl = new MockImageProcessingControl(this);
- mockImageEncoderControl = new MockImageEncoderControl(this);
- rendererControl = new MockVideoRendererControl(this);
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- windowControl = new MockVideoWindowControl(this);
-#endif
- rendererRef = 0;
- windowRef = 0;
- }
-
- ~MockCameraService()
- {
- }
-
- QMediaControl* requestControl(const char *iid)
- {
- if (qstrcmp(iid, QCameraControl_iid) == 0)
- return mockControl;
-
- if (qstrcmp(iid, QCameraLocksControl_iid) == 0)
- return mockLocksControl;
-
- if (qstrcmp(iid, QCameraExposureControl_iid) == 0)
- return mockExposureControl;
-
- if (qstrcmp(iid, QCameraFlashControl_iid) == 0)
- return mockFlashControl;
-
- if (qstrcmp(iid, QCameraFocusControl_iid) == 0)
- return mockFocusControl;
-
- if (qstrcmp(iid, QCameraImageCaptureControl_iid) == 0)
- return mockCaptureControl;
-
- if (qstrcmp(iid, QCameraCaptureBufferFormatControl_iid) == 0)
- return mockCaptureBufferControl;
-
- if (qstrcmp(iid, QCameraCaptureDestinationControl_iid) == 0)
- return mockCaptureDestinationControl;
-
- if (qstrcmp(iid, QCameraImageProcessingControl_iid) == 0)
- return mockImageProcessingControl;
-
- if (qstrcmp(iid, QImageEncoderControl_iid) == 0)
- return mockImageEncoderControl;
-
- if (qstrcmp(iid, QVideoRendererControl_iid) == 0) {
- if (rendererRef == 0) {
- rendererRef += 1;
- return rendererControl;
- }
- }
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- if (qstrcmp(iid, QVideoWindowControl_iid) == 0) {
- if (windowRef == 0) {
- windowRef += 1;
- return windowControl;
- }
- }
-#endif
- return 0;
- }
-
- void releaseControl(QMediaControl *control)
- {
- if (control == rendererControl)
- rendererRef -= 1;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- if (control == windowControl)
- windowRef -= 1;
-#endif
- }
-
- MockCameraControl *mockControl;
- MockCameraLocksControl *mockLocksControl;
- MockCaptureControl *mockCaptureControl;
- MockCaptureBufferFormatControl *mockCaptureBufferControl;
- MockCaptureDestinationControl *mockCaptureDestinationControl;
- MockCameraExposureControl *mockExposureControl;
- MockCameraFlashControl *mockFlashControl;
- MockCameraFocusControl *mockFocusControl;
- MockImageProcessingControl *mockImageProcessingControl;
- MockImageEncoderControl *mockImageEncoderControl;
- MockVideoRendererControl *rendererControl;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- MockVideoWindowControl *windowControl;
-#endif
- int rendererRef;
- int windowRef;
-};
-
-#endif // MOCKCAMERASERVICE_H
diff --git a/tests/auto/qmultimedia_common/mockcontainer.pri b/tests/auto/qmultimedia_common/mockcontainer.pri
deleted file mode 100644
index e4a345a..0000000
--- a/tests/auto/qmultimedia_common/mockcontainer.pri
+++ /dev/null
@@ -1,7 +0,0 @@
-INCLUDEPATH *= $$PWD \
- ../../../src/multimedia \
-
-HEADERS *= \
- ../qmultimedia_common/mockmediacontainercontrol.h \
- ../qmultimedia_common/mockmetadatawritercontrol.h \
- ../qmultimedia_common/mockmetadatareadercontrol.h
diff --git a/tests/auto/qmultimedia_common/mockimageencodercontrol.h b/tests/auto/qmultimedia_common/mockimageencodercontrol.h
deleted file mode 100644
index c63ecd6..0000000
--- a/tests/auto/qmultimedia_common/mockimageencodercontrol.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKIMAGEENCODERCONTROL_H
-#define MOCKIMAGEENCODERCONTROL_H
-
-#include "qimageencodercontrol.h"
-
-class MockImageEncoderControl : public QImageEncoderControl
-{
-public:
- MockImageEncoderControl(QObject *parent = 0)
- : QImageEncoderControl(parent)
- {
- m_settings = QImageEncoderSettings();
- }
-
- QList<QSize> supportedResolutions(const QImageEncoderSettings & settings = QImageEncoderSettings(),
- bool *continuous = 0) const
- {
- if (continuous)
- *continuous = true;
-
- QList<QSize> resolutions;
- if (settings.resolution().isValid()) {
- if (settings.resolution() == QSize(160,160) ||
- settings.resolution() == QSize(320,240))
- resolutions << settings.resolution();
-
- if (settings.quality() == QtMultimedia::HighQuality && settings.resolution() == QSize(640,480))
- resolutions << settings.resolution();
- } else {
- resolutions << QSize(160, 120);
- resolutions << QSize(320, 240);
- if (settings.quality() == QtMultimedia::HighQuality)
- resolutions << QSize(640, 480);
- }
-
- return resolutions;
- }
-
- QStringList supportedImageCodecs() const
- {
- QStringList codecs;
- codecs << "PNG" << "JPEG";
- return codecs;
- }
-
- QString imageCodecDescription(const QString &codecName) const {
- if (codecName == "PNG")
- return QString("Portable Network Graphic");
- if (codecName == "JPEG")
- return QString("Joint Photographic Expert Group");
- return QString();
- }
-
- QImageEncoderSettings imageSettings() const { return m_settings; }
- void setImageSettings(const QImageEncoderSettings &settings) { m_settings = settings; }
-
-private:
- QImageEncoderSettings m_settings;
-};
-
-
-#endif // MOCKIMAGEENCODERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediacontainercontrol.h b/tests/auto/qmultimedia_common/mockmediacontainercontrol.h
deleted file mode 100644
index 2a8832d..0000000
--- a/tests/auto/qmultimedia_common/mockmediacontainercontrol.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIACONTAINERCONTROL_H
-#define MOCKMEDIACONTAINERCONTROL_H
-
-#include <QObject>
-#include "qmediacontainercontrol.h"
-#include <QMap>
-#include <QString>
-#include <QStringList>
-
-QT_USE_NAMESPACE
-class MockMediaContainerControl : public QMediaContainerControl
-{
- Q_OBJECT
-public:
- MockMediaContainerControl(QObject *parent):
- QMediaContainerControl(parent)
- {
- m_supportedContainers.append("wav");
- m_supportedContainers.append("mp3");
- m_supportedContainers.append("mov");
-
- m_descriptions.insert("wav", "WAV format");
- m_descriptions.insert("mp3", "MP3 format");
- m_descriptions.insert("mov", "MOV format");
- }
-
- virtual ~MockMediaContainerControl() {};
-
- QStringList supportedContainers() const
- {
- return m_supportedContainers;
- }
-
- QString containerMimeType() const
- {
- return m_format;
- }
-
- void setContainerMimeType(const QString &formatMimeType)
- {
- if (m_supportedContainers.contains(formatMimeType))
- m_format = formatMimeType;
- }
-
- QString containerDescription(const QString &formatMimeType) const
- {
- return m_descriptions.value(formatMimeType);
- }
-
-private:
- QStringList m_supportedContainers;
- QMap<QString, QString> m_descriptions;
- QString m_format;
-};
-
-#endif // MOCKMEDIACONTAINERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmedianetworkaccesscontrol.h b/tests/auto/qmultimedia_common/mockmedianetworkaccesscontrol.h
deleted file mode 100644
index 472a30f..0000000
--- a/tests/auto/qmultimedia_common/mockmedianetworkaccesscontrol.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIANETWORKACCESSCONTROL_H
-#define MOCKMEDIANETWORKACCESSCONTROL_H
-
-#include "qmedianetworkaccesscontrol.h"
-#include "qnetworkconfiguration.h"
-
-class MockNetworkAccessControl : public QMediaNetworkAccessControl
-{
- friend class MockMediaPlayerService;
-
-public:
- MockNetworkAccessControl() {}
- ~MockNetworkAccessControl() {}
-
- void setConfigurations(const QList<QNetworkConfiguration> &configurations)
- {
- _configurations = configurations;
- _current = QNetworkConfiguration();
- }
-
- QNetworkConfiguration currentConfiguration() const
- {
- return _current;
- }
-
-private:
- void setCurrentConfiguration(QNetworkConfiguration configuration)
- {
- if (_configurations.contains(configuration))
- emit configurationChanged(_current = configuration);
- else
- emit configurationChanged(_current = QNetworkConfiguration());
- }
-
- QList<QNetworkConfiguration> _configurations;
- QNetworkConfiguration _current;
-};
-
-Q_DECLARE_METATYPE(QNetworkConfiguration)
-
-
-#endif // MOCKMEDIANETWORKACCESSCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediaobject.h b/tests/auto/qmultimedia_common/mockmediaobject.h
deleted file mode 100644
index fcc5c37..0000000
--- a/tests/auto/qmultimedia_common/mockmediaobject.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIAOBJECT_H
-#define MOCKMEDIAOBJECT_H
-
-#include "qmediaobject.h"
-
-class MockMediaObject : public QMediaObject
-{
- Q_OBJECT
-public:
- MockMediaObject(QObject *parent, QMediaService *service):
- QMediaObject(parent, service)
- {
- }
-};
-
-#endif // MOCKMEDIAOBJECT_H
diff --git a/tests/auto/qmultimedia_common/mockmediaplayercontrol.h b/tests/auto/qmultimedia_common/mockmediaplayercontrol.h
deleted file mode 100644
index d88409c..0000000
--- a/tests/auto/qmultimedia_common/mockmediaplayercontrol.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIAPLAYERCONTROL_H
-#define MOCKMEDIAPLAYERCONTROL_H
-
-#include "qmediaplayercontrol.h"
-
-class MockMediaPlayerControl : public QMediaPlayerControl
-{
- friend class MockMediaPlayerService;
-
-public:
- MockMediaPlayerControl():QMediaPlayerControl(0) {}
-
- QMediaPlayer::State state() const { return _state; }
- QMediaPlayer::MediaStatus mediaStatus() const { return _mediaStatus; }
-
- qint64 duration() const { return _duration; }
-
- qint64 position() const { return _position; }
-
- void setPosition(qint64 position) { if (position != _position) emit positionChanged(_position = position); }
-
- int volume() const { return _volume; }
- void setVolume(int volume) { emit volumeChanged(_volume = volume); }
-
- bool isMuted() const { return _muted; }
- void setMuted(bool muted) { if (muted != _muted) emit mutedChanged(_muted = muted); }
-
- int bufferStatus() const { return _bufferStatus; }
-
- bool isAudioAvailable() const { return _audioAvailable; }
- bool isVideoAvailable() const { return _videoAvailable; }
-
- bool isSeekable() const { return _isSeekable; }
- QMediaTimeRange availablePlaybackRanges() const { return QMediaTimeRange(_seekRange.first, _seekRange.second); }
- void setSeekRange(qint64 minimum, qint64 maximum) { _seekRange = qMakePair(minimum, maximum); }
-
- qreal playbackRate() const { return _playbackRate; }
- void setPlaybackRate(qreal rate) { if (rate != _playbackRate) emit playbackRateChanged(_playbackRate = rate); }
-
- QMediaContent media() const { return _media; }
- void setMedia(const QMediaContent &content, QIODevice *stream)
- {
- _stream = stream;
- _media = content;
- if (_state != QMediaPlayer::StoppedState) {
- _mediaStatus = _media.isNull() ? QMediaPlayer::NoMedia : QMediaPlayer::LoadingMedia;
- emit stateChanged(_state = QMediaPlayer::StoppedState);
- emit mediaStatusChanged(_mediaStatus);
- }
- emit mediaChanged(_media = content);
- }
- QIODevice *mediaStream() const { return _stream; }
-
- void play() { if (_isValid && !_media.isNull() && _state != QMediaPlayer::PlayingState) emit stateChanged(_state = QMediaPlayer::PlayingState); }
- void pause() { if (_isValid && !_media.isNull() && _state != QMediaPlayer::PausedState) emit stateChanged(_state = QMediaPlayer::PausedState); }
- void stop() { if (_state != QMediaPlayer::StoppedState) emit stateChanged(_state = QMediaPlayer::StoppedState); }
-
- QMediaPlayer::State _state;
- QMediaPlayer::MediaStatus _mediaStatus;
- QMediaPlayer::Error _error;
- qint64 _duration;
- qint64 _position;
- int _volume;
- bool _muted;
- int _bufferStatus;
- bool _audioAvailable;
- bool _videoAvailable;
- bool _isSeekable;
- QPair<qint64, qint64> _seekRange;
- qreal _playbackRate;
- QMediaContent _media;
- QIODevice *_stream;
- bool _isValid;
- QString _errorString;
-};
-
-#endif // MOCKMEDIAPLAYERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediaplayerservice.h b/tests/auto/qmultimedia_common/mockmediaplayerservice.h
deleted file mode 100644
index fb0f1b2..0000000
--- a/tests/auto/qmultimedia_common/mockmediaplayerservice.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKPLAYERSERVICE_H
-#define MOCKPLAYERSERVICE_H
-
-#include "qmediaservice.h"
-
-#include "mockmediaplayercontrol.h"
-#include "mockmediastreamscontrol.h"
-#include "mockmedianetworkaccesscontrol.h"
-#include "mockvideorenderercontrol.h"
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
-#include "mockvideowindowcontrol.h"
-#endif
-
-class MockMediaPlayerService : public QMediaService
-{
- Q_OBJECT
-
-public:
- MockMediaPlayerService():QMediaService(0)
- {
- mockControl = new MockMediaPlayerControl;
- mockStreamsControl = new MockStreamsControl;
- mockNetworkControl = new MockNetworkAccessControl;
- rendererControl = new MockVideoRendererControl;
- rendererRef = 0;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- windowControl = new MockVideoWindowControl;
- windowRef = 0;
-#endif
- }
-
- ~MockMediaPlayerService()
- {
- delete mockControl;
- delete mockStreamsControl;
- delete mockNetworkControl;
- delete rendererControl;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- delete windowControl;
-#endif
- }
-
- QMediaControl* requestControl(const char *iid)
- {
- if (qstrcmp(iid, QMediaPlayerControl_iid) == 0) {
- return mockControl;
- } else if (qstrcmp(iid, QVideoRendererControl_iid) == 0) {
- if (rendererRef == 0) {
- rendererRef += 1;
- return rendererControl;
- }
- }
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- if (qstrcmp(iid, QVideoWindowControl_iid) == 0) {
- if (windowRef == 0) {
- windowRef += 1;
- return windowControl;
- }
- }
-#endif
-
- if (qstrcmp(iid, QMediaNetworkAccessControl_iid) == 0)
- return mockNetworkControl;
- return 0;
- }
-
- void releaseControl(QMediaControl *control)
- {
- if (control == rendererControl)
- rendererRef -= 1;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- if (control == windowControl)
- windowRef -= 1;
-#endif
- }
-
- void setState(QMediaPlayer::State state) { emit mockControl->stateChanged(mockControl->_state = state); }
- void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) {
- mockControl->_state = state;
- mockControl->_mediaStatus = status;
- emit mockControl->mediaStatusChanged(status);
- emit mockControl->stateChanged(state);
- }
- void setMediaStatus(QMediaPlayer::MediaStatus status) { emit mockControl->mediaStatusChanged(mockControl->_mediaStatus = status); }
- void setIsValid(bool isValid) { mockControl->_isValid = isValid; }
- void setMedia(QMediaContent media) { mockControl->_media = media; }
- void setDuration(qint64 duration) { mockControl->_duration = duration; }
- void setPosition(qint64 position) { mockControl->_position = position; }
- void setSeekable(bool seekable) { mockControl->_isSeekable = seekable; }
- void setVolume(int volume) { mockControl->_volume = volume; }
- void setMuted(bool muted) { mockControl->_muted = muted; }
- void setVideoAvailable(bool videoAvailable) { mockControl->_videoAvailable = videoAvailable; }
- void setBufferStatus(int bufferStatus) { mockControl->_bufferStatus = bufferStatus; }
- void setPlaybackRate(qreal playbackRate) { mockControl->_playbackRate = playbackRate; }
- void setError(QMediaPlayer::Error error) { mockControl->_error = error; emit mockControl->error(mockControl->_error, mockControl->_errorString); }
- void setErrorString(QString errorString) { mockControl->_errorString = errorString; emit mockControl->error(mockControl->_error, mockControl->_errorString); }
-
- void selectCurrentConfiguration(QNetworkConfiguration config) { mockNetworkControl->setCurrentConfiguration(config); }
-
- void reset()
- {
- mockControl->_state = QMediaPlayer::StoppedState;
- mockControl->_mediaStatus = QMediaPlayer::UnknownMediaStatus;
- mockControl->_error = QMediaPlayer::NoError;
- mockControl->_duration = 0;
- mockControl->_position = 0;
- mockControl->_volume = 0;
- mockControl->_muted = false;
- mockControl->_bufferStatus = 0;
- mockControl->_videoAvailable = false;
- mockControl->_isSeekable = false;
- mockControl->_playbackRate = 0.0;
- mockControl->_media = QMediaContent();
- mockControl->_stream = 0;
- mockControl->_isValid = false;
- mockControl->_errorString = QString();
-
- mockNetworkControl->_current = QNetworkConfiguration();
- mockNetworkControl->_configurations = QList<QNetworkConfiguration>();
- }
-
- MockMediaPlayerControl *mockControl;
- MockStreamsControl *mockStreamsControl;
- MockNetworkAccessControl *mockNetworkControl;
- MockVideoRendererControl *rendererControl;
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
- MockVideoWindowControl *windowControl;
- int windowRef;
-#endif
- int rendererRef;
-};
-
-
-
-#endif // MOCKPLAYERSERVICE_H
diff --git a/tests/auto/qmultimedia_common/mockmediaplaylistcontrol.h b/tests/auto/qmultimedia_common/mockmediaplaylistcontrol.h
deleted file mode 100644
index 186db69..0000000
--- a/tests/auto/qmultimedia_common/mockmediaplaylistcontrol.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIAPLAYLISTCONTROL_H
-#define MOCKMEDIAPLAYLISTCONTROL_H
-
-#include "qmediaplaylistcontrol.h"
-#include "qmediaplaylistnavigator.h"
-
-#include "mockreadonlyplaylistprovider.h"
-
-// Hmm, read only.
-class MockMediaPlaylistControl : public QMediaPlaylistControl
-{
- Q_OBJECT
-public:
- MockMediaPlaylistControl(QObject *parent) : QMediaPlaylistControl(parent)
- {
- m_navigator = new QMediaPlaylistNavigator(new MockReadOnlyPlaylistProvider(this), this);
- }
-
- ~MockMediaPlaylistControl()
- {
- }
-
- QMediaPlaylistProvider* playlistProvider() const { return m_navigator->playlist(); }
- bool setPlaylistProvider(QMediaPlaylistProvider *newProvider)
- {
- bool bMediaContentChanged = false;
- int i = 0;
- for (; i < playlistProvider()->mediaCount(); i++) {
- if (playlistProvider()->media(i).canonicalUrl().toString() != newProvider->media(i).canonicalUrl().toString()) {
- bMediaContentChanged = true;
- break;
- }
- }
-
- if (playlistProvider()->mediaCount() != newProvider->mediaCount() || bMediaContentChanged ) {
- emit playlistProviderChanged();
- emit currentMediaChanged(newProvider->media(i));
- }
-
- m_navigator->setPlaylist(newProvider);
- return true;
- }
-
- int currentIndex() const { return m_navigator->currentIndex(); }
- void setCurrentIndex(int position)
- {
- if (position != currentIndex())
- emit currentIndexChanged(position);
- m_navigator->jump(position);
- }
-
- int nextIndex(int steps) const { return m_navigator->nextIndex(steps); }
- int previousIndex(int steps) const { return m_navigator->previousIndex(steps); }
-
- void next() { m_navigator->next(); }
- void previous() { m_navigator->previous(); }
-
- QMediaPlaylist::PlaybackMode playbackMode() const { return m_navigator->playbackMode(); }
- void setPlaybackMode(QMediaPlaylist::PlaybackMode mode)
- {
- if (playbackMode() != mode)
- emit playbackModeChanged(mode);
-
- m_navigator->setPlaybackMode(mode);
- }
-
-private:
- QMediaPlaylistNavigator *m_navigator;
-};
-
-#endif // MOCKMEDIAPLAYLISTCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediaplaylistsourcecontrol.h b/tests/auto/qmultimedia_common/mockmediaplaylistsourcecontrol.h
deleted file mode 100644
index c43ef9b..0000000
--- a/tests/auto/qmultimedia_common/mockmediaplaylistsourcecontrol.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIAPLAYLISTSOURCECONTROL_H
-#define MOCKMEDIAPLAYLISTSOURCECONTROL_H
-
-#include "qmediaplaylistsourcecontrol.h"
-
-class MockPlaylistSourceControl : public QMediaPlaylistSourceControl
-{
- Q_OBJECT
-public:
- MockPlaylistSourceControl(QObject *parent)
- : QMediaPlaylistSourceControl(parent),
- m_playlist(0)
- {
- }
-
- ~MockPlaylistSourceControl()
- {
- }
-
- void setPlaylist(QMediaPlaylist *playlist)
- {
- m_playlist = playlist;
- }
-
- QMediaPlaylist *playlist() const
- {
- return m_playlist;
- }
-private:
- QMediaPlaylist *m_playlist;
-};
-
-#endif // MOCKMEDIAPLAYLISTSOURCECONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediarecordercontrol.h b/tests/auto/qmultimedia_common/mockmediarecordercontrol.h
deleted file mode 100644
index 77c1378..0000000
--- a/tests/auto/qmultimedia_common/mockmediarecordercontrol.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKRECORDERCONTROL_H
-#define MOCKRECORDERCONTROL_H
-
-#include <QUrl>
-
-#include "qmediarecordercontrol.h"
-
-class MockMediaRecorderControl : public QMediaRecorderControl
-{
- Q_OBJECT
-
-public:
- MockMediaRecorderControl(QObject *parent = 0):
- QMediaRecorderControl(parent),
- m_state(QMediaRecorder::StoppedState),
- m_position(0),
- m_muted(false) {}
-
- QUrl outputLocation() const
- {
- return m_sink;
- }
-
- bool setOutputLocation(const QUrl &sink)
- {
- m_sink = sink;
- return true;
- }
-
- QMediaRecorder::State state() const
- {
- return m_state;
- }
-
- qint64 duration() const
- {
- return m_position;
- }
-
- bool isMuted() const
- {
- return m_muted;
- }
-
- void applySettings() {}
-
- using QMediaRecorderControl::error;
-
-public slots:
- void record()
- {
- m_state = QMediaRecorder::RecordingState;
- m_position=1;
- emit stateChanged(m_state);
- emit durationChanged(m_position);
- }
-
- void pause()
- {
- m_state = QMediaRecorder::PausedState;
- emit stateChanged(m_state);
- }
-
- void stop()
- {
- m_position=0;
- m_state = QMediaRecorder::StoppedState;
- emit stateChanged(m_state);
- }
-
- void setMuted(bool muted)
- {
- if (m_muted != muted)
- emit mutedChanged(m_muted = muted);
- }
-
-public:
- QUrl m_sink;
- QMediaRecorder::State m_state;
- qint64 m_position;
- bool m_muted;
-};
-
-#endif // MOCKRECORDERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmediarecorderservice.h b/tests/auto/qmultimedia_common/mockmediarecorderservice.h
deleted file mode 100644
index fa8c29a..0000000
--- a/tests/auto/qmultimedia_common/mockmediarecorderservice.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKSERVICE_H
-#define MOCKSERVICE_H
-
-#include "qmediaservice.h"
-
-#include "mockaudioencodercontrol.h"
-#include "mockmediarecordercontrol.h"
-#include "mockvideoencodercontrol.h"
-#include "mockaudioendpointselector.h"
-#include "mockmediacontainercontrol.h"
-#include "mockmetadatawritercontrol.h"
-
-class MockMediaRecorderService : public QMediaService
-{
- Q_OBJECT
-public:
- MockMediaRecorderService(QObject *parent = 0, QMediaControl *control = 0):
- QMediaService(parent),
- mockControl(control),
- hasControls(true)
- {
- mockAudioEndpointSelector = new MockAudioEndpointSelector(parent);
- mockAudioEncoderControl = new MockAudioEncoderControl(parent);
- mockFormatControl = new MockMediaContainerControl(parent);
- mockVideoEncoderControl = new MockVideoEncoderControl(parent);
- mockMetaDataControl = new MockMetaDataWriterControl(parent);
- }
-
- QMediaControl* requestControl(const char *name)
- {
- if (hasControls && qstrcmp(name,QAudioEncoderControl_iid) == 0)
- return mockAudioEncoderControl;
- if (hasControls && qstrcmp(name,QAudioEndpointSelector_iid) == 0)
- return mockAudioEndpointSelector;
- if (hasControls && qstrcmp(name,QMediaRecorderControl_iid) == 0)
- return mockControl;
- if (hasControls && qstrcmp(name,QMediaContainerControl_iid) == 0)
- return mockFormatControl;
- if (hasControls && qstrcmp(name,QVideoEncoderControl_iid) == 0)
- return mockVideoEncoderControl;
- if (hasControls && qstrcmp(name, QMetaDataWriterControl_iid) == 0)
- return mockMetaDataControl;
-
- return 0;
- }
-
- void releaseControl(QMediaControl*)
- {
- }
-
- QMediaControl *mockControl;
- QAudioEndpointSelector *mockAudioEndpointSelector;
- QAudioEncoderControl *mockAudioEncoderControl;
- QMediaContainerControl *mockFormatControl;
- QVideoEncoderControl *mockVideoEncoderControl;
- MockMetaDataWriterControl *mockMetaDataControl;
- bool hasControls;
-};
-
-#endif // MOCKSERVICE_H
diff --git a/tests/auto/qmultimedia_common/mockmediaservice.h b/tests/auto/qmultimedia_common/mockmediaservice.h
deleted file mode 100644
index 3ceb1ad..0000000
--- a/tests/auto/qmultimedia_common/mockmediaservice.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIASERVICE_H
-#define MOCKMEDIASERVICE_H
-
-#include "qmediaservice.h"
-
-class MockMediaService : public QMediaService
-{
- Q_OBJECT
-public:
- MockMediaService(QObject *parent, QMediaControl *control):
- QMediaService(parent),
- mockControl(control) {}
-
- QMediaControl* requestControl(const char *)
- {
- return mockControl;
- }
-
- void releaseControl(QMediaControl*) {}
-
- QMediaControl *mockControl;
-};
-
-
-#endif // MOCKMEDIASERVICE_H
diff --git a/tests/auto/qmultimedia_common/mockmediaserviceprovider.h b/tests/auto/qmultimedia_common/mockmediaserviceprovider.h
deleted file mode 100644
index 4573d7f..0000000
--- a/tests/auto/qmultimedia_common/mockmediaserviceprovider.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIASERVICEPROVIDER_H
-#define MOCKMEDIASERVICEPROVIDER_H
-
-#include "qmediaserviceprovider.h"
-#include "qmediaservice.h"
-
-// Simple provider that lets you set the service
-class MockMediaServiceProvider : public QMediaServiceProvider
-{
-public:
- MockMediaServiceProvider(QMediaService* s = 0, bool del=false)
- : service(s), deleteServiceOnRelease(del)
- {
- }
-
- QMediaService *requestService(const QByteArray &, const QMediaServiceProviderHint &)
- {
- return service;
- }
-
- void releaseService(QMediaService *service)
- {
- if (deleteServiceOnRelease) {
- delete service;
- service = 0;
- }
- }
-
- QMediaService *service;
- bool deleteServiceOnRelease;
-};
-
-#endif // MOCKMEDIASERVICEPROVIDER_H
diff --git a/tests/auto/qmultimedia_common/mockmediastreamscontrol.h b/tests/auto/qmultimedia_common/mockmediastreamscontrol.h
deleted file mode 100644
index d1d967d..0000000
--- a/tests/auto/qmultimedia_common/mockmediastreamscontrol.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMEDIASTREAMSCONTROL_H
-#define MOCKMEDIASTREAMSCONTROL_H
-
-#include "qmediastreamscontrol.h"
-
-class MockStreamsControl : public QMediaStreamsControl
-{
-public:
- MockStreamsControl(QObject *parent = 0) : QMediaStreamsControl(parent) {}
-
- int streamCount() { return _streams.count(); }
- void setStreamCount(int count) { _streams.resize(count); }
-
- StreamType streamType(int index) { return _streams.at(index).type; }
- void setStreamType(int index, StreamType type) { _streams[index].type = type; }
-
- QVariant metaData(int index, QtMultimedia::MetaData key) {
- return _streams.at(index).metaData.value(key); }
- void setMetaData(int index, QtMultimedia::MetaData key, const QVariant &value) {
- _streams[index].metaData.insert(key, value); }
-
- bool isActive(int index) { return _streams.at(index).active; }
- void setActive(int index, bool state) { _streams[index].active = state; }
-
-private:
- struct Stream
- {
- Stream() : type(UnknownStream), active(false) {}
- StreamType type;
- QMap<QtMultimedia::MetaData, QVariant> metaData;
- bool active;
- };
-
- QVector<Stream> _streams;
-};
-
-#endif // MOCKMEDIASTREAMSCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmetadatareadercontrol.h b/tests/auto/qmultimedia_common/mockmetadatareadercontrol.h
deleted file mode 100644
index f084762..0000000
--- a/tests/auto/qmultimedia_common/mockmetadatareadercontrol.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMETADATAREADERCONTROL_H
-#define MOCKMETADATAREADERCONTROL_H
-
-#include "qmetadatareadercontrol.h"
-
-class MockMetaDataReaderControl : public QMetaDataReaderControl
-{
- Q_OBJECT
-public:
- MockMetaDataReaderControl(QObject *parent = 0)
- : QMetaDataReaderControl(parent)
- , m_available(false)
- {
- }
-
- bool isMetaDataAvailable() const
- {
- return m_available;
- }
- void setMetaDataAvailable(bool available)
- {
- if (m_available != available)
- emit metaDataAvailableChanged(m_available = available);
- }
- QList<QtMultimedia::MetaData> availableMetaData() const
- {
- return m_data.keys();
- }
-
- QVariant metaData(QtMultimedia::MetaData key) const
- {
- return m_data.value(key);
- }
-
- QVariant extendedMetaData(const QString &key) const
- {
- return m_extendedData.value(key);
- }
-
- QStringList availableExtendedMetaData() const
- {
- return m_extendedData.keys();
- }
-
- using QMetaDataReaderControl::metaDataChanged;
-
- void populateMetaData()
- {
- m_available = true;
- }
-
- bool m_available;
- QMap<QtMultimedia::MetaData, QVariant> m_data;
- QMap<QString, QVariant> m_extendedData;
-};
-
-#endif // MOCKMETADATAREADERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockmetadatawritercontrol.h b/tests/auto/qmultimedia_common/mockmetadatawritercontrol.h
deleted file mode 100644
index e9f7c75..0000000
--- a/tests/auto/qmultimedia_common/mockmetadatawritercontrol.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKMETADATAWRITERCONTROL_H
-#define MOCKMETADATAWRITERCONTROL_H
-
-#include <QObject>
-#include <QMap>
-
-#include "qmetadatawritercontrol.h"
-
-class MockMetaDataWriterControl : public QMetaDataWriterControl
-{
- Q_OBJECT
-public:
- MockMetaDataWriterControl(QObject *parent = 0)
- : QMetaDataWriterControl(parent)
- , m_available(false)
- , m_writable(false)
- {
- }
-
- bool isMetaDataAvailable() const { return m_available; }
- void setMetaDataAvailable(bool available)
- {
- if (m_available != available)
- emit metaDataAvailableChanged(m_available = available);
- }
- QList<QtMultimedia::MetaData> availableMetaData() const { return m_data.keys(); }
-
- bool isWritable() const { return m_writable; }
- void setWritable(bool writable) { emit writableChanged(m_writable = writable); }
-
- QVariant metaData(QtMultimedia::MetaData key) const { return m_data.value(key); }//Getting the metadata from Multimediakit
- void setMetaData(QtMultimedia::MetaData key, const QVariant &value)
- {
- m_data.insert(key, value);
- }
-
- QVariant extendedMetaData(const QString &key) const { return m_extendedData.value(key); }
- void setExtendedMetaData(const QString &key, const QVariant &value)
- {
- m_extendedData.insert(key, value);
- }
-
- QStringList availableExtendedMetaData() const { return m_extendedData.keys(); }
-
- using QMetaDataWriterControl::metaDataChanged;
-
- void populateMetaData()
- {
- m_available = true;
- }
- void setWritable()
- {
- emit writableChanged(true);
- }
- void setMetaDataAvailable()
- {
- emit metaDataAvailableChanged(true);
- }
-
- bool m_available;
- bool m_writable;
- QMap<QtMultimedia::MetaData, QVariant> m_data;
- QMap<QString, QVariant> m_extendedData;
-};
-
-#endif // MOCKMETADATAWRITERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockplayer.pri b/tests/auto/qmultimedia_common/mockplayer.pri
deleted file mode 100644
index a5040ac..0000000
--- a/tests/auto/qmultimedia_common/mockplayer.pri
+++ /dev/null
@@ -1,12 +0,0 @@
-INCLUDEPATH *= $$PWD \
- ../../../src/multimedia \
- ../../../src/multimedia/audio \
- ../../../src/multimedia/video \
-
-HEADERS *= \
- ../qmultimedia_common/mockmediaplayerservice.h \
- ../qmultimedia_common/mockmediaplayercontrol.h \
- ../qmultimedia_common/mockmediastreamscontrol.h \
- ../qmultimedia_common/mockmedianetworkaccesscontrol.h
-
-include(mockvideo.pri)
diff --git a/tests/auto/qmultimedia_common/mockplaylist.pri b/tests/auto/qmultimedia_common/mockplaylist.pri
deleted file mode 100644
index c27c839..0000000
--- a/tests/auto/qmultimedia_common/mockplaylist.pri
+++ /dev/null
@@ -1,8 +0,0 @@
-INCLUDEPATH *= $$PWD \
- ../../../src/multimedia \
-
-HEADERS *= \
- ../qmultimedia_common/mockmediaplaylistsourcecontrol.h \
- ../qmultimedia_common/mockmediaplaylistcontrol.h \
- ../qmultimedia_common/mockreadonlyplaylistprovider.h \
- ../qmultimedia_common/mockplaylistservice.h
diff --git a/tests/auto/qmultimedia_common/mockplaylistservice.h b/tests/auto/qmultimedia_common/mockplaylistservice.h
deleted file mode 100644
index 3e1210c..0000000
--- a/tests/auto/qmultimedia_common/mockplaylistservice.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKPLAYLISTSERVICE_H
-#define MOCKPLAYLISTSERVICE_H
-
-#include "qmediaservice.h"
-#include "mockmediaplaylistcontrol.h"
-
-class MockPlaylistService : public QMediaService
-{
- Q_OBJECT
-
-public:
- MockPlaylistService():QMediaService(0)
- {
- mockControl = new MockMediaPlaylistControl(this);
- }
-
- ~MockPlaylistService()
- {
- }
-
- QMediaControl* requestControl(const char *iid)
- {
- if (qstrcmp(iid, QMediaPlaylistControl_iid) == 0)
- return mockControl;
- return 0;
- }
-
- void releaseControl(QMediaControl *)
- {
- }
-
- MockMediaPlaylistControl *mockControl;
-};
-
-
-#endif // MOCKPLAYLISTSERVICE_H
diff --git a/tests/auto/qmultimedia_common/mockradio.pri b/tests/auto/qmultimedia_common/mockradio.pri
deleted file mode 100644
index 0f7f84a..0000000
--- a/tests/auto/qmultimedia_common/mockradio.pri
+++ /dev/null
@@ -1,8 +0,0 @@
-
-# Radio related mock backend files
-
-INCLUDEPATH += .
-
-HEADERS += \
- ../qmultimedia_common/mockradiotunercontrol.h \
- ../qmultimedia_common/mockradiodatacontrol.h
diff --git a/tests/auto/qmultimedia_common/mockradiodatacontrol.h b/tests/auto/qmultimedia_common/mockradiodatacontrol.h
deleted file mode 100644
index ca6eb40..0000000
--- a/tests/auto/qmultimedia_common/mockradiodatacontrol.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKRADIODATACONTROL_H
-#define MOCKRADIODATACONTROL_H
-
-#include "qradiodatacontrol.h"
-
-class MockRadioDataControl : public QRadioDataControl
-{
- Q_OBJECT
-
-public:
- MockRadioDataControl(QObject *parent):
- QRadioDataControl(parent), m_err(QRadioData::NoError),
- m_errstr("")
- {
- }
-
- using QRadioDataControl::error;
-
- bool isAvailable() const
- {
- return true;
- }
- QtMultimedia::AvailabilityError availabilityError() const
- {
- return QtMultimedia::NoError;
- }
-
- QRadioData::Error error() const
- {
- return m_err;
- }
-
- QString errorString() const
- {
- return m_errstr;
- }
-
- QString stationId() const
- {
- return m_stationId;
- }
-
- QRadioData::ProgramType programType() const
- {
- return m_programType;
- }
-
- QString programTypeName() const
- {
- return m_programTypeName;
- }
-
- QString stationName() const
- {
- return m_stationName;
- }
-
- QString radioText() const
- {
- return m_radioText;
- }
-
- void setAlternativeFrequenciesEnabled(bool enabled)
- {
- m_alternativeFrequenciesEnabled = enabled;
- emit alternativeFrequenciesEnabledChanged(m_alternativeFrequenciesEnabled);
- }
-
- bool isAlternativeFrequenciesEnabled() const
- {
- return m_alternativeFrequenciesEnabled;
- }
-
- void forceRT( QString text )
- {
- m_radioText = text;
- emit radioTextChanged(m_radioText);
- }
-
- void forceProgramType( int pty )
- {
- m_programType = static_cast<QRadioData::ProgramType>(pty);
- emit programTypeChanged(m_programType);
- }
-
- void forcePTYN( QString ptyn )
- {
- m_programTypeName = ptyn;
- emit programTypeNameChanged(m_programTypeName);
- }
-
- void forcePI( QString pi )
- {
- m_stationId = pi;
- emit stationIdChanged(m_stationId);
- }
-
- void forcePS( QString ps )
- {
- m_stationName = ps;
- emit stationNameChanged(m_stationName);
- }
-
-public:
- QString m_radioText;
- QRadioData::ProgramType m_programType;
- QString m_programTypeName;
- QString m_stationId;
- QString m_stationName;
- bool m_alternativeFrequenciesEnabled;
-
- QRadioData::Error m_err;
- QString m_errstr;
-};
-
-#endif // MOCKRADIODATACONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockradiotunercontrol.h b/tests/auto/qmultimedia_common/mockradiotunercontrol.h
deleted file mode 100644
index 6648253..0000000
--- a/tests/auto/qmultimedia_common/mockradiotunercontrol.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKRADIOTUNERCONTROL_H
-#define MOCKRADIOTUNERCONTROL_H
-
-#include "qradiotunercontrol.h"
-
-class MockRadioTunerControl : public QRadioTunerControl
-{
- Q_OBJECT
-
-public:
- MockRadioTunerControl(QObject *parent):
- QRadioTunerControl(parent),
- m_active(false),
- m_searching(false),m_muted(false),m_stereo(true),
- m_volume(100),m_signal(0),m_frequency(0),
- m_band(QRadioTuner::FM),m_err(QRadioTuner::NoError),
- m_errstr("")
- {
- }
-
- using QRadioTunerControl::error;
-
- QRadioTuner::State state() const
- {
- return m_active ? QRadioTuner::ActiveState : QRadioTuner::StoppedState;
- }
-
- bool isAvailable() const
- {
- return true;
- }
- QtMultimedia::AvailabilityError availabilityError() const
- {
- return QtMultimedia::NoError;
- }
-
- QRadioTuner::Band band() const
- {
- return m_band;
- }
-
- void setBand(QRadioTuner::Band b)
- {
- if (b == QRadioTuner::FM2 || b == QRadioTuner::LW) {
- m_err = QRadioTuner::OutOfRangeError;
- m_errstr.clear();
- m_errstr = QString("band and range not supported");
- } else {
- m_err = QRadioTuner::NoError;
- m_errstr.clear();
- m_band = b;
- emit bandChanged(m_band);
- }
- emit error(m_err);
-
- }
-
- bool isBandSupported(QRadioTuner::Band b) const
- {
- if (b == QRadioTuner::FM || b == QRadioTuner::AM)
- return true;
-
- return false;
- }
-
- int frequency() const
- {
- return m_frequency;
- }
-
- QPair<int,int> frequencyRange(QRadioTuner::Band) const
- {
- return qMakePair<int,int>(1,2);
- }
-
- int frequencyStep(QRadioTuner::Band) const
- {
- return 1;
- }
-
- void setFrequency(int frequency)
- {
- if (frequency >= 148500000) {
- m_err = QRadioTuner::OutOfRangeError;
- m_errstr.clear();
- m_errstr = QString("band and range not supported");
- } else {
- m_err = QRadioTuner::NoError;
- m_errstr.clear();
- m_frequency = frequency;
- emit frequencyChanged(m_frequency);
- }
-
- emit error(m_err);
- }
-
- bool isStereo() const
- {
- return m_stereo;
- }
-
- void setStereo(bool stereo)
- {
- emit stereoStatusChanged(m_stereo = stereo);
- }
-
-
- QRadioTuner::StereoMode stereoMode() const
- {
- return m_stereoMode;
- }
-
- void setStereoMode(QRadioTuner::StereoMode mode)
- {
- m_stereoMode = mode;
- }
-
- QRadioTuner::Error error() const
- {
- return m_err;
- }
-
- QString errorString() const
- {
- return m_errstr;
- }
-
- int signalStrength() const
- {
- return m_signal;
- }
-
- int volume() const
- {
- return m_volume;
- }
-
- void setVolume(int volume)
- {
- m_volume = volume;
- emit volumeChanged(m_volume);
- }
-
- bool isMuted() const
- {
- return m_muted;
- }
-
- void setMuted(bool muted)
- {
- m_muted = muted;
- emit mutedChanged(m_muted);
- }
-
- bool isSearching() const
- {
- return m_searching;
- }
-
- void searchForward()
- {
- m_searching = true;
- emit searchingChanged(m_searching);
- }
-
- void searchBackward()
- {
- m_searching = true;
- emit searchingChanged(m_searching);
- }
-
- void cancelSearch()
- {
- m_searching = false;
- emit searchingChanged(m_searching);
- }
-
- void findNewStation( int frequency, QString stationId )
- {
- setFrequency(frequency);
- emit stationFound( frequency, stationId );
- }
-
- void searchAllStations(QRadioTuner::SearchMode searchMode = QRadioTuner::SearchFast)
- {
- QString programmeIdentifiers[3] = { "", "", "" };
-
- if ( searchMode == QRadioTuner::SearchGetStationId ) {
- programmeIdentifiers[0] = QString("MockProgramPI1");
- programmeIdentifiers[1] = QString("MockProgramPI2");
- programmeIdentifiers[2] = QString("MockProgramPI3");
- }
- m_searching = true;
- emit searchingChanged(m_searching);
-
- findNewStation(88300000, programmeIdentifiers[0]);
- findNewStation(95100000, programmeIdentifiers[1]);
- findNewStation(103100000, programmeIdentifiers[2]);
-
- m_searching = false;
- emit searchingChanged(m_searching);
- }
-
- void start()
- {
- if (!m_active) {
- m_active = true;
- emit stateChanged(state());
- }
- }
-
- void stop()
- {
- if (m_active) {
- m_active = false;
- emit stateChanged(state());
- }
- }
-
-public:
- bool m_active;
- bool m_searching;
- bool m_muted;
- bool m_stereo;
- int m_volume;
- int m_signal;
- int m_frequency;
- QRadioTuner::StereoMode m_stereoMode;
- QRadioTuner::Band m_band;
- QRadioTuner::Error m_err;
- QString m_errstr;
-};
-
-#endif // MOCKRADIOTUNERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockreadonlyplaylistprovider.h b/tests/auto/qmultimedia_common/mockreadonlyplaylistprovider.h
deleted file mode 100644
index 12e48e0..0000000
--- a/tests/auto/qmultimedia_common/mockreadonlyplaylistprovider.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKREADONLYPLAYLISTPROVIDER_H
-#define MOCKREADONLYPLAYLISTPROVIDER_H
-
-#include "qmediaplaylistprovider.h"
-
-class MockReadOnlyPlaylistProvider : public QMediaPlaylistProvider
-{
- Q_OBJECT
-public:
- MockReadOnlyPlaylistProvider(QObject *parent)
- :QMediaPlaylistProvider(parent)
- {
- m_items.append(QMediaContent(QUrl(QLatin1String("file:///1"))));
- m_items.append(QMediaContent(QUrl(QLatin1String("file:///2"))));
- m_items.append(QMediaContent(QUrl(QLatin1String("file:///3"))));
- }
-
- int mediaCount() const { return m_items.size(); }
- QMediaContent media(int index) const
- {
- return index >=0 && index < mediaCount() ? m_items.at(index) : QMediaContent();
- }
-
-private:
- QList<QMediaContent> m_items;
-};
-
-#endif // MOCKREADONLYPLAYLISTPROVIDER_H
diff --git a/tests/auto/qmultimedia_common/mockrecorder.pri b/tests/auto/qmultimedia_common/mockrecorder.pri
deleted file mode 100644
index 6f8438d..0000000
--- a/tests/auto/qmultimedia_common/mockrecorder.pri
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDEPATH *= $$PWD \
- ../../../src/multimedia \
- ../../../src/multimedia/audio \
- ../../../src/multimedia/video \
-
-HEADERS *= \
- ../qmultimedia_common/mockmediarecorderservice.h \
- ../qmultimedia_common/mockmediarecordercontrol.h \
- ../qmultimedia_common/mockvideoencodercontrol.h \
- ../qmultimedia_common/mockaudioencodercontrol.h \
- ../qmultimedia_common/mockaudioendpointselector.h \
-
-# We also need all the container/metadata bits
-include(mockcontainer.pri)
diff --git a/tests/auto/qmultimedia_common/mockvideo.pri b/tests/auto/qmultimedia_common/mockvideo.pri
deleted file mode 100644
index ea99166..0000000
--- a/tests/auto/qmultimedia_common/mockvideo.pri
+++ /dev/null
@@ -1,14 +0,0 @@
-# video related mock backend files
-INCLUDEPATH += $$PWD \
- ../../../src/multimedia \
- ../../../src/multimedia/video
-
-contains(QT,multimediawidgets)|contains(QT,multimediawidgets-private) {
- HEADERS *= ../qmultimedia_common/mockvideowindowcontrol.h
- DEFINES *= QT_MULTIMEDIA_MOCK_WIDGETS
-}
-
-HEADERS *= \
- ../qmultimedia_common/mockvideosurface.h \
- ../qmultimedia_common/mockvideorenderercontrol.h
-
diff --git a/tests/auto/qmultimedia_common/mockvideoencodercontrol.h b/tests/auto/qmultimedia_common/mockvideoencodercontrol.h
deleted file mode 100644
index f628c67..0000000
--- a/tests/auto/qmultimedia_common/mockvideoencodercontrol.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKVIDEOENCODERCONTROL_H
-#define MOCKVIDEOENCODERCONTROL_H
-
-#include "qvideoencodercontrol.h"
-
-class MockVideoEncoderControl : public QVideoEncoderControl
-{
- Q_OBJECT
-public:
- MockVideoEncoderControl(QObject *parent):
- QVideoEncoderControl(parent)
- {
- m_supportedEncodeOptions.insert("video/3gpp", QStringList() << "quantizer" << "me");
- m_supportedEncodeOptions.insert("video/H264", QStringList() << "quantizer" << "me" << "bframes");
- m_videoCodecs << "video/3gpp" << "video/H264";
- m_sizes << QSize(320,240) << QSize(640,480);
- m_framerates << 30 << 15 << 1;
- }
- ~MockVideoEncoderControl() {}
-
- QVideoEncoderSettings videoSettings() const { return m_videoSettings; }
- void setVideoSettings(const QVideoEncoderSettings &settings) { m_videoSettings = settings; };
-
- QList<QSize> supportedResolutions(const QVideoEncoderSettings & = QVideoEncoderSettings(),
- bool *continuous = 0) const
- {
- if (continuous)
- *continuous = true;
-
- return m_sizes;
- }
-
- QList<qreal> supportedFrameRates(const QVideoEncoderSettings & = QVideoEncoderSettings(),
- bool *continuous = 0) const
- {
- if (continuous)
- *continuous = false;
-
- return m_framerates;
- }
-
- QStringList supportedVideoCodecs() const { return m_videoCodecs; }
- QString videoCodecDescription(const QString &codecName) const { return codecName; }
-
- QStringList supportedEncodingOptions(const QString &codec) const
- {
- return m_supportedEncodeOptions.value(codec);
- }
-
- QVariant encodingOption(const QString &codec, const QString &name) const
- {
- return m_encodeOptions[codec].value(name);
- }
-
- void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
- {
- m_encodeOptions[codec][name] = value;
- }
-
-private:
- QVideoEncoderSettings m_videoSettings;
-
- QMap<QString, QStringList> m_supportedEncodeOptions;
- QMap< QString, QMap<QString, QVariant> > m_encodeOptions;
-
- QStringList m_videoCodecs;
- QList<QSize> m_sizes;
- QList<qreal> m_framerates;
-};
-
-#endif // MOCKVIDEOENCODERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockvideorenderercontrol.h b/tests/auto/qmultimedia_common/mockvideorenderercontrol.h
deleted file mode 100644
index c98dd76..0000000
--- a/tests/auto/qmultimedia_common/mockvideorenderercontrol.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKVIDEORENDERERCONTROL_H
-#define MOCKVIDEORENDERERCONTROL_H
-
-#include "qvideorenderercontrol.h"
-
-class MockVideoRendererControl : public QVideoRendererControl
-{
-public:
- MockVideoRendererControl(QObject *parent = 0) : QVideoRendererControl(parent), m_surface(0) {}
-
- QAbstractVideoSurface *surface() const { return m_surface; }
- void setSurface(QAbstractVideoSurface *surface) { m_surface = surface; }
-
- QAbstractVideoSurface *m_surface;
-};
-
-#endif // MOCKVIDEORENDERERCONTROL_H
diff --git a/tests/auto/qmultimedia_common/mockvideosurface.h b/tests/auto/qmultimedia_common/mockvideosurface.h
deleted file mode 100644
index bbfe354..0000000
--- a/tests/auto/qmultimedia_common/mockvideosurface.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKVIDEOSURFACE_H
-#define MOCKVIDEOSURFACE_H
-
-#include "qabstractvideosurface.h"
-
-class MockVideoSurface : public QAbstractVideoSurface
-{
-public:
- QList<QVideoFrame::PixelFormat> supportedPixelFormats(
- const QAbstractVideoBuffer::HandleType) const
- {
- return QList<QVideoFrame::PixelFormat>();
- }
-
- bool present(const QVideoFrame &) { return false; }
-};
-
-#endif // MOCKVIDEOSURFACE_H
diff --git a/tests/auto/qmultimedia_common/mockvideowindowcontrol.h b/tests/auto/qmultimedia_common/mockvideowindowcontrol.h
deleted file mode 100644
index 83255e2..0000000
--- a/tests/auto/qmultimedia_common/mockvideowindowcontrol.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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$
-**
-****************************************************************************/
-
-#ifndef MOCKVIDEOWINDOWCONTROL_H
-#define MOCKVIDEOWINDOWCONTROL_H
-
-#if defined(QT_MULTIMEDIA_MOCK_WIDGETS)
-
-#include "qvideowindowcontrol.h"
-
-class MockVideoWindowControl : public QVideoWindowControl
-{
-public:
- MockVideoWindowControl(QObject *parent = 0) : QVideoWindowControl(parent) {}
- WId winId() const { return 0; }
- void setWinId(WId) {}
- QRect displayRect() const { return QRect(); }
- void setDisplayRect(const QRect &) {}
- bool isFullScreen() const { return false; }
- void setFullScreen(bool) {}
- void repaint() {}
- QSize nativeSize() const { return QSize(); }
- Qt::AspectRatioMode aspectRatioMode() const { return Qt::KeepAspectRatio; }
- void setAspectRatioMode(Qt::AspectRatioMode) {}
- int brightness() const { return 0; }
- void setBrightness(int) {}
- int contrast() const { return 0; }
- void setContrast(int) {}
- int hue() const { return 0; }
- void setHue(int) {}
- int saturation() const { return 0; }
- void setSaturation(int) {}
-};
-
-#endif // QT_MULTIMEDIA_MOCK_WIDGETS
-#endif // MOCKVIDEOWINDOWCONTROL_H
diff --git a/tests/auto/qpaintervideosurface/qpaintervideosurface.pro b/tests/auto/qpaintervideosurface/qpaintervideosurface.pro
deleted file mode 100644
index d56a384..0000000
--- a/tests/auto/qpaintervideosurface/qpaintervideosurface.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qpaintervideosurface
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-contains(QT_CONFIG, opengl) | contains(QT_CONFIG, opengles2) {
- QT += opengl
-} else {
- DEFINES += QT_NO_OPENGL
-}
-
-contains(QT_CONFIG, opengl): QT += opengl
-
-SOURCES += tst_qpaintervideosurface.cpp
-
-# QPA-minimal and OpenGL don't get along
-qpa:CONFIG += insignificant_test
-QT+=widgets
diff --git a/tests/auto/qpaintervideosurface/tst_qpaintervideosurface.cpp b/tests/auto/qpaintervideosurface/tst_qpaintervideosurface.cpp
deleted file mode 100644
index 53ed906..0000000
--- a/tests/auto/qpaintervideosurface/tst_qpaintervideosurface.cpp
+++ /dev/null
@@ -1,1249 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <private/qpaintervideosurface_p.h>
-#include <QtTest/QtTest>
-
-#include <QtWidgets/qapplication.h>
-#include <qvideosurfaceformat.h>
-
-#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
-#include <QtOpenGL/qgl.h>
-#include <QtOpenGL/qglframebufferobject.h>
-#endif
-
-QT_USE_NAMESPACE
-class tst_QPainterVideoSurface : public QObject
-{
- Q_OBJECT
-private slots:
- void cleanup() {}
- void cleanupTestCase() {}
-
- void colors();
-
- void supportedFormat_data();
- void supportedFormat();
-
- void present_data();
- void present();
- void presentOpaqueFrame();
-
-#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
-
- void shaderType();
-
- void shaderTypeStarted_data();
- void shaderTypeStarted();
-
- void shaderSupportedFormat_data();
- void shaderSupportedFormat();
-
- void shaderPresent_data();
- void shaderPresent();
- void shaderPresentOpaqueFrame_data();
- void shaderPresentOpaqueFrame();
- void shaderPresentGLFrame_data();
- void shaderPresentGLFrame();
-#endif
-};
-
-Q_DECLARE_METATYPE(const uchar *)
-
-#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
-Q_DECLARE_METATYPE(QPainterVideoSurface::ShaderType);
-
-class QtTestGLVideoBuffer : public QAbstractVideoBuffer
-{
-public:
- QtTestGLVideoBuffer()
- : QAbstractVideoBuffer(GLTextureHandle)
- , m_textureId(0)
- {
- glGenTextures(1, &m_textureId);
- }
-
- ~QtTestGLVideoBuffer()
- {
- glDeleteTextures(1, &m_textureId);
- }
-
- GLuint textureId() const { return m_textureId; }
-
- QVariant handle() const { return m_textureId; }
-
- uchar *map(MapMode, int *, int *) { return 0; }
- void unmap() {}
- MapMode mapMode() const { return NotMapped; }
-
-private:
- GLuint m_textureId;
-};
-
-#endif
-
-class QtTestOpaqueVideoBuffer : public QAbstractVideoBuffer
-{
-public:
- QtTestOpaqueVideoBuffer()
- : QAbstractVideoBuffer(UserHandle)
- {}
-
- uchar *map(MapMode, int *, int *) { return 0; }
- void unmap() {}
- MapMode mapMode() const { return NotMapped; }
-};
-
-void tst_QPainterVideoSurface::colors()
-{
- QPainterVideoSurface surface;
-
- QCOMPARE(surface.brightness(), 0);
- QCOMPARE(surface.contrast(), 0);
- QCOMPARE(surface.hue(), 0);
- QCOMPARE(surface.saturation(), 0);
-
- surface.setBrightness(56);
- QCOMPARE(surface.brightness(), 56);
-
- surface.setContrast(43);
- QCOMPARE(surface.contrast(), 43);
-
- surface.setHue(-84);
- QCOMPARE(surface.hue(), -84);
-
- surface.setSaturation(100);
- QCOMPARE(surface.saturation(), 100);
-}
-
-static const uchar rgb32ImageData[] =
-{
- 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00
-};
-
-static const uchar argb32ImageData[] =
-{
- 0x00, 0xff, 0x00, 0x00, 0xcc, 0x00, 0xff, 0xcc,
- 0x77, 0x00, 0x00, 0x77, 0x00, 0xff, 0xff, 0x00
-};
-
-static const uchar rgb24ImageData[] =
-{
- 0x00, 0xff, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00,
- 0xcc, 0x00, 0xcc, 0x77, 0xff, 0x77, 0x00, 0x00
-};
-
-static const uchar rgb565ImageData[] =
-{
- 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00
-};
-
-static const uchar yuvPlanarImageData[] =
-{
- 0x00, 0x00, 0x0f, 0xff, 0xff, 0x0f, 0x00, 0x00,
- 0x00, 0x0f, 0xff, 0x0f, 0x0f, 0xff, 0x0f, 0x00,
- 0x00, 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff, 0x00,
- 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
- 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
- 0x0f, 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff, 0x0f,
- 0x00, 0x0f, 0xff, 0x0f, 0x0f, 0xff, 0x0f, 0x00,
- 0x00, 0x00, 0x0f, 0xff, 0xff, 0x0f, 0x00, 0x00,
- 0x00, 0x0f, 0x0f, 0x00,
- 0x0f, 0x00, 0x00, 0x0f,
- 0x0f, 0x00, 0x00, 0x0f,
- 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x0f, 0x0f, 0x00,
- 0x0f, 0x00, 0x00, 0x0f,
- 0x0f, 0x00, 0x00, 0x0f,
- 0x00, 0x0f, 0x0f, 0x00,
-};
-
-void tst_QPainterVideoSurface::supportedFormat_data()
-{
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<bool>("supportedPixelFormat");
- QTest::addColumn<bool>("supportedFormat");
-
- QTest::newRow("rgb32 640x480")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB32
- << QSize(640, 480)
- << true
- << true;
- QTest::newRow("rgb32 -640x480")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB32
- << QSize(-640, 480)
- << true
- << false;
- QTest::newRow("rgb24 1024x768")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB24
- << QSize(1024, 768)
-#ifndef QT_OPENGL_ES
- << true
- << true;
-#else
- << false
- << false;
-#endif
- QTest::newRow("rgb24 -1024x-768")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB24
- << QSize(-1024, -768)
-#ifndef QT_OPENGL_ES
- << true
-#else
- << false
-#endif
- << false;
- QTest::newRow("rgb565 0x0")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB565
- << QSize(0, 0)
- << true
- << false;
- QTest::newRow("YUV420P 640x480")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow("YUV420P 640x-480")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, -480)
- << false
- << false;
- QTest::newRow("Y8 640x480")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_Y8
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow("Texture: rgb32 640x480")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB32
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow("Texture: rgb32 -640x480")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB32
- << QSize(-640, 480)
- << false
- << false;
- QTest::newRow("rgb565 32x32")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB565
- << QSize(32, 32)
- << true
- << true;
- QTest::newRow("rgb565 0x0")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB565
- << QSize(0, 0)
- << true
- << false;
- QTest::newRow("argb32 256x256")
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_ARGB32
- << QSize(256, 256)
- << true
- << true;
- QTest::newRow("Texture: rgb24 1024x768")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB24
- << QSize(1024, 768)
- << false
- << false;
- QTest::newRow("Texture: rgb24 -1024x-768")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB24
- << QSize(-1024, -768)
- << false
- << false;
- QTest::newRow("Texture: YUV420P 640x480")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow("Texture: YUV420P 640x-480")
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, -480)
- << false
- << false;
- QTest::newRow("User Buffer: rgb32 256x256")
- << QAbstractVideoBuffer::UserHandle
- << QVideoFrame::Format_RGB32
- << QSize(256, 256)
- << false
- << false;
-#if !defined(Q_OS_MAC)
- QTest::newRow("Pixmap: rgb32 640x480")
- << QAbstractVideoBuffer::QPixmapHandle
- << QVideoFrame::Format_RGB32
- << QSize(640, 480)
- << true
- << true;
- QTest::newRow("Pixmap: YUV420P 640x480")
- << QAbstractVideoBuffer::QPixmapHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, 480)
- << false
- << true;
-#endif
-}
-
-void tst_QPainterVideoSurface::supportedFormat()
-{
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QSize, frameSize);
- QFETCH(bool, supportedPixelFormat);
- QFETCH(bool, supportedFormat);
-
- QPainterVideoSurface surface;
-
- const QList<QVideoFrame::PixelFormat> pixelFormats = surface.supportedPixelFormats(handleType);
-
- QCOMPARE(pixelFormats.contains(pixelFormat), QBool(supportedPixelFormat));
-
- QVideoSurfaceFormat format(frameSize, pixelFormat, handleType);
-
- QCOMPARE(surface.isFormatSupported(format), supportedFormat);
- QCOMPARE(surface.start(format), supportedFormat);
-}
-
-void tst_QPainterVideoSurface::present_data()
-{
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormatA");
- QTest::addColumn<QSize>("frameSizeA");
- QTest::addColumn<const uchar *>("frameDataA");
- QTest::addColumn<int>("bytesA");
- QTest::addColumn<int>("bytesPerLineA");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormatB");
- QTest::addColumn<QSize>("frameSizeB");
- QTest::addColumn<const uchar *>("frameDataB");
- QTest::addColumn<int>("bytesB");
- QTest::addColumn<int>("bytesPerLineB");
-
- QTest::newRow("rgb32 -> argb32")
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_ARGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(argb32ImageData)
- << int(sizeof(argb32ImageData))
- << 8;
-
-#ifndef QT_OPENGL_ES
- QTest::newRow("rgb32 -> rgb24")
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_RGB24
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb24ImageData)
- << int(sizeof(rgb24ImageData))
- << 8;
-#endif
-
- QTest::newRow("rgb32 -> rgb565")
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_RGB565
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb565ImageData)
- << int(sizeof(rgb565ImageData))
- << 4;
-
-#ifndef QT_OPENGL_ES
- QTest::newRow("rgb24 -> rgb565")
- << QVideoFrame::Format_RGB24
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb24ImageData)
- << int(sizeof(rgb24ImageData))
- << 8
- << QVideoFrame::Format_RGB565
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb565ImageData)
- << int(sizeof(rgb565ImageData))
- << 4;
-#endif
-}
-
-void tst_QPainterVideoSurface::present()
-{
- QFETCH(QVideoFrame::PixelFormat, pixelFormatA);
- QFETCH(QSize, frameSizeA);
- QFETCH(const uchar *, frameDataA);
- QFETCH(int, bytesA);
- QFETCH(int, bytesPerLineA);
- QFETCH(QVideoFrame::PixelFormat, pixelFormatB);
- QFETCH(QSize, frameSizeB);
- QFETCH(const uchar *, frameDataB);
- QFETCH(int, bytesB);
- QFETCH(int, bytesPerLineB);
-
- QPainterVideoSurface surface;
-
- QImage image(320, 240, QImage::Format_RGB32);
-
- QSignalSpy frameSpy(&surface, SIGNAL(frameChanged()));
-
- const QList<QVideoFrame::PixelFormat> pixelFormats = surface.supportedPixelFormats();
-
- { // Test painting before started.
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
-
- QVideoSurfaceFormat formatA(frameSizeA, pixelFormatA);
-
- QVERIFY(surface.start(formatA));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- { // Test painting before receiving a frame.
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
-
- QVideoFrame frameA(bytesA, frameSizeA, bytesPerLineA, pixelFormatA);
-
- frameA.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frameA.bits(), frameDataA, frameA.mappedBytes());
- frameA.unmap();
-
- QVERIFY(surface.present(frameA));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(frameSpy.count(), 1);
-
- {
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-
- { // Test repainting before receiving another frame.
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-
- // Not ready.
- QVERIFY(!surface.present(frameA));
- QCOMPARE(frameSpy.count(), 1);
-
- surface.setReady(true);
- QCOMPARE(surface.isReady(), true);
- QVERIFY(surface.present(frameA));
- QCOMPARE(frameSpy.count(), 2);
-
- // Try switching to a different format after starting.
- QVideoSurfaceFormat formatB(frameSizeB, pixelFormatB);
-
- QVERIFY(surface.start(formatB));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QVideoFrame frameB(bytesB, frameSizeB, bytesPerLineB, pixelFormatB);
-
- frameB.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frameB.bits(), frameDataB, frameB.mappedBytes());
- frameB.unmap();
-
- QVERIFY(surface.present(frameB));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(frameSpy.count(), 3);
-
- {
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QVERIFY(surface.isActive());
-
- surface.stop();
-
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
-
- // Try presenting a frame while stopped.
- QVERIFY(!surface.present(frameB));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::StoppedError);
-
- // Try presenting a frame with a different format.
- QVERIFY(surface.start(formatB));
- QVERIFY(!surface.present(frameA));
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::IncorrectFormatError);
-}
-
-void tst_QPainterVideoSurface::presentOpaqueFrame()
-{
- QPainterVideoSurface surface;
-
- QImage image(320, 240, QImage::Format_RGB32);
-
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface.start(format));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QVideoFrame frame(new QtTestOpaqueVideoBuffer, QSize(64, 64), QVideoFrame::Format_RGB32);
-
- if (surface.present(frame)) {
- QPainter painter(&image);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
-
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::IncorrectFormatError);
-}
-
-#if !defined(QT_NO_OPENGL) && !defined(QT_OPENGL_ES_1_CL) && !defined(QT_OPENGL_ES_1)
-
-void tst_QPainterVideoSurface::shaderType()
-{
- QPainterVideoSurface surface;
- QGLWidget widget;
- widget.makeCurrent();
-
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.supportedShaderTypes(), QPainterVideoSurface::NoShaders);
-
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
- QCOMPARE(surface.glContext(), widget.context());
-
- {
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
-
- surface.setShaderType(QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(spy.count(), 0);
- }
-
-#ifndef QT_OPENGL_ES
- if (surface.supportedShaderTypes() & QPainterVideoSurface::FragmentProgramShader) {
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
-
- surface.setShaderType(QPainterVideoSurface::FragmentProgramShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::FragmentProgramShader);
- QCOMPARE(spy.count(), 1);
-
- surface.setShaderType(QPainterVideoSurface::FragmentProgramShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::FragmentProgramShader);
- QCOMPARE(spy.count(), 1);
- }
-#endif
-
- if (surface.supportedShaderTypes() & QPainterVideoSurface::GlslShader) {
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
-
- surface.setShaderType(QPainterVideoSurface::GlslShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::GlslShader);
- QCOMPARE(spy.count(), 1);
-
- surface.setShaderType(QPainterVideoSurface::GlslShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::GlslShader);
- QCOMPARE(spy.count(), 1);
- }
-
- {
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
-
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
- QCOMPARE(surface.glContext(), widget.context());
- QCOMPARE(spy.count(), 0);
- }
-
- surface.setGLContext(0);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.supportedShaderTypes(), QPainterVideoSurface::NoShaders);
-
- {
- QSignalSpy spy(&surface, SIGNAL(supportedFormatsChanged()));
-
- surface.setShaderType(QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(spy.count(), 0);
-
-#ifndef QT_OPENGL_ES
- surface.setShaderType(QPainterVideoSurface::FragmentProgramShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(spy.count(), 0);
-#endif
-
- surface.setShaderType(QPainterVideoSurface::GlslShader);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(spy.count(), 0);
- }
-}
-
-void tst_QPainterVideoSurface::shaderTypeStarted_data()
-{
- QTest::addColumn<QPainterVideoSurface::ShaderType>("shaderType");
-
-#ifndef QT_OPENGL_ES
- QTest::newRow("ARBfp")
- << QPainterVideoSurface::FragmentProgramShader;
-#endif
- QTest::newRow("GLSL")
- << QPainterVideoSurface::GlslShader;
-}
-
-void tst_QPainterVideoSurface::shaderTypeStarted()
-{
- QFETCH(QPainterVideoSurface::ShaderType, shaderType);
-
- QGLWidget widget;
- widget.makeCurrent();
-
- QPainterVideoSurface surface;
-
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
-
- if (!(surface.supportedShaderTypes() & shaderType))
- QSKIP("Shader type unsupported on this platform", SkipSingle);
-
- surface.setShaderType(shaderType);
- QCOMPARE(surface.shaderType(), shaderType);
-
- QVERIFY(surface.start(QVideoSurfaceFormat(QSize(640, 480), QVideoFrame::Format_RGB32)));
- {
- QSignalSpy spy(&surface, SIGNAL(activeChanged(bool)));
-
- surface.setShaderType(QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().value(0).toBool(), false);
- }
-
- QVERIFY(surface.start(QVideoSurfaceFormat(QSize(640, 480), QVideoFrame::Format_RGB32)));
- {
- QSignalSpy spy(&surface, SIGNAL(activeChanged(bool)));
-
- surface.setShaderType(QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(spy.count(), 0);
-
- surface.setShaderType(shaderType);
- QCOMPARE(surface.shaderType(), shaderType);
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().value(0).toBool(), false);
- }
-
- QVERIFY(surface.start(QVideoSurfaceFormat(QSize(640, 480), QVideoFrame::Format_RGB32)));
- {
- QSignalSpy spy(&surface, SIGNAL(activeChanged(bool)));
-
- surface.setShaderType(shaderType);
- QCOMPARE(surface.shaderType(), shaderType);
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(spy.count(), 0);
-
- surface.setGLContext(0);
- QCOMPARE(surface.shaderType(), QPainterVideoSurface::NoShaders);
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.last().value(0).toBool(), false);
- }
-}
-
-void tst_QPainterVideoSurface::shaderSupportedFormat_data()
-{
- QTest::addColumn<QPainterVideoSurface::ShaderType>("shaderType");
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<bool>("supportedPixelFormat");
- QTest::addColumn<bool>("supportedFormat");
-
- QList<QPair<QPainterVideoSurface::ShaderType, QByteArray> > types;
-
-
-#ifndef QT_OPENGL_ES
- types << qMakePair(QPainterVideoSurface::FragmentProgramShader, QByteArray("ARBfp: "));
-#endif
- types << qMakePair(QPainterVideoSurface::GlslShader, QByteArray("GLSL: "));
-
- QPair<QPainterVideoSurface::ShaderType, QByteArray> type;
- foreach (type, types) {
- QTest::newRow((type.second + "rgb32 640x480").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB32
- << QSize(640, 480)
- << true
- << true;
- QTest::newRow((type.second + "rgb32 -640x480").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB32
- << QSize(-640, 480)
- << true
- << false;
- QTest::newRow((type.second + "rgb565 32x32").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB565
- << QSize(32, 32)
- << true
- << true;
- QTest::newRow((type.second + "rgb565 0x0").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB565
- << QSize(0, 0)
- << true
- << false;
- QTest::newRow((type.second + "argb32 256x256").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_ARGB32
- << QSize(256, 256)
- << true
- << true;
- QTest::newRow((type.second + "rgb24 1024x768").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB24
- << QSize(1024, 768)
-#ifndef QT_OPENGL_ES
- << true
- << true;
-#else
- << false
- << false;
-#endif
- QTest::newRow((type.second + "rgb24 -1024x-768").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_RGB24
- << QSize(-1024, -768)
-#ifndef QT_OPENGL_ES
- << true
-#else
- << false
-#endif
- << false;
-#ifndef Q_WS_MAC
- QTest::newRow((type.second + "YUV420P 640x480").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, 480)
- << true
- << true;
- QTest::newRow((type.second + "YUV420P 640x-480").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, -480)
- << true
- << false;
-#endif
- QTest::newRow((type.second + "Y8 640x480").constData())
- << type.first
- << QAbstractVideoBuffer::NoHandle
- << QVideoFrame::Format_Y8
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow((type.second + "Texture: rgb32 640x480").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB32
- << QSize(640, 480)
- << true
- << true;
- QTest::newRow((type.second + "Texture: rgb32 -640x480").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB32
- << QSize(-640, 480)
- << true
- << false;
-#ifndef Q_WS_MAC
- QTest::newRow((type.second + "Texture: rgb565 32x32").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB565
- << QSize(32, 32)
- << false
- << false;
- QTest::newRow((type.second + "Texture: rgb565 0x0").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB565
- << QSize(0, 0)
- << false
- << false;
-#endif
- QTest::newRow((type.second + "Texture argb32 256x256").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_ARGB32
- << QSize(256, 256)
- << true
- << true;
-#ifndef Q_WS_MAC
- QTest::newRow((type.second + "Texture: rgb24 1024x768").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB24
- << QSize(1024, 768)
- << false
- << false;
- QTest::newRow((type.second + "Texture: rgb24 -1024x-768").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_RGB24
- << QSize(-1024, -768)
- << false
- << false;
- QTest::newRow((type.second + "Texture: YUV420P 640x480").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, 480)
- << false
- << false;
- QTest::newRow((type.second + "Texture: YUV420P 640x-480").constData())
- << type.first
- << QAbstractVideoBuffer::GLTextureHandle
- << QVideoFrame::Format_YUV420P
- << QSize(640, -480)
- << false
- << false;
-#endif
- QTest::newRow(type.second + "User Buffer: rgb32 256x256")
- << type.first
- << QAbstractVideoBuffer::UserHandle
- << QVideoFrame::Format_RGB32
- << QSize(256, 256)
- << false
- << false;
- }
-}
-
-void tst_QPainterVideoSurface::shaderSupportedFormat()
-{
- QFETCH(QPainterVideoSurface::ShaderType, shaderType);
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QSize, frameSize);
- QFETCH(bool, supportedPixelFormat);
- QFETCH(bool, supportedFormat);
-
- QGLWidget widget;
- widget.makeCurrent();
-
- QPainterVideoSurface surface;
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
-
-
- if (!(surface.supportedShaderTypes() & shaderType))
- QSKIP("Shader type not supported on this platform", SkipSingle);
-
- surface.setShaderType(shaderType);
- if (surface.shaderType() != shaderType)
- QSKIP("Shader type couldn't be set", SkipSingle);
-
- const QList<QVideoFrame::PixelFormat> pixelFormats = surface.supportedPixelFormats(handleType);
-
- QCOMPARE(pixelFormats.contains(pixelFormat), QBool(supportedPixelFormat));
-
- QVideoSurfaceFormat format(frameSize, pixelFormat, handleType);
-
- QCOMPARE(surface.isFormatSupported(format), supportedFormat);
- QCOMPARE(surface.start(format), supportedFormat);
-}
-
-void tst_QPainterVideoSurface::shaderPresent_data()
-{
- QTest::addColumn<QPainterVideoSurface::ShaderType>("shaderType");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormatA");
- QTest::addColumn<QSize>("frameSizeA");
- QTest::addColumn<const uchar *>("frameDataA");
- QTest::addColumn<int>("bytesA");
- QTest::addColumn<int>("bytesPerLineA");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormatB");
- QTest::addColumn<QSize>("frameSizeB");
- QTest::addColumn<const uchar *>("frameDataB");
- QTest::addColumn<int>("bytesB");
- QTest::addColumn<int>("bytesPerLineB");
-
- QList<QPair<QPainterVideoSurface::ShaderType, QByteArray> > types;
-#ifndef QT_OPENGL_ES
- types << qMakePair(QPainterVideoSurface::FragmentProgramShader, QByteArray("ARBfp: "));
-#endif
- types << qMakePair(QPainterVideoSurface::GlslShader, QByteArray("GLSL: "));
-
- QPair<QPainterVideoSurface::ShaderType, QByteArray> type;
- foreach (type, types) {
- QTest::newRow((type.second + "rgb32 -> argb32").constData())
- << type.first
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_ARGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(argb32ImageData)
- << int(sizeof(argb32ImageData))
- << 8;
-
- QTest::newRow((type.second + "rgb32 -> rgb565").constData())
- << type.first
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_RGB565
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb565ImageData)
- << int(sizeof(rgb565ImageData))
- << 4;
-#ifndef Q_WS_MAC
- QTest::newRow((type.second + "rgb32 -> yuv420p").constData())
- << type.first
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8
- << QVideoFrame::Format_YUV420P
- << QSize(8, 8)
- << static_cast<const uchar *>(yuvPlanarImageData)
- << int(sizeof(yuvPlanarImageData))
- << 8;
-
- QTest::newRow((type.second + "yv12 -> rgb32").constData())
- << type.first
- << QVideoFrame::Format_YV12
- << QSize(8, 8)
- << static_cast<const uchar *>(yuvPlanarImageData)
- << int(sizeof(yuvPlanarImageData))
- << 8
- << QVideoFrame::Format_RGB32
- << QSize(2, 2)
- << static_cast<const uchar *>(rgb32ImageData)
- << int(sizeof(rgb32ImageData))
- << 8;
-#endif
- }
-}
-
-void tst_QPainterVideoSurface::shaderPresent()
-{
- QFETCH(QPainterVideoSurface::ShaderType, shaderType);
- QFETCH(QVideoFrame::PixelFormat, pixelFormatA);
- QFETCH(QSize, frameSizeA);
- QFETCH(const uchar *, frameDataA);
- QFETCH(int, bytesA);
- QFETCH(int, bytesPerLineA);
- QFETCH(QVideoFrame::PixelFormat, pixelFormatB);
- QFETCH(QSize, frameSizeB);
- QFETCH(const uchar *, frameDataB);
- QFETCH(int, bytesB);
- QFETCH(int, bytesPerLineB);
-
- QGLWidget widget;
- widget.makeCurrent();
-
- QPainterVideoSurface surface;
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
-
- if (!(surface.supportedShaderTypes() & shaderType))
- QSKIP("Shader type unsupported on this platform", SkipSingle);
-
- surface.setShaderType(shaderType);
- if (surface.shaderType() != shaderType)
- QSKIP("Shader type couldn't be set", SkipSingle);
-
- QSignalSpy frameSpy(&surface, SIGNAL(frameChanged()));
-
- { // Test painting before starting the surface.
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
-
- QVideoSurfaceFormat formatA(frameSizeA, pixelFormatA);
-
- QVERIFY(surface.start(formatA));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- // Test painting before receiving a frame.
- {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QVideoFrame frameA(bytesA, frameSizeA, bytesPerLineA, pixelFormatA);
-
- frameA.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frameA.bits(), frameDataA, frameA.mappedBytes());
- frameA.unmap();
-
- QVERIFY(surface.present(frameA));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(frameSpy.count(), 1);
-
- {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-
- { // Test repainting before receiving another frame.
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-
- // Not ready.
- QVERIFY(!surface.present(frameA));
- QCOMPARE(frameSpy.count(), 1);
-
- surface.setReady(true);
- QCOMPARE(surface.isReady(), true);
- QVERIFY(surface.present(frameA));
- QCOMPARE(frameSpy.count(), 2);
-
- // Try switching to a different format after starting.
- QVideoSurfaceFormat formatB(frameSizeB, pixelFormatB);
-
- QVERIFY(surface.start(formatB));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QVideoFrame frameB(bytesB, frameSizeB, bytesPerLineB, pixelFormatB);
-
- frameB.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frameB.bits(), frameDataB, frameB.mappedBytes());
- frameB.unmap();
-
- QVERIFY(surface.present(frameB));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(frameSpy.count(), 3);
-
- {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
- QCOMPARE(surface.isActive(), true);
-
- surface.stop();
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
-
- // Try presenting a frame while stopped.
- QVERIFY(!surface.present(frameB));
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::StoppedError);
-
- // Try stopping while already stopped.
- surface.stop();
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
-
- // Try presenting a frame with a different format.
- QVERIFY(surface.start(formatB));
- QVERIFY(!surface.present(frameA));
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::IncorrectFormatError);
-}
-
-void tst_QPainterVideoSurface::shaderPresentOpaqueFrame_data()
-{
- QTest::addColumn<QPainterVideoSurface::ShaderType>("shaderType");
-
-#ifndef QT_OPENGL_ES
- QTest::newRow("ARBfp")
- << QPainterVideoSurface::FragmentProgramShader;
-#endif
- QTest::newRow("GLSL")
- << QPainterVideoSurface::GlslShader;
-}
-
-void tst_QPainterVideoSurface::shaderPresentOpaqueFrame()
-{
- QFETCH(QPainterVideoSurface::ShaderType, shaderType);
-
- QGLWidget widget;
- widget.makeCurrent();
-
- QPainterVideoSurface surface;
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
-
- if (!(surface.supportedShaderTypes() & shaderType))
- QSKIP("Shader type unsupported on this platform", SkipSingle);
-
- surface.setShaderType(shaderType);
- if (surface.shaderType() != shaderType)
- QSKIP("Shader type couldn't be set", SkipSingle);
-
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface.start(format));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QVideoFrame frame(new QtTestOpaqueVideoBuffer, QSize(64, 64), QVideoFrame::Format_RGB32);
-
- if (surface.present(frame)) {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
-
- QCOMPARE(surface.isActive(), false);
- QCOMPARE(surface.isReady(), false);
- QCOMPARE(surface.error(), QAbstractVideoSurface::IncorrectFormatError);
-}
-
-void tst_QPainterVideoSurface::shaderPresentGLFrame_data()
-{
- QTest::addColumn<QPainterVideoSurface::ShaderType>("shaderType");
-
-#ifndef QT_OPENGL_ES
- QTest::newRow("ARBfp")
- << QPainterVideoSurface::FragmentProgramShader;
-#endif
- QTest::newRow("GLSL")
- << QPainterVideoSurface::GlslShader;
-}
-
-void tst_QPainterVideoSurface::shaderPresentGLFrame()
-{
- QFETCH(QPainterVideoSurface::ShaderType, shaderType);
-
- QGLWidget widget;
- widget.makeCurrent();
-
- QPainterVideoSurface surface;
- surface.setGLContext(const_cast<QGLContext *>(widget.context()));
-
- if (!(surface.supportedShaderTypes() & shaderType))
- QSKIP("Shader type unsupported on this platform", SkipSingle);
-
- surface.setShaderType(shaderType);
- if (surface.shaderType() != shaderType)
- QSKIP("Shader type couldn't be set", SkipSingle);
-
- QVideoSurfaceFormat format(
- QSize(2, 2), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::GLTextureHandle);
-
- QVERIFY(surface.start(format));
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), true);
-
- QtTestGLVideoBuffer *buffer = new QtTestGLVideoBuffer;
-
- glBindTexture(GL_TEXTURE_2D, buffer->textureId());
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_UNSIGNED_BYTE, rgb32ImageData);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-
- QVideoFrame frame(buffer, QSize(2, 2), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface.present(frame));
-
- {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
-
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-
- {
- QPainter painter(&widget);
- surface.paint(&painter, QRect(0, 0, 320, 240));
- }
-
- QCOMPARE(surface.isActive(), true);
- QCOMPARE(surface.isReady(), false);
-}
-
-#endif
-
-QTEST_MAIN(tst_QPainterVideoSurface)
-
-#include "tst_qpaintervideosurface.moc"
diff --git a/tests/auto/qradiodata/main.cpp b/tests/auto/qradiodata/main.cpp
deleted file mode 100755
index 1bd2e27..0000000
--- a/tests/auto/qradiodata/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtCore/qcoreapplication.h>
-#include <QtTest/QtTest>
-
-#include "tst_qradiodata.h"
-
-int main(int argc, char**argv)
-{
- QCoreApplication app(argc,argv);
- int ret;
- tst_QRadioData test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qradiodata/qradiodata.pro b/tests/auto/qradiodata/qradiodata.pro
deleted file mode 100644
index 0e3c4ed..0000000
--- a/tests/auto/qradiodata/qradiodata.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qradiodata
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += tst_qradiodata.h
-SOURCES += main.cpp tst_qradiodata.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockradio.pri)
diff --git a/tests/auto/qradiodata/tst_qradiodata.cpp b/tests/auto/qradiodata/tst_qradiodata.cpp
deleted file mode 100644
index 157f63d..0000000
--- a/tests/auto/qradiodata/tst_qradiodata.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qradiodata.h"
-
-QT_USE_NAMESPACE
-
-void tst_QRadioData::initTestCase()
-{
- qRegisterMetaType<QRadioData::ProgramType>("QRadioData::ProgramType");
-
- mock = new MockRadioDataControl(this);
- service = new MockMediaService(this, mock);
- provider = new MockMediaServiceProvider(service);
- radio = new QRadioData(0,provider);
- QVERIFY(radio->service() != 0);
- QVERIFY(radio->isAvailable());
- QVERIFY(radio->availabilityError() == QtMultimedia::NoError);
-}
-
-void tst_QRadioData::cleanupTestCase()
-{
- QVERIFY(radio->error() == QRadioData::NoError);
- QVERIFY(radio->errorString().isEmpty());
-
- delete radio;
- delete service;
- delete provider;
-}
-
-void tst_QRadioData::testNullService()
-{
- const QPair<int, int> nullRange(0, 0);
-
- MockMediaServiceProvider provider(0);
- QRadioData radio(0, &provider);
- QVERIFY(!radio.isAvailable());
- QCOMPARE(radio.error(), QRadioData::ResourceError);
- QCOMPARE(radio.errorString(), QString());
- QCOMPARE(radio.stationId(), QString());
- QCOMPARE(radio.programType(), QRadioData::Undefined);
- QCOMPARE(radio.programTypeName(), QString());
- QCOMPARE(radio.stationName(), QString());
- QCOMPARE(radio.radioText(), QString());
- QCOMPARE(radio.isAlternativeFrequenciesEnabled(), false);
-
-}
-
-void tst_QRadioData::testNullControl()
-{
- const QPair<int, int> nullRange(0, 0);
-
- MockMediaService service(0, 0);
- MockMediaServiceProvider provider(&service);
- QRadioData radio(0, &provider);
- QVERIFY(!radio.isAvailable());
- QCOMPARE(radio.error(), QRadioData::ResourceError);
- QCOMPARE(radio.errorString(), QString());
-
- QCOMPARE(radio.stationId(), QString());
- QCOMPARE(radio.programType(), QRadioData::Undefined);
- QCOMPARE(radio.programTypeName(), QString());
- QCOMPARE(radio.stationName(), QString());
- QCOMPARE(radio.radioText(), QString());
- QCOMPARE(radio.isAlternativeFrequenciesEnabled(), false);
- {
- QSignalSpy spy(&radio, SIGNAL(alternativeFrequenciesEnabledChanged(bool)));
-
- radio.setAlternativeFrequenciesEnabled(true);
- QCOMPARE(radio.isAlternativeFrequenciesEnabled(), false);
- QCOMPARE(spy.count(), 0);
- }
-}
-
-void tst_QRadioData::testAlternativeFrequencies()
-{
- QSignalSpy readSignal(radio, SIGNAL(alternativeFrequenciesEnabledChanged(bool)));
- radio->setAlternativeFrequenciesEnabled(true);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->isAlternativeFrequenciesEnabled() == true);
- QVERIFY(readSignal.count() == 1);
-}
-
-void tst_QRadioData::testRadioDataUpdates()
-{
- QSignalSpy rtSpy(radio, SIGNAL(radioTextChanged(QString)));
- QSignalSpy ptyPTYSpy(radio, SIGNAL(programTypeChanged(QRadioData::ProgramType)));
- QSignalSpy ptynSpy(radio, SIGNAL(programTypeNameChanged(QString)));
- QSignalSpy piSpy(radio, SIGNAL(stationIdChanged(QString)));
- QSignalSpy psSpy(radio, SIGNAL(stationNameChanged(QString)));
- mock->forceRT("Mock Radio Text");
- mock->forceProgramType(static_cast<int>(QRadioData::Sport));
- mock->forcePTYN("Mock Programme Type Name");
- mock->forcePI("Mock Programme Identification");
- mock->forcePS("Mock Programme Service");
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(rtSpy.count() == 1);
- QVERIFY(ptyPTYSpy.count() == 1);
- QVERIFY(ptynSpy.count() == 1);
- QVERIFY(piSpy.count() == 1);
- QVERIFY(psSpy.count() == 1);
- qDebug()<<radio->radioText();
- QCOMPARE(radio->radioText(), QString("Mock Radio Text"));
- QCOMPARE(radio->programType(), QRadioData::Sport);
- QCOMPARE(radio->programTypeName(), QString("Mock Programme Type Name"));
- QCOMPARE(radio->stationId(), QString("Mock Programme Identification"));
- QCOMPARE(radio->stationName(), QString("Mock Programme Service"));
-}
diff --git a/tests/auto/qradiodata/tst_qradiodata.h b/tests/auto/qradiodata/tst_qradiodata.h
deleted file mode 100644
index 9851975..0000000
--- a/tests/auto/qradiodata/tst_qradiodata.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QRADIODATA_H
-#define TST_QRADIODATA_H
-
-#include <QtTest/QtTest>
-#include <QDebug>
-#include <QTimer>
-
-#include <qmediaobject.h>
-#include <qmediacontrol.h>
-#include <qmediaservice.h>
-#include <qradiodatacontrol.h>
-#include <qradiodata.h>
-
-#include "mockmediaserviceprovider.h"
-#include "mockmediaservice.h"
-#include "mockradiodatacontrol.h"
-
-QT_USE_NAMESPACE
-
-class tst_QRadioData: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testNullService();
- void testNullControl();
- void testAlternativeFrequencies();
- void testRadioDataUpdates();
-
-private:
- MockRadioDataControl *mock;
- MockMediaService *service;
- MockMediaServiceProvider *provider;
- QRadioData *radio;
-};
-#endif
diff --git a/tests/auto/qradiotuner/main.cpp b/tests/auto/qradiotuner/main.cpp
deleted file mode 100755
index b2d6fd2..0000000
--- a/tests/auto/qradiotuner/main.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#include <QtCore/qcoreapplication.h>
-#include <QtTest/QtTest>
-
-#include "tst_qradiotuner.h"
-
-int main(int argc, char**argv)
-{
- QCoreApplication app(argc,argv);
- int ret;
- tst_QRadioTuner test_api;
- ret = QTest::qExec(&test_api, argc, argv);
- return ret;
-}
diff --git a/tests/auto/qradiotuner/qradiotuner.pro b/tests/auto/qradiotuner/qradiotuner.pro
deleted file mode 100644
index 3d3a21f..0000000
--- a/tests/auto/qradiotuner/qradiotuner.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qradiotuner
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-HEADERS += tst_qradiotuner.h
-SOURCES += main.cpp tst_qradiotuner.cpp
-
-include (../qmultimedia_common/mock.pri)
-include (../qmultimedia_common/mockradio.pri)
diff --git a/tests/auto/qradiotuner/tst_qradiotuner.cpp b/tests/auto/qradiotuner/tst_qradiotuner.cpp
deleted file mode 100644
index c426422..0000000
--- a/tests/auto/qradiotuner/tst_qradiotuner.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 "tst_qradiotuner.h"
-
-QT_USE_NAMESPACE
-
-void tst_QRadioTuner::initTestCase()
-{
- qRegisterMetaType<QRadioTuner::State>("QRadioTuner::State");
- qRegisterMetaType<QRadioTuner::Band>("QRadioTuner::Band");
-
- mock = new MockRadioTunerControl(this);
- service = new MockMediaService(this, mock);
- provider = new MockMediaServiceProvider(service);
- radio = new QRadioTuner(0,provider);
- QVERIFY(radio->service() != 0);
- QVERIFY(radio->isAvailable());
- QVERIFY(radio->availabilityError() == QtMultimedia::NoError);
-
- QSignalSpy stateSpy(radio, SIGNAL(stateChanged(QRadioTuner::State)));
-
- QCOMPARE(radio->state(), QRadioTuner::StoppedState);
- radio->start();
- QVERIFY(radio->availabilityError() == QtMultimedia::NoError);
- QCOMPARE(radio->state(), QRadioTuner::ActiveState);
-
- QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.first()[0].value<QRadioTuner::State>(), QRadioTuner::ActiveState);
-}
-
-void tst_QRadioTuner::cleanupTestCase()
-{
- QVERIFY(radio->error() == QRadioTuner::NoError);
- QVERIFY(radio->errorString().isEmpty());
-
- QSignalSpy stateSpy(radio, SIGNAL(stateChanged(QRadioTuner::State)));
-
- radio->stop();
- QVERIFY(radio->availabilityError() == QtMultimedia::NoError);
- QCOMPARE(radio->state(), QRadioTuner::StoppedState);
- QCOMPARE(stateSpy.count(), 1);
-
- QCOMPARE(stateSpy.first()[0].value<QRadioTuner::State>(), QRadioTuner::StoppedState);
-
- delete radio;
- delete service;
- delete provider;
-}
-
-void tst_QRadioTuner::testNullService()
-{
- const QPair<int, int> nullRange(0, 0);
-
- MockMediaServiceProvider provider(0);
- QRadioTuner radio(0, &provider);
- QVERIFY(!radio.isAvailable());
- radio.start();
- QCOMPARE(radio.error(), QRadioTuner::ResourceError);
- QCOMPARE(radio.errorString(), QString());
- QCOMPARE(radio.band(), QRadioTuner::FM);
- QCOMPARE(radio.isBandSupported(QRadioTuner::AM), false);
- QCOMPARE(radio.isBandSupported(QRadioTuner::FM), false);
- QCOMPARE(radio.frequency(), 0);
- QCOMPARE(radio.frequencyStep(QRadioTuner::AM), 0);
- QCOMPARE(radio.frequencyStep(QRadioTuner::FM), 0);
- QCOMPARE(radio.frequencyRange(QRadioTuner::AM), nullRange);
- QCOMPARE(radio.frequencyRange(QRadioTuner::FM), nullRange);
- QCOMPARE(radio.isStereo(), false);
- QCOMPARE(radio.stereoMode(), QRadioTuner::Auto);
- QCOMPARE(radio.signalStrength(), 0);
- QCOMPARE(radio.volume(), 0);
- QCOMPARE(radio.isMuted(), false);
- QCOMPARE(radio.isSearching(), false);
- radio.stop();
-}
-
-void tst_QRadioTuner::testNullControl()
-{
- const QPair<int, int> nullRange(0, 0);
-
- MockMediaService service(0, 0);
- MockMediaServiceProvider provider(&service);
- QRadioTuner radio(0, &provider);
- QVERIFY(!radio.isAvailable());
- radio.start();
-
- QCOMPARE(radio.error(), QRadioTuner::ResourceError);
- QCOMPARE(radio.errorString(), QString());
-
- QCOMPARE(radio.band(), QRadioTuner::FM);
- QCOMPARE(radio.isBandSupported(QRadioTuner::AM), false);
- QCOMPARE(radio.isBandSupported(QRadioTuner::FM), false);
- QCOMPARE(radio.frequency(), 0);
- QCOMPARE(radio.frequencyStep(QRadioTuner::AM), 0);
- QCOMPARE(radio.frequencyStep(QRadioTuner::FM), 0);
- QCOMPARE(radio.frequencyRange(QRadioTuner::AM), nullRange);
- QCOMPARE(radio.frequencyRange(QRadioTuner::FM), nullRange);
- {
- QSignalSpy bandSpy(&radio, SIGNAL(bandChanged(QRadioTuner::Band)));
- QSignalSpy frequencySpy(&radio, SIGNAL(frequencyChanged(int)));
-
- radio.setFrequency(107500);
- QCOMPARE(radio.band(), QRadioTuner::FM);
- QCOMPARE(radio.frequency(), 0);
- QCOMPARE(bandSpy.count(), 0);
- QCOMPARE(frequencySpy.count(), 0);
-
- radio.setBand(QRadioTuner::AM);
- QCOMPARE(radio.band(), QRadioTuner::FM);
- QCOMPARE(radio.frequency(), 0);
- QCOMPARE(bandSpy.count(), 0);
- QCOMPARE(frequencySpy.count(), 0);
- }
- QCOMPARE(radio.isStereo(), false);
- QCOMPARE(radio.stereoMode(), QRadioTuner::Auto);
-
- radio.setStereoMode(QRadioTuner::ForceStereo);
- QCOMPARE(radio.stereoMode(), QRadioTuner::Auto);
-
- QCOMPARE(radio.signalStrength(), 0);
-
- QCOMPARE(radio.volume(), 0);
- QCOMPARE(radio.isMuted(), false);
- {
- QSignalSpy volumeSpy(&radio, SIGNAL(volumeChanged(int)));
- QSignalSpy muteSpy(&radio, SIGNAL(mutedChanged(bool)));
-
- radio.setVolume(76);
- QCOMPARE(radio.volume(), 0);
- QCOMPARE(volumeSpy.count(), 0);
-
- radio.setMuted(true);
- QCOMPARE(radio.isMuted(), false);
- QCOMPARE(muteSpy.count(), 0);
- }
- QCOMPARE(radio.isSearching(), false);
- {
- QSignalSpy spy(&radio, SIGNAL(searchingChanged(bool)));
-
- radio.searchBackward();
- QCOMPARE(radio.isSearching(), false);
- QCOMPARE(spy.count(), 0);
-
- radio.searchForward();
- QCOMPARE(radio.isSearching(), false);
- QCOMPARE(spy.count(), 0);
-
- radio.searchAllStations();
- QCOMPARE(radio.isSearching(), false);
- QCOMPARE(spy.count(), 0);
-
- radio.cancelSearch();
- QCOMPARE(radio.isSearching(), false);
- QCOMPARE(spy.count(), 0);
- }
-
- radio.stop();
-}
-
-void tst_QRadioTuner::testBand()
-{
- QVERIFY(radio->isBandSupported(QRadioTuner::FM));
- QVERIFY(!radio->isBandSupported(QRadioTuner::SW));
-
- if(radio->isBandSupported(QRadioTuner::AM)) {
- QSignalSpy readSignal(radio, SIGNAL(bandChanged(QRadioTuner::Band)));
- radio->setBand(QRadioTuner::AM);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->band() == QRadioTuner::AM);
- QVERIFY(readSignal.count() == 1);
- }
-}
-
-void tst_QRadioTuner::testFrequency()
-{
- QSignalSpy readSignal(radio, SIGNAL(frequencyChanged(int)));
- radio->setFrequency(104500000);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->frequency() == 104500000);
- QVERIFY(readSignal.count() == 1);
-
- QVERIFY(radio->frequencyStep(QRadioTuner::FM) == 1);
- QPair<int,int> test = radio->frequencyRange(QRadioTuner::FM);
- QVERIFY(test.first == 1);
- QVERIFY(test.second == 2);
-}
-
-void tst_QRadioTuner::testMute()
-{
- QSignalSpy readSignal(radio, SIGNAL(mutedChanged(bool)));
- radio->setMuted(true);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->isMuted());
- QVERIFY(readSignal.count() == 1);
-}
-
-void tst_QRadioTuner::testSearch()
-{
- QSignalSpy readSignal(radio, SIGNAL(searchingChanged(bool)));
- QVERIFY(!radio->isSearching());
-
- radio->searchForward();
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->isSearching());
- QVERIFY(readSignal.count() == 1);
-
- radio->cancelSearch();
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(!radio->isSearching());
- QVERIFY(readSignal.count() == 2);
-
- radio->searchBackward();
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->isSearching());
- QVERIFY(readSignal.count() == 3);
-
- radio->cancelSearch();
- QVERIFY(!radio->isSearching());
-}
-
-void tst_QRadioTuner::testVolume()
-{
- QVERIFY(radio->volume() == 100);
- QSignalSpy readSignal(radio, SIGNAL(volumeChanged(int)));
- radio->setVolume(50);
- QTestEventLoop::instance().enterLoop(1);
- QVERIFY(radio->volume() == 50);
- QVERIFY(readSignal.count() == 1);
-}
-
-void tst_QRadioTuner::testSignal()
-{
- QVERIFY(radio->signalStrength() == 0);
- // There is no set of this only a get, do nothing else.
-}
-
-void tst_QRadioTuner::testStereo()
-{
- /* no set function to toggle stereo status;
- cannot emit stereoStatusChanged() signal */
-
- QVERIFY(radio->isStereo());
- radio->setStereoMode(QRadioTuner::ForceMono);
- QVERIFY(radio->stereoMode() == QRadioTuner::ForceMono);
-}
-
-void tst_QRadioTuner::testSearchAllStations()
-{
- QSignalSpy foundSpy(radio, SIGNAL(stationFound(int,QString)));
- QSignalSpy completeSpy(radio, SIGNAL(searchingChanged(bool)));
- radio->searchAllStations(QRadioTuner::SearchGetStationId);
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(radio->frequency(), 103100000 );
- QCOMPARE(foundSpy.count(), 3);
- QVERIFY(qvariant_cast<int>(foundSpy.at(2).at(0)) == 103100000 );
- QVERIFY(qvariant_cast<QString>(foundSpy.at(2).at(1)) == QString("MockProgramPI3") );
- QCOMPARE(completeSpy.count(), 2);
-}
-
-// QRadioTuner's errorsignal
-void tst_QRadioTuner::errorSignal()
-{
- qRegisterMetaType<QRadioTuner::Error>("QRadioTuner::Error");
- QObject obj;
- MockRadioTunerControl dctrl(&obj);
- MockMediaService service(&obj, &dctrl);
- MockMediaServiceProvider provider(&service);
- QRadioTuner radio(0,&provider);
- QSignalSpy spy(&radio, SIGNAL(error(QRadioTuner::Error)));
- QVERIFY(radio.service() != 0);
- QVERIFY(radio.isAvailable());
- radio.start();
- radio.setBand(QRadioTuner::FM);
- QVERIFY(spy.count() == 1);
- QVERIFY(qvariant_cast<QRadioTuner::Error>(spy.at(0).at(0)) == QRadioTuner::NoError);
- QVERIFY(radio.error() == QRadioTuner::NoError);
- QVERIFY(radio.error() != QRadioTuner::OpenError);
- QVERIFY(radio.errorString().isEmpty());
- spy.clear();
-
- /* emits QRadioTuner::OutOfRangeError if band is set to FM2 or LW
- and frequency set to >= 148500000 */
-
- radio.setBand(QRadioTuner::LW);
- radio.setBand(QRadioTuner::FM2);
- radio.setFrequency(148500000);
- QVERIFY(spy.count() == 3);
- QVERIFY(qvariant_cast<QRadioTuner::Error>(spy.at(0).at(0)) == QRadioTuner::OutOfRangeError);
- QVERIFY(qvariant_cast<QRadioTuner::Error>(spy.at(1).at(0)) == QRadioTuner::OutOfRangeError);
- QVERIFY(qvariant_cast<QRadioTuner::Error>(spy.at(2).at(0)) == QRadioTuner::OutOfRangeError);
- QVERIFY(radio.error() == QRadioTuner::OutOfRangeError);
- QVERIFY2(!radio.errorString().isEmpty(), "band and range not supported");
- spy.clear();
- radio.stop();
-}
diff --git a/tests/auto/qradiotuner/tst_qradiotuner.h b/tests/auto/qradiotuner/tst_qradiotuner.h
deleted file mode 100644
index 364f5e2..0000000
--- a/tests/auto/qradiotuner/tst_qradiotuner.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-**
-****************************************************************************/
-#ifndef TST_QRADIOTUNER_H
-#define TST_QRADIOTUNER_H
-
-#include <QtTest/QtTest>
-#include <QDebug>
-#include <QTimer>
-
-#include <qmediaobject.h>
-#include <qmediacontrol.h>
-#include <qmediaservice.h>
-#include <qradiotunercontrol.h>
-#include <qradiotuner.h>
-
-#include "mockmediaserviceprovider.h"
-#include "mockmediaservice.h"
-#include "mockradiotunercontrol.h"
-
-QT_USE_NAMESPACE
-
-class tst_QRadioTuner: public QObject
-{
- Q_OBJECT
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void testNullService();
- void testNullControl();
- void testBand();
- void testFrequency();
- void testMute();
- void testSearch();
- void testVolume();
- void testSignal();
- void testStereo();
- void testSearchAllStations();
- void errorSignal();
-
-private:
- MockRadioTunerControl *mock;
- MockMediaService *service;
- MockMediaServiceProvider *provider;
- QRadioTuner *radio;
-};
-#endif
diff --git a/tests/auto/qsoundeffect/qsoundeffect.pro b/tests/auto/qsoundeffect/qsoundeffect.pro
deleted file mode 100644
index 4d7f083..0000000
--- a/tests/auto/qsoundeffect/qsoundeffect.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TARGET = tst_qsoundeffect
-
-QT += core declarative multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-# This is more of a system test
-# CONFIG += testcase
-
-SOURCES += tst_qsoundeffect.cpp
-
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
-
-unix:!mac {
- !contains(QT_CONFIG, pulseaudio) {
- DEFINES += QT_MULTIMEDIA_QMEDIAPLAYER
- }
-}
diff --git a/tests/auto/qsoundeffect/test.wav b/tests/auto/qsoundeffect/test.wav
deleted file mode 100644
index e4088a9..0000000
--- a/tests/auto/qsoundeffect/test.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qsoundeffect/tst_qsoundeffect.cpp b/tests/auto/qsoundeffect/tst_qsoundeffect.cpp
deleted file mode 100644
index b379762..0000000
--- a/tests/auto/qsoundeffect/tst_qsoundeffect.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <QtCore/qlocale.h>
-#include <qaudiooutput.h>
-#include <qaudiodeviceinfo.h>
-#include <qaudio.h>
-#include "qsoundeffect.h"
-
-
-class tst_QSoundEffect : public QObject
-{
- Q_OBJECT
-public:
- tst_QSoundEffect(QObject* parent=0) : QObject(parent) {}
-
-private slots:
- void initTestCase();
- void testSource();
- void testLooping();
- void testVolume();
- void testMuting();
-
- void testPlaying();
- void testStatus();
-
-private:
- QSoundEffect* sound;
- QUrl url;
-};
-
-void tst_QSoundEffect::initTestCase()
-{
-#ifdef QT_QSOUNDEFFECT_USEAPPLICATIONPATH
- url = QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + QString("/test.wav"));
-#else
- url = QUrl::fromLocalFile(QString(SRCDIR "test.wav"));
-#endif
-
- sound = new QSoundEffect(this);
-
- QVERIFY(sound->source().isEmpty());
- QVERIFY(sound->loopCount() == 1);
- QVERIFY(sound->volume() == 1);
- QVERIFY(sound->isMuted() == false);
-}
-
-void tst_QSoundEffect::testSource()
-{
- QSignalSpy readSignal(sound, SIGNAL(sourceChanged()));
-
- sound->setSource(url);
-
- QCOMPARE(sound->source(),url);
- QCOMPARE(readSignal.count(),1);
-
- QTestEventLoop::instance().enterLoop(1);
- sound->play();
-
- QTest::qWait(3000);
-}
-
-void tst_QSoundEffect::testLooping()
-{
- QSignalSpy readSignal(sound, SIGNAL(loopCountChanged()));
-
- sound->setLoopCount(5);
- QCOMPARE(sound->loopCount(),5);
-
- sound->play();
-
- // test.wav is about 200ms, wait until it has finished playing 5 times
- QTest::qWait(3000);
-
-}
-
-void tst_QSoundEffect::testVolume()
-{
- QSignalSpy readSignal(sound, SIGNAL(volumeChanged()));
-
- sound->setVolume(0.5);
- QCOMPARE(sound->volume(),0.5);
-
- QTest::qWait(20);
- QCOMPARE(readSignal.count(),1);
-}
-
-void tst_QSoundEffect::testMuting()
-{
- QSignalSpy readSignal(sound, SIGNAL(mutedChanged()));
-
- sound->setMuted(true);
- QCOMPARE(sound->isMuted(),true);
-
- QTest::qWait(20);
- QCOMPARE(readSignal.count(),1);
-}
-
-void tst_QSoundEffect::testPlaying()
-{
- sound->setLoopCount(QSoundEffect::Infinite);
- //valid source
- sound->setSource(url);
- QTestEventLoop::instance().enterLoop(1);
- sound->play();
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->isPlaying(), true);
- sound->stop();
-
- //empty source
- sound->setSource(QUrl());
- QTestEventLoop::instance().enterLoop(1);
- sound->play();
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->isPlaying(), false);
-
- //invalid source
- sound->setSource(QUrl((QLatin1String("invalid source"))));
- QTestEventLoop::instance().enterLoop(1);
- sound->play();
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->isPlaying(), false);
-
- sound->setLoopCount(1);
-}
-
-void tst_QSoundEffect::testStatus()
-{
- sound->setSource(QUrl());
- QCOMPARE(sound->status(), QSoundEffect::Null);
-
- //valid source
- sound->setSource(url);
-
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->status(), QSoundEffect::Ready);
-
- //empty source
- sound->setSource(QUrl());
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->status(), QSoundEffect::Null);
-
- //invalid source
- sound->setLoopCount(QSoundEffect::Infinite);
-
- sound->setSource(QUrl(QLatin1String("invalid source")));
- QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(sound->status(), QSoundEffect::Error);
-}
-
-
-QTEST_MAIN(tst_QSoundEffect)
-
-#include "tst_qsoundeffect.moc"
diff --git a/tests/auto/qvideodevicecontrol/qvideodevicecontrol.pro b/tests/auto/qvideodevicecontrol/qvideodevicecontrol.pro
deleted file mode 100644
index 29bd81f..0000000
--- a/tests/auto/qvideodevicecontrol/qvideodevicecontrol.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qvideodevicecontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qvideodevicecontrol.cpp
diff --git a/tests/auto/qvideodevicecontrol/tst_qvideodevicecontrol.cpp b/tests/auto/qvideodevicecontrol/tst_qvideodevicecontrol.cpp
deleted file mode 100644
index 59d2546..0000000
--- a/tests/auto/qvideodevicecontrol/tst_qvideodevicecontrol.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 "qvideodevicecontrol.h"
-class TestClass: public QVideoDeviceControl
-{
- Q_OBJECT
-
-public:
- TestClass(QObject *parent = 0 ):QVideoDeviceControl(parent)
- {
-
- }
-
- ~TestClass(){}
-
- virtual int deviceCount() const { return 0; }
-
- QString deviceName(int index) const
- {
- QString str;
- return str;
- }
-
- QString deviceDescription(int index) const
- {
- QString str;
- return str;
- }
-
- QIcon deviceIcon(int index) const
- {
- QIcon icon;
- return icon;
- }
-
- int defaultDevice() const { return 0; }
- int selectedDevice() const { return 0; }
-
- public Q_SLOTS:
- void setSelectedDevice(int index)
- {
- emit devicesChanged();
- emit selectedDeviceChanged(index);
- emit selectedDeviceChanged("abc");
- }
-};
-
-
-class tst_QVideoDeviceControl : public QObject
-{
- Q_OBJECT
-public:
- tst_QVideoDeviceControl(){}
- ~tst_QVideoDeviceControl(){}
-
-private slots:
- void testQVideoDeviceControl();
-};
-
-//MaemoAPI-1859:QVideoDeviceControl constructor
-void tst_QVideoDeviceControl::testQVideoDeviceControl()
-{
- TestClass *testClass = new TestClass(this);
- QVERIFY(testClass != NULL);
-}
-
-QTEST_MAIN(tst_QVideoDeviceControl)
-#include "tst_qvideodevicecontrol.moc"
diff --git a/tests/auto/qvideoencodercontrol/qvideoencodercontrol.pro b/tests/auto/qvideoencodercontrol/qvideoencodercontrol.pro
deleted file mode 100644
index ad14a25..0000000
--- a/tests/auto/qvideoencodercontrol/qvideoencodercontrol.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qvideoencodercontrol
-
-QT += multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += \
- tst_qvideoencodercontrol.cpp
-
diff --git a/tests/auto/qvideoencodercontrol/tst_qvideoencodercontrol.cpp b/tests/auto/qvideoencodercontrol/tst_qvideoencodercontrol.cpp
deleted file mode 100644
index 4f1b99d..0000000
--- a/tests/auto/qvideoencodercontrol/tst_qvideoencodercontrol.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 "qvideoencodercontrol.h"
-class MyVideEncoderControl: public QVideoEncoderControl
-{
- Q_OBJECT
-
-public:
- MyVideEncoderControl(QObject *parent = 0 ):QVideoEncoderControl(parent)
- {
-
- }
-
- ~MyVideEncoderControl()
- {
-
- }
-
- QList<QSize> supportedResolutions(const QVideoEncoderSettings &settings,bool *continuous = 0) const
- {
- Q_UNUSED(settings);
- Q_UNUSED(continuous);
-
- return (QList<QSize>());
- }
-
- QList<qreal> supportedFrameRates(const QVideoEncoderSettings &settings, bool *continuous = 0) const
- {
- Q_UNUSED(settings);
- Q_UNUSED(continuous);
-
- return (QList<qreal>());
-
- }
-
- QStringList supportedVideoCodecs() const
- {
- return QStringList();
-
- }
-
- QString videoCodecDescription(const QString &codecName) const
- {
- Q_UNUSED(codecName)
- return QString();
-
- }
-
- QVideoEncoderSettings videoSettings() const
- {
- return QVideoEncoderSettings();
- }
-
- void setVideoSettings(const QVideoEncoderSettings &settings)
- {
- Q_UNUSED(settings);
- }
-
- QStringList supportedEncodingOptions(const QString &codec) const
- {
- Q_UNUSED(codec);
- return QStringList();
- }
-
- QVariant encodingOption(const QString &codec, const QString &name) const
- {
- Q_UNUSED(codec);
- Q_UNUSED(name);
- return QVariant();
- }
-
- void setEncodingOption(const QString &codec, const QString &name, const QVariant &value)
- {
- Q_UNUSED(codec);
- Q_UNUSED(name);
- Q_UNUSED(value);
- }
-
-};
-
-class tst_QVideoEncoderControl: public QObject
-{
- Q_OBJECT
-private slots:
- void constructor();
-};
-
-void tst_QVideoEncoderControl::constructor()
-{
- QObject parent;
- MyVideEncoderControl control(&parent);
-}
-
-QTEST_MAIN(tst_QVideoEncoderControl)
-#include "tst_qvideoencodercontrol.moc"
-
-
diff --git a/tests/auto/qvideoframe/qvideoframe.pro b/tests/auto/qvideoframe/qvideoframe.pro
deleted file mode 100644
index cfd84a2..0000000
--- a/tests/auto/qvideoframe/qvideoframe.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qvideoframe
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qvideoframe.cpp
-
diff --git a/tests/auto/qvideoframe/tst_qvideoframe.cpp b/tests/auto/qvideoframe/tst_qvideoframe.cpp
deleted file mode 100644
index 52d5771..0000000
--- a/tests/auto/qvideoframe/tst_qvideoframe.cpp
+++ /dev/null
@@ -1,969 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <qvideoframe.h>
-#include <QtGui/QImage>
-#include <QtCore/QPointer>
-
-class tst_QVideoFrame : public QObject
-{
- Q_OBJECT
-public:
- tst_QVideoFrame();
- ~tst_QVideoFrame();
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void create_data();
- void create();
- void createInvalid_data();
- void createInvalid();
- void createFromBuffer_data();
- void createFromBuffer();
- void createFromImage_data();
- void createFromImage();
- void createFromIncompatibleImage();
- void createNull();
- void destructor();
- void copy_data();
- void copy();
- void assign_data();
- void assign();
- void map_data();
- void map();
- void mapImage_data();
- void mapImage();
- void imageDetach();
- void formatConversion_data();
- void formatConversion();
-
- void isMapped();
- void isReadable();
- void isWritable();
-};
-
-Q_DECLARE_METATYPE(QImage::Format)
-Q_DECLARE_METATYPE(QVideoFrame)
-
-class QtTestVideoBuffer : public QObject, public QAbstractVideoBuffer
-{
- Q_OBJECT
-public:
- QtTestVideoBuffer()
- : QAbstractVideoBuffer(NoHandle) {}
- explicit QtTestVideoBuffer(QAbstractVideoBuffer::HandleType type)
- : QAbstractVideoBuffer(type) {}
-
- MapMode mapMode() const { return NotMapped; }
-
- uchar *map(MapMode, int *, int *) { return 0; }
- void unmap() {}
-};
-
-tst_QVideoFrame::tst_QVideoFrame()
-{
-}
-
-tst_QVideoFrame::~tst_QVideoFrame()
-{
-}
-
-void tst_QVideoFrame::initTestCase()
-{
-}
-
-void tst_QVideoFrame::cleanupTestCase()
-{
-}
-
-void tst_QVideoFrame::init()
-{
-}
-
-void tst_QVideoFrame::cleanup()
-{
-}
-
-void tst_QVideoFrame::create_data()
-{
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<int>("bytes");
- QTest::addColumn<int>("bytesPerLine");
-
- QTest::newRow("64x64 ARGB32")
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32
- << 16384
- << 256;
- QTest::newRow("32x256 YUV420P")
- << QSize(32, 256)
- << QVideoFrame::Format_YUV420P
- << 13288
- << 32;
-}
-
-void tst_QVideoFrame::create()
-{
- QFETCH(QSize, size);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(int, bytes);
- QFETCH(int, bytesPerLine);
-
- QVideoFrame frame(bytes, size, bytesPerLine, pixelFormat);
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.handle(), QVariant());
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::createInvalid_data()
-{
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<int>("bytes");
- QTest::addColumn<int>("bytesPerLine");
-
- QTest::newRow("64x64 ARGB32 0 size")
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32
- << 0
- << 45;
- QTest::newRow("32x256 YUV420P negative size")
- << QSize(32, 256)
- << QVideoFrame::Format_YUV420P
- << -13288
- << 32;
-}
-
-void tst_QVideoFrame::createInvalid()
-{
- QFETCH(QSize, size);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(int, bytes);
- QFETCH(int, bytesPerLine);
-
- QVideoFrame frame(bytes, size, bytesPerLine, pixelFormat);
-
- QVERIFY(!frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.handle(), QVariant());
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::createFromBuffer_data()
-{
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
-
- QTest::newRow("64x64 ARGB32 no handle")
- << QAbstractVideoBuffer::NoHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32;
- QTest::newRow("64x64 ARGB32 gl handle")
- << QAbstractVideoBuffer::GLTextureHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32;
- QTest::newRow("64x64 ARGB32 user handle")
- << QAbstractVideoBuffer::UserHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32;
-}
-
-void tst_QVideoFrame::createFromBuffer()
-{
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(QSize, size);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
-
- QVideoFrame frame(new QtTestVideoBuffer(handleType), size, pixelFormat);
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), handleType);
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::createFromImage_data()
-{
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QImage::Format>("imageFormat");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
-
- QTest::newRow("64x64 RGB32")
- << QSize(64, 64)
- << QImage::Format_RGB32
- << QVideoFrame::Format_RGB32;
- QTest::newRow("12x45 RGB16")
- << QSize(12, 45)
- << QImage::Format_RGB16
- << QVideoFrame::Format_RGB565;
- QTest::newRow("19x46 ARGB32_Premultiplied")
- << QSize(19, 46)
- << QImage::Format_ARGB32_Premultiplied
- << QVideoFrame::Format_ARGB32_Premultiplied;
-}
-
-void tst_QVideoFrame::createFromImage()
-{
- QFETCH(QSize, size);
- QFETCH(QImage::Format, imageFormat);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
-
- const QImage image(size.width(), size.height(), imageFormat);
-
- QVideoFrame frame(image);
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::createFromIncompatibleImage()
-{
- const QImage image(64, 64, QImage::Format_Mono);
-
- QVideoFrame frame(image);
-
- QVERIFY(!frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Invalid);
- QCOMPARE(frame.size(), QSize(64, 64));
- QCOMPARE(frame.width(), 64);
- QCOMPARE(frame.height(), 64);
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::createNull()
-{
- // Default ctor
- {
- QVideoFrame frame;
-
- QVERIFY(!frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Invalid);
- QCOMPARE(frame.size(), QSize());
- QCOMPARE(frame.width(), -1);
- QCOMPARE(frame.height(), -1);
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
- QVERIFY(!frame.map(QAbstractVideoBuffer::ReadOnly));
- QVERIFY(!frame.map(QAbstractVideoBuffer::ReadWrite));
- QVERIFY(!frame.map(QAbstractVideoBuffer::WriteOnly));
- QCOMPARE(frame.isMapped(), false);
- frame.unmap(); // Shouldn't crash
- QCOMPARE(frame.isReadable(), false);
- QCOMPARE(frame.isWritable(), false);
- }
-
- // Null buffer (shouldn't crash)
- {
- QVideoFrame frame(0, QSize(1024,768), QVideoFrame::Format_ARGB32);
- QVERIFY(!frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_ARGB32);
- QCOMPARE(frame.size(), QSize(1024, 768));
- QCOMPARE(frame.width(), 1024);
- QCOMPARE(frame.height(), 768);
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
- QVERIFY(!frame.map(QAbstractVideoBuffer::ReadOnly));
- QVERIFY(!frame.map(QAbstractVideoBuffer::ReadWrite));
- QVERIFY(!frame.map(QAbstractVideoBuffer::WriteOnly));
- QCOMPARE(frame.isMapped(), false);
- frame.unmap(); // Shouldn't crash
- QCOMPARE(frame.isReadable(), false);
- QCOMPARE(frame.isWritable(), false);
- }
-}
-
-void tst_QVideoFrame::destructor()
-{
- QPointer<QtTestVideoBuffer> buffer = new QtTestVideoBuffer;
-
- {
- QVideoFrame frame(buffer, QSize(4, 1), QVideoFrame::Format_ARGB32);
- }
-
- QVERIFY(buffer.isNull());
-}
-
-void tst_QVideoFrame::copy_data()
-{
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QVideoFrame::FieldType>("fieldType");
- QTest::addColumn<qint64>("startTime");
- QTest::addColumn<qint64>("endTime");
-
- QTest::newRow("64x64 ARGB32")
- << QAbstractVideoBuffer::GLTextureHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32
- << QVideoFrame::TopField
- << qint64(63641740)
- << qint64(63641954);
- QTest::newRow("64x64 ARGB32")
- << QAbstractVideoBuffer::GLTextureHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32
- << QVideoFrame::BottomField
- << qint64(63641740)
- << qint64(63641954);
- QTest::newRow("32x256 YUV420P")
- << QAbstractVideoBuffer::UserHandle
- << QSize(32, 256)
- << QVideoFrame::Format_YUV420P
- << QVideoFrame::InterlacedFrame
- << qint64(12345)
- << qint64(12389);
- QTest::newRow("1052x756 ARGB32")
- << QAbstractVideoBuffer::NoHandle
- << QSize(1052, 756)
- << QVideoFrame::Format_ARGB32
- << QVideoFrame::ProgressiveFrame
- << qint64(12345)
- << qint64(12389);
- QTest::newRow("32x256 YUV420P")
- << QAbstractVideoBuffer::UserHandle
- << QSize(32, 256)
- << QVideoFrame::Format_YUV420P
- << QVideoFrame::InterlacedFrame
- << qint64(12345)
- << qint64(12389);
-}
-
-void tst_QVideoFrame::copy()
-{
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(QSize, size);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QVideoFrame::FieldType, fieldType);
- QFETCH(qint64, startTime);
- QFETCH(qint64, endTime);
-
- QPointer<QtTestVideoBuffer> buffer = new QtTestVideoBuffer(handleType);
-
- {
- QVideoFrame frame(buffer, size, pixelFormat);
- frame.setFieldType(QVideoFrame::FieldType(fieldType));
- frame.setStartTime(startTime);
- frame.setEndTime(endTime);
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), handleType);
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), fieldType);
- QCOMPARE(frame.startTime(), startTime);
- QCOMPARE(frame.endTime(), endTime);
-
- {
- QVideoFrame otherFrame(frame);
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(otherFrame.isValid());
- QCOMPARE(otherFrame.handleType(), handleType);
- QCOMPARE(otherFrame.pixelFormat(), pixelFormat);
- QCOMPARE(otherFrame.size(), size);
- QCOMPARE(otherFrame.width(), size.width());
- QCOMPARE(otherFrame.height(), size.height());
- QCOMPARE(otherFrame.fieldType(), fieldType);
- QCOMPARE(otherFrame.startTime(), startTime);
- QCOMPARE(otherFrame.endTime(), endTime);
-
- otherFrame.setEndTime(-1);
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(otherFrame.isValid());
- QCOMPARE(otherFrame.handleType(), handleType);
- QCOMPARE(otherFrame.pixelFormat(), pixelFormat);
- QCOMPARE(otherFrame.size(), size);
- QCOMPARE(otherFrame.width(), size.width());
- QCOMPARE(otherFrame.height(), size.height());
- QCOMPARE(otherFrame.fieldType(), fieldType);
- QCOMPARE(otherFrame.startTime(), startTime);
- QCOMPARE(otherFrame.endTime(), qint64(-1));
- }
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), handleType);
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), fieldType);
- QCOMPARE(frame.startTime(), startTime);
- QCOMPARE(frame.endTime(), qint64(-1)); // Explicitly shared.
- }
-
- QVERIFY(buffer.isNull());
-}
-
-void tst_QVideoFrame::assign_data()
-{
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QVideoFrame::FieldType>("fieldType");
- QTest::addColumn<qint64>("startTime");
- QTest::addColumn<qint64>("endTime");
-
- QTest::newRow("64x64 ARGB32")
- << QAbstractVideoBuffer::GLTextureHandle
- << QSize(64, 64)
- << QVideoFrame::Format_ARGB32
- << QVideoFrame::TopField
- << qint64(63641740)
- << qint64(63641954);
- QTest::newRow("32x256 YUV420P")
- << QAbstractVideoBuffer::UserHandle
- << QSize(32, 256)
- << QVideoFrame::Format_YUV420P
- << QVideoFrame::InterlacedFrame
- << qint64(12345)
- << qint64(12389);
-}
-
-void tst_QVideoFrame::assign()
-{
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(QSize, size);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QVideoFrame::FieldType, fieldType);
- QFETCH(qint64, startTime);
- QFETCH(qint64, endTime);
-
- QPointer<QtTestVideoBuffer> buffer = new QtTestVideoBuffer(handleType);
-
- QVideoFrame frame;
- {
- QVideoFrame otherFrame(buffer, size, pixelFormat);
- otherFrame.setFieldType(fieldType);
- otherFrame.setStartTime(startTime);
- otherFrame.setEndTime(endTime);
-
- frame = otherFrame;
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(otherFrame.isValid());
- QCOMPARE(otherFrame.handleType(), handleType);
- QCOMPARE(otherFrame.pixelFormat(), pixelFormat);
- QCOMPARE(otherFrame.size(), size);
- QCOMPARE(otherFrame.width(), size.width());
- QCOMPARE(otherFrame.height(), size.height());
- QCOMPARE(otherFrame.fieldType(), fieldType);
- QCOMPARE(otherFrame.startTime(), startTime);
- QCOMPARE(otherFrame.endTime(), endTime);
-
- otherFrame.setStartTime(-1);
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(otherFrame.isValid());
- QCOMPARE(otherFrame.handleType(), handleType);
- QCOMPARE(otherFrame.pixelFormat(), pixelFormat);
- QCOMPARE(otherFrame.size(), size);
- QCOMPARE(otherFrame.width(), size.width());
- QCOMPARE(otherFrame.height(), size.height());
- QCOMPARE(otherFrame.fieldType(), fieldType);
- QCOMPARE(otherFrame.startTime(), qint64(-1));
- QCOMPARE(otherFrame.endTime(), endTime);
- }
-
- QVERIFY(!buffer.isNull());
-
- QVERIFY(frame.isValid());
- QCOMPARE(frame.handleType(), handleType);
- QCOMPARE(frame.pixelFormat(), pixelFormat);
- QCOMPARE(frame.size(), size);
- QCOMPARE(frame.width(), size.width());
- QCOMPARE(frame.height(), size.height());
- QCOMPARE(frame.fieldType(), fieldType);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), endTime);
-
- frame = QVideoFrame();
-
- QVERIFY(buffer.isNull());
-
- QVERIFY(!frame.isValid());
- QCOMPARE(frame.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(frame.pixelFormat(), QVideoFrame::Format_Invalid);
- QCOMPARE(frame.size(), QSize());
- QCOMPARE(frame.width(), -1);
- QCOMPARE(frame.height(), -1);
- QCOMPARE(frame.fieldType(), QVideoFrame::ProgressiveFrame);
- QCOMPARE(frame.startTime(), qint64(-1));
- QCOMPARE(frame.endTime(), qint64(-1));
-}
-
-void tst_QVideoFrame::map_data()
-{
- QTest::addColumn<QSize>("size");
- QTest::addColumn<int>("mappedBytes");
- QTest::addColumn<int>("bytesPerLine");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QAbstractVideoBuffer::MapMode>("mode");
-
- QTest::newRow("read-only")
- << QSize(64, 64)
- << 16384
- << 256
- << QVideoFrame::Format_ARGB32
- << QAbstractVideoBuffer::ReadOnly;
-
- QTest::newRow("write-only")
- << QSize(64, 64)
- << 16384
- << 256
- << QVideoFrame::Format_ARGB32
- << QAbstractVideoBuffer::WriteOnly;
-
- QTest::newRow("read-write")
- << QSize(64, 64)
- << 16384
- << 256
- << QVideoFrame::Format_ARGB32
- << QAbstractVideoBuffer::ReadWrite;
-}
-
-void tst_QVideoFrame::map()
-{
- QFETCH(QSize, size);
- QFETCH(int, mappedBytes);
- QFETCH(int, bytesPerLine);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QAbstractVideoBuffer::MapMode, mode);
-
- QVideoFrame frame(mappedBytes, size, bytesPerLine, pixelFormat);
-
- QVERIFY(!frame.bits());
- QCOMPARE(frame.mappedBytes(), 0);
- QCOMPARE(frame.bytesPerLine(), 0);
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
-
- QVERIFY(frame.map(mode));
-
- // Mapping twice should fail, but leave it mapped (and the mode is ignored)
- QVERIFY(!frame.map(mode));
-
- QVERIFY(frame.bits());
- QCOMPARE(frame.mappedBytes(), mappedBytes);
- QCOMPARE(frame.bytesPerLine(), bytesPerLine);
- QCOMPARE(frame.mapMode(), mode);
-
- frame.unmap();
-
- QVERIFY(!frame.bits());
- QCOMPARE(frame.mappedBytes(), 0);
- QCOMPARE(frame.bytesPerLine(), 0);
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
-}
-
-void tst_QVideoFrame::mapImage_data()
-{
- QTest::addColumn<QSize>("size");
- QTest::addColumn<QImage::Format>("format");
- QTest::addColumn<QAbstractVideoBuffer::MapMode>("mode");
-
- QTest::newRow("read-only")
- << QSize(64, 64)
- << QImage::Format_ARGB32
- << QAbstractVideoBuffer::ReadOnly;
-
- QTest::newRow("write-only")
- << QSize(15, 106)
- << QImage::Format_RGB32
- << QAbstractVideoBuffer::WriteOnly;
-
- QTest::newRow("read-write")
- << QSize(23, 111)
- << QImage::Format_RGB16
- << QAbstractVideoBuffer::ReadWrite;
-}
-
-void tst_QVideoFrame::mapImage()
-{
- QFETCH(QSize, size);
- QFETCH(QImage::Format, format);
- QFETCH(QAbstractVideoBuffer::MapMode, mode);
-
- QImage image(size.width(), size.height(), format);
-
- QVideoFrame frame(image);
-
- QVERIFY(!frame.bits());
- QCOMPARE(frame.mappedBytes(), 0);
- QCOMPARE(frame.bytesPerLine(), 0);
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
-
- QVERIFY(frame.map(mode));
-
- QVERIFY(frame.bits());
- QCOMPARE(frame.mappedBytes(), image.byteCount());
- QCOMPARE(frame.bytesPerLine(), image.bytesPerLine());
- QCOMPARE(frame.mapMode(), mode);
-
- frame.unmap();
-
- QVERIFY(!frame.bits());
- QCOMPARE(frame.mappedBytes(), 0);
- QCOMPARE(frame.bytesPerLine(), 0);
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
-}
-
-void tst_QVideoFrame::imageDetach()
-{
- const uint red = qRgb(255, 0, 0);
- const uint blue = qRgb(0, 0, 255);
-
- QImage image(8, 8, QImage::Format_RGB32);
-
- image.fill(red);
- QCOMPARE(image.pixel(4, 4), red);
-
- QVideoFrame frame(image);
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
-
- QImage frameImage(frame.bits(), 8, 8, frame.bytesPerLine(), QImage::Format_RGB32);
-
- QCOMPARE(frameImage.pixel(4, 4), red);
-
- frameImage.fill(blue);
- QCOMPARE(frameImage.pixel(4, 4), blue);
-
- // Original image has detached and is therefore unchanged.
- QCOMPARE(image.pixel(4, 4), red);
-}
-
-void tst_QVideoFrame::formatConversion_data()
-{
- QTest::addColumn<QImage::Format>("imageFormat");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
-
- QTest::newRow("QImage::Format_RGB32 | QVideoFrame::Format_RGB32")
- << QImage::Format_RGB32
- << QVideoFrame::Format_RGB32;
- QTest::newRow("QImage::Format_ARGB32 | QVideoFrame::Format_ARGB32")
- << QImage::Format_ARGB32
- << QVideoFrame::Format_ARGB32;
- QTest::newRow("QImage::Format_ARGB32_Premultiplied | QVideoFrame::Format_ARGB32_Premultiplied")
- << QImage::Format_ARGB32_Premultiplied
- << QVideoFrame::Format_ARGB32_Premultiplied;
- QTest::newRow("QImage::Format_RGB16 | QVideoFrame::Format_RGB565")
- << QImage::Format_RGB16
- << QVideoFrame::Format_RGB565;
- QTest::newRow("QImage::Format_ARGB8565_Premultiplied | QVideoFrame::Format_ARGB8565_Premultiplied")
- << QImage::Format_ARGB8565_Premultiplied
- << QVideoFrame::Format_ARGB8565_Premultiplied;
- QTest::newRow("QImage::Format_RGB555 | QVideoFrame::Format_RGB555")
- << QImage::Format_RGB555
- << QVideoFrame::Format_RGB555;
- QTest::newRow("QImage::Format_RGB888 | QVideoFrame::Format_RGB24")
- << QImage::Format_RGB888
- << QVideoFrame::Format_RGB24;
-
- QTest::newRow("QImage::Format_MonoLSB")
- << QImage::Format_MonoLSB
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_Indexed8")
- << QImage::Format_Indexed8
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_ARGB6666_Premultiplied")
- << QImage::Format_ARGB6666_Premultiplied
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_ARGB8555_Premultiplied")
- << QImage::Format_ARGB8555_Premultiplied
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_RGB666")
- << QImage::Format_RGB666
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_RGB444")
- << QImage::Format_RGB444
- << QVideoFrame::Format_Invalid;
- QTest::newRow("QImage::Format_ARGB4444_Premultiplied")
- << QImage::Format_ARGB4444_Premultiplied
- << QVideoFrame::Format_Invalid;
-
- QTest::newRow("QVideoFrame::Format_BGRA32")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGRA32;
- QTest::newRow("QVideoFrame::Format_BGRA32_Premultiplied")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGRA32_Premultiplied;
- QTest::newRow("QVideoFrame::Format_BGR32")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGR32;
- QTest::newRow("QVideoFrame::Format_BGR24")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGR24;
- QTest::newRow("QVideoFrame::Format_BGR565")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGR565;
- QTest::newRow("QVideoFrame::Format_BGR555")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGR555;
- QTest::newRow("QVideoFrame::Format_BGRA5658_Premultiplied")
- << QImage::Format_Invalid
- << QVideoFrame::Format_BGRA5658_Premultiplied;
- QTest::newRow("QVideoFrame::Format_AYUV444")
- << QImage::Format_Invalid
- << QVideoFrame::Format_AYUV444;
- QTest::newRow("QVideoFrame::Format_AYUV444_Premultiplied")
- << QImage::Format_Invalid
- << QVideoFrame::Format_AYUV444_Premultiplied;
- QTest::newRow("QVideoFrame::Format_YUV444")
- << QImage::Format_Invalid
- << QVideoFrame::Format_YUV444;
- QTest::newRow("QVideoFrame::Format_YUV420P")
- << QImage::Format_Invalid
- << QVideoFrame::Format_YUV420P;
- QTest::newRow("QVideoFrame::Format_YV12")
- << QImage::Format_Invalid
- << QVideoFrame::Format_YV12;
- QTest::newRow("QVideoFrame::Format_UYVY")
- << QImage::Format_Invalid
- << QVideoFrame::Format_UYVY;
- QTest::newRow("QVideoFrame::Format_YUYV")
- << QImage::Format_Invalid
- << QVideoFrame::Format_YUYV;
- QTest::newRow("QVideoFrame::Format_NV12")
- << QImage::Format_Invalid
- << QVideoFrame::Format_NV12;
- QTest::newRow("QVideoFrame::Format_NV21")
- << QImage::Format_Invalid
- << QVideoFrame::Format_NV21;
- QTest::newRow("QVideoFrame::Format_IMC1")
- << QImage::Format_Invalid
- << QVideoFrame::Format_IMC1;
- QTest::newRow("QVideoFrame::Format_IMC2")
- << QImage::Format_Invalid
- << QVideoFrame::Format_IMC2;
- QTest::newRow("QVideoFrame::Format_IMC3")
- << QImage::Format_Invalid
- << QVideoFrame::Format_IMC3;
- QTest::newRow("QVideoFrame::Format_IMC4")
- << QImage::Format_Invalid
- << QVideoFrame::Format_IMC4;
- QTest::newRow("QVideoFrame::Format_Y8")
- << QImage::Format_Invalid
- << QVideoFrame::Format_Y8;
- QTest::newRow("QVideoFrame::Format_Y16")
- << QImage::Format_Invalid
- << QVideoFrame::Format_Y16;
- QTest::newRow("QVideoFrame::Format_Jpeg")
- << QImage::Format_Invalid
- << QVideoFrame::Format_Jpeg;
- QTest::newRow("QVideoFrame::Format_CameraRaw")
- << QImage::Format_Invalid
- << QVideoFrame::Format_CameraRaw;
- QTest::newRow("QVideoFrame::Format_AdobeDng")
- << QImage::Format_Invalid
- << QVideoFrame::Format_AdobeDng;
- QTest::newRow("QVideoFrame::Format_User")
- << QImage::Format_Invalid
- << QVideoFrame::Format_User;
- QTest::newRow("QVideoFrame::Format_User + 1")
- << QImage::Format_Invalid
- << QVideoFrame::PixelFormat(QVideoFrame::Format_User + 1);
-}
-
-void tst_QVideoFrame::formatConversion()
-{
- QFETCH(QImage::Format, imageFormat);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
-
- QCOMPARE(QVideoFrame::pixelFormatFromImageFormat(imageFormat) == pixelFormat,
- imageFormat != QImage::Format_Invalid);
-
- QCOMPARE(QVideoFrame::imageFormatFromPixelFormat(pixelFormat) == imageFormat,
- pixelFormat != QVideoFrame::Format_Invalid);
-}
-
-#define TEST_MAPPED(frame, mode) \
-do { \
- QVERIFY(frame.bits()); \
- QVERIFY(frame.isMapped()); \
- QCOMPARE(frame.mappedBytes(), 16384); \
- QCOMPARE(frame.bytesPerLine(), 256); \
- QCOMPARE(frame.mapMode(), mode); \
-} while (0)
-
-#define TEST_UNMAPPED(frame) \
-do { \
- QVERIFY(!frame.bits()); \
- QVERIFY(!frame.isMapped()); \
- QCOMPARE(frame.mappedBytes(), 0); \
- QCOMPARE(frame.bytesPerLine(), 0); \
- QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped); \
-} while (0)
-
-void tst_QVideoFrame::isMapped()
-{
- QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
- const QVideoFrame& constFrame(frame);
-
- TEST_UNMAPPED(frame);
- TEST_UNMAPPED(constFrame);
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
- TEST_MAPPED(frame, QAbstractVideoBuffer::ReadOnly);
- TEST_MAPPED(constFrame, QAbstractVideoBuffer::ReadOnly);
- frame.unmap();
- TEST_UNMAPPED(frame);
- TEST_UNMAPPED(constFrame);
-
- QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
- TEST_MAPPED(frame, QAbstractVideoBuffer::WriteOnly);
- TEST_MAPPED(constFrame, QAbstractVideoBuffer::WriteOnly);
- frame.unmap();
- TEST_UNMAPPED(frame);
- TEST_UNMAPPED(constFrame);
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
- TEST_MAPPED(frame, QAbstractVideoBuffer::ReadWrite);
- TEST_MAPPED(constFrame, QAbstractVideoBuffer::ReadWrite);
- frame.unmap();
- TEST_UNMAPPED(frame);
- TEST_UNMAPPED(constFrame);
-}
-
-void tst_QVideoFrame::isReadable()
-{
- QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
-
- QVERIFY(!frame.isMapped());
- QVERIFY(!frame.isReadable());
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
- QVERIFY(frame.isMapped());
- QVERIFY(frame.isReadable());
- frame.unmap();
-
- QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
- QVERIFY(frame.isMapped());
- QVERIFY(!frame.isReadable());
- frame.unmap();
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
- QVERIFY(frame.isMapped());
- QVERIFY(frame.isReadable());
- frame.unmap();
-}
-
-void tst_QVideoFrame::isWritable()
-{
- QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32);
-
- QVERIFY(!frame.isMapped());
- QVERIFY(!frame.isWritable());
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly));
- QVERIFY(frame.isMapped());
- QVERIFY(!frame.isWritable());
- frame.unmap();
-
- QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly));
- QVERIFY(frame.isMapped());
- QVERIFY(frame.isWritable());
- frame.unmap();
-
- QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite));
- QVERIFY(frame.isMapped());
- QVERIFY(frame.isWritable());
- frame.unmap();
-}
-
-
-QTEST_MAIN(tst_QVideoFrame)
-
-#include "tst_qvideoframe.moc"
diff --git a/tests/auto/qvideosurfaceformat/qvideosurfaceformat.pro b/tests/auto/qvideosurfaceformat/qvideosurfaceformat.pro
deleted file mode 100644
index a0e6266..0000000
--- a/tests/auto/qvideosurfaceformat/qvideosurfaceformat.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qvideosurfaceformat
-
-QT += core multimedia-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qvideosurfaceformat.cpp
-
diff --git a/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp b/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
deleted file mode 100644
index 4fdf984..0000000
--- a/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
+++ /dev/null
@@ -1,1067 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite 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 <qvideosurfaceformat.h>
-
-class tst_QVideoSurfaceFormat : public QObject
-{
- Q_OBJECT
-public:
- tst_QVideoSurfaceFormat();
- ~tst_QVideoSurfaceFormat();
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
- void constructNull();
- void construct_data();
- void construct();
- void frameSize_data();
- void frameSize();
- void viewport_data();
- void viewport();
- void scanLineDirection_data();
- void scanLineDirection();
- void frameRate_data();
- void frameRate();
- void yCbCrColorSpace_data();
- void yCbCrColorSpace();
- void pixelAspectRatio_data();
- void pixelAspectRatio();
- void sizeHint_data();
- void sizeHint();
- void staticPropertyNames();
- void dynamicProperty();
- void compare();
- void copy();
- void assign();
-
- void isValid();
- void yCbCrColorSpaceEnum_data();
- void yCbCrColorSpaceEnum ();
- void copyAllParameters ();
- void assignAllParameters ();
-
- void propertyEdgeCases();
- void debugOperator();
- void debugOperator_data();
-};
-
-tst_QVideoSurfaceFormat::tst_QVideoSurfaceFormat()
-{
-}
-
-tst_QVideoSurfaceFormat::~tst_QVideoSurfaceFormat()
-{
-}
-
-void tst_QVideoSurfaceFormat::initTestCase()
-{
-}
-
-void tst_QVideoSurfaceFormat::cleanupTestCase()
-{
-}
-
-void tst_QVideoSurfaceFormat::init()
-{
-}
-
-void tst_QVideoSurfaceFormat::cleanup()
-{
-}
-
-void tst_QVideoSurfaceFormat::constructNull()
-{
- QVideoSurfaceFormat format;
-
- QVERIFY(!format.isValid());
- QCOMPARE(format.handleType(), QAbstractVideoBuffer::NoHandle);
- QCOMPARE(format.pixelFormat(), QVideoFrame::Format_Invalid);
- QCOMPARE(format.frameSize(), QSize());
- QCOMPARE(format.frameWidth(), -1);
- QCOMPARE(format.frameHeight(), -1);
- QCOMPARE(format.viewport(), QRect());
- QCOMPARE(format.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
- QCOMPARE(format.frameRate(), 0.0);
- QCOMPARE(format.pixelAspectRatio(), QSize(1, 1));
- QCOMPARE(format.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
-}
-
-void tst_QVideoSurfaceFormat::construct_data()
-{
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
- QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
- QTest::addColumn<bool>("valid");
-
- QTest::newRow("32x32 rgb32 no handle")
- << QSize(32, 32)
- << QVideoFrame::Format_RGB32
- << QAbstractVideoBuffer::NoHandle
- << true;
-
- QTest::newRow("1024x768 YUV444 GL texture")
- << QSize(32, 32)
- << QVideoFrame::Format_YUV444
- << QAbstractVideoBuffer::GLTextureHandle
- << true;
-
- QTest::newRow("32x32 invalid no handle")
- << QSize(32, 32)
- << QVideoFrame::Format_Invalid
- << QAbstractVideoBuffer::NoHandle
- << false;
-
- QTest::newRow("invalid size, rgb32 no handle")
- << QSize()
- << QVideoFrame::Format_RGB32
- << QAbstractVideoBuffer::NoHandle
- << false;
-
- QTest::newRow("0x0 rgb32 no handle")
- << QSize(0,0)
- << QVideoFrame::Format_RGB32
- << QAbstractVideoBuffer::NoHandle
- << true;
-}
-
-void tst_QVideoSurfaceFormat::construct()
-{
- QFETCH(QSize, frameSize);
- QFETCH(QVideoFrame::PixelFormat, pixelFormat);
- QFETCH(QAbstractVideoBuffer::HandleType, handleType);
- QFETCH(bool, valid);
-
- QRect viewport(QPoint(0, 0), frameSize);
-
- QVideoSurfaceFormat format(frameSize, pixelFormat, handleType);
-
- QCOMPARE(format.handleType(), handleType);
- QCOMPARE(format.property("handleType").value<QAbstractVideoBuffer::HandleType>(), handleType);
- QCOMPARE(format.pixelFormat(), pixelFormat);
- QCOMPARE(format.property("pixelFormat").value<QVideoFrame::PixelFormat>(), pixelFormat);
- QCOMPARE(format.frameSize(), frameSize);
- QCOMPARE(format.frameWidth(), frameSize.width());
- QCOMPARE(format.property("frameWidth").toInt(), frameSize.width());
- QCOMPARE(format.frameHeight(), frameSize.height());
- QCOMPARE(format.property("frameHeight").toInt(), frameSize.height());
- QCOMPARE(format.isValid(), valid);
- QCOMPARE(format.viewport(), viewport);
- QCOMPARE(format.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
- QCOMPARE(format.frameRate(), 0.0);
- QCOMPARE(format.pixelAspectRatio(), QSize(1, 1));
- QCOMPARE(format.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
-}
-
-void tst_QVideoSurfaceFormat::frameSize_data()
-{
- QTest::addColumn<QSize>("initialSize");
- QTest::addColumn<QSize>("newSize");
-
- QTest::newRow("grow")
- << QSize(64, 64)
- << QSize(1024, 1024);
- QTest::newRow("shrink")
- << QSize(1024, 1024)
- << QSize(64, 64);
- QTest::newRow("unchanged")
- << QSize(512, 512)
- << QSize(512, 512);
-}
-
-void tst_QVideoSurfaceFormat::frameSize()
-{
- QFETCH(QSize, initialSize);
- QFETCH(QSize, newSize);
-
- {
- QVideoSurfaceFormat format(initialSize, QVideoFrame::Format_RGB32);
-
- format.setFrameSize(newSize);
-
- QCOMPARE(format.frameSize(), newSize);
- QCOMPARE(format.property("frameSize").toSize(), newSize);
- QCOMPARE(format.frameWidth(), newSize.width());
- QCOMPARE(format.property("frameWidth").toInt(), newSize.width());
- QCOMPARE(format.frameHeight(), newSize.height());
- QCOMPARE(format.property("frameHeight").toInt(), newSize.height());
- }
-
- {
- QVideoSurfaceFormat format(initialSize, QVideoFrame::Format_RGB32);
-
- format.setProperty("frameSize", newSize);
-
- QCOMPARE(format.frameSize(), newSize);
- QCOMPARE(format.property("frameSize").toSize(), newSize);
- QCOMPARE(format.frameWidth(), newSize.width());
- QCOMPARE(format.property("frameWidth").toInt(), newSize.width());
- QCOMPARE(format.frameHeight(), newSize.height());
- QCOMPARE(format.property("frameHeight").toInt(), newSize.height());
- }
-
-}
-
-void tst_QVideoSurfaceFormat::viewport_data()
-{
- QTest::addColumn<QSize>("initialSize");
- QTest::addColumn<QRect>("viewport");
- QTest::addColumn<QSize>("newSize");
- QTest::addColumn<QRect>("expectedViewport");
-
- QTest::newRow("grow reset")
- << QSize(64, 64)
- << QRect(8, 8, 48, 48)
- << QSize(1024, 1024)
- << QRect(0, 0, 1024, 1024);
- QTest::newRow("shrink reset")
- << QSize(1024, 1024)
- << QRect(8, 8, 1008, 1008)
- << QSize(64, 64)
- << QRect(0, 0, 64, 64);
- QTest::newRow("unchanged reset")
- << QSize(512, 512)
- << QRect(8, 8, 496, 496)
- << QSize(512, 512)
- << QRect(0, 0, 512, 512);
-}
-
-void tst_QVideoSurfaceFormat::viewport()
-{
- QFETCH(QSize, initialSize);
- QFETCH(QRect, viewport);
- QFETCH(QSize, newSize);
- QFETCH(QRect, expectedViewport);
-
- {
- QRect initialViewport(QPoint(0, 0), initialSize);
-
- QVideoSurfaceFormat format(initialSize, QVideoFrame::Format_RGB32);
-
- format.setViewport(viewport);
-
- QCOMPARE(format.viewport(), viewport);
- QCOMPARE(format.property("viewport").toRect(), viewport);
-
- format.setFrameSize(newSize);
-
- QCOMPARE(format.viewport(), expectedViewport);
- QCOMPARE(format.property("viewport").toRect(), expectedViewport);
- }
- {
- QVideoSurfaceFormat format(initialSize, QVideoFrame::Format_RGB32);
-
- format.setProperty("viewport", viewport);
-
- QCOMPARE(format.viewport(), viewport);
- QCOMPARE(format.property("viewport").toRect(), viewport);
- }
-}
-
-void tst_QVideoSurfaceFormat::scanLineDirection_data()
-{
- QTest::addColumn<QVideoSurfaceFormat::Direction>("direction");
-
- QTest::newRow("top to bottom")
- << QVideoSurfaceFormat::TopToBottom;
-
- QTest::newRow("bottom to top")
- << QVideoSurfaceFormat::BottomToTop;
-}
-
-void tst_QVideoSurfaceFormat::scanLineDirection()
-{
- QFETCH(QVideoSurfaceFormat::Direction, direction);
-
- {
- QVideoSurfaceFormat format(QSize(16, 16), QVideoFrame::Format_RGB32);
-
- format.setScanLineDirection(direction);
-
- QCOMPARE(format.scanLineDirection(), direction);
- QCOMPARE(
- qvariant_cast<QVideoSurfaceFormat::Direction>(format.property("scanLineDirection")),
- direction);
- }
- {
- QVideoSurfaceFormat format(QSize(16, 16), QVideoFrame::Format_RGB32);
-
- format.setProperty("scanLineDirection", qVariantFromValue(direction));
-
- QCOMPARE(format.scanLineDirection(), direction);
- QCOMPARE(
- qvariant_cast<QVideoSurfaceFormat::Direction>(format.property("scanLineDirection")),
- direction);
- }
-}
-
-void tst_QVideoSurfaceFormat::frameRate_data()
-{
- QTest::addColumn<qreal>("frameRate");
-
- QTest::newRow("null")
- << qreal(0.0);
- QTest::newRow("1/1")
- << qreal(1.0);
- QTest::newRow("24/1")
- << qreal(24.0);
- QTest::newRow("15/2")
- << qreal(7.5);
-}
-
-void tst_QVideoSurfaceFormat::frameRate()
-{
- QFETCH(qreal, frameRate);
-
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- format.setFrameRate(frameRate);
-
- QCOMPARE(format.frameRate(), frameRate);
- QCOMPARE(qvariant_cast<qreal>(format.property("frameRate")), frameRate);
- }
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- format.setFrameRate(frameRate);
- format.setProperty("frameRate", frameRate);
-
- QCOMPARE(format.frameRate(), frameRate);
- QCOMPARE(qvariant_cast<qreal>(format.property("frameRate")), frameRate);
- }
-}
-
-void tst_QVideoSurfaceFormat::yCbCrColorSpace_data()
-{
- QTest::addColumn<QVideoSurfaceFormat::YCbCrColorSpace>("colorspace");
-
- QTest::newRow("undefined")
- << QVideoSurfaceFormat::YCbCr_Undefined;
- QTest::newRow("bt709")
- << QVideoSurfaceFormat::YCbCr_BT709;
- QTest::newRow("xvYCC601")
- << QVideoSurfaceFormat::YCbCr_xvYCC601;
- QTest::newRow("JPEG")
- << QVideoSurfaceFormat::YCbCr_JPEG;
-}
-
-void tst_QVideoSurfaceFormat::yCbCrColorSpace()
-{
- QFETCH(QVideoSurfaceFormat::YCbCrColorSpace, colorspace);
-
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setYCbCrColorSpace(colorspace);
-
- QCOMPARE(format.yCbCrColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
- colorspace);
- }
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setProperty("yCbCrColorSpace", qVariantFromValue(colorspace));
-
- QCOMPARE(format.yCbCrColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
- colorspace);
- }
-}
-
-void tst_QVideoSurfaceFormat::pixelAspectRatio_data()
-{
- QTest::addColumn<QSize>("aspectRatio");
-
- QTest::newRow("1:1")
- << QSize(1, 1);
- QTest::newRow("4:3")
- << QSize(4, 3);
- QTest::newRow("16:9")
- << QSize(16, 9);
-}
-
-void tst_QVideoSurfaceFormat::pixelAspectRatio()
-{
- QFETCH(QSize, aspectRatio);
-
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setPixelAspectRatio(aspectRatio);
-
- QCOMPARE(format.pixelAspectRatio(), aspectRatio);
- QCOMPARE(format.property("pixelAspectRatio").toSize(), aspectRatio);
- }
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setPixelAspectRatio(aspectRatio.width(), aspectRatio.height());
-
- QCOMPARE(format.pixelAspectRatio(), aspectRatio);
- QCOMPARE(format.property("pixelAspectRatio").toSize(), aspectRatio);
- }
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setProperty("pixelAspectRatio", aspectRatio);
-
- QCOMPARE(format.pixelAspectRatio(), aspectRatio);
- QCOMPARE(format.property("pixelAspectRatio").toSize(), aspectRatio);
- }
-}
-
-void tst_QVideoSurfaceFormat::sizeHint_data()
-{
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<QRect>("viewport");
- QTest::addColumn<QSize>("aspectRatio");
- QTest::addColumn<QSize>("sizeHint");
-
- QTest::newRow("(0, 0, 1024x768), 1:1")
- << QSize(1024, 768)
- << QRect(0, 0, 1024, 768)
- << QSize(1, 1)
- << QSize(1024, 768);
- QTest::newRow("0, 0, 1024x768), 4:3")
- << QSize(1024, 768)
- << QRect(0, 0, 1024, 768)
- << QSize(4, 3)
- << QSize(1365, 768);
- QTest::newRow("(168, 84, 800x600), 1:1")
- << QSize(1024, 768)
- << QRect(168, 84, 800, 600)
- << QSize(1, 1)
- << QSize(800, 600);
- QTest::newRow("(168, 84, 800x600), 4:3")
- << QSize(1024, 768)
- << QRect(168, 84, 800, 600)
- << QSize(4, 3)
- << QSize(1066, 600);
- QTest::newRow("(168, 84, 800x600), 4:0")
- << QSize(1024, 768)
- << QRect(168, 84, 800, 600)
- << QSize(4, 0)
- << QSize(800, 600);
-}
-
-void tst_QVideoSurfaceFormat::sizeHint()
-{
- QFETCH(QSize, frameSize);
- QFETCH(QRect, viewport);
- QFETCH(QSize, aspectRatio);
- QFETCH(QSize, sizeHint);
-
- QVideoSurfaceFormat format(frameSize, QVideoFrame::Format_RGB32);
- format.setViewport(viewport);
- format.setPixelAspectRatio(aspectRatio);
-
- QCOMPARE(format.sizeHint(), sizeHint);
- QCOMPARE(format.property("sizeHint").toSize(), sizeHint);
-}
-
-void tst_QVideoSurfaceFormat::staticPropertyNames()
-{
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- QList<QByteArray> propertyNames = format.propertyNames();
-
- QVERIFY(propertyNames.contains("handleType"));
- QVERIFY(propertyNames.contains("pixelFormat"));
- QVERIFY(propertyNames.contains("frameSize"));
- QVERIFY(propertyNames.contains("frameWidth"));
- QVERIFY(propertyNames.contains("viewport"));
- QVERIFY(propertyNames.contains("scanLineDirection"));
- QVERIFY(propertyNames.contains("frameRate"));
- QVERIFY(propertyNames.contains("pixelAspectRatio"));
- QVERIFY(propertyNames.contains("yCbCrColorSpace"));
- QVERIFY(propertyNames.contains("sizeHint"));
- QCOMPARE(propertyNames.count(), 10);
-}
-
-void tst_QVideoSurfaceFormat::dynamicProperty()
-{
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
-
- QCOMPARE(format.property("integer"), QVariant());
- QCOMPARE(format.property("size"), QVariant());
- QCOMPARE(format.property("string"), QVariant());
- QCOMPARE(format.property("null"), QVariant());
-
- QList<QByteArray> propertyNames = format.propertyNames();
-
- QCOMPARE(propertyNames.count(QByteArray("integer")), 0);
- QCOMPARE(propertyNames.count(QByteArray("string")), 0);
- QCOMPARE(propertyNames.count(QByteArray("size")), 0);
- QCOMPARE(propertyNames.count(QByteArray("null")), 0);
-
- format.setProperty("string", QString::fromLatin1("Hello"));
- format.setProperty("integer", 198);
- format.setProperty("size", QSize(43, 65));
-
- QCOMPARE(format.property("integer").toInt(), 198);
- QCOMPARE(format.property("size").toSize(), QSize(43, 65));
- QCOMPARE(format.property("string").toString(), QString::fromLatin1("Hello"));
-
- propertyNames = format.propertyNames();
-
- QCOMPARE(propertyNames.count(QByteArray("integer")), 1);
- QCOMPARE(propertyNames.count(QByteArray("string")), 1);
- QCOMPARE(propertyNames.count(QByteArray("size")), 1);
-
- format.setProperty("integer", 125423);
- format.setProperty("size", QSize(1, 986));
-
- QCOMPARE(format.property("integer").toInt(), 125423);
- QCOMPARE(format.property("size").toSize(), QSize(1, 986));
- QCOMPARE(format.property("string").toString(), QString::fromLatin1("Hello"));
-
- propertyNames = format.propertyNames();
-
- QCOMPARE(propertyNames.count(QByteArray("integer")), 1);
- QCOMPARE(propertyNames.count(QByteArray("string")), 1);
- QCOMPARE(propertyNames.count(QByteArray("size")), 1);
-
- format.setProperty("string", QVariant());
- format.setProperty("size", QVariant());
- format.setProperty("null", QVariant());
-
- QCOMPARE(format.property("integer").toInt(), 125423);
- QCOMPARE(format.property("size"), QVariant());
- QCOMPARE(format.property("string"), QVariant());
- QCOMPARE(format.property("null"), QVariant());
-
- propertyNames = format.propertyNames();
-
- QCOMPARE(propertyNames.count(QByteArray("integer")), 1);
- QCOMPARE(propertyNames.count(QByteArray("string")), 0);
- QCOMPARE(propertyNames.count(QByteArray("size")), 0);
- QCOMPARE(propertyNames.count(QByteArray("null")), 0);
-}
-
-void tst_QVideoSurfaceFormat::compare()
-{
- QVideoSurfaceFormat format1(
- QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::GLTextureHandle);
- QVideoSurfaceFormat format2(
- QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::GLTextureHandle);
- QVideoSurfaceFormat format3(
- QSize(32, 32), QVideoFrame::Format_YUV444, QAbstractVideoBuffer::GLTextureHandle);
- QVideoSurfaceFormat format4(
- QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::UserHandle);
-
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
- QCOMPARE(format1 == format3, false);
- QCOMPARE(format1 != format3, true);
- QCOMPARE(format1 == format4, false);
- QCOMPARE(format1 != format4, true);
-
- format2.setFrameSize(1024, 768);
-
- // Not equal, frame size differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format1.setFrameSize(1024, 768);
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format1.setViewport(QRect(0, 0, 800, 600));
- format2.setViewport(QRect(112, 84, 800, 600));
-
- // Not equal, viewports differ.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format1.setViewport(QRect(112, 84, 800, 600));
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format2.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
-
- // Not equal scan line direction differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format1.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format1.setFrameRate(7.5);
-
- // Not equal frame rate differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format2.setFrameRate(qreal(7.50001));
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format2.setPixelAspectRatio(4, 3);
-
- // Not equal pixel aspect ratio differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format1.setPixelAspectRatio(QSize(4, 3));
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format2.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
-
- // Not equal yuv color space differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format1.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format1.setProperty("integer", 12);
-
- // Not equal, property mismatch.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format2.setProperty("integer", 45);
-
- // Not equal, integer differs.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format2.setProperty("integer", 12);
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format1.setProperty("string", QString::fromLatin1("Hello"));
- format2.setProperty("size", QSize(12, 54));
-
- // Not equal, property mismatch.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-
- format2.setProperty("string", QString::fromLatin1("Hello"));
- format1.setProperty("size", QSize(12, 54));
-
- // Equal.
- QCOMPARE(format1 == format2, true);
- QCOMPARE(format1 != format2, false);
-
- format1.setProperty("string", QVariant());
-
- // Not equal, property mismatch.
- QCOMPARE(format1 == format2, false);
- QCOMPARE(format1 != format2, true);
-}
-
-
-void tst_QVideoSurfaceFormat::copy()
-{
- QVideoSurfaceFormat original(
- QSize(1024, 768), QVideoFrame::Format_ARGB32, QAbstractVideoBuffer::GLTextureHandle);
- original.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
-
- QVideoSurfaceFormat copy(original);
-
- QCOMPARE(copy.handleType(), QAbstractVideoBuffer::GLTextureHandle);
- QCOMPARE(copy.pixelFormat(), QVideoFrame::Format_ARGB32);
- QCOMPARE(copy.frameSize(), QSize(1024, 768));
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
-
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-
- copy.setScanLineDirection(QVideoSurfaceFormat::TopToBottom);
-
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
-
- QCOMPARE(original.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
-
- QCOMPARE(original == copy, false);
- QCOMPARE(original != copy, true);
-}
-
-void tst_QVideoSurfaceFormat::assign()
-{
- QVideoSurfaceFormat copy(
- QSize(64, 64), QVideoFrame::Format_AYUV444, QAbstractVideoBuffer::UserHandle);
-
- QVideoSurfaceFormat original(
- QSize(1024, 768), QVideoFrame::Format_ARGB32, QAbstractVideoBuffer::GLTextureHandle);
- original.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
-
- copy = original;
-
- QCOMPARE(copy.handleType(), QAbstractVideoBuffer::GLTextureHandle);
- QCOMPARE(copy.pixelFormat(), QVideoFrame::Format_ARGB32);
- QCOMPARE(copy.frameSize(), QSize(1024, 768));
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
-
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-
- copy.setScanLineDirection(QVideoSurfaceFormat::TopToBottom);
-
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
-
- QCOMPARE(original.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
-
- QCOMPARE(original == copy, false);
- QCOMPARE(original != copy, true);
-}
-
-/* Test case for Enum YCbCr_BT601, YCbCr_xvYCC709 */
-
-#define ADD_YCBCR_TEST(x) \
- QTest::newRow(#x) \
- << QVideoSurfaceFormat::x \
- << QString(QLatin1String(#x));
-
-void tst_QVideoSurfaceFormat::yCbCrColorSpaceEnum_data()
-{
- QTest::addColumn<QVideoSurfaceFormat::YCbCrColorSpace>("colorspace");
- QTest::addColumn<QString>("stringized");
-
- ADD_YCBCR_TEST(YCbCr_BT601);
- ADD_YCBCR_TEST(YCbCr_BT709);
- ADD_YCBCR_TEST(YCbCr_xvYCC601);
- ADD_YCBCR_TEST(YCbCr_xvYCC709);
- ADD_YCBCR_TEST(YCbCr_JPEG);
- ADD_YCBCR_TEST(YCbCr_CustomMatrix);
- ADD_YCBCR_TEST(YCbCr_Undefined);
-}
-
-/* Test case for Enum YCbCr_BT601, YCbCr_xvYCC709 */
-void tst_QVideoSurfaceFormat::yCbCrColorSpaceEnum()
-{
- QFETCH(QVideoSurfaceFormat::YCbCrColorSpace, colorspace);
- QFETCH(QString, stringized);
-
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setYCbCrColorSpace(colorspace);
-
- QCOMPARE(format.yCbCrColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
- colorspace);
- }
- {
- QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setProperty("yCbCrColorSpace", qVariantFromValue(colorspace));
-
- QCOMPARE(format.yCbCrColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
- colorspace);
- }
-
- QTest::ignoreMessage(QtDebugMsg, stringized.toLatin1().constData());
- qDebug() << colorspace;
-}
-
-/* Test case for api isValid */
-void tst_QVideoSurfaceFormat::isValid()
-{
- /* When both pixel format and framesize is not valid */
- QVideoSurfaceFormat format;
- QVERIFY(!format.isValid());
-
- /* When framesize is valid and pixel format is not valid */
- format.setFrameSize(64,64);
- QVERIFY(format.frameSize() == QSize(64,64));
- QVERIFY(!format.pixelFormat());
- QVERIFY(!format.isValid());
-
- /* When both the pixel format and framesize is valid. */
- QVideoSurfaceFormat format1(QSize(32, 32), QVideoFrame::Format_AYUV444);
- QVERIFY(format1.isValid());
-
- /* When pixel format is valid and frame size is not valid */
- format1.setFrameSize(-1,-1);
- QVERIFY(!format1.frameSize().isValid());
- QVERIFY(!format1.isValid());
-}
-
-/* Test case for copy constructor with all the parameters. */
-void tst_QVideoSurfaceFormat::copyAllParameters()
-{
- /* Create the instance and set all the parameters. */
- QVideoSurfaceFormat original(
- QSize(1024, 768), QVideoFrame::Format_ARGB32, QAbstractVideoBuffer::GLTextureHandle);
-
- original.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
- original.setViewport(QRect(0, 0, 1024, 1024));
- original.setFrameRate(qreal(15.0));
- original.setPixelAspectRatio(QSize(320,480));
- original.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_BT709);
-
- /* Copy the original instance to copy and verify if both the instances
- have the same parameters. */
- QVideoSurfaceFormat copy(original);
-
- QCOMPARE(copy.handleType(), QAbstractVideoBuffer::GLTextureHandle);
- QCOMPARE(copy.pixelFormat(), QVideoFrame::Format_ARGB32);
- QCOMPARE(copy.frameSize(), QSize(1024, 768));
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
- QCOMPARE(copy.viewport(), QRect(0, 0, 1024, 1024));
- QCOMPARE(copy.frameRate(), qreal(15.0));
- QCOMPARE(copy.pixelAspectRatio(), QSize(320,480));
- QCOMPARE(copy.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_BT709);
-
- /* Verify if both the instances are eqaul */
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-}
-
-/* Test case for copy constructor with all the parameters. */
-void tst_QVideoSurfaceFormat::assignAllParameters()
-{
- /* Create the instance and set all the parameters. */
- QVideoSurfaceFormat copy(
- QSize(64, 64), QVideoFrame::Format_AYUV444, QAbstractVideoBuffer::UserHandle);
- copy.setScanLineDirection(QVideoSurfaceFormat::TopToBottom);
- copy.setViewport(QRect(0, 0, 640, 320));
- copy.setFrameRate(qreal(7.5));
- copy.setPixelAspectRatio(QSize(640,320));
- copy.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_BT601);
-
- /* Create the instance and set all the parameters. */
- QVideoSurfaceFormat original(
- QSize(1024, 768), QVideoFrame::Format_ARGB32, QAbstractVideoBuffer::GLTextureHandle);
- original.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
- original.setViewport(QRect(0, 0, 1024, 1024));
- original.setFrameRate(qreal(15.0));
- original.setPixelAspectRatio(QSize(320,480));
- original.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_BT709);
-
- /* Assign the original instance to copy and verify if both the instancess
- have the same parameters. */
- copy = original;
-
- QCOMPARE(copy.handleType(), QAbstractVideoBuffer::GLTextureHandle);
- QCOMPARE(copy.pixelFormat(), QVideoFrame::Format_ARGB32);
- QCOMPARE(copy.frameSize(), QSize(1024, 768));
- QCOMPARE(copy.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
- QCOMPARE(copy.viewport(), QRect(0, 0, 1024, 1024));
- QCOMPARE(copy.frameRate(), qreal(15.0));
- QCOMPARE(copy.pixelAspectRatio(), QSize(320,480));
- QCOMPARE(copy.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_BT709);
-
- /* Verify if both the instances are eqaul */
- QCOMPARE(original == copy, true);
- QCOMPARE(original != copy, false);
-}
-
-void tst_QVideoSurfaceFormat::propertyEdgeCases()
-{
- // Test setting read only properties doesn't change anything
- QVideoSurfaceFormat original(
- QSize(1024, 768), QVideoFrame::Format_ARGB32, QAbstractVideoBuffer::GLTextureHandle);
-
- original.setProperty("handleType", QAbstractVideoBuffer::UserHandle);
- QCOMPARE(original.handleType(), QAbstractVideoBuffer::GLTextureHandle);
-
- original.setProperty("pixelFormat", QVideoFrame::Format_AYUV444);
- QCOMPARE(original.pixelFormat(), QVideoFrame::Format_ARGB32);
-
- original.setProperty("frameWidth", 512);
- QCOMPARE(original.frameWidth(), 1024);
-
- original.setProperty("frameHeight", 77);
- QCOMPARE(original.frameHeight(), 768);
-
- original.setProperty("sizeHint", QSize(512, 384));
- QCOMPARE(original.sizeHint(), QSize(1024,768));
-
- // Now test setting some r/w properties with the wrong data type
- original.setProperty("frameSize", Qt::red);
- QCOMPARE(original.frameSize(), QSize(1024, 768));
-
- original.setProperty("viewport", Qt::red);
- QCOMPARE(original.viewport(), QRect(0, 0, 1024, 768));
-
- original.setScanLineDirection(QVideoSurfaceFormat::BottomToTop);
- original.setProperty("scanLineDirection", Qt::red);
- QCOMPARE(original.scanLineDirection(), QVideoSurfaceFormat::BottomToTop);
-
- original.setFrameRate(32);
- original.setProperty("frameRate", QSize(32, 43));
- QCOMPARE(original.frameRate(), qreal(32));
-
- original.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_BT709);
- original.setProperty("yCbCrColorSpace", QSize(43,43));
- QCOMPARE(original.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_BT709);
-
- original.setPixelAspectRatio(53, 45);
- original.setProperty("pixelAspectRatio", Qt::red);
- QCOMPARE(original.pixelAspectRatio(), QSize(53, 45));
-}
-
-#define ADDDEBUGTEST(format, w, h, r) \
- QTest::newRow(#format "-" #w "x" #h "@" #r) \
- << QVideoFrame::Format_ ##format \
- << "Format_" #format \
- << QSize(w, h) \
- << r;
-
-void tst_QVideoSurfaceFormat::debugOperator_data()
-{
- // This is not too exhaustive
- QTest::addColumn<QVideoFrame::PixelFormat>("format");
- QTest::addColumn<QString>("formatString");
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<int>("frameRate"); // could be double, but formatting is unstable
-
- ADDDEBUGTEST(Invalid, 100, 200, 3);
- ADDDEBUGTEST(ARGB32,101, 201, 4);
- ADDDEBUGTEST(ARGB32_Premultiplied, 100, 202, 5);
- ADDDEBUGTEST(RGB32, 8, 16, 30);
- ADDDEBUGTEST(RGB24, 8, 16, 30);
- ADDDEBUGTEST(RGB565, 8, 16, 30);
- ADDDEBUGTEST(RGB555, 8, 16, 30);
- ADDDEBUGTEST(ARGB8565_Premultiplied, 8, 16, 30);
- ADDDEBUGTEST(BGRA32, 8, 16, 30);
- ADDDEBUGTEST(BGRA32_Premultiplied, 8, 16, 30);
- ADDDEBUGTEST(BGR32, 8, 16, 30);
- ADDDEBUGTEST(BGR24, 8, 16, 30);
- ADDDEBUGTEST(BGR565, 8, 16, 30);
- ADDDEBUGTEST(BGR555, 8, 16, 30);
- ADDDEBUGTEST(BGRA5658_Premultiplied, 8, 16, 30);
-
- ADDDEBUGTEST(AYUV444, 8, 16, 30);
- ADDDEBUGTEST(AYUV444, 8, 16, 31);
- ADDDEBUGTEST(AYUV444_Premultiplied, 8, 16, 30);
- ADDDEBUGTEST(YUV444, 8, 16, 30);
- ADDDEBUGTEST(YUV420P, 8, 16, 30);
- ADDDEBUGTEST(YV12, 8, 16, 30);
- ADDDEBUGTEST(UYVY, 8, 16, 30);
- ADDDEBUGTEST(YUYV, 8, 16, 30);
- ADDDEBUGTEST(NV12, 8, 16, 30);
- ADDDEBUGTEST(NV12, 80, 16, 30);
- ADDDEBUGTEST(NV21, 8, 16, 30);
- ADDDEBUGTEST(IMC1, 8, 16, 30);
- ADDDEBUGTEST(IMC2, 8, 16, 30);
- ADDDEBUGTEST(IMC3, 8, 16, 30);
- ADDDEBUGTEST(IMC3, 8, 160, 30);
- ADDDEBUGTEST(IMC4, 8, 16, 30);
- ADDDEBUGTEST(Y8, 8, 16, 30);
- ADDDEBUGTEST(Y16, 8, 16, 30);
-
- ADDDEBUGTEST(Jpeg, 8, 16, 30);
-
- ADDDEBUGTEST(CameraRaw, 8, 16, 30);
- ADDDEBUGTEST(AdobeDng, 8, 16, 30);
-
- // User is special
- QTest::newRow("User-0x0@0)")
- << QVideoFrame::Format_User
- << "UserType(1000)"
- << QSize()
- << 0;
-}
-
-void tst_QVideoSurfaceFormat::debugOperator()
-{
- QFETCH(QVideoFrame::PixelFormat, format);
- QFETCH(QString, formatString);
- QFETCH(QSize, frameSize);
- QFETCH(int, frameRate);
-
- QString templateOutput = QString("QVideoSurfaceFormat(%1, QSize(%2, %3) , viewport=QRect(0,1 800x600) , pixelAspectRatio=QSize(320, 200) "
- ", handleType=GLTextureHandle, yCbCrColorSpace=YCbCr_BT709)\n"
- " handleType = QVariant(QAbstractVideoBuffer::HandleType, ) \n"
- " pixelFormat = QVariant(QVideoFrame::PixelFormat, ) \n"
- " frameSize = QVariant(QSize, QSize(%4, %5) ) \n"
- " frameWidth = QVariant(int, %6) \n"
- " viewport = QVariant(QRect, QRect(0,1 800x600) ) \n"
- " scanLineDirection = QVariant(QVideoSurfaceFormat::Direction, ) \n"
-#if defined(QT_ARCH_ARM) // from qglobal.h
- " frameRate = QVariant(float, %7) \n"
-#else
- " frameRate = QVariant(double, %7) \n"
-#endif
- " pixelAspectRatio = QVariant(QSize, QSize(320, 200) ) \n"
- " sizeHint = QVariant(QSize, QSize(1280, 600) ) \n"
- " yCbCrColorSpace = QVariant(QVideoSurfaceFormat::YCbCrColorSpace, ) ")
- .arg(formatString)
- .arg(frameSize.width())
- .arg(frameSize.height())
- .arg(frameSize.width())
- .arg(frameSize.height())
- .arg(frameSize.width())
- .arg(frameRate);
-
- QVideoSurfaceFormat vsf(frameSize, format, QAbstractVideoBuffer::GLTextureHandle);
- vsf.setViewport(QRect(0,1, 800, 600));
- vsf.setPixelAspectRatio(QSize(320, 200));
- vsf.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_BT709);
- vsf.setFrameRate(frameRate);
-
- QTest::ignoreMessage(QtDebugMsg, templateOutput.toLatin1().constData());
- qDebug() << vsf;
-}
-
-
-
-QTEST_MAIN(tst_QVideoSurfaceFormat)
-
-
-
-#include "tst_qvideosurfaceformat.moc"
diff --git a/tests/auto/qvideowidget/qvideowidget.pro b/tests/auto/qvideowidget/qvideowidget.pro
deleted file mode 100644
index 4e44a1d..0000000
--- a/tests/auto/qvideowidget/qvideowidget.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qvideowidget
-
-QT += multimedia-private multimediawidgets-private testlib
-CONFIG += no_private_qt_headers_warning
-
-SOURCES += tst_qvideowidget.cpp
-
-# QPA seems to break some assumptions
-qpa:CONFIG += insignificant_test
-QT+=widgets
diff --git a/tests/auto/qvideowidget/tst_qvideowidget.cpp b/tests/auto/qvideowidget/tst_qvideowidget.cpp
deleted file mode 100644
index 9f9bafc..0000000
--- a/tests/auto/qvideowidget/tst_qvideowidget.cpp
+++ /dev/null
@@ -1,1567 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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 <qtmultimediadefs.h>
-#include <QtTest/QtTest>
-
-#include "qvideowidget.h"
-
-#include "qmediaobject.h"
-#include "qmediaservice.h"
-#include <private/qpaintervideosurface_p.h>
-#include "qvideowindowcontrol.h"
-#include "qvideowidgetcontrol.h"
-
-#include "qvideorenderercontrol.h"
-#include <qabstractvideosurface.h>
-#include <qvideosurfaceformat.h>
-
-#include <QtWidgets/qapplication.h>
-
-QT_USE_NAMESPACE
-class tst_QVideoWidget : public QObject
-{
- Q_OBJECT
-private slots:
- void nullObject();
- void nullService();
- void noOutputs();
- void serviceDestroyed();
- void objectDestroyed();
- void setMediaObject();
-
- void showWindowControl();
- void fullScreenWindowControl();
- void aspectRatioWindowControl();
- void sizeHintWindowControl_data() { sizeHint_data(); }
- void sizeHintWindowControl();
- void brightnessWindowControl_data() { color_data(); }
- void brightnessWindowControl();
- void contrastWindowControl_data() { color_data(); }
- void contrastWindowControl();
- void hueWindowControl_data() { color_data(); }
- void hueWindowControl();
- void saturationWindowControl_data() { color_data(); }
- void saturationWindowControl();
-
- void showWidgetControl();
- void fullScreenWidgetControl();
- void aspectRatioWidgetControl();
- void sizeHintWidgetControl_data() { sizeHint_data(); }
- void sizeHintWidgetControl();
- void brightnessWidgetControl_data() { color_data(); }
- void brightnessWidgetControl();
- void contrastWidgetControl_data() { color_data(); }
- void contrastWidgetControl();
- void hueWidgetControl_data() { color_data(); }
- void hueWidgetControl();
- void saturationWidgetControl_data() { color_data(); }
- void saturationWidgetControl();
-
- void showRendererControl();
- void fullScreenRendererControl();
- void aspectRatioRendererControl();
- void sizeHintRendererControl_data();
- void sizeHintRendererControl();
- void brightnessRendererControl_data() { color_data(); }
- void brightnessRendererControl();
- void contrastRendererControl_data() { color_data(); }
- void contrastRendererControl();
- void hueRendererControl_data() { color_data(); }
- void hueRendererControl();
- void saturationRendererControl_data() { color_data(); }
- void saturationRendererControl();
-
- void paintRendererControl();
-
-private:
- void sizeHint_data();
- void color_data();
-};
-
-Q_DECLARE_METATYPE(Qt::AspectRatioMode)
-Q_DECLARE_METATYPE(const uchar *)
-
-class QtTestWindowControl : public QVideoWindowControl
-{
-public:
- QtTestWindowControl()
- : m_winId(0)
- , m_repaintCount(0)
- , m_brightness(0)
- , m_contrast(0)
- , m_saturation(0)
- , m_aspectRatioMode(Qt::KeepAspectRatio)
- , m_fullScreen(0)
- {
- }
-
- WId winId() const { return m_winId; }
- void setWinId(WId id) { m_winId = id; }
-
- QRect displayRect() const { return m_displayRect; }
- void setDisplayRect(const QRect &rect) { m_displayRect = rect; }
-
- bool isFullScreen() const { return m_fullScreen; }
- void setFullScreen(bool fullScreen) { emit fullScreenChanged(m_fullScreen = fullScreen); }
-
- int repaintCount() const { return m_repaintCount; }
- void setRepaintCount(int count) { m_repaintCount = count; }
- void repaint() { ++m_repaintCount; }
-
- QSize nativeSize() const { return m_nativeSize; }
- void setNativeSize(const QSize &size) { m_nativeSize = size; emit nativeSizeChanged(); }
-
- Qt::AspectRatioMode aspectRatioMode() const { return m_aspectRatioMode; }
- void setAspectRatioMode(Qt::AspectRatioMode mode) { m_aspectRatioMode = mode; }
-
- int brightness() const { return m_brightness; }
- void setBrightness(int brightness) { emit brightnessChanged(m_brightness = brightness); }
-
- int contrast() const { return m_contrast; }
- void setContrast(int contrast) { emit contrastChanged(m_contrast = contrast); }
-
- int hue() const { return m_hue; }
- void setHue(int hue) { emit hueChanged(m_hue = hue); }
-
- int saturation() const { return m_saturation; }
- void setSaturation(int saturation) { emit saturationChanged(m_saturation = saturation); }
-
-private:
- WId m_winId;
- int m_repaintCount;
- int m_brightness;
- int m_contrast;
- int m_hue;
- int m_saturation;
- Qt::AspectRatioMode m_aspectRatioMode;
- QRect m_displayRect;
- QSize m_nativeSize;
- bool m_fullScreen;
-};
-
-class QtTestWidgetControl : public QVideoWidgetControl
-{
-public:
- QtTestWidgetControl()
- : m_brightness(1.0)
- , m_contrast(1.0)
- , m_hue(1.0)
- , m_saturation(1.0)
- , m_aspectRatioMode(Qt::KeepAspectRatio)
- , m_fullScreen(false)
- {
- }
-
- bool isFullScreen() const { return m_fullScreen; }
- void setFullScreen(bool fullScreen) { emit fullScreenChanged(m_fullScreen = fullScreen); }
-
- Qt::AspectRatioMode aspectRatioMode() const { return m_aspectRatioMode; }
- void setAspectRatioMode(Qt::AspectRatioMode mode) { m_aspectRatioMode = mode; }
-
- int brightness() const { return m_brightness; }
- void setBrightness(int brightness) { emit brightnessChanged(m_brightness = brightness); }
-
- int contrast() const { return m_contrast; }
- void setContrast(int contrast) { emit contrastChanged(m_contrast = contrast); }
-
- int hue() const { return m_hue; }
- void setHue(int hue) { emit hueChanged(m_hue = hue); }
-
- int saturation() const { return m_saturation; }
- void setSaturation(int saturation) { emit saturationChanged(m_saturation = saturation); }
-
- void setSizeHint(const QSize &size) { m_widget.setSizeHint(size); }
-
- QWidget *videoWidget() { return &m_widget; }
-
-private:
- class Widget : public QWidget
- {
- public:
- QSize sizeHint() const { return m_sizeHint; }
- void setSizeHint(const QSize &size) { m_sizeHint = size; updateGeometry(); }
- private:
- QSize m_sizeHint;
- } m_widget;
- int m_brightness;
- int m_contrast;
- int m_hue;
- int m_saturation;
- Qt::AspectRatioMode m_aspectRatioMode;
- QSize m_sizeHint;
- bool m_fullScreen;
-};
-
-class QtTestRendererControl : public QVideoRendererControl
-{
-public:
- QtTestRendererControl()
- : m_surface(0)
- {
- }
-
- QAbstractVideoSurface *surface() const { return m_surface; }
- void setSurface(QAbstractVideoSurface *surface) { m_surface = surface; }
-
-private:
- QAbstractVideoSurface *m_surface;
-};
-
-class QtTestVideoService : public QMediaService
-{
- Q_OBJECT
-public:
- QtTestVideoService(
- QtTestWindowControl *window,
- QtTestWidgetControl *widget,
- QtTestRendererControl *renderer)
- : QMediaService(0)
- , windowRef(0)
- , widgetRef(0)
- , rendererRef(0)
- , windowControl(window)
- , widgetControl(widget)
- , rendererControl(renderer)
- {
- }
-
- ~QtTestVideoService()
- {
- delete windowControl;
- delete widgetControl;
- delete rendererControl;
- }
-
- QMediaControl *requestControl(const char *name)
- {
- if (qstrcmp(name, QVideoWindowControl_iid) == 0) {
- if (windowControl) {
- windowRef += 1;
-
- return windowControl;
- }
- } else if (qstrcmp(name, QVideoWidgetControl_iid) == 0) {
- if (widgetControl) {
- widgetRef += 1;
-
- return widgetControl;
- }
- } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
- if (rendererControl) {
- rendererRef += 1;
-
- return rendererControl;
- }
- }
- return 0;
- }
-
- void releaseControl(QMediaControl *control)
- {
- Q_ASSERT(control);
-
- if (control == windowControl)
- windowRef -= 1;
- else if (control == widgetControl)
- widgetRef -= 1;
- else if (control == rendererControl)
- rendererRef -= 1;
- }
-
- int windowRef;
- int widgetRef;
- int rendererRef;
-
- QtTestWindowControl *windowControl;
- QtTestWidgetControl *widgetControl;
- QtTestRendererControl *rendererControl;
-};
-
-class QtTestVideoObject : public QMediaObject
-{
- Q_OBJECT
-public:
- QtTestVideoObject(
- QtTestWindowControl *window,
- QtTestWidgetControl *widget,
- QtTestRendererControl *renderer):
- QMediaObject(0, new QtTestVideoService(window, widget, renderer))
- {
- testService = qobject_cast<QtTestVideoService*>(service());
- }
-
- QtTestVideoObject(QtTestVideoService *service):
- QMediaObject(0, service),
- testService(service)
- {
- }
-
- ~QtTestVideoObject()
- {
- delete testService;
- }
-
- QtTestVideoService *testService;
-};
-
-void tst_QVideoWidget::nullObject()
-{
- QVideoWidget widget;
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- widget.setFullScreen(true);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), true);
-
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- {
- QSignalSpy spy(&widget, SIGNAL(brightnessChanged(int)));
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), 100);
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(spy.count(), 1);
-
- widget.setBrightness(-120);
- QCOMPARE(widget.brightness(), -100);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), -100);
- } {
- QSignalSpy spy(&widget, SIGNAL(contrastChanged(int)));
-
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), 100);
-
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(spy.count(), 1);
-
- widget.setContrast(-120);
- QCOMPARE(widget.contrast(), -100);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), -100);
- } {
- QSignalSpy spy(&widget, SIGNAL(hueChanged(int)));
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), 100);
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(spy.count(), 1);
-
- widget.setHue(-120);
- QCOMPARE(widget.hue(), -100);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), -100);
- } {
- QSignalSpy spy(&widget, SIGNAL(saturationChanged(int)));
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), 100);
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
- QCOMPARE(spy.count(), 1);
-
- widget.setSaturation(-120);
- QCOMPARE(widget.saturation(), -100);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), -100);
- }
-}
-
-void tst_QVideoWidget::nullService()
-{
- QtTestVideoObject object(0);
-
- QVideoWidget widget;
- object.bind(&widget);
-
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- widget.setFullScreen(true);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), true);
-
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
-
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
-}
-
-void tst_QVideoWidget::noOutputs()
-{
- QtTestVideoObject object(0, 0, 0);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-
- widget.setBrightness(100);
- QCOMPARE(widget.brightness(), 100);
-
- widget.setContrast(100);
- QCOMPARE(widget.contrast(), 100);
-
- widget.setHue(100);
- QCOMPARE(widget.hue(), 100);
-
- widget.setSaturation(100);
- QCOMPARE(widget.saturation(), 100);
-}
-
-void tst_QVideoWidget::serviceDestroyed()
-{
- QtTestVideoObject object(new QtTestWindowControl, new QtTestWidgetControl, 0);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- widget.setBrightness(100);
- widget.setContrast(100);
- widget.setHue(100);
- widget.setSaturation(100);
-
- delete object.testService;
- object.testService = 0;
-
- QCOMPARE(widget.mediaObject(), static_cast<QMediaObject *>(&object));
-
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(widget.saturation(), 100);
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-}
-
-void tst_QVideoWidget::objectDestroyed()
-{
- QtTestVideoObject *object = new QtTestVideoObject(
- new QtTestWindowControl,
- new QtTestWidgetControl,
- 0);
-
- QVideoWidget widget;
- object->bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QCOMPARE(object->testService->windowRef, 0);
- QCOMPARE(object->testService->widgetRef, 1);
- QCOMPARE(object->testService->rendererRef, 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- widget.setBrightness(100);
- widget.setContrast(100);
- widget.setHue(100);
- widget.setSaturation(100);
-
- // Delete the media object without deleting the service.
- QtTestVideoService *service = object->testService;
- object->testService = 0;
-
- delete object;
- object = 0;
-
- QCOMPARE(widget.mediaObject(), static_cast<QMediaObject *>(object));
-
- QCOMPARE(widget.brightness(), 100);
- QCOMPARE(widget.contrast(), 100);
- QCOMPARE(widget.hue(), 100);
- QCOMPARE(widget.saturation(), 100);
-
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
-
- delete service;
-}
-
-void tst_QVideoWidget::setMediaObject()
-{
- QMediaObject *nullObject = 0;
- QtTestVideoObject windowObject(new QtTestWindowControl, 0, 0);
- QtTestVideoObject widgetObject(0, new QtTestWidgetControl, 0);
- QtTestVideoObject rendererObject(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QCOMPARE(widget.mediaObject(), nullObject);
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(widgetObject.testService->widgetRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- windowObject.bind(&widget);
- QCOMPARE(widget.mediaObject(), static_cast<QMediaObject *>(&windowObject));
- QCOMPARE(windowObject.testService->windowRef, 1);
- QCOMPARE(widgetObject.testService->widgetRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
- QVERIFY(windowObject.testService->windowControl->winId() != 0);
-
-
- widgetObject.bind(&widget);
- QCOMPARE(widget.mediaObject(), static_cast<QMediaObject *>(&widgetObject));
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(widgetObject.testService->widgetRef, 1);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- QCoreApplication::processEvents(QEventLoop::AllEvents);
- QCOMPARE(widgetObject.testService->widgetControl->videoWidget()->isVisible(), true);
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(widgetObject.testService->widgetRef, 1);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-
- rendererObject.bind(&widget);
- QCOMPARE(widget.mediaObject(), static_cast<QMediaObject *>(&rendererObject));
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(widgetObject.testService->widgetRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 1);
- QVERIFY(rendererObject.testService->rendererControl->surface() != 0);
-
- rendererObject.unbind(&widget);
- QCOMPARE(widget.mediaObject(), nullObject);
-
- QCOMPARE(windowObject.testService->windowRef, 0);
- QCOMPARE(widgetObject.testService->widgetRef, 0);
- QCOMPARE(rendererObject.testService->rendererRef, 0);
-}
-
-void tst_QVideoWidget::showWindowControl()
-{
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setNativeSize(QSize(240, 180));
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QVERIFY(object.testService->windowControl->winId() != 0);
- QVERIFY(object.testService->windowControl->repaintCount() > 0);
-
- widget.resize(640, 480);
- QCOMPARE(object.testService->windowControl->displayRect(), QRect(0, 0, 640, 480));
-
- widget.move(10, 10);
- QCOMPARE(object.testService->windowControl->displayRect(), QRect(0, 0, 640, 480));
-
- widget.hide();
-}
-
-void tst_QVideoWidget::showWidgetControl()
-{
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->widgetControl->videoWidget()->isVisible(), true);
-
- widget.resize(640, 480);
-
- widget.move(10, 10);
-
- widget.hide();
-
- QCOMPARE(object.testService->widgetControl->videoWidget()->isVisible(), false);
-}
-
-void tst_QVideoWidget::showRendererControl()
-{
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QVERIFY(object.testService->rendererControl->surface() != 0);
-
- widget.resize(640, 480);
-
- widget.move(10, 10);
-
- widget.hide();
-}
-
-void tst_QVideoWidget::aspectRatioWindowControl()
-{
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setAspectRatioMode(Qt::IgnoreAspectRatio);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- // Test the aspect ratio defaults to keeping the aspect ratio.
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test the control has been informed of the aspect ratio change, post show.
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- QCOMPARE(object.testService->windowControl->aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test an aspect ratio change is enforced immediately while visible.
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
- QCOMPARE(object.testService->windowControl->aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- // Test an aspect ratio set while not visible is respected.
- widget.hide();
- widget.setAspectRatioMode(Qt::KeepAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- widget.show();
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- QCOMPARE(object.testService->windowControl->aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QVideoWidget::aspectRatioWidgetControl()
-{
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- object.testService->widgetControl->setAspectRatioMode(Qt::IgnoreAspectRatio);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- // Test the aspect ratio defaults to keeping the aspect ratio.
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test the control has been informed of the aspect ratio change, post show.
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- QCOMPARE(object.testService->widgetControl->aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test an aspect ratio change is enforced immediately while visible.
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
- QCOMPARE(object.testService->widgetControl->aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- // Test an aspect ratio set while not visible is respected.
- widget.hide();
- widget.setAspectRatioMode(Qt::KeepAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- widget.show();
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- QCOMPARE(object.testService->widgetControl->aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QVideoWidget::aspectRatioRendererControl()
-{
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- // Test the aspect ratio defaults to keeping the aspect ratio.
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test the control has been informed of the aspect ratio change, post show.
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-
- // Test an aspect ratio change is enforced immediately while visible.
- widget.setAspectRatioMode(Qt::IgnoreAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::IgnoreAspectRatio);
-
- // Test an aspect ratio set while not visible is respected.
- widget.hide();
- widget.setAspectRatioMode(Qt::KeepAspectRatio);
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
- widget.show();
- QCOMPARE(widget.aspectRatioMode(), Qt::KeepAspectRatio);
-}
-
-void tst_QVideoWidget::sizeHint_data()
-{
- QTest::addColumn<QSize>("size");
-
- QTest::newRow("720x576")
- << QSize(720, 576);
-}
-
-void tst_QVideoWidget::sizeHintWindowControl()
-{
- QFETCH(QSize, size);
-
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- object.testService->windowControl->setNativeSize(size);
- QCOMPARE(widget.sizeHint(), size);
-}
-
-void tst_QVideoWidget::sizeHintWidgetControl()
-{
- QFETCH(QSize, size);
-
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QVERIFY(widget.sizeHint().isEmpty());
-
- object.testService->widgetControl->setSizeHint(size);
- QCOMPARE(widget.sizeHint(), size);
-}
-
-void tst_QVideoWidget::sizeHintRendererControl_data()
-{
- QTest::addColumn<QSize>("frameSize");
- QTest::addColumn<QRect>("viewport");
- QTest::addColumn<QSize>("pixelAspectRatio");
- QTest::addColumn<QSize>("expectedSize");
-
- QTest::newRow("640x480")
- << QSize(640, 480)
- << QRect(0, 0, 640, 480)
- << QSize(1, 1)
- << QSize(640, 480);
-
- QTest::newRow("800x600, (80,60, 640x480) viewport")
- << QSize(800, 600)
- << QRect(80, 60, 640, 480)
- << QSize(1, 1)
- << QSize(640, 480);
-
- QTest::newRow("800x600, (80,60, 640x480) viewport, 4:3")
- << QSize(800, 600)
- << QRect(80, 60, 640, 480)
- << QSize(4, 3)
- << QSize(853, 480);
-
-}
-
-void tst_QVideoWidget::sizeHintRendererControl()
-{
- QFETCH(QSize, frameSize);
- QFETCH(QRect, viewport);
- QFETCH(QSize, pixelAspectRatio);
- QFETCH(QSize, expectedSize);
-
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QVideoSurfaceFormat format(frameSize, QVideoFrame::Format_ARGB32);
- format.setViewport(viewport);
- format.setPixelAspectRatio(pixelAspectRatio);
-
- QVERIFY(object.testService->rendererControl->surface()->start(format));
-
- QCOMPARE(widget.sizeHint(), expectedSize);
-}
-
-
-void tst_QVideoWidget::fullScreenWindowControl()
-{
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- QVideoWidget widget;
- object.bind(&widget);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- Qt::WindowFlags windowFlags = widget.windowFlags();
-
- QSignalSpy spy(&widget, SIGNAL(fullScreenChanged(bool)));
-
- // Test showing full screen with setFullScreen(true).
- widget.setFullScreen(true);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->windowControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toBool(), true);
-
- // Test returning to normal with setFullScreen(false).
- widget.setFullScreen(false);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->windowControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test showing full screen with showFullScreen().
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->windowControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 3);
- QCOMPARE(spy.value(2).value(0).toBool(), true);
-
- // Test returning to normal with showNormal().
- widget.showNormal();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->windowControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- QCOMPARE(spy.value(3).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test setFullScreen(false) and showNormal() do nothing when isFullScreen() == false.
- widget.setFullScreen(false);
- QCOMPARE(object.testService->windowControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- widget.showNormal();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->windowControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
-
- // Test setFullScreen(true) and showFullScreen() do nothing when isFullScreen() == true.
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- widget.setFullScreen(true);
- QCOMPARE(object.testService->windowControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
- widget.showFullScreen();
- QCOMPARE(object.testService->windowControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
-
- // Test if the window control exits full screen mode, the widget follows suit.
- object.testService->windowControl->setFullScreen(false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 6);
- QCOMPARE(spy.value(5).value(0).toBool(), false);
-
- // Test if the window control enters full screen mode, the widget does nothing.
- object.testService->windowControl->setFullScreen(false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 6);
-}
-
-void tst_QVideoWidget::fullScreenWidgetControl()
-{
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- QVideoWidget widget;
- object.bind(&widget);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- Qt::WindowFlags windowFlags = widget.windowFlags();
-
- QSignalSpy spy(&widget, SIGNAL(fullScreenChanged(bool)));
-
- // Test showing full screen with setFullScreen(true).
- widget.setFullScreen(true);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toBool(), true);
-
- // Test returning to normal with setFullScreen(false).
- widget.setFullScreen(false);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test showing full screen with showFullScreen().
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 3);
- QCOMPARE(spy.value(2).value(0).toBool(), true);
-
- // Test returning to normal with showNormal().
- widget.showNormal();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- QCOMPARE(spy.value(3).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test setFullScreen(false) and showNormal() do nothing when isFullScreen() == false.
- widget.setFullScreen(false);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- widget.showNormal();
- QCOMPARE(object.testService->widgetControl->isFullScreen(), false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
-
- // Test setFullScreen(true) and showFullScreen() do nothing when isFullScreen() == true.
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- widget.setFullScreen(true);
- QCOMPARE(object.testService->widgetControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
- widget.showFullScreen();
- QCOMPARE(object.testService->widgetControl->isFullScreen(), true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
-
- // Test if the window control exits full screen mode, the widget follows suit.
- object.testService->widgetControl->setFullScreen(false);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 6);
- QCOMPARE(spy.value(5).value(0).toBool(), false);
-
- // Test if the window control enters full screen mode, the widget does nothing.
- object.testService->widgetControl->setFullScreen(false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 6);
-}
-
-
-void tst_QVideoWidget::fullScreenRendererControl()
-{
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
- QVideoWidget widget;
- object.bind(&widget);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- Qt::WindowFlags windowFlags = widget.windowFlags();
-
- QSignalSpy spy(&widget, SIGNAL(fullScreenChanged(bool)));
-
- // Test showing full screen with setFullScreen(true).
- widget.setFullScreen(true);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toBool(), true);
-
- // Test returning to normal with setFullScreen(false).
- widget.setFullScreen(false);
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test showing full screen with showFullScreen().
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 3);
- QCOMPARE(spy.value(2).value(0).toBool(), true);
-
- // Test returning to normal with showNormal().
- widget.showNormal();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- QCOMPARE(spy.value(3).value(0).toBool(), false);
- QCOMPARE(widget.windowFlags(), windowFlags);
-
- // Test setFullScreen(false) and showNormal() do nothing when isFullScreen() == false.
- widget.setFullScreen(false);
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
- widget.showNormal();
- QCOMPARE(widget.isFullScreen(), false);
- QCOMPARE(spy.count(), 4);
-
- // Test setFullScreen(true) and showFullScreen() do nothing when isFullScreen() == true.
- widget.showFullScreen();
- QTest::qWaitForWindowShown(&widget);
- widget.setFullScreen(true);
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
- widget.showFullScreen();
- QCOMPARE(widget.isFullScreen(), true);
- QCOMPARE(spy.count(), 5);
-}
-
-
-void tst_QVideoWidget::color_data()
-{
- QTest::addColumn<int>("controlValue");
- QTest::addColumn<int>("value");
- QTest::addColumn<int>("expectedValue");
-
- QTest::newRow("12")
- << 0
- << 12
- << 12;
- QTest::newRow("-56")
- << 87
- << -56
- << -56;
- QTest::newRow("100")
- << 32
- << 100
- << 100;
- QTest::newRow("1294")
- << 0
- << 1294
- << 100;
- QTest::newRow("-102")
- << 34
- << -102
- << -100;
-}
-
-void tst_QVideoWidget::brightnessWindowControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setBrightness(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- // Test the video widget resets the controls starting brightness to the default.
- QCOMPARE(widget.brightness(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(brightnessChanged(int)));
-
- // Test the video widget sets the brightness value, bounded if necessary and emits a changed
- // signal.
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(object.testService->windowControl->brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- // Test the changed signal isn't emitted if the value is unchanged.
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(object.testService->windowControl->brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- // Test the changed signal is emitted if the brightness is changed internally.
- object.testService->windowControl->setBrightness(controlValue);
- QCOMPARE(widget.brightness(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::brightnessWidgetControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- object.testService->widgetControl->setBrightness(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QCOMPARE(widget.brightness(), 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QSignalSpy spy(&widget, SIGNAL(brightnessChanged(int)));
-
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(object.testService->widgetControl->brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(object.testService->widgetControl->brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->widgetControl->setBrightness(controlValue);
- QCOMPARE(widget.brightness(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::brightnessRendererControl()
-{
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QSignalSpy spy(&widget, SIGNAL(brightnessChanged(int)));
-
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setBrightness(value);
- QCOMPARE(widget.brightness(), expectedValue);
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_QVideoWidget::contrastWindowControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setContrast(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QCOMPARE(widget.contrast(), 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.contrast(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(contrastChanged(int)));
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(object.testService->windowControl->contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(object.testService->windowControl->contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->windowControl->setContrast(controlValue);
- QCOMPARE(widget.contrast(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::contrastWidgetControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- object.testService->widgetControl->setContrast(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- QCOMPARE(widget.contrast(), 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.contrast(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(contrastChanged(int)));
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(object.testService->widgetControl->contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(object.testService->widgetControl->contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->widgetControl->setContrast(controlValue);
- QCOMPARE(widget.contrast(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::contrastRendererControl()
-{
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QSignalSpy spy(&widget, SIGNAL(contrastChanged(int)));
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setContrast(value);
- QCOMPARE(widget.contrast(), expectedValue);
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_QVideoWidget::hueWindowControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setHue(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- QCOMPARE(widget.hue(), 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.hue(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(hueChanged(int)));
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(object.testService->windowControl->hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(object.testService->windowControl->hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->windowControl->setHue(controlValue);
- QCOMPARE(widget.hue(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::hueWidgetControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- object.testService->widgetControl->setHue(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- QCOMPARE(widget.hue(), 0);
-
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.hue(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(hueChanged(int)));
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(object.testService->widgetControl->hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(object.testService->widgetControl->hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->widgetControl->setHue(controlValue);
- QCOMPARE(widget.hue(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::hueRendererControl()
-{
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QSignalSpy spy(&widget, SIGNAL(hueChanged(int)));
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setHue(value);
- QCOMPARE(widget.hue(), expectedValue);
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_QVideoWidget::saturationWindowControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(new QtTestWindowControl, 0, 0);
- object.testService->windowControl->setSaturation(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- QCOMPARE(widget.saturation(), 0);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.saturation(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(saturationChanged(int)));
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(object.testService->windowControl->saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(object.testService->windowControl->saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->windowControl->setSaturation(controlValue);
- QCOMPARE(widget.saturation(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-}
-
-void tst_QVideoWidget::saturationWidgetControl()
-{
- QFETCH(int, controlValue);
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, new QtTestWidgetControl, 0);
- object.testService->widgetControl->setSaturation(controlValue);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
-
- QCOMPARE(widget.saturation(), 0);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QCOMPARE(widget.saturation(), 0);
-
- QSignalSpy spy(&widget, SIGNAL(saturationChanged(int)));
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(object.testService->widgetControl->saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(object.testService->widgetControl->saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
-
- object.testService->widgetControl->setSaturation(controlValue);
- QCOMPARE(widget.saturation(), controlValue);
- QCOMPARE(spy.count(), 2);
- QCOMPARE(spy.value(1).value(0).toInt(), controlValue);
-
-}
-
-void tst_QVideoWidget::saturationRendererControl()
-{
- QFETCH(int, value);
- QFETCH(int, expectedValue);
-
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
- QSignalSpy spy(&widget, SIGNAL(saturationChanged(int)));
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
- QCOMPARE(spy.value(0).value(0).toInt(), expectedValue);
-
- widget.setSaturation(value);
- QCOMPARE(widget.saturation(), expectedValue);
- QCOMPARE(spy.count(), 1);
-}
-
-static const uchar rgb32ImageData[] =
-{
- 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00
-};
-
-void tst_QVideoWidget::paintRendererControl()
-{
- QtTestVideoObject object(0, 0, new QtTestRendererControl);
-
- QVideoWidget widget;
- object.bind(&widget);
- widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
- widget.resize(640,480);
- widget.show();
- QTest::qWaitForWindowShown(&widget);
-
- QPainterVideoSurface *surface = qobject_cast<QPainterVideoSurface *>(
- object.testService->rendererControl->surface());
-
- QVideoSurfaceFormat format(QSize(2, 2), QVideoFrame::Format_RGB32);
-
- QVERIFY(surface->start(format));
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-
- QCoreApplication::processEvents(QEventLoop::AllEvents);
-
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-
- QVideoFrame frame(sizeof(rgb32ImageData), QSize(2, 2), 8, QVideoFrame::Format_RGB32);
-
- frame.map(QAbstractVideoBuffer::WriteOnly);
- memcpy(frame.bits(), rgb32ImageData, frame.mappedBytes());
- frame.unmap();
-
- QVERIFY(surface->present(frame));
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), false);
-
- //wait up to 2 seconds for the frame to be presented
- for (int i=0; i<200 && !surface->isReady(); i++)
- QTest::qWait(10);
-
- QCOMPARE(surface->isActive(), true);
- QCOMPARE(surface->isReady(), true);
-}
-
-QTEST_MAIN(tst_QVideoWidget)
-
-#include "tst_qvideowidget.moc"
diff --git a/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav
deleted file mode 100644
index b6eac4d..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_datadesc_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav
deleted file mode 100644
index 2f0da13..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_fmtdesc_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav b/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav
deleted file mode 100644
index b14a53c..0000000
--- a/tests/auto/qwavedecoder/data/corrupt_fmtstring_1_16_8000.le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/empty.wav b/tests/auto/qwavedecoder/data/empty.wav
deleted file mode 100644
index e69de29..0000000
--- a/tests/auto/qwavedecoder/data/empty.wav
+++ /dev/null
diff --git a/tests/auto/qwavedecoder/data/gendata.sh b/tests/auto/qwavedecoder/data/gendata.sh
deleted file mode 100755
index 0dd82ce..0000000
--- a/tests/auto/qwavedecoder/data/gendata.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-#############################################################################
-##
-## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-## All rights reserved.
-## Contact: Nokia Corporation (qt-info@nokia.com)
-##
-## This file is the build configuration utility 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$
-##
-#############################################################################
-
-# Generate some simple test data. Uses "sox".
-
-endian=""
-endian_extn=""
-
-for channel in 1 2; do
- if [ $channel -eq 1 ]; then
- endian="little"
- endian_extn="le"
- fi
-
- if [ $channel -eq 2 ]; then
- endian="big"
- endian_extn="be"
- fi
- for samplebits in 8 16 32; do
- for samplerate in 44100 8000; do
- if [ $samplebits -ne 8 ]; then
- sox -n --endian "${endian}" -c ${channel} -b ${samplebits} -r ${samplerate} isawav_${channel}_${samplebits}_${samplerate}_${endian_extn}.wav synth 0.25 sine 300-3300
- else
- sox -n -c ${channel} -b ${samplebits} -r ${samplerate} isawav_${channel}_${samplebits}_${samplerate}.wav synth 0.25 sine 300-3300
- fi
- done
- done
-done
-
diff --git a/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav b/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav
deleted file mode 100644
index 88b1a83..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_16_44100_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav b/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav
deleted file mode 100644
index 83a4059..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_16_8000_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav b/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav
deleted file mode 100644
index 9c437b1..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_32_44100_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav b/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav
deleted file mode 100644
index f90a8bc..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_32_8000_le.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav b/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav
deleted file mode 100644
index 7d10829..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_8_44100.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav b/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav
deleted file mode 100644
index 76c08e8..0000000
--- a/tests/auto/qwavedecoder/data/isawav_1_8_8000.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav b/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav
deleted file mode 100644
index ca0cd42..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_16_44100_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav b/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav
deleted file mode 100644
index 3a68459..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_16_8000_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav b/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav
deleted file mode 100644
index f1aaf29..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_32_44100_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav b/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav
deleted file mode 100644
index c10c208..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_32_8000_be.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav b/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav
deleted file mode 100644
index befd02b..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_8_44100.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav b/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav
deleted file mode 100644
index ce8b0d0..0000000
--- a/tests/auto/qwavedecoder/data/isawav_2_8_8000.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/nosampledata.wav b/tests/auto/qwavedecoder/data/nosampledata.wav
deleted file mode 100644
index 8dbde95..0000000
--- a/tests/auto/qwavedecoder/data/nosampledata.wav
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qwavedecoder/data/notawav.wav b/tests/auto/qwavedecoder/data/notawav.wav
deleted file mode 100644
index 36a20ea..0000000
--- a/tests/auto/qwavedecoder/data/notawav.wav
+++ /dev/null
@@ -1 +0,0 @@
-Ceci n'est pas une wav file
diff --git a/tests/auto/qwavedecoder/data/onebyte.wav b/tests/auto/qwavedecoder/data/onebyte.wav
deleted file mode 100644
index d00491f..0000000
--- a/tests/auto/qwavedecoder/data/onebyte.wav
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/tests/auto/qwavedecoder/qwavedecoder.pro b/tests/auto/qwavedecoder/qwavedecoder.pro
deleted file mode 100644
index db3f264..0000000
--- a/tests/auto/qwavedecoder/qwavedecoder.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-TARGET = tst_qwavedecoder
-HEADERS += ../../../src/multimedia/effects/qwavedecoder_p.h
-SOURCES += tst_qwavedecoder.cpp \
- ../../../src/multimedia/effects/qwavedecoder_p.cpp
-
-QT += multimedia-private testlib network
-CONFIG += no_private_qt_headers_warning testcase
-
-data.files = data/*
-data.path = data
-DEPLOYMENT += data
-
diff --git a/tests/auto/qwavedecoder/tst_qwavedecoder.cpp b/tests/auto/qwavedecoder/tst_qwavedecoder.cpp
deleted file mode 100644
index c91ae7c..0000000
--- a/tests/auto/qwavedecoder/tst_qwavedecoder.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 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 <private/qwavedecoder_p.h>
-
-#include <QNetworkAccessManager>
-#include <QNetworkRequest>
-#include <QNetworkReply>
-
-#ifndef QTRY_COMPARE
-#define QTRY_COMPARE(__expr, __expected) \
- do { \
- const int __step = 50; \
- const int __timeout = 1000; \
- if (!(__expr)) { \
- QTest::qWait(0); \
- } \
- for (int __i = 0; __i < __timeout && !((__expr) == (__expected)); __i+=__step) { \
- QTest::qWait(__step); \
- } \
- QCOMPARE(__expr, __expected); \
- } while (0)
-#endif
-
-
-class tst_QWaveDecoder : public QObject
-{
- Q_OBJECT
-public:
- enum Corruption {
- None = 1,
- NotAWav = 2,
- NoSampleData = 4,
- FormatDescriptor = 8,
- FormatString = 16,
- DataDescriptor = 32
- };
-
-public slots:
-
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-
-private slots:
-
- void file_data();
- void file();
-
- void http_data() {file_data();}
- void http();
-
- void readAllAtOnce();
- void readPerByte();
-};
-
-void tst_QWaveDecoder::init()
-{
-}
-
-void tst_QWaveDecoder::cleanup()
-{
-}
-
-void tst_QWaveDecoder::initTestCase()
-{
-}
-
-void tst_QWaveDecoder::cleanupTestCase()
-{
-}
-
-void tst_QWaveDecoder::file_data()
-{
- QTest::addColumn<QString>("file");
- QTest::addColumn<tst_QWaveDecoder::Corruption>("corruption");
- QTest::addColumn<int>("channels");
- QTest::addColumn<int>("samplesize");
- QTest::addColumn<int>("samplerate");
- QTest::addColumn<QAudioFormat::Endian>("byteorder");
-
- QTest::newRow("File is empty") << QString("empty.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("File is one byte") << QString("onebyte.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("File is not a wav(text)") << QString("notawav.wav") << tst_QWaveDecoder::NotAWav << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("Wav file has no sample data") << QString("nosampledata.wav") << tst_QWaveDecoder::NoSampleData << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt fmt chunk descriptor") << QString("corrupt_fmtdesc_1_16_8000.le.wav") << tst_QWaveDecoder::FormatDescriptor << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt fmt string") << QString("corrupt_fmtstring_1_16_8000.le.wav") << tst_QWaveDecoder::FormatString << -1 << -1 << -1 << QAudioFormat::LittleEndian;
- QTest::newRow("corrupt data chunk descriptor") << QString("corrupt_datadesc_1_16_8000.le.wav") << tst_QWaveDecoder::DataDescriptor << -1 << -1 << -1 << QAudioFormat::LittleEndian;
-
- QTest::newRow("File isawav_1_8_8000.wav") << QString("isawav_1_8_8000.wav") << tst_QWaveDecoder::None << 1 << 8 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_8_44100.wav") << QString("isawav_1_8_44100.wav") << tst_QWaveDecoder::None << 1 << 8 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_8_8000.wav") << QString("isawav_2_8_8000.wav") << tst_QWaveDecoder::None << 2 << 8 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_8_44100.wav") << QString("isawav_2_8_44100.wav") << tst_QWaveDecoder::None << 2 << 8 << 44100 << QAudioFormat::LittleEndian;
-
- QTest::newRow("File isawav_1_16_8000_le.wav") << QString("isawav_1_16_8000_le.wav") << tst_QWaveDecoder::None << 1 << 16 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_16_44100_le.wav") << QString("isawav_1_16_44100_le.wav") << tst_QWaveDecoder::None << 1 << 16 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_16_8000_be.wav") << QString("isawav_2_16_8000_be.wav") << tst_QWaveDecoder::None << 2 << 16 << 8000 << QAudioFormat::BigEndian;
- QTest::newRow("File isawav_2_16_44100_be.wav") << QString("isawav_2_16_44100_be.wav") << tst_QWaveDecoder::None << 2 << 16 << 44100 << QAudioFormat::BigEndian;
-
- // 32 bit waves are not supported
- QTest::newRow("File isawav_1_32_8000_le.wav") << QString("isawav_1_32_8000_le.wav") << tst_QWaveDecoder::FormatDescriptor << 1 << 32 << 8000 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_1_32_44100_le.wav") << QString("isawav_1_32_44100_le.wav") << tst_QWaveDecoder::FormatDescriptor << 1 << 32 << 44100 << QAudioFormat::LittleEndian;
- QTest::newRow("File isawav_2_32_8000_be.wav") << QString("isawav_2_32_8000_be.wav") << tst_QWaveDecoder::FormatDescriptor << 2 << 32 << 8000 << QAudioFormat::BigEndian;
- QTest::newRow("File isawav_2_32_44100_be.wav") << QString("isawav_2_32_44100_be.wav") << tst_QWaveDecoder::FormatDescriptor << 2 << 32 << 44100 << QAudioFormat::BigEndian;
-}
-
-void tst_QWaveDecoder::file()
-{
- QFETCH(QString, file);
- QFETCH(tst_QWaveDecoder::Corruption, corruption);
- QFETCH(int, channels);
- QFETCH(int, samplesize);
- QFETCH(int, samplerate);
- QFETCH(QAudioFormat::Endian, byteorder);
-
- QFile stream;
- stream.setFileName(QString("data/") + file);
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
- QSignalSpy parsingErrorSpy(&waveDecoder, SIGNAL(parsingError()));
-
- if (corruption == NotAWav) {
- QSKIP("Not all failures detected correctly yet", SkipSingle);
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == NoSampleData) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() == 0);
- QVERIFY(waveDecoder.duration() == 0);
- } else if (corruption == FormatDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == FormatString) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(!waveDecoder.audioFormat().isValid());
- } else if (corruption == DataDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(waveDecoder.size() == 0);
- } else if (corruption == None) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() > 0);
- QVERIFY(waveDecoder.duration() == 250);
- QAudioFormat format = waveDecoder.audioFormat();
- QVERIFY(format.isValid());
- QVERIFY(format.channels() == channels);
- QVERIFY(format.sampleSize() == samplesize);
- QVERIFY(format.sampleRate() == samplerate);
- if (format.sampleSize() != 8) {
- QVERIFY(format.byteOrder() == byteorder);
- }
- }
-
- stream.close();
-}
-
-void tst_QWaveDecoder::http()
-{
- QFETCH(QString, file);
- QFETCH(tst_QWaveDecoder::Corruption, corruption);
- QFETCH(int, channels);
- QFETCH(int, samplesize);
- QFETCH(int, samplerate);
- QFETCH(QAudioFormat::Endian, byteorder);
-
- QFile stream;
- stream.setFileName(QString("data/") + file);
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QNetworkAccessManager nam;
-
- QNetworkReply *reply = nam.get(QNetworkRequest(QUrl::fromLocalFile(QString::fromLatin1("data/") + file)));
-
- QWaveDecoder waveDecoder(reply);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
- QSignalSpy parsingErrorSpy(&waveDecoder, SIGNAL(parsingError()));
-
- if (corruption == NotAWav) {
- QSKIP("Not all failures detected correctly yet", SkipSingle);
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == NoSampleData) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() == 0);
- QVERIFY(waveDecoder.duration() == 0);
- } else if (corruption == FormatDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- } else if (corruption == FormatString) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(!waveDecoder.audioFormat().isValid());
- } else if (corruption == DataDescriptor) {
- QTRY_COMPARE(parsingErrorSpy.count(), 1);
- QCOMPARE(validFormatSpy.count(), 0);
- QVERIFY(waveDecoder.size() == 0);
- } else if (corruption == None) {
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QCOMPARE(parsingErrorSpy.count(), 0);
- QVERIFY(waveDecoder.audioFormat().isValid());
- QVERIFY(waveDecoder.size() > 0);
- QVERIFY(waveDecoder.duration() == 250);
- QAudioFormat format = waveDecoder.audioFormat();
- QVERIFY(format.isValid());
- QVERIFY(format.channels() == channels);
- QVERIFY(format.sampleSize() == samplesize);
- QVERIFY(format.sampleRate() == samplerate);
- if (format.sampleSize() != 8) {
- QVERIFY(format.byteOrder() == byteorder);
- }
- }
-
- delete reply;
-}
-
-void tst_QWaveDecoder::readAllAtOnce()
-{
- QFile stream;
- stream.setFileName(QString("data/isawav_2_8_44100.wav"));
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
-
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QVERIFY(waveDecoder.size() > 0);
-
- QByteArray buffer;
- buffer.resize(waveDecoder.size());
-
- qint64 readSize = waveDecoder.read(buffer.data(), waveDecoder.size());
- QVERIFY(readSize == waveDecoder.size());
-
- readSize = waveDecoder.read(buffer.data(), 1);
- QVERIFY(readSize == 0);
-
- stream.close();
-}
-
-void tst_QWaveDecoder::readPerByte()
-{
- QFile stream;
- stream.setFileName(QString("data/isawav_2_8_44100.wav"));
- stream.open(QIODevice::ReadOnly);
-
- QVERIFY(stream.isOpen());
-
- QWaveDecoder waveDecoder(&stream);
- QSignalSpy validFormatSpy(&waveDecoder, SIGNAL(formatKnown()));
-
- QTRY_COMPARE(validFormatSpy.count(), 1);
- QVERIFY(waveDecoder.size() > 0);
-
- qint64 readSize = 0;
- char buf;
- for (int ii = 0; ii < waveDecoder.size(); ++ii)
- readSize += waveDecoder.read(&buf, 1);
- QVERIFY(readSize == waveDecoder.size());
- QVERIFY(waveDecoder.read(&buf,1) == 0);
-
- stream.close();
-}
-
-Q_DECLARE_METATYPE(tst_QWaveDecoder::Corruption)
-Q_DECLARE_METATYPE(QAudioFormat::Endian)
-
-QTEST_MAIN(tst_QWaveDecoder)
-
-#include "tst_qwavedecoder.moc"
-
diff --git a/tests/systemtests/audio/sys_audio.qtt b/tests/systemtests/audio/sys_audio.qtt
deleted file mode 100644
index 142a964..0000000
--- a/tests/systemtests/audio/sys_audio.qtt
+++ /dev/null
@@ -1,295 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $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
-
-testcase = {
-
-/* Notes
-Ensure 2 test .mp3 file available on device
-Ensure 2 test .wav file available on device
-Ensure a valid m3u file referring to locations where indicated media is available on the device
-Ensure the device can ping destinations on the network (if applicable)
-Have an audio stream url available (e.g. http://202.6.74.107:8060/triplej.mp3 for example)
-Ensure access to Internet available to device either via 3G and WiFi
-SIM cards from Vodafone and Testra (Australia) needed for 3G streaming testing
-*/
- initTestCase: function()
- {
- },
-
- play_an_audio_file_data: {
- mp3:[".mp3", "filename", "mpeg audio layer 3"],
- wav:[".wav", "filename", "waveform audio"]
- },
-
- play_an_audio_file: function(extension, filename, format)
- {
- // Test meta data
- testApplication = "Multimedia - Play Audio File";
- testBinary = "player";
- testGoal = "Verify that Audio files can be played.";
- testPreconditions = "Audio files in " + extension + " format are available on device.";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select [Open] | |
- | Click Open, then select desired "+filename+extension+" file to return to player UI | Verify selected file has populated playlist window |
- | Highlight file in playlist window by clicking on it | |
- | Select [Play] | Verify that the " + format + " file is audible on device |
- "));
- },
-
- basic_player_controls_for_audio_data: {
- mp3:[".mp3", "filename", "mpeg audio layer 3"],
- },
-
- basic_player_controls_for_audio: function(extension, filename, format)
- {
- // Test meta data
- testApplication = "Multimedia - Audio Player Controls";
- testBinary = "player";
- testGoal = "Verify basic API for controling audio playback ";
- testPreconditions = "a test "+extension+" file is available on device";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select Open | |
- | In [Open Files] either double click the desired "+filename+extension+" or highlight and click Open to be returned to the player UI | |
- | Highlight and click Play or doubleclick to play the file | Verify that file plays properly from the start |
- | | Verify that the correct track details are displayed on the application title bar |
- | Select [Pause] | Verify that file has paused |
- | | Verify that [Pause] icon has now changed to a [Play] icon |
- | Select [Play] | Verify that file continues to play properly from where previously paused. |
- | | Verify that [Play] icon is now a [Pause] icon again |
- | Select [Next File] control | Verify that next file in playlist is playing from start |
- | | Verify that the title bar has changed to reflect the seclected audio track |
- | After some time (10-20 sec) Select [Beginning of File] icon | Verify that current file is being played from start |
- | Let some arbitrary time pass, then Select [Beginning of File] control twice in quick succession. | Verify that previous file in playlist is playing from start |
- | Select [Stop] control | Verify that file has stopped playing |
- | Select [Play] | Verify that file continues to play from start of file. |
- | Let file play till end | Verify player continues playing the next file in the playlist window |
- | After some arbitrary time, Select [Stop] | |
- | Select [Next File] control | Verify that next file in playlist is highlighted |
- | | Verify that file is not automatically playing |
- | Select [Beginning of File] control | Verify that previous file in playlist is highlighted |
- | Select file in playlist | Verify that file plays in player. |
- | Select number of files greater than can be displayed without scrolling in to playlist | Verify that list can be scrolled through |
- | With file playing, verify that hardware keys can change volume up and down | |
- | With file playing, verify that UI volume control slider can change volume up and down | |
- | Select volume at 50% (or thereabout) | |
- | Select [Mute] | Verify that sound is muted while file is playing |
- | | Verify that [Mute] control is displaying the Muted icon |
- | Select [Mute] control again | Verify that sound has reverted back to level selected prior to muting |
- | Click on Full Screen | Verify that nothing happens when playing an audio file |
- | Click Color Option | Verify that this has no effect when playing an audio file |
- "));
-
- },
-
- seek_controls_for_audio_data: {
- mp3:[".mp3", "filename", "mpeg audio layer 3"],
- },
-
- seek_controls_for_audio: function(extension, filename, format)
- {
- // Test meta data
- testApplication = "Multimedia - Audio Seek Controls";
- testBinary = "player";
- testGoal = "Verify FastForward and Rewind functionality of the API";
- testPreconditions = "a test "+extension+" file is available on device";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select [Open] | |
- | In [Open File] select the "+filename+extension+" file to return to player UI | |
- | Select [Play] to play the file | |
- | Click on the [1.0x] (Multiplier) dropbox and select 2.0x | Verify that file is playing at double speed |
- | With multiplier control set on [2.0], select a new file from the playlist window | Verify that the Multiplier control has reverted back to [1.0x] |
- | | Verify that the audio is playing at normal speed |
- | Click on the [Multiplier] control and select 0.5x | Verify that file is playing at half speed |
- | With multiplier control set on [0.5], select a new file from the playlist window | Verify that the Multiplier control has reverted back to [1.0x] |
- | | Verify that the audio is playing at normal speed |
- | Drag positional slider to right, then release | Verify that player continues to play file at later part of file |
- | Drag positional slider to left, then release | Verify that player continues to play file at earlier part of file |
- | Click on the [1.0x] (Multiplier) dropbox and select 2.0x | Verify that file is playing at double speed |
- | Drag positional slider to right, then release | Verify that player continues to play file at later part of file at double speed |
- | Drag positional slider to left, then release | Verify that player continues to play file at earlier part of file at double speed |
- | Click on the Multiplier dropbox and select 0.5x | Verify that file is playing at half the speed |
- | Drag positional slider to right, then release | Verify that player continues to play file at later part of file at half speed |
- | Drag positional slider to left, then release | Verify that player continues to play file at earlier part of file at half speed |
- "));
- },
-
-
-
- basic_controls_for_streamed_audio_content: function()
- {
-
-//*Note* For this test you need a playlist of streaming media urls. Suggest: http://202.6.74.107:8060/triplej.mp3 ; http://www.abc.net.au/streaming/triplej.asx ; rtsp://media1.abc.net.au/broadcast/triplej.rm ; mms://media3.abc.net.au/triplej ; depending on your platform and backend support.
-
- // Test meta data
- testApplication = "Multimedia - Content Streaming";
- testBinary = "player";
- testGoal = "Verify playback of streaming audio media";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | In player application, Select or Tap [Open] | |
- | In [Open File] navigate and highlight test (streaming) playlist file | |
- | Select or Tap on selected file to return to player UI | Verify selected file has populated playlist |
- | Highlight file in playlist by selecting or clicking it | |
- | Select [Play] | Verify that stream is playing on device |
- | Select [Pause] | Verify that stream is paused on device |
- | | Verify that the [Pause] button has changed to a [Play] button |
- | Select [Play] again | Verify that stream is playing on device |
- | Select [Stop] | |
- | Open local mp3 file in to play list and select it to play | Verify that the mp3 plays while the stream name is still present in the playlist |
- | Re-select the stream in the playlist | Verify that the stream starts playing again |
- | Select [Next File] | Verify that the player started playing the next file in the playlist |
- | Select [Previous File] | Verify that the original stream is playing again |
- | During stream playback, have headphones connected to device | Verify that the sound is now playing through the headphones |
- | Invoke a system notification on the device (such as an incoming SMS) | Verify that the device correctly transmits the audible system notification through the devices speakers and then returns to playing the stream through the headphones |
- "));
- },
-
- record_an_audio_file: function()
- {
-
- // Test meta data
- testApplication = "Multimedia - Recording Audio";
- testBinary = "audiorecorder";
- testGoal = "Verify that audio can be recorded.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select Input Device | |
- | Select Audio Codec | |
- | Select File Container | |
- | Select Sample Rate | |
- | Select Quality and Bitrate | |
- | Select Output... and select location and name of output file | |
- | Select Record | Verify that [Record] button has changed in to [Stop] |
- | | Verify that Duration is counting seconds |
- | | Verify that Recording is displayed |
- | Select Stop | Verify that Duration is now 0 |
- | Select Output File in file browser | Verify that an audio file has been generated |
- | Play output file in media player | Verify that audible audio is recorded in file |
- "));
- },
-
-pause_recording_an_audio_file: function()
- {
-
- // Test meta data
- testApplication = "Multimedia - Pause Recording Audio";
- testBinary = "audiorecorder";
- testGoal = "Verify API to be able to pause audio recording without unwanted artifacts.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select Input Device | |
- | Select Audio Codec | |
- | Select File Container | |
- | Select Sample Rate | |
- | Select Quality and Bitrate | |
- | Select Output... and select location and name of output file | |
- | Select Record | Verify that [Record] button has changed in to [Stop] |
- | | Verify that Duration is counting seconds |
- | | Verify that Recording is displayed |
- | Speak in to the microphone. Suggest counting from 1 to 5 | |
- | Select Pause | Verify that instead of Duration, Paused is displayed |
- | Keep speaking in to microfon, continue counting from 6 to 10 | |
- | Select Resume | Verify that the counter has resumed the seconds count from where it was previously paused. |
- | Continue counting from 11 to 15 in to the microphone | |
- | After a arbitrary time, Stop the recording. | |
- | Select Output File in file browser | Verify that an audio file has been generated |
- | Play output file in media player | Verify that audible audio is recorded in file and that audio is only recorded for period that Pause was not selected |
- | | Verify that the recording reproduces the counting from 1 to 5 then continues from 11 to 15 and that the counting from 6 - 10 is not recorded |
- | | Verify there is no audible artifact that separates the two or more recording periods, that is that the joint is seamless |
- "));
- },
-}
diff --git a/tests/systemtests/camera/sys_camera.qtt b/tests/systemtests/camera/sys_camera.qtt
deleted file mode 100644
index 781e50b..0000000
--- a/tests/systemtests/camera/sys_camera.qtt
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $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
-
-testcase = {
-
-/* Notes
-*/
- initTestCase: function()
- {
- },
-
- take_a_photo: function()
- {
- // Test meta data
- testApplication = "Multimedia - Still Camera";
- testBinary = "declarative camera";
- testGoal = "Verify that a photo can be taken with the camera.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select Image tab to put camera in still mode | Verify the intended scene is reproduced in the preview pane/viewfinder |
- | Select Capture Photo | Verify that image is shown on screen for preview |
- | | Verify that a new file is in the Images folder and accessabble with the image viewer |
- | Select given image | Verify that it is a true representation of the intended sceen |
- | | Verify the image has no unintended artifacts and noise and is properly formatted |
- "));
- },
-
-change_camera_settings: function()
-{
- // Test meta data
- testApplication = "Multimedia - Still Camera";
- testBinary = "declarative camera";
- testGoal = "Verify that the camera can change its Still Camera settings successfully.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select the primary camera device from Menu/Devices | Verify the viewfinder is displaying the scene from the main camera device |
- | Select Capture Photo | Verify that a photo was taken and that a preview image is shown on screen |
- | Select the secandary camera device from Menu/Devices | Verify the viewfinder is displaying the scene from the secondary camera device |
- | Select Capture Photo | Verify that a photo was taken from the secondary camera device and that a preview image is shown on screen |
- | Change Exposure Compensatioin on the slider in the main UI | Verify that the change in value affects the picture qwality in expected fashion |
- | Select Settings/File/Setrtings | Verify that you have an option to change Image Resolution, Image Format and Quality |
- | Change Image Resolution to another supported resolution | Verify that you can take stills with various resolutions |
- | Selct Flash always on from the setitngs menu | Verify that when photo is taken, the flash is always triggered |
- | Select No Flash on from the menu | Verify that despite the lack of natural light, the flash will not trigger when taking photos |
- | Change Image Format to another supported format | Verify that you can take stills with various Image Formats |
- | Sellect Settings/Device/Secondary Device | Verify that you can see the view from the Front Facing Camera on the viewfinder |
- | | Varify that you can take still images from the Front Facing Camera |
- | Select Settings/File/Exit | Verify that the application has now closed |
-
- "));
-},
-
- take_a_video: function()
- {
- // Test meta data
- testApplication = "Multimedia - Video Camera";
- testBinary = "camera";
- testGoal = "Verify that the camera can capture and save an audio/video file.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select Video tab to put camera in video mode | Verify the intended scene is reproduced in the preview/viewfinder |
- | Select Record Video | Verify that video is shown on screen for preview |
- | Select Pause | Verify that the Recorded counter has stopped |
- | Select Record again | Verify that the Recorded counter has continued counting |
- | Select Stop | Verify that the recording has now stopped |
- | | Verify that a new file is in the Images folder and accessabble with the player |
- | Select given video | Verify that it is a true representation of the intended sceen |
- | | Verify that the Pause in the recording has happened and that recording continued without an issue after that |
- | | Verify the image has no unintended artifacts and noise and is properly formatted |
- "));
- },
-
- change_video_settings: function()
- {
- // Test meta data
- testApplication = "Multimedia - Video Camera";
- testBinary = "camera";
- testGoal = "Verify that the camera can change its Video settings successfully.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select Video tab to put camera in video mode | Verify the intended scene is reproduced in the preview/viewfinder |
- | In the Menu Bar, select Settings/Devices | Verify that you can select Primay and Secondary Camera on Device |
- | Select Secondary Camera | Verify that devise is now showing video stram from Front Facing camera |
- | Select Settings/File/Settings | Verify that you now have otion to select Audio Codecs, Resolution Sample Rate, Framerate, Quality, Video Codecs and Container Format |
- | Change Audio Codecs to another supported Codecs | Verify that camera can record |
- | Change Resolutiuon to another supported Resolution | Verify that camera can record |
- | Change Sample Rate to another supported Sample Rate | Verify that camera can record |
- | Change Framerate to another supported Framerate | Verify that camera can record |
- | Change Quality | Verify that camera can record |
- | Change Video Codecs to another supported Video Codecs | Verify that camera can record |
- | Change Container Format | Verify that camera can record |
- | Change Quality | Verify that camera can record |
- "));
- },
-
-
-
-
-
-
-}
diff --git a/tests/systemtests/radio/sys_radio.qtt b/tests/systemtests/radio/sys_radio.qtt
deleted file mode 100644
index fa82b63..0000000
--- a/tests/systemtests/radio/sys_radio.qtt
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $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
-
-testcase = {
-
-/* Notes
-Ensure radio reception is available in testing area
-A device specific headset is required to be connected to device for radio testing
-*/
-
- initTestCase: function()
- {
- },
-
- play_a_radio_transmission: function()
- {
- // Test meta data
- testTitle = "Multimedia - Play Radio Transmission";
- testBinary = "radio";
- testSource ="$QTDIR/qtmultimediakit/examples/Radio"
- testGoal = "Verify that radio stations can be played.";
- testPreconditions = "1. Radio reception should be available in the test area.<br>2. Wired headphones act as an antena to the device and must be connected.";
- testGroups = "BAT, 1.2";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | | Verify that 0 KHz and No Signal is displayed |
- | Select [Scan Up] | Audible white noise should be heard as the radio searches for a frequency lock. Frequency should be increasing in 100 KHz steps until a strong signal is found |
- | | Verify that a radio signal can be heard. It is possible for the radio to lock on a silent station signal, in that case progress further up the frequencies |
- | Once a strong audible signal is found | Verify that the stations frequency and Got Signal message is displayed |
- | Select [Scan Up] | Verify that the radio has moved off the previous station and in progressing through the frequencies |
- | Once on a radio station, Select [Freq Up] | Verify that the radio frequency has moved off the station by 100KHz and is stationary |
- | Select [Freq Up] again | Verify that the radio frequency has moved up another 100KHz and is stationary |
- | Select [Freq Down] twice | Verify that you are now at the frequency of the previous radio station and that the signal is audible |
- | Select [Scan Down] | Verify that the radio has moved off the previous station, progressing through the frequencies, and finds the original station from this test |
- | Exit the radio application | Verify that the radio station is no longer heard |
- "));
- },
-
- radio_interrupted_by_system_notification: function()
- {
- // Test meta data
- testTitle = "Multimedia - Radio interrupted by System Notification";
- testBinary = "radio";
- testSource ="$QTDIR/qtmultimediakit/examples/Radio"
- testGoal = "Verify that radio can recover audio playback from various system notifications.";
- testPreconditions = "1. Radio reception should be available in the test area.<br>2. Wired headphones act as an antena to the device and must be connected.";
- testGroups = "BAT, 1.2";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Locate a strong radio station signal by scanning up/down | |
- | While on a strong and audible radio signal, evoke a system notification on device (eg: incoming SMS, alarm notification) | Verify that the radio has muted, and after the system notification has been delivered, the radio reverts to outputting the audio signal back through the headphones |
- | While on a strong and audible radio signal, call the device | Verify that the radio has been muted, and stays muted during the duration of the call, and resumes once the call has ended |
- "));
- },
-
- radio_volume_control: function()
- {
- // Test meta data
- testTitle = "Multimedia - Radio Volume Control";
- testBinary = "radio";
- testGoal = "Verify that the radio volume can be controlled via volume controls.";
- testPreconditions = "1. Radio reception should be available in the test area.<br>2. Wired headphones act as an antena to the device and must be connected.";
- testGroups = "BAT, 1.2";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Locate a strong radio station signal by scanning up or down the frequency | |
- | While on a strong and audible radio signal, move volume slider to the right | Verify that the audio volume of the radio station is amplified |
- | Move volume slider to the left | Verify that the audio volume is lowered |
- | Move the volume slider all the way to the left | Verify that the sound is now completely muted |
- | Return the volume to a value above 50% and click the Mute/unmute comend | Verify that the audio changes from being muted to unmuted and back |
- "));
- },
-
- display_radio_metadata: function()
- {
- // Test meta data
- testTitle = "Multimedia - Display Radio Metadata";
- testBinary = "radio";
- testGoal = "Verify that the radio API can display properly formated meta data.";
- testPreconditions = "1. Radio reception should be available in the test area.<br>2. Wired headphones act as an antena to the device and must be connected.";
- testGroups = "BAT, 1.2";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Locate a strong radio station signal by scanning up or down the frequency | Verify that the Frequency field is populated with the correct frequency for the given radio station |
- | | Verify that the Volume field is displaying the proper volume % |
- | Click on the Mute/Unmute comand | Verify that Muted field changes from 'false' to 'true' and back |
- | | If applicable, confirm that the Station Name field is properly displayed |
- | | If applicable, confirm that the Station Id field is properly displayed |
- | | If applicable, confirm that the Program Type field is properly displayed |
- | | If applicable, confirm that the PRadio Text field is properly displayed |
- "));
- },
-}
diff --git a/tests/systemtests/video/sys_video.qtt b/tests/systemtests/video/sys_video.qtt
deleted file mode 100644
index 5922745..0000000
--- a/tests/systemtests/video/sys_video.qtt
+++ /dev/null
@@ -1,269 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $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
-
-testcase = {
-
-/* Notes
-Ensure 2 test .mp4 files are available on device
-Ensure the device can ping destinations on the network (if applicable)
-Have a video stream url available (e.g. http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4)
-Ensure access to Internet available to device
-Ensure an active SIM card is available on the device. As some video streaming tests are carrier spacific, it is recomended in Australia to have access to Testra, Optus and Vodafone SIM's
-*/
- initTestCase: function()
- {
- },
-
- play_a_video_file_data: {
- mp4:[".mp4", "filename", "mpeg video layer 4"]
- },
-
- play_a_video_file: function(extension, filename, format)
- {
- // Test meta data
- testApplication = "Multimedia - Play Video File";
- testBinary = "player";
- testGoal = "Verify that local, networked and carrier streamed video files can be played. ";
- testPreconditions = "1. A test "+extension+" file is available on device.<br>2. Internet acces is enabled on the device.<br>3. Operator SIM cards are available to the device";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select [Open] | |
- | In [Open File] select the "+filename+extension+" file to return to player UI | |
- | Select [Play] to play the file | Verify selected file has populated playlist |
- | Highlight file in playlist by clicking on it | |
- | Select [Play] | Verify that .MP4 file is playing on device |
- "));
- },
-
- basic_controls_for_video_data: {
- mp4:[".mp4", "filename", "mpeg video layer 4"]
- },
-
- basic_controls_for_video: function(extension, filename, format)
- {
- // Test meta data
- testApplication = "Multimedia - Video Controls";
- testBinary = "player";
- testGoal = "Verify the API for basic video playback functionality";
- testPreconditions = "a test "+extension+" file is available on device.";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | Select [Open] | |
- | In [Open File] select the "+filename+extension+" file to return to player UI | |
- | Select [Play] to play the file | |
- | Select [Pause] | Verify that file has paused |
- | | Verify that the [Pause] icon has changed to a [Play] icon |
- | Select [Play] | Verify that the [Play] icon has changed to a [Pause] icon |
- | | Verify that file continues to play from where previously paused. |
- | Select [Next File] | Verify that next file in playlist is playing from start |
- | After some time (10-20 sec) Select [Beginning of File] control | Verify that current file is being played from start |
- | Let arbitrary time pass, then Select [Beginning of File] control twice in quick succession.| Verify that previous file in playlist is playing from start |
- | Select [Stop] | Verify that file has stopped playing |
- | Select [Play] | Verify that file continues to play from start of file. |
- | Let file play till end | Verify player stops at end of file. |
- | Start playing file. | |
- | After arbitrary time, Select [Stop] | |
- | Select [Next File] | Verify that next file in playlist is highlighted |
- | | Verify that file is not automatically playing |
- | Select [Beginning of File] | Verify that previous file in playlist is highlighted |
- | Select file in playlist | Verify that file plays in player. |
- | Select number of files greater than can be displayed without scrolling in to playlist | Verify that list can be scrolled through |
- | With file playing, verify that hardware keys can change volume up and down | |
- | With file playing, verify that UI volume control slider can change volume up and down | |
- | Select volume at 50% (or thereabout) | |
- | Select [Mute] control | Verify that sound is muted while file is playing |
- | | Verify that [Mute] control is displaying the Muted icon |
- | Select [Mute] control again | Verify that sound has reverted back to level selected prior to muting |
- | Drag positional slider to right, then release | Verify that player continues to play file at later part of file |
- | Drag positional slider to left, then release | Verify that player continues to play file at earlier part of file |
- | Start playing file | |
- | Select [FullScreen] control | Verify that video is now playing in Fullscreen mode |
- | When at end of current file | Verify that next file in playlist is being played |
- | When at last file in playlist and at end of file | Verify that fullscreen mode is exited and user returned to player interface and that [FullScreen] is no longer selected. |
- "));
- },
-
- seek_controls_for_video: function()
- {
- // Test meta data
- testApplication = "Multimedia - Video Seek";
- testBinary = "player";
- testGoal = "Verify the API for Fast Forward/Rewind functionality.";
- testPreconditions = "Video files are available for testing on the device.";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | While playing a video file, Select or Tap on [1.0] (Multiplier) control | |
- | Select [2.0] | Verify that file is playing at double speed |
- | Select [Multiplier] control | |
- | Select [0.5] | Verify that file is playing at half speed |
- "));
- },
-
- basic_controls_for_streamed_content: function()
- {
-
-//*Note* In order to play stream on Maemo, invoke player with following command from console:
-// run-standalone.sh ./player http://202.6.74.107:8060/triplej.mp3
-//*Note* For this test you need a playlist of streaming media urls. Suggest: http://202.6.74.107:8060/triplej.mp3 ; http://www.abc.net.au/streaming/triplej.asx ; rtsp://media1.abc.net.au/broadcast/triplej.rm ; mms://media3.abc.net.au/triplej ; depending on your platform and backend support.
-
- // Test meta data
- testApplication = "Multimedia - Content Streaming";
- testBinary = "player";
- testGoal = "Verify various forms of video streaming.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | In player application, Select or Tap [Open] | |
- | In [Open File] navigate and highlight test (streaming) playlist file | |
- | Select or Tap on selected file to return to player UI | Verify selected file has populated playlist |
- | Highlight file in playlist by selecting or clicking it | |
- | Select [Play] | Verify that stream is playing on device |
- | Select [Pause] | Verify that stream is paused on device |
- | | Verify that the [Pause] button has changed to a [Play] button |
- | Select [Play] again | Verify that stream is playing on device |
- | Select [Stop] | |
- | Open local mp3 file in to play list and select it to play | Verify that the mp3 plays while the stream name is still present in the playlist |
- | Re-select the stream in the playlist | Verify that the stream starts playing again |
- | Select [Next File] | Verify that the player started playing the next file in the playlist |
- | Select [Previous File] | Verify that the original stream is playing again |
- | During stream playback, have headphones connected to device | Verify that the sound is now playing through the headphones |
- | Invoke a system notification on the device (such as an incoming SMS) | Verify that the device correctly transmits the audible system notification through the devices speakers and then returns to playing the stream through the headphones |
- "));
- },
-
- take_a_video: function()
- {
- // Test meta data
- testApplication = "Multimedia - Video Camera";
- testBinary = "camera";
- testGoal = "Verify that the camera can capture and save an audio/video file.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select Video tab to put camera in video mode | Verify the intended scene is reproduced in the preview/viewfinder |
- | Select Record Video | Verify that video is shown on screen for preview |
- | Select Pause | Verify that the Recorded counter has stopped |
- | Select Record again | Verify that the Recorded counter has continued counting |
- | Select Stop | Verify that the recording has now stopped |
- | | Verify that a new file is in the Images folder and accessabble with the player |
- | Select given video | Verify that it is a true representation of the intended sceen |
- | | Verify that the Pause in the recording has happened and that recording continued without an issue after that |
- | | Verify the image has no unintended artifacts and noise and is properly formatted |
- "));
- },
-
- change_video_settings: function()
- {
- // Test meta data
- testApplication = "Multimedia - Video Camera";
- testBinary = "camera";
- testGoal = "Verify that the camera can change its Video settings successfully.";
- testPreconditions = "";
- testGroups = "BAT";
-
- // Test steps
- prompt(twiki("---+++ " + testApplication + "<br><br>
- *Goal:* " + testGoal + "<br>
- *Pre-Requisites:* " + testPreconditions + "<br>
- *Tested Binary:* " + testBinary + "<br>
-
- | *Step* | *Verification* |
- | Launch " + testBinary + " | App launches normally |
- | If device has lens cover, make sure it is open | |
- | Select Video tab to put camera in video mode | Verify the intended scene is reproduced in the preview/viewfinder |
- | In the Menu Bar, select Settings/Devices | Verify that you can select Primay and Secondary Camera on Device |
- | Select Secondary Camera | Verify that devise is now showing video stram from Front Facing camera |
- | Select Settings/File/Settings | Verify that you now have otion to select Audio Codecs, Resolution Sample Rate, Framerate, Quality, Video Codecs and Container Format |
- | Change Audio Codecs to another supported Codecs | Verify that camera can record |
- | Change Resolutiuon to another supported Resolution | Verify that camera can record |
- | Change Sample Rate to another supported Sample Rate | Verify that camera can record |
- | Change Framerate to another supported Framerate | Verify that camera can record |
- | Change Quality | Verify that camera can record |
- | Change Video Codecs to another supported Video Codecs | Verify that camera can record |
- | Change Container Format | Verify that camera can record |
- | Change Quality | Verify that camera can record |
- "));
- },
-
-}
diff --git a/tests/tests.pro b/tests/tests.pro
deleted file mode 100644
index 2bd49bd..0000000
--- a/tests/tests.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += auto
-
-# Disabled since we don't have any source.
-# SUBDIRS += benchmarks manual