File indexing completed on 2024-04-28 04:48:50
0001 /* 0002 SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #include "managemediaplayercontroltest.h" 0008 0009 #include "managemediaplayercontrol.h" 0010 #include "mediaplaylist.h" 0011 #include "databaseinterface.h" 0012 #include "trackslistener.h" 0013 0014 #include <QString> 0015 #include <QUrl> 0016 #include <QVector> 0017 0018 #include <QStringListModel> 0019 0020 #include <QSignalSpy> 0021 #include <QTest> 0022 0023 ManageMediaPlayerControlTest::ManageMediaPlayerControlTest(QObject *parent) : QObject(parent) 0024 { 0025 0026 } 0027 0028 void ManageMediaPlayerControlTest::initTestCase() 0029 { 0030 qRegisterMetaType<QHash<QString,QUrl>>("QHash<QString,QUrl>"); 0031 qRegisterMetaType<QVector<qlonglong>>("QVector<qlonglong>"); 0032 qRegisterMetaType<QHash<qlonglong,int>>("QHash<qlonglong,int>"); 0033 } 0034 0035 void ManageMediaPlayerControlTest::simpleInitialCase() 0036 { 0037 ManageMediaPlayerControl myControl; 0038 0039 QVERIFY(!myControl.playControlEnabled()); 0040 QVERIFY(!myControl.skipBackwardControlEnabled()); 0041 QVERIFY(!myControl.skipForwardControlEnabled()); 0042 QVERIFY(!myControl.musicPlaying()); 0043 QVERIFY(!myControl.currentTrack().isValid()); 0044 } 0045 0046 void ManageMediaPlayerControlTest::testPlayingCase() 0047 { 0048 ManageMediaPlayerControl myControl; 0049 0050 QSignalSpy musicPlayingChangedSpy(&myControl, &ManageMediaPlayerControl::musicPlayingChanged); 0051 0052 QVERIFY(!myControl.playControlEnabled()); 0053 QVERIFY(!myControl.skipBackwardControlEnabled()); 0054 QVERIFY(!myControl.skipForwardControlEnabled()); 0055 QVERIFY(!myControl.musicPlaying()); 0056 QVERIFY(!myControl.currentTrack().isValid()); 0057 0058 QCOMPARE(musicPlayingChangedSpy.count(), 0); 0059 0060 myControl.playerPlaying(); 0061 0062 QCOMPARE(musicPlayingChangedSpy.count(), 1); 0063 0064 QVERIFY(myControl.musicPlaying()); 0065 0066 myControl.playerPausedOrStopped(); 0067 0068 QCOMPARE(musicPlayingChangedSpy.count(), 2); 0069 0070 QVERIFY(!myControl.musicPlaying()); 0071 } 0072 0073 void ManageMediaPlayerControlTest::testTracksCase() 0074 { 0075 QStringListModel myPlayList; 0076 myPlayList.setStringList({QStringLiteral("first"), QStringLiteral("second"), QStringLiteral("third")}); 0077 0078 ManageMediaPlayerControl myControl; 0079 0080 QSignalSpy playControlEnabledChangedSpy(&myControl, &ManageMediaPlayerControl::playControlEnabledChanged); 0081 QSignalSpy skipBackwardControlEnabledChangedSpy(&myControl, &ManageMediaPlayerControl::skipBackwardControlEnabledChanged); 0082 QSignalSpy skipForwardControlEnabledChangedSpy(&myControl, &ManageMediaPlayerControl::skipForwardControlEnabledChanged); 0083 QSignalSpy previousTrackChangedSpy(&myControl, &ManageMediaPlayerControl::previousTrackChanged); 0084 QSignalSpy currentTrackChangedSpy(&myControl, &ManageMediaPlayerControl::currentTrackChanged); 0085 QSignalSpy nextTrackChangedSpy(&myControl, &ManageMediaPlayerControl::nextTrackChanged); 0086 0087 QVERIFY(!myControl.playControlEnabled()); 0088 QVERIFY(!myControl.skipBackwardControlEnabled()); 0089 QVERIFY(!myControl.skipForwardControlEnabled()); 0090 QVERIFY(!myControl.musicPlaying()); 0091 QVERIFY(!myControl.currentTrack().isValid()); 0092 0093 myControl.setCurrentTrack(QPersistentModelIndex(myPlayList.index(1, 0))); 0094 0095 QCOMPARE(previousTrackChangedSpy.count(), 0); 0096 QCOMPARE(currentTrackChangedSpy.count(), 1); 0097 QCOMPARE(nextTrackChangedSpy.count(), 0); 0098 QCOMPARE(skipBackwardControlEnabledChangedSpy.count(), 0); 0099 QCOMPARE(playControlEnabledChangedSpy.count(), 1); 0100 QCOMPARE(skipForwardControlEnabledChangedSpy.count(), 0); 0101 QVERIFY(myControl.playControlEnabled()); 0102 QVERIFY(!myControl.skipBackwardControlEnabled()); 0103 QVERIFY(!myControl.skipForwardControlEnabled()); 0104 0105 myControl.setPreviousTrack(QPersistentModelIndex(myPlayList.index(0, 0))); 0106 0107 QCOMPARE(previousTrackChangedSpy.count(), 1); 0108 QCOMPARE(currentTrackChangedSpy.count(), 1); 0109 QCOMPARE(nextTrackChangedSpy.count(), 0); 0110 QCOMPARE(skipBackwardControlEnabledChangedSpy.count(), 1); 0111 QCOMPARE(playControlEnabledChangedSpy.count(), 1); 0112 QCOMPARE(skipForwardControlEnabledChangedSpy.count(), 0); 0113 QVERIFY(myControl.playControlEnabled()); 0114 QVERIFY(myControl.skipBackwardControlEnabled()); 0115 QVERIFY(!myControl.skipForwardControlEnabled()); 0116 0117 myControl.playerPlaying(); 0118 0119 QCOMPARE(previousTrackChangedSpy.count(), 1); 0120 QCOMPARE(currentTrackChangedSpy.count(), 1); 0121 QCOMPARE(nextTrackChangedSpy.count(), 0); 0122 QCOMPARE(skipBackwardControlEnabledChangedSpy.count(), 1); 0123 QCOMPARE(playControlEnabledChangedSpy.count(), 1); 0124 QCOMPARE(skipForwardControlEnabledChangedSpy.count(), 0); 0125 QVERIFY(myControl.playControlEnabled()); 0126 QVERIFY(myControl.skipBackwardControlEnabled()); 0127 QVERIFY(!myControl.skipForwardControlEnabled()); 0128 0129 myControl.playerPausedOrStopped(); 0130 myControl.setNextTrack(QPersistentModelIndex(myPlayList.index(2, 0))); 0131 0132 QCOMPARE(previousTrackChangedSpy.count(), 1); 0133 QCOMPARE(currentTrackChangedSpy.count(), 1); 0134 QCOMPARE(nextTrackChangedSpy.count(), 1); 0135 QCOMPARE(skipBackwardControlEnabledChangedSpy.count(), 1); 0136 QCOMPARE(playControlEnabledChangedSpy.count(), 1); 0137 QCOMPARE(skipForwardControlEnabledChangedSpy.count(), 1); 0138 QVERIFY(myControl.playControlEnabled()); 0139 QVERIFY(myControl.skipBackwardControlEnabled()); 0140 QVERIFY(myControl.skipForwardControlEnabled()); 0141 0142 myControl.playerPlaying(); 0143 0144 QCOMPARE(previousTrackChangedSpy.count(), 1); 0145 QCOMPARE(currentTrackChangedSpy.count(), 1); 0146 QCOMPARE(nextTrackChangedSpy.count(), 1); 0147 QCOMPARE(nextTrackChangedSpy.count(), 1); 0148 QCOMPARE(skipBackwardControlEnabledChangedSpy.count(), 1); 0149 QCOMPARE(playControlEnabledChangedSpy.count(), 1); 0150 QCOMPARE(skipForwardControlEnabledChangedSpy.count(), 1); 0151 QVERIFY(myControl.playControlEnabled()); 0152 QVERIFY(myControl.skipBackwardControlEnabled()); 0153 QVERIFY(myControl.skipForwardControlEnabled()); 0154 } 0155 0156 QTEST_GUILESS_MAIN(ManageMediaPlayerControlTest) 0157 0158 0159 #include "moc_managemediaplayercontroltest.cpp"