diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2011-11-04 13:38:44 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-04 08:19:17 +0100 |
commit | e3a8c165eabe139d71a762089ab396e5b492c70b (patch) | |
tree | 16d9960d2d20d65e0a5d1becc181c0a7b095d0aa /tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp | |
parent | 7dfb883df639f8d80cec7bd2c51eb37561bc4522 (diff) |
Rearrange the automatic tests.
Split them into unit and integration tests. Integration tests really
need to be run on the real platform (not in a VM etc) since they are
somewhat unstable or nonfunctional otherwise.
A few tests were previously broken by QUrl changes and they were repaired.
Removed one test since it was not providing a lot of value.
There are still a number of tests that rely on Q_AUTOTEST_EXPORT symbols.
Change-Id: Ic402abf0af946baa5945075d975b3f584f9ef280
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
Diffstat (limited to 'tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp')
-rw-r--r-- | tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp b/tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp new file mode 100644 index 000000000..d7f06db8a --- /dev/null +++ b/tests/auto/unit/qmediabindableinterface/tst_qmediabindableinterface.cpp @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** 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" |