summaryrefslogtreecommitdiffstats
path: root/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp')
-rw-r--r--tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp95
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"