diff options
author | Jim Hodapp <jim.hodapp@canonical.com> | 2015-08-03 14:27:16 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-08-10 15:12:22 +0000 |
commit | 23acd9f01d5dcca84025eb95de266e7e6b6cb386 (patch) | |
tree | bffd596d62312ed8be20075edb02b35ceec95cb0 /tests/auto/unit/qdeclarativeaudio | |
parent | 129b06ba77e451c08778badcd54cbaf193d195bc (diff) |
Add audio role API to QMediaPlayer.
Change-Id: Ia5e3e2fe714f10b6aad62f0a4801c607905c7e0d
Task-number: QTBUG-41054
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'tests/auto/unit/qdeclarativeaudio')
-rw-r--r-- | tests/auto/unit/qdeclarativeaudio/qdeclarativeaudio.pro | 4 | ||||
-rw-r--r-- | tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp | 49 |
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/unit/qdeclarativeaudio/qdeclarativeaudio.pro b/tests/auto/unit/qdeclarativeaudio/qdeclarativeaudio.pro index 6471f7b2a..e36c7dc1f 100644 --- a/tests/auto/unit/qdeclarativeaudio/qdeclarativeaudio.pro +++ b/tests/auto/unit/qdeclarativeaudio/qdeclarativeaudio.pro @@ -13,3 +13,7 @@ SOURCES += \ INCLUDEPATH += ../../../../src/imports/multimedia DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +include (../qmultimedia_common/mock.pri) +include (../qmultimedia_common/mockplayer.pri) + diff --git a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp index a257ee7b6..355e25331 100644 --- a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp +++ b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp @@ -38,6 +38,9 @@ #include "qdeclarativeaudio_p.h" #include "qdeclarativemediametadata_p.h" +#include "mockmediaserviceprovider.h" +#include "mockmediaplayerservice.h" + #include <QtMultimedia/qmediametadata.h> #include <qmediaplayercontrol.h> #include <qmediaservice.h> @@ -45,6 +48,8 @@ #include <qmetadatareadercontrol.h> #include <QtGui/qguiapplication.h> +#include <QtQml/qqmlengine.h> +#include <QtQml/qqmlcomponent.h> class tst_QDeclarativeAudio : public QObject { @@ -73,9 +78,11 @@ private slots: void metaData(); void error(); void loops(); + void audioRole(); }; Q_DECLARE_METATYPE(QDeclarativeAudio::Error); +Q_DECLARE_METATYPE(QDeclarativeAudio::AudioRole); class QtTestMediaPlayerControl : public QMediaPlayerControl { @@ -285,6 +292,7 @@ public: void tst_QDeclarativeAudio::initTestCase() { qRegisterMetaType<QDeclarativeAudio::Error>(); + qRegisterMetaType<QDeclarativeAudio::AudioRole>(); } void tst_QDeclarativeAudio::nullPlayerControl() @@ -1007,6 +1015,47 @@ void tst_QDeclarativeAudio::loops() qDebug() << "Testing version 5"; } +void tst_QDeclarativeAudio::audioRole() +{ + MockMediaPlayerService mockService; + MockMediaServiceProvider mockProvider(&mockService); + QMediaServiceProvider::setDefaultServiceProvider(&mockProvider); + + QQmlEngine engine; + QQmlComponent component(&engine); + component.setData("import QtQuick 2.0 \n import QtMultimedia 5.6 \n Audio { }", QUrl()); + + { + mockService.setHasAudioRole(false); + QDeclarativeAudio *audio = static_cast<QDeclarativeAudio*>(component.create()); + + QCOMPARE(audio->audioRole(), QDeclarativeAudio::UnknownRole); + QVERIFY(audio->supportedAudioRoles().isArray()); + QVERIFY(audio->supportedAudioRoles().toVariant().toList().isEmpty()); + + QSignalSpy spy(audio, SIGNAL(audioRoleChanged())); + audio->setAudioRole(QDeclarativeAudio::MusicRole); + QCOMPARE(audio->audioRole(), QDeclarativeAudio::UnknownRole); + QCOMPARE(spy.count(), 0); + } + + { + mockService.reset(); + mockService.setHasAudioRole(true); + QDeclarativeAudio *audio = static_cast<QDeclarativeAudio*>(component.create()); + QSignalSpy spy(audio, SIGNAL(audioRoleChanged())); + + QCOMPARE(audio->audioRole(), QDeclarativeAudio::UnknownRole); + QVERIFY(audio->supportedAudioRoles().isArray()); + QVERIFY(!audio->supportedAudioRoles().toVariant().toList().isEmpty()); + + audio->setAudioRole(QDeclarativeAudio::MusicRole); + QCOMPARE(audio->audioRole(), QDeclarativeAudio::MusicRole); + QCOMPARE(mockService.mockAudioRoleControl->audioRole(), QAudio::MusicRole); + QCOMPARE(spy.count(), 1); + } +} + QTEST_MAIN(tst_QDeclarativeAudio) #include "tst_qdeclarativeaudio.moc" |