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"