diff options
Diffstat (limited to 'tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp')
-rw-r--r-- | tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp index a529517d3..94d297ad0 100644 --- a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp +++ b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp @@ -133,6 +133,7 @@ private slots: void testQrc_data(); void testQrc(); void testAudioRole(); + void testCustomAudioRole(); private: void setupCommonTestData(); @@ -1336,5 +1337,99 @@ void tst_QMediaPlayer::testAudioRole() } } +void tst_QMediaPlayer::testCustomAudioRole() +{ + { + mockService->setHasCustomAudioRole(false); + QMediaPlayer player; + + QVERIFY(player.customAudioRole().isEmpty()); + QVERIFY(player.supportedCustomAudioRoles().isEmpty()); + + QSignalSpy spyRole(&player, SIGNAL(audioRoleChanged(QAudio::Role))); + QSignalSpy spyCustomRole(&player, SIGNAL(customAudioRoleChanged(const QString &))); + player.setCustomAudioRole(QStringLiteral("customRole")); + QCOMPARE(player.audioRole(), QAudio::UnknownRole); + QVERIFY(player.customAudioRole().isEmpty()); + QCOMPARE(spyRole.count(), 0); + QCOMPARE(spyCustomRole.count(), 0); + } + + { + mockService->reset(); + mockService->setHasAudioRole(false); + QMediaPlayer player; + + QVERIFY(player.customAudioRole().isEmpty()); + QVERIFY(player.supportedCustomAudioRoles().isEmpty()); + + QSignalSpy spyRole(&player, SIGNAL(audioRoleChanged(QAudio::Role))); + QSignalSpy spyCustomRole(&player, SIGNAL(customAudioRoleChanged(const QString &))); + player.setCustomAudioRole(QStringLiteral("customRole")); + QCOMPARE(player.audioRole(), QAudio::UnknownRole); + QVERIFY(player.customAudioRole().isEmpty()); + QCOMPARE(spyRole.count(), 0); + QCOMPARE(spyCustomRole.count(), 0); + } + + { + mockService->reset(); + QMediaPlayer player; + QSignalSpy spyRole(&player, SIGNAL(audioRoleChanged(QAudio::Role))); + QSignalSpy spyCustomRole(&player, SIGNAL(customAudioRoleChanged(const QString &))); + + QCOMPARE(player.audioRole(), QAudio::UnknownRole); + QVERIFY(player.customAudioRole().isEmpty()); + QVERIFY(!player.supportedCustomAudioRoles().isEmpty()); + + QString customRole(QStringLiteral("customRole")); + player.setCustomAudioRole(customRole); + QCOMPARE(player.audioRole(), QAudio::CustomRole); + QCOMPARE(player.customAudioRole(), customRole); + QCOMPARE(mockService->mockAudioRoleControl->audioRole(), QAudio::CustomRole); + QCOMPARE(mockService->mockCustomAudioRoleControl->customAudioRole(), customRole); + QCOMPARE(spyRole.count(), 1); + QCOMPARE(qvariant_cast<QAudio::Role>(spyRole.last().value(0)), QAudio::CustomRole); + QCOMPARE(spyCustomRole.count(), 1); + QCOMPARE(qvariant_cast<QString>(spyCustomRole.last().value(0)), customRole); + + spyRole.clear(); + spyCustomRole.clear(); + + QString customRole2(QStringLiteral("customRole2")); + player.setProperty("customAudioRole", qVariantFromValue(customRole2)); + QCOMPARE(qvariant_cast<QString>(player.property("customAudioRole")), customRole2); + QCOMPARE(mockService->mockCustomAudioRoleControl->customAudioRole(), customRole2); + QCOMPARE(spyRole.count(), 0); + QCOMPARE(spyCustomRole.count(), 1); + QCOMPARE(qvariant_cast<QString>(spyCustomRole.last().value(0)), customRole2); + + spyRole.clear(); + spyCustomRole.clear(); + + player.setAudioRole(QAudio::MusicRole); + QCOMPARE(player.audioRole(), QAudio::MusicRole); + QVERIFY(player.customAudioRole().isEmpty()); + QCOMPARE(mockService->mockAudioRoleControl->audioRole(), QAudio::MusicRole); + QVERIFY(mockService->mockCustomAudioRoleControl->customAudioRole().isEmpty()); + QCOMPARE(spyRole.count(), 1); + QCOMPARE(qvariant_cast<QAudio::Role>(spyRole.last().value(0)), QAudio::MusicRole); + QCOMPARE(spyCustomRole.count(), 1); + QVERIFY(qvariant_cast<QString>(spyCustomRole.last().value(0)).isEmpty()); + + spyRole.clear(); + spyCustomRole.clear(); + + player.setAudioRole(QAudio::CustomRole); + QCOMPARE(player.audioRole(), QAudio::CustomRole); + QVERIFY(player.customAudioRole().isEmpty()); + QCOMPARE(mockService->mockAudioRoleControl->audioRole(), QAudio::CustomRole); + QVERIFY(mockService->mockCustomAudioRoleControl->customAudioRole().isEmpty()); + QCOMPARE(spyRole.count(), 1); + QCOMPARE(qvariant_cast<QAudio::Role>(spyRole.last().value(0)), QAudio::CustomRole); + QCOMPARE(spyCustomRole.count(), 0); + } +} + QTEST_GUILESS_MAIN(tst_QMediaPlayer) #include "tst_qmediaplayer.moc" |