QAudioRecorder: fixed handling the missing inputs control.

Added check for null audioEndpointSelector
control in QAudioRecorder::audioInputs()

Change-Id: I506dcea9e8d3a468319acf2489cd4d803a5c187d
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-01-19 14:07:44 +10:00
committed by Qt by Nokia
parent 69cef0c24c
commit b48009ce9e
2 changed files with 24 additions and 19 deletions

View File

@@ -155,7 +155,11 @@ QAudioRecorder::~QAudioRecorder()
QStringList QAudioRecorder::audioInputs() const QStringList QAudioRecorder::audioInputs() const
{ {
return d_func()->audioEndpointSelector->availableEndpoints(); Q_D(const QAudioRecorder);
if (d->audioEndpointSelector)
return d->audioEndpointSelector->availableEndpoints();
else
return QStringList();
} }
/*! /*!

View File

@@ -68,8 +68,8 @@ public slots:
void cleanup(); void cleanup();
private slots: private slots:
//void testNullService(); void testNullService();
//void testNullControl(); void testNullControl();
void testAudioSource(); void testAudioSource();
void testOptions(); void testOptions();
void testDevices(); void testDevices();
@@ -86,46 +86,47 @@ void tst_QAudioRecorder::init()
{ {
mockMediaRecorderService = new MockMediaRecorderService(this, new MockMediaRecorderControl(this)); mockMediaRecorderService = new MockMediaRecorderService(this, new MockMediaRecorderControl(this));
mockProvider = new MockMediaServiceProvider(mockMediaRecorderService); mockProvider = new MockMediaServiceProvider(mockMediaRecorderService);
audiosource = 0;
} }
void tst_QAudioRecorder::cleanup() void tst_QAudioRecorder::cleanup()
{ {
delete audiosource; delete mockMediaRecorderService;
delete mockProvider; delete mockProvider;
audiosource = 0; delete audiosource;
mockMediaRecorderService = 0;
mockProvider = 0; mockProvider = 0;
audiosource = 0;
} }
/*
void tst_QAudioRecorder::testNullService() void tst_QAudioRecorder::testNullService()
{ {
MockProvider provider(0); mockProvider->service = 0;
QAudioRecorder source(0, &provider); QAudioRecorder source(0, mockProvider);
QCOMPARE(source.audioInputs().size(), 0); QCOMPARE(source.audioInputs().size(), 0);
QCOMPARE(source.defaultAudioInput(), QString()); QCOMPARE(source.defaultAudioInput(), QString());
QCOMPARE(source.activeAudioInput(), QString()); QCOMPARE(source.audioInput(), QString());
} }
*/
/*
void tst_QAudioRecorder::testNullControl() void tst_QAudioRecorder::testNullControl()
{ {
MockRecorderService service; mockMediaRecorderService->hasControls = false;
service.hasAudioDeviceControl = false; QAudioRecorder source(0, mockProvider);
MockProvider provider(&service);
QAudioRecorder source(0, &provider);
QCOMPARE(source.audioInputs().size(), 0); QCOMPARE(source.audioInputs().size(), 0);
QCOMPARE(source.defaultAudioInput(), QString()); QCOMPARE(source.defaultAudioInput(), QString());
QCOMPARE(source.activeAudioInput(), QString()); QCOMPARE(source.audioInput(), QString());
QCOMPARE(source.audioDescription("blah"), QString()); QCOMPARE(source.audioInputDescription("blah"), QString());
QSignalSpy deviceNameSpy(&source, SIGNAL(activeAudioInputChanged(QString))); QSignalSpy deviceNameSpy(&source, SIGNAL(audioInputChanged(QString)));
source.setAudioInput("blah"); source.setAudioInput("blah");
QCOMPARE(deviceNameSpy.count(), 0); QCOMPARE(deviceNameSpy.count(), 0);
} }
*/
void tst_QAudioRecorder::testAudioSource() void tst_QAudioRecorder::testAudioSource()
{ {
audiosource = new QAudioRecorder(0, mockProvider); audiosource = new QAudioRecorder(0, mockProvider);