API unit tests from Maemo API test team.
A large number of tweaks and changes to original tests, and refactor a lot of the mock backends to reduce duplication. Changed viewfinder test case to use mock service and provider so that it matches the image capture test case. Reviewed-by: Jonas Rabbe (cherry picked from commit e40bef5508a4165cec4a46b97115aed461027fa5) Also licence header fix: (cherry picked from commit e9ee9e8c48b45b97d62ee4a82e400fa9d8ea8107) Change-Id: Ic59891d75563bb2e008a336eea859e8c44d8d831 Reviewed-on: http://codereview.qt.nokia.com/2078 Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
1e4dda9710
commit
a6128410da
@@ -5,6 +5,9 @@ QT += multimediakit-private
|
||||
# TARGET = tst_qmediarecorder
|
||||
# CONFIG += testcase
|
||||
|
||||
include (../qmultimedia_common/mock.pri)
|
||||
include (../qmultimedia_common/mockrecorder.pri)
|
||||
|
||||
HEADERS += tst_qmediarecorder.h
|
||||
SOURCES += main.cpp tst_qmediarecorder.cpp
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ void tst_QMediaRecorder::initTestCase()
|
||||
qRegisterMetaType<QMediaRecorder::State>("QMediaRecorder::State");
|
||||
qRegisterMetaType<QMediaRecorder::Error>("QMediaRecorder::Error");
|
||||
|
||||
mock = new MockProvider(this);
|
||||
service = new MockService(this, mock);
|
||||
object = new MockObject(this, service);
|
||||
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));
|
||||
@@ -72,7 +72,7 @@ void tst_QMediaRecorder::testNullService()
|
||||
{
|
||||
const QString id(QLatin1String("application/x-format"));
|
||||
|
||||
MockObject object(0, 0);
|
||||
MockMediaObject object(0, 0);
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
QCOMPARE(recorder.outputLocation(), QUrl());
|
||||
@@ -104,9 +104,9 @@ void tst_QMediaRecorder::testNullControls()
|
||||
{
|
||||
const QString id(QLatin1String("application/x-format"));
|
||||
|
||||
MockService service(0, 0);
|
||||
MockMediaRecorderService service(0, 0);
|
||||
service.hasControls = false;
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
QCOMPARE(recorder.outputLocation(), QUrl());
|
||||
@@ -256,7 +256,9 @@ void tst_QMediaRecorder::testAudioEncodeControl()
|
||||
QVERIFY(encode->encodingOption("audio/mpeg","bitrate").isNull());
|
||||
encode->setEncodingOption("audio/mpeg", "bitrate", QString("vbr"));
|
||||
QCOMPARE(encode->encodingOption("audio/mpeg","bitrate").toString(), QString("vbr"));
|
||||
QCOMPARE(capture->supportedAudioSampleRates(), QList<int>() << 44100);
|
||||
QList<int> rates;
|
||||
rates << 8000 << 11025 << 22050 << 44100;
|
||||
QCOMPARE(capture->supportedAudioSampleRates(), rates);
|
||||
}
|
||||
|
||||
void tst_QMediaRecorder::testMediaFormatsControl()
|
||||
@@ -297,7 +299,7 @@ void tst_QMediaRecorder::testEncodingSettings()
|
||||
QAudioEncoderSettings audioSettings = capture->audioSettings();
|
||||
QCOMPARE(audioSettings.codec(), QString("audio/pcm"));
|
||||
QCOMPARE(audioSettings.bitRate(), 128*1024);
|
||||
QCOMPARE(audioSettings.sampleRate(), -1);
|
||||
QCOMPARE(audioSettings.sampleRate(), 8000);
|
||||
QCOMPARE(audioSettings.quality(), QtMultimediaKit::NormalQuality);
|
||||
QCOMPARE(audioSettings.channelCount(), -1);
|
||||
|
||||
@@ -595,10 +597,10 @@ void tst_QMediaRecorder::nullMetaDataControl()
|
||||
const QString titleKey(QLatin1String("Title"));
|
||||
const QString title(QLatin1String("Host of Seraphim"));
|
||||
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.hasControls = false;
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
@@ -619,10 +621,10 @@ void tst_QMediaRecorder::nullMetaDataControl()
|
||||
|
||||
void tst_QMediaRecorder::isMetaDataAvailable()
|
||||
{
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.mockMetaDataControl->setMetaDataAvailable(false);
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
QCOMPARE(recorder.isMetaDataAvailable(), false);
|
||||
@@ -643,11 +645,11 @@ void tst_QMediaRecorder::isMetaDataAvailable()
|
||||
|
||||
void tst_QMediaRecorder::isWritable()
|
||||
{
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.mockMetaDataControl->setWritable(false);
|
||||
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
@@ -670,9 +672,9 @@ void tst_QMediaRecorder::isWritable()
|
||||
|
||||
void tst_QMediaRecorder::metaDataChanged()
|
||||
{
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockObject object(0, &service);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
@@ -703,11 +705,11 @@ void tst_QMediaRecorder::metaData()
|
||||
QFETCH(QString, title);
|
||||
QFETCH(QString, genre);
|
||||
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.mockMetaDataControl->populateMetaData();
|
||||
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
QVERIFY(object.availableMetaData().isEmpty());
|
||||
@@ -738,11 +740,11 @@ void tst_QMediaRecorder::setMetaData()
|
||||
{
|
||||
QFETCH(QString, title);
|
||||
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.mockMetaDataControl->populateMetaData();
|
||||
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
@@ -757,9 +759,9 @@ void tst_QMediaRecorder::extendedMetaData()
|
||||
QFETCH(QString, title);
|
||||
QFETCH(QString, genre);
|
||||
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockObject object(0, &service);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
QVERIFY(recorder.availableExtendedMetaData().isEmpty());
|
||||
@@ -780,11 +782,11 @@ void tst_QMediaRecorder::extendedMetaData()
|
||||
|
||||
void tst_QMediaRecorder::setExtendedMetaData()
|
||||
{
|
||||
MockProvider recorderControl(0);
|
||||
MockService service(0, &recorderControl);
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service(0, &recorderControl);
|
||||
service.mockMetaDataControl->populateMetaData();
|
||||
|
||||
MockObject object(0, &service);
|
||||
MockMediaObject object(0, &service);
|
||||
|
||||
QMediaRecorder recorder(&object);
|
||||
|
||||
@@ -794,3 +796,471 @@ void tst_QMediaRecorder::setExtendedMetaData()
|
||||
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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings.setQuality(QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings1.setQuality(QtMultimediaKit::LowQuality);
|
||||
audiosettings1.setSampleRate(44100);
|
||||
|
||||
/* setting the desired properties for the AudioEncoder */
|
||||
audiosettings2.setBitRate(128*1000);
|
||||
audiosettings2.setChannelCount(4);
|
||||
audiosettings2.setCodec("audio/pcm");
|
||||
audiosettings2.setEncodingMode(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings2.setQuality(QtMultimediaKit::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(QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings1.setQuality(QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings2.setQuality(QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
audiosettings1.setQuality(QtMultimediaKit::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(), QtMultimediaKit::ServiceMissingError);
|
||||
|
||||
MockMediaRecorderControl recorderControl(0);
|
||||
MockMediaRecorderService service1(0, &recorderControl);
|
||||
service1.mockMetaDataControl->populateMetaData();
|
||||
MockMediaObject object1(0, &service1);
|
||||
QMediaRecorder recorder1(&object1);
|
||||
QCOMPARE(recorder1.availabilityError(), QtMultimediaKit::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(), QtMultimediaKit::NormalQuality);
|
||||
|
||||
/* Set all types of Quality parameter and Verify if it is set correctly*/
|
||||
settings.setQuality(QtMultimediaKit::HighQuality);
|
||||
QCOMPARE(settings.quality(), QtMultimediaKit::HighQuality);
|
||||
QVERIFY(!settings.isNull());
|
||||
|
||||
settings.setQuality(QtMultimediaKit::VeryLowQuality);
|
||||
QCOMPARE(settings.quality(), QtMultimediaKit::VeryLowQuality);
|
||||
|
||||
settings.setQuality(QtMultimediaKit::LowQuality);
|
||||
QCOMPARE(settings.quality(), QtMultimediaKit::LowQuality);
|
||||
|
||||
settings.setQuality(QtMultimediaKit::VeryHighQuality);
|
||||
QCOMPARE(settings.quality(), QtMultimediaKit::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(), QtMultimediaKit::ConstantQualityEncoding);
|
||||
QVERIFY(settings.isNull());
|
||||
|
||||
/* Set each type of encoding mode and Verify if it is set correctly*/
|
||||
settings.setEncodingMode(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
QCOMPARE(settings.encodingMode(),QtMultimediaKit::ConstantBitRateEncoding);
|
||||
QVERIFY(!settings.isNull());
|
||||
|
||||
settings.setEncodingMode(QtMultimediaKit::AverageBitRateEncoding);
|
||||
QCOMPARE(settings.encodingMode(), QtMultimediaKit::AverageBitRateEncoding);
|
||||
|
||||
settings.setEncodingMode(QtMultimediaKit::TwoPassEncoding);
|
||||
QCOMPARE(settings.encodingMode(), QtMultimediaKit::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(QtMultimediaKit::HighQuality);
|
||||
settings1.setEncodingMode(QtMultimediaKit::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(), QtMultimediaKit::ConstantBitRateEncoding);
|
||||
QVERIFY(qFuzzyCompare(settings2.frameRate(), qreal(30000.0/10001)));
|
||||
QCOMPARE(settings2.resolution(), QSize(320,240));
|
||||
QCOMPARE(settings2.quality(), QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
settings1.setFrameRate(30000.0/10001);
|
||||
settings1.setResolution(QSize(320,240));
|
||||
settings1.setQuality(QtMultimediaKit::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(), QtMultimediaKit::ConstantBitRateEncoding);
|
||||
QVERIFY(qFuzzyCompare(settings2.frameRate(), qreal(30000.0/10001)));
|
||||
QCOMPARE(settings2.resolution(), QSize(320,240));
|
||||
QCOMPARE(settings2.quality(), QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
settings2 = QVideoEncoderSettings();
|
||||
settings2.setEncodingMode(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
/* OperatorNotEqual returns false when both objects are equal*/
|
||||
QCOMPARE(settings1 != settings2, false);
|
||||
settings2.setEncodingMode(QtMultimediaKit::TwoPassEncoding);
|
||||
/* OperatorNotEqual returns true when both objects are not equal*/
|
||||
QVERIFY(settings1 != settings2);
|
||||
|
||||
/* Verify Quality with not equal operator*/
|
||||
settings1 = QVideoEncoderSettings();
|
||||
settings1.setQuality(QtMultimediaKit::NormalQuality);
|
||||
settings2 = QVideoEncoderSettings();
|
||||
settings2.setQuality(QtMultimediaKit::NormalQuality);
|
||||
/* OperatorNotEqual returns false when both objects are equal*/
|
||||
QCOMPARE(settings1 != settings2, false);
|
||||
settings2.setQuality(QtMultimediaKit::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(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
settings2 = QVideoEncoderSettings();
|
||||
settings2.setEncodingMode(QtMultimediaKit::ConstantBitRateEncoding);
|
||||
/* Comparison operator returns true when both objects are equal*/
|
||||
QVERIFY(settings1 == settings2);
|
||||
settings2.setEncodingMode(QtMultimediaKit::TwoPassEncoding);
|
||||
/* Comparison operator returns false when both objects are not equal*/
|
||||
QCOMPARE(settings1 == settings2, false);
|
||||
|
||||
/* Verify Quality with comparison operator*/
|
||||
settings1 = QVideoEncoderSettings();
|
||||
settings1.setQuality(QtMultimediaKit::NormalQuality);
|
||||
settings2 = QVideoEncoderSettings();
|
||||
settings2.setQuality(QtMultimediaKit::NormalQuality);
|
||||
/* Comparison operator returns true when both objects are equal*/
|
||||
QVERIFY(settings1 == settings2);
|
||||
settings2.setQuality(QtMultimediaKit::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;
|
||||
}
|
||||
|
||||
@@ -56,417 +56,8 @@
|
||||
|
||||
#include <qaudioformat.h>
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
class MockVideoEncodeProvider : public QVideoEncoderControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MockVideoEncodeProvider(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;
|
||||
}
|
||||
~MockVideoEncodeProvider() {}
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
class MockAudioEncodeProvider : public QAudioEncoderControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MockAudioEncodeProvider(QObject *parent):
|
||||
QAudioEncoderControl(parent)
|
||||
{
|
||||
m_codecs << "audio/pcm" << "audio/mpeg";
|
||||
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);
|
||||
}
|
||||
|
||||
~MockAudioEncodeProvider() {}
|
||||
|
||||
QAudioEncoderSettings audioSettings() const { return m_audioSettings; }
|
||||
void setAudioSettings(const QAudioEncoderSettings &settings) { m_audioSettings = settings; }
|
||||
|
||||
QList<int> supportedSampleRates(const QAudioEncoderSettings & = QAudioEncoderSettings(), bool *continuous = 0) const
|
||||
{
|
||||
if (continuous)
|
||||
*continuous = false;
|
||||
|
||||
return QList<int>() << 44100;
|
||||
}
|
||||
|
||||
QStringList supportedAudioCodecs() const
|
||||
{
|
||||
return m_codecs;
|
||||
}
|
||||
|
||||
QString codecDescription(const QString &codecName) const
|
||||
{
|
||||
if (codecName == "audio/pcm")
|
||||
return QString("Pulse Code Modulation");
|
||||
|
||||
if (codecName == "audio/mpeg")
|
||||
return QString("MP3 audio format");
|
||||
|
||||
return QString();
|
||||
}
|
||||
|
||||
|
||||
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_codecsDesc;
|
||||
|
||||
QMap<QString, QStringList> m_supportedEncodeOptions;
|
||||
QMap< QString, QMap<QString, QVariant> > m_encodeOptions;
|
||||
|
||||
};
|
||||
|
||||
class MockAudioEndpointSelectorProvider : public QAudioEndpointSelector
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MockAudioEndpointSelectorProvider(QObject *parent):
|
||||
QAudioEndpointSelector(parent)
|
||||
{
|
||||
m_names << "device1" << "device2" << "device3";
|
||||
m_descriptions << "dev1 comment" << "dev2 comment" << "dev3 comment";
|
||||
emit availableEndpointsChanged();
|
||||
}
|
||||
~MockAudioEndpointSelectorProvider() {};
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
private:
|
||||
QString m_audioInput;
|
||||
QList<QString> m_names;
|
||||
QList<QString> m_descriptions;
|
||||
};
|
||||
|
||||
class MockProvider : public QMediaRecorderControl
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MockProvider(QObject *parent):
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
class QtTestMetaDataProvider : public QMetaDataWriterControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QtTestMetaDataProvider(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<QtMultimediaKit::MetaData> availableMetaData() const { return m_data.keys(); }
|
||||
|
||||
bool isWritable() const { return m_writable; }
|
||||
void setWritable(bool writable) { emit writableChanged(m_writable = writable); }
|
||||
|
||||
QVariant metaData(QtMultimediaKit::MetaData key) const { return m_data.value(key); }
|
||||
void setMetaData(QtMultimediaKit::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;
|
||||
}
|
||||
|
||||
bool m_available;
|
||||
bool m_writable;
|
||||
QMap<QtMultimediaKit::MetaData, QVariant> m_data;
|
||||
QMap<QString, QVariant> m_extendedData;
|
||||
};
|
||||
|
||||
class MockService : public QMediaService
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MockService(QObject *parent, QMediaControl *control):
|
||||
QMediaService(parent),
|
||||
mockControl(control),
|
||||
hasControls(true)
|
||||
{
|
||||
mockAudioEndpointSelector = new MockAudioEndpointSelectorProvider(parent);
|
||||
mockAudioEncodeControl = new MockAudioEncodeProvider(parent);
|
||||
mockFormatControl = new MockMediaContainerControl(parent);
|
||||
mockVideoEncodeControl = new MockVideoEncodeProvider(parent);
|
||||
mockMetaDataControl = new QtTestMetaDataProvider(parent);
|
||||
}
|
||||
|
||||
QMediaControl* requestControl(const char *name)
|
||||
{
|
||||
if(hasControls && qstrcmp(name,QAudioEncoderControl_iid) == 0)
|
||||
return mockAudioEncodeControl;
|
||||
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 mockVideoEncodeControl;
|
||||
if (hasControls && qstrcmp(name, QMetaDataWriterControl_iid) == 0)
|
||||
return mockMetaDataControl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void releaseControl(QMediaControl*) {}
|
||||
|
||||
QMediaControl *mockControl;
|
||||
QAudioEndpointSelector *mockAudioEndpointSelector;
|
||||
QAudioEncoderControl *mockAudioEncodeControl;
|
||||
QMediaContainerControl *mockFormatControl;
|
||||
QVideoEncoderControl *mockVideoEncodeControl;
|
||||
QtTestMetaDataProvider *mockMetaDataControl;
|
||||
bool hasControls;
|
||||
};
|
||||
|
||||
class MockObject : public QMediaObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MockObject(QObject *parent, MockService *service):
|
||||
QMediaObject(parent, service)
|
||||
{
|
||||
}
|
||||
};
|
||||
#include "mockmediarecorderservice.h"
|
||||
#include "mockmediaobject.h"
|
||||
|
||||
class tst_QMediaRecorder: public QObject
|
||||
{
|
||||
@@ -504,13 +95,32 @@ private slots:
|
||||
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;
|
||||
MockObject *object;
|
||||
MockService *service;
|
||||
MockProvider *mock;
|
||||
QMediaRecorder *capture;
|
||||
MockMediaObject *object;
|
||||
MockMediaRecorderService*service;
|
||||
MockMediaRecorderControl *mock;
|
||||
QMediaRecorder *capture;
|
||||
QVideoEncoderControl* videoEncode;
|
||||
};
|
||||
#endif //TST_QMEDIARECORDER_H
|
||||
|
||||
Reference in New Issue
Block a user