diff options
author | Lev Zelenskiy <lev.zelenskiy@nokia.com> | 2012-04-18 13:20:19 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-20 08:47:14 +0200 |
commit | 46f67a8b6946a3deedd5b60c96e7d6ff600f06e8 (patch) | |
tree | 911ed503ed1bb4a992308052e8817e97f9e1a05a /tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp | |
parent | f1c4093f3710c8c061a68afbd52d0eafe0d6fc83 (diff) |
QAudioProbe unit test.
Change-Id: I4dde8a46883cfc793fdccbfd24ffde0c818fa1aa
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp')
-rw-r--r-- | tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp b/tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp new file mode 100644 index 000000000..78b9b7b8f --- /dev/null +++ b/tests/auto/unit/qaudioprobe/tst_qaudioprobe.cpp @@ -0,0 +1,196 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** 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 <qaudioprobe.h> +#include <qaudiorecorder.h> + +//TESTED_COMPONENT=src/multimedia + +#include "mockmediaserviceprovider.h" +#include "mockmediarecorderservice.h" +#include "mockmediaobject.h" + +QT_USE_NAMESPACE + +class tst_QAudioProbe: public QObject +{ + Q_OBJECT + +public slots: + void init(); + void cleanup(); + +private slots: + void testNullService(); + void testNullControl(); + void testRecorder(); + void testRecorderDeleteRecorder(); + void testRecorderDeleteProbe(); + void testMediaObject(); + +private: + QAudioRecorder *recorder; + MockMediaRecorderControl *mockMediaRecorderControl; + MockMediaRecorderService *mockMediaRecorderService; + MockMediaServiceProvider *mockProvider; +}; + +void tst_QAudioProbe::init() +{ + mockMediaRecorderControl = new MockMediaRecorderControl(this); + mockMediaRecorderService = new MockMediaRecorderService(this, mockMediaRecorderControl); + mockProvider = new MockMediaServiceProvider(mockMediaRecorderService); + mockProvider->deleteServiceOnRelease = true; + recorder = 0; + + QMediaServiceProvider::setDefaultServiceProvider(mockProvider); +} + +void tst_QAudioProbe::cleanup() +{ + delete recorder; + delete mockProvider; + delete mockMediaRecorderControl; + mockMediaRecorderControl = 0; + mockMediaRecorderService = 0; + mockProvider = 0; + recorder = 0; +} + +void tst_QAudioProbe::testNullService() +{ + mockProvider->service = 0; + recorder = new QAudioRecorder; + + QVERIFY(!recorder->isAvailable()); + QCOMPARE(recorder->availabilityError(), QtMultimedia::ServiceMissingError); + + QAudioProbe probe; + QVERIFY(!probe.isActive()); + QVERIFY(!probe.setSource(recorder)); + QVERIFY(!probe.isActive()); + delete recorder; + recorder = 0; + QVERIFY(!probe.isActive()); +} + + +void tst_QAudioProbe::testNullControl() +{ + mockMediaRecorderService->hasControls = false; + recorder = new QAudioRecorder; + + QVERIFY(!recorder->isAvailable()); + QCOMPARE(recorder->availabilityError(), QtMultimedia::ServiceMissingError); + + QAudioProbe probe; + QVERIFY(!probe.isActive()); + QVERIFY(!probe.setSource(recorder)); + QVERIFY(!probe.isActive()); + delete recorder; + recorder = 0; + QVERIFY(!probe.isActive()); +} + +void tst_QAudioProbe::testRecorder() +{ + recorder = new QAudioRecorder; + QVERIFY(recorder->isAvailable()); + + QAudioProbe probe; + QVERIFY(!probe.isActive()); + QVERIFY(probe.setSource(recorder)); + QVERIFY(probe.isActive()); + probe.setSource((QMediaRecorder*)0); + QVERIFY(!probe.isActive()); +} + +void tst_QAudioProbe::testRecorderDeleteRecorder() +{ + recorder = new QAudioRecorder; + QVERIFY(recorder->isAvailable()); + + QAudioProbe probe; + QVERIFY(!probe.isActive()); + QVERIFY(probe.setSource(recorder)); + QVERIFY(probe.isActive()); + + delete recorder; + recorder = 0; + QVERIFY(!probe.isActive()); + probe.setSource((QMediaRecorder*)0); + QVERIFY(!probe.isActive()); +} + +void tst_QAudioProbe::testRecorderDeleteProbe() +{ + recorder = new QAudioRecorder; + QVERIFY(recorder->isAvailable()); + + QAudioProbe *probe = new QAudioProbe; + QVERIFY(!probe->isActive()); + QVERIFY(probe->setSource(recorder)); + QVERIFY(probe->isActive()); + + delete probe; + QVERIFY(recorder->isAvailable()); +} + +void tst_QAudioProbe::testMediaObject() +{ + QMediaObject *object = new MockMediaObject(0, mockMediaRecorderService); + QVERIFY(object->isAvailable()); + + QAudioProbe probe; + QVERIFY(!probe.isActive()); + QVERIFY(probe.setSource(object)); + QVERIFY(probe.isActive()); + probe.setSource((QMediaObject*)0); + QVERIFY(!probe.isActive()); + delete object; +} + +QTEST_GUILESS_MAIN(tst_QAudioProbe) + +#include "tst_qaudioprobe.moc" |