summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmediarecorder/tst_qmediarecorder.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qmediarecorder/tst_qmediarecorder.h')
-rwxr-xr-xtests/auto/qmediarecorder/tst_qmediarecorder.h440
1 files changed, 25 insertions, 415 deletions
diff --git a/tests/auto/qmediarecorder/tst_qmediarecorder.h b/tests/auto/qmediarecorder/tst_qmediarecorder.h
index ad1d27f86..253a750e6 100755
--- a/tests/auto/qmediarecorder/tst_qmediarecorder.h
+++ b/tests/auto/qmediarecorder/tst_qmediarecorder.h
@@ -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