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 "manageheaderbartest.h"
0008 
0009 #include "manageheaderbar.h"
0010 #include "mediaplaylist.h"
0011 #include "databaseinterface.h"
0012 #include "trackslistener.h"
0013 
0014 #include <QString>
0015 
0016 #include <QStringListModel>
0017 
0018 #include <QSignalSpy>
0019 #include <QTest>
0020 
0021 ManageHeaderBarTest::ManageHeaderBarTest(QObject *parent) : QObject(parent)
0022 {
0023 
0024 }
0025 
0026 void ManageHeaderBarTest::initTestCase()
0027 {
0028 
0029 }
0030 
0031 void ManageHeaderBarTest::simpleInitialCase()
0032 {
0033     ManageHeaderBar myControl;
0034 
0035     QCOMPARE(myControl.currentTrack().isValid(), false);
0036     QCOMPARE(myControl.artistRole(), static_cast<int>(Qt::DisplayRole));
0037     QCOMPARE(myControl.titleRole(), static_cast<int>(Qt::DisplayRole));
0038     QCOMPARE(myControl.albumRole(), static_cast<int>(Qt::DisplayRole));
0039     QCOMPARE(myControl.imageRole(), static_cast<int>(Qt::DisplayRole));
0040     QCOMPARE(myControl.albumIdRole(), static_cast<int>(Qt::DisplayRole));
0041     QCOMPARE(myControl.isValidRole(), static_cast<int>(Qt::DisplayRole));
0042     QCOMPARE(myControl.artist().toString().isEmpty(), true);
0043     QCOMPARE(myControl.title().toString().isEmpty(), true);
0044     QCOMPARE(myControl.album().toString().isEmpty(), true);
0045     QCOMPARE(myControl.image().toString().isEmpty(), true);
0046     QCOMPARE(myControl.isValid(), false);
0047 }
0048 
0049 void ManageHeaderBarTest::setCurrentTrackWithInvalidData()
0050 {
0051     ManageHeaderBar myControl;
0052 
0053     QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged);
0054     QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged);
0055     QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged);
0056     QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged);
0057     QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged);
0058     QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged);
0059     QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged);
0060     QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged);
0061     QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged);
0062     QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged);
0063     QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged);
0064     QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged);
0065     QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged);
0066 
0067     QCOMPARE(myControl.currentTrack().isValid(), false);
0068     QCOMPARE(myControl.artistRole(), static_cast<int>(Qt::DisplayRole));
0069     QCOMPARE(myControl.titleRole(), static_cast<int>(Qt::DisplayRole));
0070     QCOMPARE(myControl.albumRole(), static_cast<int>(Qt::DisplayRole));
0071     QCOMPARE(myControl.imageRole(), static_cast<int>(Qt::DisplayRole));
0072     QCOMPARE(myControl.albumIdRole(), static_cast<int>(Qt::DisplayRole));
0073     QCOMPARE(myControl.isValidRole(), static_cast<int>(Qt::DisplayRole));
0074     QCOMPARE(myControl.artist().toString().isEmpty(), true);
0075     QCOMPARE(myControl.title().toString().isEmpty(), true);
0076     QCOMPARE(myControl.album().toString().isEmpty(), true);
0077     QCOMPARE(myControl.image().toString().isEmpty(), true);
0078     QCOMPARE(myControl.isValid(), false);
0079 
0080     QCOMPARE(currentTrackChangedSpy.count(), 0);
0081     QCOMPARE(artistRoleChangedSpy.count(), 0);
0082     QCOMPARE(titleRoleChangedSpy.count(), 0);
0083     QCOMPARE(albumRoleChangedSpy.count(), 0);
0084     QCOMPARE(imageRoleChangedSpy.count(), 0);
0085     QCOMPARE(albumIdRoleChangedSpy.count(), 0);
0086     QCOMPARE(isValidRoleChangedSpy.count(), 0);
0087     QCOMPARE(artistChangedSpy.count(), 0);
0088     QCOMPARE(titleChangedSpy.count(), 0);
0089     QCOMPARE(albumChangedSpy.count(), 0);
0090     QCOMPARE(imageChangedSpy.count(), 0);
0091     QCOMPARE(albumIdChangedSpy.count(), 0);
0092     QCOMPARE(isValidChangedSpy.count(), 0);
0093 
0094     myControl.setCurrentTrack(QPersistentModelIndex());
0095 
0096     QCOMPARE(currentTrackChangedSpy.count(), 1);
0097     QCOMPARE(artistRoleChangedSpy.count(), 0);
0098     QCOMPARE(titleRoleChangedSpy.count(), 0);
0099     QCOMPARE(albumRoleChangedSpy.count(), 0);
0100     QCOMPARE(imageRoleChangedSpy.count(), 0);
0101     QCOMPARE(albumIdRoleChangedSpy.count(), 0);
0102     QCOMPARE(isValidRoleChangedSpy.count(), 0);
0103     QCOMPARE(artistChangedSpy.count(), 0);
0104     QCOMPARE(titleChangedSpy.count(), 0);
0105     QCOMPARE(albumChangedSpy.count(), 0);
0106     QCOMPARE(imageChangedSpy.count(), 0);
0107     QCOMPARE(albumIdChangedSpy.count(), 0);
0108     QCOMPARE(isValidChangedSpy.count(), 0);
0109 }
0110 
0111 void ManageHeaderBarTest::setCurrentTrackWithData()
0112 {
0113     QStringListModel myPlayList;
0114 
0115     ManageHeaderBar myControl;
0116 
0117     QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged);
0118     QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged);
0119     QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged);
0120     QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged);
0121     QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged);
0122     QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged);
0123     QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged);
0124     QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged);
0125     QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged);
0126     QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged);
0127     QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged);
0128     QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged);
0129     QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged);
0130 
0131     QCOMPARE(myControl.currentTrack().isValid(), false);
0132     QCOMPARE(myControl.artistRole(), static_cast<int>(Qt::DisplayRole));
0133     QCOMPARE(myControl.titleRole(), static_cast<int>(Qt::DisplayRole));
0134     QCOMPARE(myControl.albumRole(), static_cast<int>(Qt::DisplayRole));
0135     QCOMPARE(myControl.imageRole(), static_cast<int>(Qt::DisplayRole));
0136     QCOMPARE(myControl.albumIdRole(), static_cast<int>(Qt::DisplayRole));
0137     QCOMPARE(myControl.isValidRole(), static_cast<int>(Qt::DisplayRole));
0138     QCOMPARE(myControl.artist().toString().isEmpty(), true);
0139     QCOMPARE(myControl.title().toString().isEmpty(), true);
0140     QCOMPARE(myControl.album().toString().isEmpty(), true);
0141     QCOMPARE(myControl.image().toString().isEmpty(), true);
0142     QCOMPARE(myControl.isValid(), false);
0143 
0144     QCOMPARE(currentTrackChangedSpy.count(), 0);
0145     QCOMPARE(artistRoleChangedSpy.count(), 0);
0146     QCOMPARE(titleRoleChangedSpy.count(), 0);
0147     QCOMPARE(albumRoleChangedSpy.count(), 0);
0148     QCOMPARE(imageRoleChangedSpy.count(), 0);
0149     QCOMPARE(albumIdRoleChangedSpy.count(), 0);
0150     QCOMPARE(isValidRoleChangedSpy.count(), 0);
0151     QCOMPARE(artistChangedSpy.count(), 0);
0152     QCOMPARE(titleChangedSpy.count(), 0);
0153     QCOMPARE(albumChangedSpy.count(), 0);
0154     QCOMPARE(imageChangedSpy.count(), 0);
0155     QCOMPARE(albumIdChangedSpy.count(), 0);
0156     QCOMPARE(isValidChangedSpy.count(), 0);
0157 
0158     QCOMPARE(myPlayList.insertRows(0, 1), true);
0159 
0160     QCOMPARE(currentTrackChangedSpy.count(), 0);
0161     QCOMPARE(artistRoleChangedSpy.count(), 0);
0162     QCOMPARE(titleRoleChangedSpy.count(), 0);
0163     QCOMPARE(albumRoleChangedSpy.count(), 0);
0164     QCOMPARE(imageRoleChangedSpy.count(), 0);
0165     QCOMPARE(albumIdRoleChangedSpy.count(), 0);
0166     QCOMPARE(isValidRoleChangedSpy.count(), 0);
0167     QCOMPARE(artistChangedSpy.count(), 0);
0168     QCOMPARE(titleChangedSpy.count(), 0);
0169     QCOMPARE(albumChangedSpy.count(), 0);
0170     QCOMPARE(imageChangedSpy.count(), 0);
0171     QCOMPARE(albumIdChangedSpy.count(), 0);
0172     QCOMPARE(isValidChangedSpy.count(), 0);
0173 
0174     myControl.setCurrentTrack(myPlayList.index(0, 0));
0175 
0176     QCOMPARE(currentTrackChangedSpy.count(), 1);
0177     QCOMPARE(artistRoleChangedSpy.count(), 0);
0178     QCOMPARE(titleRoleChangedSpy.count(), 0);
0179     QCOMPARE(albumRoleChangedSpy.count(), 0);
0180     QCOMPARE(imageRoleChangedSpy.count(), 0);
0181     QCOMPARE(albumIdRoleChangedSpy.count(), 0);
0182     QCOMPARE(isValidRoleChangedSpy.count(), 0);
0183     QCOMPARE(artistChangedSpy.count(), 1);
0184     QCOMPARE(titleChangedSpy.count(), 1);
0185     QCOMPARE(albumChangedSpy.count(), 1);
0186     QCOMPARE(imageChangedSpy.count(), 1);
0187     QCOMPARE(albumIdChangedSpy.count(), 0);
0188     QCOMPARE(isValidChangedSpy.count(), 0);;
0189 
0190     QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
0191 }
0192 
0193 QTEST_GUILESS_MAIN(ManageHeaderBarTest)
0194 
0195 
0196 #include "moc_manageheaderbartest.cpp"