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 "manageaudioplayertest.h"
0008 
0009 #include "manageaudioplayer.h"
0010 
0011 #include "elisa_settings.h"
0012 
0013 #include <QSignalSpy>
0014 #include <QTest>
0015 #include <QStandardItemModel>
0016 #include <QStandardItem>
0017 #include <QUrl>
0018 
0019 ManageAudioPlayerTest::ManageAudioPlayerTest(QObject *parent) : QObject(parent)
0020 {
0021 }
0022 
0023 void ManageAudioPlayerTest::initTestCase()
0024 {
0025     QStandardPaths::setTestModeEnabled(true);
0026     Elisa::ElisaConfiguration::instance(QStringLiteral("testfoo"));
0027 }
0028 
0029 void ManageAudioPlayerTest::simpleInitialCase()
0030 {
0031     Elisa::ElisaConfiguration::self()->setDefaults();
0032     ManageAudioPlayer myPlayer;
0033     QStandardItemModel myPlayList;
0034 
0035     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
0036     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
0037     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
0038     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
0039     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
0040     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
0041     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
0042     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
0043     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
0044     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
0045     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
0046     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
0047     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
0048     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
0049 
0050     myPlayList.appendRow(new QStandardItem);
0051     myPlayList.appendRow(new QStandardItem);
0052     myPlayList.appendRow(new QStandardItem);
0053 
0054     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
0055     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
0056     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
0057 
0058     QCOMPARE(currentTrackChangedSpy.count(), 0);
0059     QCOMPARE(playListModelChangedSpy.count(), 0);
0060     QCOMPARE(playerSourceChangedSpy.count(), 0);
0061     QCOMPARE(urlRoleChangedSpy.count(), 0);
0062     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0063     QCOMPARE(playerStatusChangedSpy.count(), 0);
0064     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0065     QCOMPARE(playerErrorChangedSpy.count(), 0);
0066     QCOMPARE(persistentStateChangedSpy.count(), 0);
0067     QCOMPARE(playerPlaySpy.count(), 0);
0068     QCOMPARE(playerPauseSpy.count(), 0);
0069     QCOMPARE(playerStopSpy.count(), 0);
0070     QCOMPARE(skipNextTrackSpy.count(), 0);
0071     QCOMPARE(seekSpy.count(), 0);
0072     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0073     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0074     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0075 
0076     myPlayer.setPlayListModel(&myPlayList);
0077 
0078     QCOMPARE(currentTrackChangedSpy.count(), 0);
0079     QCOMPARE(playListModelChangedSpy.count(), 1);
0080     QCOMPARE(playerSourceChangedSpy.count(), 0);
0081     QCOMPARE(urlRoleChangedSpy.count(), 0);
0082     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0083     QCOMPARE(playerStatusChangedSpy.count(), 0);
0084     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0085     QCOMPARE(playerErrorChangedSpy.count(), 0);
0086     QCOMPARE(persistentStateChangedSpy.count(), 0);
0087     QCOMPARE(playerPlaySpy.count(), 0);
0088     QCOMPARE(playerPauseSpy.count(), 0);
0089     QCOMPARE(playerStopSpy.count(), 0);
0090     QCOMPARE(skipNextTrackSpy.count(), 0);
0091     QCOMPARE(seekSpy.count(), 0);
0092     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0093     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0094     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0095 
0096     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
0097 
0098     QCOMPARE(currentTrackChangedSpy.count(), 1);
0099     QCOMPARE(playListModelChangedSpy.count(), 1);
0100     QCOMPARE(playerSourceChangedSpy.count(), 1);
0101     QCOMPARE(urlRoleChangedSpy.count(), 0);
0102     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0103     QCOMPARE(playerStatusChangedSpy.count(), 0);
0104     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0105     QCOMPARE(playerErrorChangedSpy.count(), 0);
0106     QCOMPARE(persistentStateChangedSpy.count(), 0);
0107     QCOMPARE(playerPlaySpy.count(), 0);
0108     QCOMPARE(playerPauseSpy.count(), 0);
0109     QCOMPARE(playerStopSpy.count(), 0);
0110     QCOMPARE(skipNextTrackSpy.count(), 0);
0111     QCOMPARE(seekSpy.count(), 0);
0112     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0113     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0114     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0115 
0116     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
0117 
0118     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
0119 
0120     QCOMPARE(currentTrackChangedSpy.count(), 1);
0121     QCOMPARE(playListModelChangedSpy.count(), 1);
0122     QCOMPARE(playerSourceChangedSpy.count(), 2);
0123     QCOMPARE(urlRoleChangedSpy.count(), 1);
0124     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0125     QCOMPARE(playerStatusChangedSpy.count(), 0);
0126     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0127     QCOMPARE(playerErrorChangedSpy.count(), 0);
0128     QCOMPARE(persistentStateChangedSpy.count(), 0);
0129     QCOMPARE(playerPlaySpy.count(), 0);
0130     QCOMPARE(playerPauseSpy.count(), 0);
0131     QCOMPARE(playerStopSpy.count(), 0);
0132     QCOMPARE(skipNextTrackSpy.count(), 0);
0133     QCOMPARE(seekSpy.count(), 0);
0134     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0135     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0136     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0137 
0138     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
0139     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
0140 
0141     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
0142 
0143     QCOMPARE(currentTrackChangedSpy.count(), 1);
0144     QCOMPARE(playListModelChangedSpy.count(), 1);
0145     QCOMPARE(playerSourceChangedSpy.count(), 2);
0146     QCOMPARE(urlRoleChangedSpy.count(), 1);
0147     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0148     QCOMPARE(playerStatusChangedSpy.count(), 0);
0149     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0150     QCOMPARE(playerErrorChangedSpy.count(), 0);
0151     QCOMPARE(persistentStateChangedSpy.count(), 0);
0152     QCOMPARE(playerPlaySpy.count(), 0);
0153     QCOMPARE(playerPauseSpy.count(), 0);
0154     QCOMPARE(playerStopSpy.count(), 0);
0155     QCOMPARE(skipNextTrackSpy.count(), 0);
0156     QCOMPARE(seekSpy.count(), 0);
0157     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0158     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0159     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0160 
0161     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
0162 
0163     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
0164 
0165     QCOMPARE(currentTrackChangedSpy.count(), 1);
0166     QCOMPARE(playListModelChangedSpy.count(), 1);
0167     QCOMPARE(playerSourceChangedSpy.count(), 2);
0168     QCOMPARE(urlRoleChangedSpy.count(), 1);
0169     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0170     QCOMPARE(playerStatusChangedSpy.count(), 1);
0171     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0172     QCOMPARE(playerErrorChangedSpy.count(), 0);
0173     QCOMPARE(persistentStateChangedSpy.count(), 0);
0174     QCOMPARE(playerPlaySpy.count(), 0);
0175     QCOMPARE(playerPauseSpy.count(), 0);
0176     QCOMPARE(playerStopSpy.count(), 0);
0177     QCOMPARE(skipNextTrackSpy.count(), 0);
0178     QCOMPARE(seekSpy.count(), 0);
0179     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0180     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0181     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0182 
0183     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
0184 
0185     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
0186 
0187     QCOMPARE(currentTrackChangedSpy.count(), 1);
0188     QCOMPARE(playListModelChangedSpy.count(), 1);
0189     QCOMPARE(playerSourceChangedSpy.count(), 2);
0190     QCOMPARE(urlRoleChangedSpy.count(), 1);
0191     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0192     QCOMPARE(playerStatusChangedSpy.count(), 1);
0193     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0194     QCOMPARE(playerErrorChangedSpy.count(), 0);
0195     QCOMPARE(persistentStateChangedSpy.count(), 0);
0196     QCOMPARE(playerPlaySpy.count(), 0);
0197     QCOMPARE(playerPauseSpy.count(), 0);
0198     QCOMPARE(playerStopSpy.count(), 0);
0199     QCOMPARE(skipNextTrackSpy.count(), 0);
0200     QCOMPARE(seekSpy.count(), 0);
0201     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0202     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0203     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0204 
0205     myPlayer.setPlayerError(QMediaPlayer::NoError);
0206 
0207     QCOMPARE(currentTrackChangedSpy.count(), 1);
0208     QCOMPARE(playListModelChangedSpy.count(), 1);
0209     QCOMPARE(playerSourceChangedSpy.count(), 2);
0210     QCOMPARE(urlRoleChangedSpy.count(), 1);
0211     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0212     QCOMPARE(playerStatusChangedSpy.count(), 1);
0213     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0214     QCOMPARE(playerErrorChangedSpy.count(), 0);
0215     QCOMPARE(persistentStateChangedSpy.count(), 0);
0216     QCOMPARE(playerPlaySpy.count(), 0);
0217     QCOMPARE(playerPauseSpy.count(), 0);
0218     QCOMPARE(playerStopSpy.count(), 0);
0219     QCOMPARE(skipNextTrackSpy.count(), 0);
0220     QCOMPARE(seekSpy.count(), 0);
0221     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0222     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0223     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0224 
0225     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
0226 
0227     QCOMPARE(currentTrackChangedSpy.count(), 1);
0228     QCOMPARE(playListModelChangedSpy.count(), 1);
0229     QCOMPARE(playerSourceChangedSpy.count(), 2);
0230     QCOMPARE(urlRoleChangedSpy.count(), 1);
0231     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0232     QCOMPARE(playerStatusChangedSpy.count(), 2);
0233     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0234     QCOMPARE(playerErrorChangedSpy.count(), 0);
0235     QCOMPARE(persistentStateChangedSpy.count(), 0);
0236     QCOMPARE(playerPlaySpy.count(), 0);
0237     QCOMPARE(playerPauseSpy.count(), 0);
0238     QCOMPARE(playerStopSpy.count(), 0);
0239     QCOMPARE(skipNextTrackSpy.count(), 0);
0240     QCOMPARE(seekSpy.count(), 0);
0241     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0242     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0243     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0244 
0245     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
0246 
0247     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
0248 
0249     QCOMPARE(currentTrackChangedSpy.count(), 1);
0250     QCOMPARE(playListModelChangedSpy.count(), 1);
0251     QCOMPARE(playerSourceChangedSpy.count(), 2);
0252     QCOMPARE(urlRoleChangedSpy.count(), 1);
0253     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0254     QCOMPARE(playerStatusChangedSpy.count(), 3);
0255     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0256     QCOMPARE(playerErrorChangedSpy.count(), 0);
0257     QCOMPARE(persistentStateChangedSpy.count(), 0);
0258     QCOMPARE(playerPlaySpy.count(), 0);
0259     QCOMPARE(playerPauseSpy.count(), 0);
0260     QCOMPARE(playerStopSpy.count(), 0);
0261     QCOMPARE(skipNextTrackSpy.count(), 0);
0262     QCOMPARE(seekSpy.count(), 0);
0263     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0264     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0265     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0266 
0267     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
0268 
0269     myPlayer.playPause();
0270 
0271     QCOMPARE(currentTrackChangedSpy.count(), 1);
0272     QCOMPARE(playListModelChangedSpy.count(), 1);
0273     QCOMPARE(playerSourceChangedSpy.count(), 2);
0274     QCOMPARE(urlRoleChangedSpy.count(), 1);
0275     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0276     QCOMPARE(playerStatusChangedSpy.count(), 3);
0277     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0278     QCOMPARE(playerErrorChangedSpy.count(), 0);
0279     QCOMPARE(persistentStateChangedSpy.count(), 0);
0280     QCOMPARE(playerPlaySpy.count(), 0);
0281     QCOMPARE(playerPauseSpy.count(), 0);
0282     QCOMPARE(playerStopSpy.count(), 0);
0283     QCOMPARE(skipNextTrackSpy.count(), 0);
0284     QCOMPARE(seekSpy.count(), 0);
0285     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0286     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0287     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0288 
0289     QCOMPARE(playerPlaySpy.wait(), true);
0290 
0291     QCOMPARE(currentTrackChangedSpy.count(), 1);
0292     QCOMPARE(playListModelChangedSpy.count(), 1);
0293     QCOMPARE(playerSourceChangedSpy.count(), 2);
0294     QCOMPARE(urlRoleChangedSpy.count(), 1);
0295     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0296     QCOMPARE(playerStatusChangedSpy.count(), 3);
0297     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0298     QCOMPARE(playerErrorChangedSpy.count(), 0);
0299     QCOMPARE(persistentStateChangedSpy.count(), 0);
0300     QCOMPARE(playerPlaySpy.count(), 1);
0301     QCOMPARE(playerPauseSpy.count(), 0);
0302     QCOMPARE(playerStopSpy.count(), 0);
0303     QCOMPARE(skipNextTrackSpy.count(), 0);
0304     QCOMPARE(seekSpy.count(), 0);
0305     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0306     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0307     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0308 
0309     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
0310 
0311     QCOMPARE(currentTrackChangedSpy.count(), 1);
0312     QCOMPARE(playListModelChangedSpy.count(), 1);
0313     QCOMPARE(playerSourceChangedSpy.count(), 2);
0314     QCOMPARE(urlRoleChangedSpy.count(), 1);
0315     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0316     QCOMPARE(playerStatusChangedSpy.count(), 3);
0317     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
0318     QCOMPARE(playerErrorChangedSpy.count(), 0);
0319     QCOMPARE(persistentStateChangedSpy.count(), 0);
0320     QCOMPARE(playerPlaySpy.count(), 1);
0321     QCOMPARE(playerPauseSpy.count(), 0);
0322     QCOMPARE(playerStopSpy.count(), 0);
0323     QCOMPARE(skipNextTrackSpy.count(), 0);
0324     QCOMPARE(seekSpy.count(), 0);
0325     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
0326     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0327     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0328 
0329     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
0330 
0331     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
0332 
0333     QCOMPARE(currentTrackChangedSpy.count(), 1);
0334     QCOMPARE(playListModelChangedSpy.count(), 1);
0335     QCOMPARE(playerSourceChangedSpy.count(), 2);
0336     QCOMPARE(urlRoleChangedSpy.count(), 1);
0337     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0338     QCOMPARE(playerStatusChangedSpy.count(), 4);
0339     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
0340     QCOMPARE(playerErrorChangedSpy.count(), 0);
0341     QCOMPARE(persistentStateChangedSpy.count(), 0);
0342     QCOMPARE(playerPlaySpy.count(), 1);
0343     QCOMPARE(playerPauseSpy.count(), 0);
0344     QCOMPARE(playerStopSpy.count(), 0);
0345     QCOMPARE(skipNextTrackSpy.count(), 0);
0346     QCOMPARE(seekSpy.count(), 0);
0347     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
0348     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0349     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0350 
0351     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
0352 
0353     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
0354 
0355     QCOMPARE(currentTrackChangedSpy.count(), 1);
0356     QCOMPARE(playListModelChangedSpy.count(), 1);
0357     QCOMPARE(playerSourceChangedSpy.count(), 2);
0358     QCOMPARE(urlRoleChangedSpy.count(), 1);
0359     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0360     QCOMPARE(playerStatusChangedSpy.count(), 4);
0361     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
0362     QCOMPARE(playerErrorChangedSpy.count(), 0);
0363     QCOMPARE(persistentStateChangedSpy.count(), 0);
0364     QCOMPARE(playerPlaySpy.count(), 1);
0365     QCOMPARE(playerPauseSpy.count(), 0);
0366     QCOMPARE(playerStopSpy.count(), 0);
0367     QCOMPARE(skipNextTrackSpy.count(), 0);
0368     QCOMPARE(seekSpy.count(), 0);
0369     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0370     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0371     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0372 
0373     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
0374 
0375     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
0376 
0377     QCOMPARE(currentTrackChangedSpy.count(), 1);
0378     QCOMPARE(playListModelChangedSpy.count(), 1);
0379     QCOMPARE(playerSourceChangedSpy.count(), 2);
0380     QCOMPARE(urlRoleChangedSpy.count(), 1);
0381     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0382     QCOMPARE(playerStatusChangedSpy.count(), 5);
0383     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
0384     QCOMPARE(playerErrorChangedSpy.count(), 0);
0385     QCOMPARE(persistentStateChangedSpy.count(), 0);
0386     QCOMPARE(playerPlaySpy.count(), 1);
0387     QCOMPARE(playerPauseSpy.count(), 0);
0388     QCOMPARE(playerStopSpy.count(), 0);
0389     QCOMPARE(skipNextTrackSpy.count(), 0);
0390     QCOMPARE(seekSpy.count(), 0);
0391     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0392     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0393     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0394 
0395     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
0396 
0397     QCOMPARE(skipNextTrackSpy.wait(), true);
0398 
0399     QCOMPARE(currentTrackChangedSpy.count(), 1);
0400     QCOMPARE(playListModelChangedSpy.count(), 1);
0401     QCOMPARE(playerSourceChangedSpy.count(), 2);
0402     QCOMPARE(urlRoleChangedSpy.count(), 1);
0403     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0404     QCOMPARE(playerStatusChangedSpy.count(), 5);
0405     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
0406     QCOMPARE(playerErrorChangedSpy.count(), 0);
0407     QCOMPARE(persistentStateChangedSpy.count(), 0);
0408     QCOMPARE(playerPlaySpy.count(), 1);
0409     QCOMPARE(playerPauseSpy.count(), 0);
0410     QCOMPARE(playerStopSpy.count(), 0);
0411     QCOMPARE(skipNextTrackSpy.count(), 1);
0412     QCOMPARE(seekSpy.count(), 0);
0413     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0414     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0415     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0416 }
0417 
0418 void ManageAudioPlayerTest::noPlayCase()
0419 {
0420     Elisa::ElisaConfiguration::self()->setDefaults();
0421     ManageAudioPlayer myPlayer;
0422     QStandardItemModel myPlayList;
0423 
0424     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
0425     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
0426     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
0427     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
0428     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
0429     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
0430     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
0431     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
0432     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
0433     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
0434     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
0435     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
0436     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
0437     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
0438 
0439     myPlayList.appendRow(new QStandardItem);
0440     myPlayList.appendRow(new QStandardItem);
0441     myPlayList.appendRow(new QStandardItem);
0442 
0443     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
0444     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
0445     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
0446 
0447     QCOMPARE(currentTrackChangedSpy.count(), 0);
0448     QCOMPARE(playListModelChangedSpy.count(), 0);
0449     QCOMPARE(playerSourceChangedSpy.count(), 0);
0450     QCOMPARE(urlRoleChangedSpy.count(), 0);
0451     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0452     QCOMPARE(playerStatusChangedSpy.count(), 0);
0453     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0454     QCOMPARE(playerErrorChangedSpy.count(), 0);
0455     QCOMPARE(persistentStateChangedSpy.count(), 0);
0456     QCOMPARE(playerPlaySpy.count(), 0);
0457     QCOMPARE(playerPauseSpy.count(), 0);
0458     QCOMPARE(playerStopSpy.count(), 0);
0459     QCOMPARE(skipNextTrackSpy.count(), 0);
0460     QCOMPARE(seekSpy.count(), 0);
0461 
0462     myPlayer.setPlayListModel(&myPlayList);
0463 
0464     QCOMPARE(currentTrackChangedSpy.count(), 0);
0465     QCOMPARE(playListModelChangedSpy.count(), 1);
0466     QCOMPARE(playerSourceChangedSpy.count(), 0);
0467     QCOMPARE(urlRoleChangedSpy.count(), 0);
0468     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0469     QCOMPARE(playerStatusChangedSpy.count(), 0);
0470     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0471     QCOMPARE(playerErrorChangedSpy.count(), 0);
0472     QCOMPARE(persistentStateChangedSpy.count(), 0);
0473     QCOMPARE(playerPlaySpy.count(), 0);
0474     QCOMPARE(playerPauseSpy.count(), 0);
0475     QCOMPARE(playerStopSpy.count(), 0);
0476     QCOMPARE(skipNextTrackSpy.count(), 0);
0477     QCOMPARE(seekSpy.count(), 0);
0478 
0479     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
0480 
0481     QCOMPARE(currentTrackChangedSpy.count(), 1);
0482     QCOMPARE(playListModelChangedSpy.count(), 1);
0483     QCOMPARE(playerSourceChangedSpy.count(), 1);
0484     QCOMPARE(urlRoleChangedSpy.count(), 0);
0485     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0486     QCOMPARE(playerStatusChangedSpy.count(), 0);
0487     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0488     QCOMPARE(playerErrorChangedSpy.count(), 0);
0489     QCOMPARE(persistentStateChangedSpy.count(), 0);
0490     QCOMPARE(playerPlaySpy.count(), 0);
0491     QCOMPARE(playerPauseSpy.count(), 0);
0492     QCOMPARE(playerStopSpy.count(), 0);
0493     QCOMPARE(skipNextTrackSpy.count(), 0);
0494     QCOMPARE(seekSpy.count(), 0);
0495 
0496     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
0497 
0498     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
0499 
0500     QCOMPARE(currentTrackChangedSpy.count(), 1);
0501     QCOMPARE(playListModelChangedSpy.count(), 1);
0502     QCOMPARE(playerSourceChangedSpy.count(), 2);
0503     QCOMPARE(urlRoleChangedSpy.count(), 1);
0504     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0505     QCOMPARE(playerStatusChangedSpy.count(), 0);
0506     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0507     QCOMPARE(playerErrorChangedSpy.count(), 0);
0508     QCOMPARE(persistentStateChangedSpy.count(), 0);
0509     QCOMPARE(playerPlaySpy.count(), 0);
0510     QCOMPARE(playerPauseSpy.count(), 0);
0511     QCOMPARE(playerStopSpy.count(), 0);
0512     QCOMPARE(skipNextTrackSpy.count(), 0);
0513     QCOMPARE(seekSpy.count(), 0);
0514 
0515     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
0516     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
0517 
0518     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
0519 
0520     QCOMPARE(currentTrackChangedSpy.count(), 1);
0521     QCOMPARE(playListModelChangedSpy.count(), 1);
0522     QCOMPARE(playerSourceChangedSpy.count(), 2);
0523     QCOMPARE(urlRoleChangedSpy.count(), 1);
0524     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0525     QCOMPARE(playerStatusChangedSpy.count(), 0);
0526     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0527     QCOMPARE(playerErrorChangedSpy.count(), 0);
0528     QCOMPARE(persistentStateChangedSpy.count(), 0);
0529     QCOMPARE(playerPlaySpy.count(), 0);
0530     QCOMPARE(playerPauseSpy.count(), 0);
0531     QCOMPARE(playerStopSpy.count(), 0);
0532     QCOMPARE(skipNextTrackSpy.count(), 0);
0533     QCOMPARE(seekSpy.count(), 0);
0534 
0535     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
0536 
0537     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
0538 
0539     QCOMPARE(currentTrackChangedSpy.count(), 1);
0540     QCOMPARE(playListModelChangedSpy.count(), 1);
0541     QCOMPARE(playerSourceChangedSpy.count(), 2);
0542     QCOMPARE(urlRoleChangedSpy.count(), 1);
0543     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0544     QCOMPARE(playerStatusChangedSpy.count(), 1);
0545     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0546     QCOMPARE(playerErrorChangedSpy.count(), 0);
0547     QCOMPARE(persistentStateChangedSpy.count(), 0);
0548     QCOMPARE(playerPlaySpy.count(), 0);
0549     QCOMPARE(playerPauseSpy.count(), 0);
0550     QCOMPARE(playerStopSpy.count(), 0);
0551     QCOMPARE(skipNextTrackSpy.count(), 0);
0552     QCOMPARE(seekSpy.count(), 0);
0553 
0554     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
0555 
0556     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
0557 
0558     QCOMPARE(currentTrackChangedSpy.count(), 1);
0559     QCOMPARE(playListModelChangedSpy.count(), 1);
0560     QCOMPARE(playerSourceChangedSpy.count(), 2);
0561     QCOMPARE(urlRoleChangedSpy.count(), 1);
0562     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0563     QCOMPARE(playerStatusChangedSpy.count(), 1);
0564     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0565     QCOMPARE(playerErrorChangedSpy.count(), 0);
0566     QCOMPARE(persistentStateChangedSpy.count(), 0);
0567     QCOMPARE(playerPlaySpy.count(), 0);
0568     QCOMPARE(playerPauseSpy.count(), 0);
0569     QCOMPARE(playerStopSpy.count(), 0);
0570     QCOMPARE(skipNextTrackSpy.count(), 0);
0571     QCOMPARE(seekSpy.count(), 0);
0572 
0573     myPlayer.setPlayerError(QMediaPlayer::NoError);
0574 
0575     QCOMPARE(currentTrackChangedSpy.count(), 1);
0576     QCOMPARE(playListModelChangedSpy.count(), 1);
0577     QCOMPARE(playerSourceChangedSpy.count(), 2);
0578     QCOMPARE(urlRoleChangedSpy.count(), 1);
0579     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0580     QCOMPARE(playerStatusChangedSpy.count(), 1);
0581     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0582     QCOMPARE(playerErrorChangedSpy.count(), 0);
0583     QCOMPARE(persistentStateChangedSpy.count(), 0);
0584     QCOMPARE(playerPlaySpy.count(), 0);
0585     QCOMPARE(playerPauseSpy.count(), 0);
0586     QCOMPARE(playerStopSpy.count(), 0);
0587     QCOMPARE(skipNextTrackSpy.count(), 0);
0588     QCOMPARE(seekSpy.count(), 0);
0589 
0590     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
0591 
0592     QCOMPARE(currentTrackChangedSpy.count(), 1);
0593     QCOMPARE(playListModelChangedSpy.count(), 1);
0594     QCOMPARE(playerSourceChangedSpy.count(), 2);
0595     QCOMPARE(urlRoleChangedSpy.count(), 1);
0596     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0597     QCOMPARE(playerStatusChangedSpy.count(), 2);
0598     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0599     QCOMPARE(playerErrorChangedSpy.count(), 0);
0600     QCOMPARE(persistentStateChangedSpy.count(), 0);
0601     QCOMPARE(playerPlaySpy.count(), 0);
0602     QCOMPARE(playerPauseSpy.count(), 0);
0603     QCOMPARE(playerStopSpy.count(), 0);
0604     QCOMPARE(skipNextTrackSpy.count(), 0);
0605     QCOMPARE(seekSpy.count(), 0);
0606 
0607     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
0608 
0609     QCOMPARE(currentTrackChangedSpy.count(), 1);
0610     QCOMPARE(playListModelChangedSpy.count(), 1);
0611     QCOMPARE(playerSourceChangedSpy.count(), 2);
0612     QCOMPARE(urlRoleChangedSpy.count(), 1);
0613     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0614     QCOMPARE(playerStatusChangedSpy.count(), 2);
0615     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0616     QCOMPARE(playerErrorChangedSpy.count(), 0);
0617     QCOMPARE(persistentStateChangedSpy.count(), 0);
0618     QCOMPARE(playerPlaySpy.count(), 0);
0619     QCOMPARE(playerPauseSpy.count(), 0);
0620     QCOMPARE(playerStopSpy.count(), 0);
0621     QCOMPARE(skipNextTrackSpy.count(), 0);
0622     QCOMPARE(seekSpy.count(), 0);
0623 
0624     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
0625 
0626     QCOMPARE(currentTrackChangedSpy.count(), 1);
0627     QCOMPARE(playListModelChangedSpy.count(), 1);
0628     QCOMPARE(playerSourceChangedSpy.count(), 2);
0629     QCOMPARE(urlRoleChangedSpy.count(), 1);
0630     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0631     QCOMPARE(playerStatusChangedSpy.count(), 3);
0632     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0633     QCOMPARE(playerErrorChangedSpy.count(), 0);
0634     QCOMPARE(persistentStateChangedSpy.count(), 0);
0635     QCOMPARE(playerPlaySpy.count(), 0);
0636     QCOMPARE(playerPauseSpy.count(), 0);
0637     QCOMPARE(playerStopSpy.count(), 0);
0638     QCOMPARE(skipNextTrackSpy.count(), 0);
0639     QCOMPARE(seekSpy.count(), 0);
0640 
0641     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
0642 
0643     QCOMPARE(playerPlaySpy.wait(100), false);
0644 
0645     QCOMPARE(currentTrackChangedSpy.count(), 1);
0646     QCOMPARE(playListModelChangedSpy.count(), 1);
0647     QCOMPARE(playerSourceChangedSpy.count(), 2);
0648     QCOMPARE(urlRoleChangedSpy.count(), 1);
0649     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0650     QCOMPARE(playerStatusChangedSpy.count(), 3);
0651     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0652     QCOMPARE(playerErrorChangedSpy.count(), 0);
0653     QCOMPARE(persistentStateChangedSpy.count(), 0);
0654     QCOMPARE(playerPlaySpy.count(), 0);
0655     QCOMPARE(playerPauseSpy.count(), 0);
0656     QCOMPARE(playerStopSpy.count(), 0);
0657     QCOMPARE(skipNextTrackSpy.count(), 0);
0658     QCOMPARE(seekSpy.count(), 0);
0659 }
0660 
0661 void ManageAudioPlayerTest::skipNextTrack()
0662 {
0663     Elisa::ElisaConfiguration::self()->setDefaults();
0664     ManageAudioPlayer myPlayer;
0665     QStandardItemModel myPlayList;
0666 
0667     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
0668     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
0669     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
0670     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
0671     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
0672     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
0673     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
0674     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
0675     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
0676     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
0677     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
0678     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
0679     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
0680     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
0681 
0682     myPlayList.appendRow(new QStandardItem);
0683     myPlayList.appendRow(new QStandardItem);
0684     myPlayList.appendRow(new QStandardItem);
0685 
0686     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
0687     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
0688     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
0689 
0690     QCOMPARE(currentTrackChangedSpy.count(), 0);
0691     QCOMPARE(playListModelChangedSpy.count(), 0);
0692     QCOMPARE(playerSourceChangedSpy.count(), 0);
0693     QCOMPARE(urlRoleChangedSpy.count(), 0);
0694     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0695     QCOMPARE(playerStatusChangedSpy.count(), 0);
0696     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0697     QCOMPARE(playerErrorChangedSpy.count(), 0);
0698     QCOMPARE(persistentStateChangedSpy.count(), 0);
0699     QCOMPARE(playerPlaySpy.count(), 0);
0700     QCOMPARE(playerPauseSpy.count(), 0);
0701     QCOMPARE(playerStopSpy.count(), 0);
0702     QCOMPARE(skipNextTrackSpy.count(), 0);
0703     QCOMPARE(seekSpy.count(), 0);
0704     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0705     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0706     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0707 
0708     myPlayer.setPlayListModel(&myPlayList);
0709 
0710     QCOMPARE(currentTrackChangedSpy.count(), 0);
0711     QCOMPARE(playListModelChangedSpy.count(), 1);
0712     QCOMPARE(playerSourceChangedSpy.count(), 0);
0713     QCOMPARE(urlRoleChangedSpy.count(), 0);
0714     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0715     QCOMPARE(playerStatusChangedSpy.count(), 0);
0716     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0717     QCOMPARE(playerErrorChangedSpy.count(), 0);
0718     QCOMPARE(persistentStateChangedSpy.count(), 0);
0719     QCOMPARE(playerPlaySpy.count(), 0);
0720     QCOMPARE(playerPauseSpy.count(), 0);
0721     QCOMPARE(playerStopSpy.count(), 0);
0722     QCOMPARE(skipNextTrackSpy.count(), 0);
0723     QCOMPARE(seekSpy.count(), 0);
0724     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0725     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0726     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0727 
0728     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
0729 
0730     QCOMPARE(currentTrackChangedSpy.count(), 1);
0731     QCOMPARE(playListModelChangedSpy.count(), 1);
0732     QCOMPARE(playerSourceChangedSpy.count(), 1);
0733     QCOMPARE(urlRoleChangedSpy.count(), 0);
0734     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0735     QCOMPARE(playerStatusChangedSpy.count(), 0);
0736     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0737     QCOMPARE(playerErrorChangedSpy.count(), 0);
0738     QCOMPARE(persistentStateChangedSpy.count(), 0);
0739     QCOMPARE(playerPlaySpy.count(), 0);
0740     QCOMPARE(playerPauseSpy.count(), 0);
0741     QCOMPARE(playerStopSpy.count(), 0);
0742     QCOMPARE(skipNextTrackSpy.count(), 0);
0743     QCOMPARE(seekSpy.count(), 0);
0744     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0745     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0746     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0747 
0748     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
0749 
0750     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
0751 
0752     QCOMPARE(currentTrackChangedSpy.count(), 1);
0753     QCOMPARE(playListModelChangedSpy.count(), 1);
0754     QCOMPARE(playerSourceChangedSpy.count(), 2);
0755     QCOMPARE(urlRoleChangedSpy.count(), 1);
0756     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
0757     QCOMPARE(playerStatusChangedSpy.count(), 0);
0758     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0759     QCOMPARE(playerErrorChangedSpy.count(), 0);
0760     QCOMPARE(persistentStateChangedSpy.count(), 0);
0761     QCOMPARE(playerPlaySpy.count(), 0);
0762     QCOMPARE(playerPauseSpy.count(), 0);
0763     QCOMPARE(playerStopSpy.count(), 0);
0764     QCOMPARE(skipNextTrackSpy.count(), 0);
0765     QCOMPARE(seekSpy.count(), 0);
0766     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0767     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0768     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0769 
0770     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
0771     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
0772 
0773     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
0774 
0775     QCOMPARE(currentTrackChangedSpy.count(), 1);
0776     QCOMPARE(playListModelChangedSpy.count(), 1);
0777     QCOMPARE(playerSourceChangedSpy.count(), 2);
0778     QCOMPARE(urlRoleChangedSpy.count(), 1);
0779     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0780     QCOMPARE(playerStatusChangedSpy.count(), 0);
0781     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0782     QCOMPARE(playerErrorChangedSpy.count(), 0);
0783     QCOMPARE(persistentStateChangedSpy.count(), 0);
0784     QCOMPARE(playerPlaySpy.count(), 0);
0785     QCOMPARE(playerPauseSpy.count(), 0);
0786     QCOMPARE(playerStopSpy.count(), 0);
0787     QCOMPARE(skipNextTrackSpy.count(), 0);
0788     QCOMPARE(seekSpy.count(), 0);
0789     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0790     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0791     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0792 
0793     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
0794 
0795     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
0796 
0797     QCOMPARE(currentTrackChangedSpy.count(), 1);
0798     QCOMPARE(playListModelChangedSpy.count(), 1);
0799     QCOMPARE(playerSourceChangedSpy.count(), 2);
0800     QCOMPARE(urlRoleChangedSpy.count(), 1);
0801     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0802     QCOMPARE(playerStatusChangedSpy.count(), 1);
0803     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0804     QCOMPARE(playerErrorChangedSpy.count(), 0);
0805     QCOMPARE(persistentStateChangedSpy.count(), 0);
0806     QCOMPARE(playerPlaySpy.count(), 0);
0807     QCOMPARE(playerPauseSpy.count(), 0);
0808     QCOMPARE(playerStopSpy.count(), 0);
0809     QCOMPARE(skipNextTrackSpy.count(), 0);
0810     QCOMPARE(seekSpy.count(), 0);
0811     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0812     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0813     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0814 
0815     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
0816 
0817     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
0818 
0819     QCOMPARE(currentTrackChangedSpy.count(), 1);
0820     QCOMPARE(playListModelChangedSpy.count(), 1);
0821     QCOMPARE(playerSourceChangedSpy.count(), 2);
0822     QCOMPARE(urlRoleChangedSpy.count(), 1);
0823     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0824     QCOMPARE(playerStatusChangedSpy.count(), 1);
0825     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0826     QCOMPARE(playerErrorChangedSpy.count(), 0);
0827     QCOMPARE(persistentStateChangedSpy.count(), 0);
0828     QCOMPARE(playerPlaySpy.count(), 0);
0829     QCOMPARE(playerPauseSpy.count(), 0);
0830     QCOMPARE(playerStopSpy.count(), 0);
0831     QCOMPARE(seekSpy.count(), 0);
0832     QCOMPARE(skipNextTrackSpy.count(), 0);
0833     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0834     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0835     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0836 
0837     myPlayer.setPlayerError(QMediaPlayer::NoError);
0838 
0839     QCOMPARE(currentTrackChangedSpy.count(), 1);
0840     QCOMPARE(playListModelChangedSpy.count(), 1);
0841     QCOMPARE(playerSourceChangedSpy.count(), 2);
0842     QCOMPARE(urlRoleChangedSpy.count(), 1);
0843     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0844     QCOMPARE(playerStatusChangedSpy.count(), 1);
0845     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0846     QCOMPARE(playerErrorChangedSpy.count(), 0);
0847     QCOMPARE(persistentStateChangedSpy.count(), 0);
0848     QCOMPARE(playerPlaySpy.count(), 0);
0849     QCOMPARE(playerPauseSpy.count(), 0);
0850     QCOMPARE(playerStopSpy.count(), 0);
0851     QCOMPARE(skipNextTrackSpy.count(), 0);
0852     QCOMPARE(seekSpy.count(), 0);
0853     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0854     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0855     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0856 
0857     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
0858 
0859     QCOMPARE(currentTrackChangedSpy.count(), 1);
0860     QCOMPARE(playListModelChangedSpy.count(), 1);
0861     QCOMPARE(playerSourceChangedSpy.count(), 2);
0862     QCOMPARE(urlRoleChangedSpy.count(), 1);
0863     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0864     QCOMPARE(playerStatusChangedSpy.count(), 2);
0865     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0866     QCOMPARE(playerErrorChangedSpy.count(), 0);
0867     QCOMPARE(persistentStateChangedSpy.count(), 0);
0868     QCOMPARE(playerPlaySpy.count(), 0);
0869     QCOMPARE(playerPauseSpy.count(), 0);
0870     QCOMPARE(playerStopSpy.count(), 0);
0871     QCOMPARE(skipNextTrackSpy.count(), 0);
0872     QCOMPARE(seekSpy.count(), 0);
0873     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0874     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0875     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0876 
0877     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
0878 
0879     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
0880 
0881     QCOMPARE(currentTrackChangedSpy.count(), 1);
0882     QCOMPARE(playListModelChangedSpy.count(), 1);
0883     QCOMPARE(playerSourceChangedSpy.count(), 2);
0884     QCOMPARE(urlRoleChangedSpy.count(), 1);
0885     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0886     QCOMPARE(playerStatusChangedSpy.count(), 3);
0887     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0888     QCOMPARE(playerErrorChangedSpy.count(), 0);
0889     QCOMPARE(persistentStateChangedSpy.count(), 0);
0890     QCOMPARE(playerPlaySpy.count(), 0);
0891     QCOMPARE(playerPauseSpy.count(), 0);
0892     QCOMPARE(playerStopSpy.count(), 0);
0893     QCOMPARE(skipNextTrackSpy.count(), 0);
0894     QCOMPARE(seekSpy.count(), 0);
0895     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0896     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0897     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0898 
0899     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
0900 
0901     myPlayer.playPause();
0902 
0903     QCOMPARE(currentTrackChangedSpy.count(), 1);
0904     QCOMPARE(playListModelChangedSpy.count(), 1);
0905     QCOMPARE(playerSourceChangedSpy.count(), 2);
0906     QCOMPARE(urlRoleChangedSpy.count(), 1);
0907     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0908     QCOMPARE(playerStatusChangedSpy.count(), 3);
0909     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0910     QCOMPARE(playerErrorChangedSpy.count(), 0);
0911     QCOMPARE(persistentStateChangedSpy.count(), 0);
0912     QCOMPARE(playerPlaySpy.count(), 0);
0913     QCOMPARE(playerPauseSpy.count(), 0);
0914     QCOMPARE(playerStopSpy.count(), 0);
0915     QCOMPARE(skipNextTrackSpy.count(), 0);
0916     QCOMPARE(seekSpy.count(), 0);
0917     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0918     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0919     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0920 
0921     QCOMPARE(playerPlaySpy.wait(), true);
0922 
0923     QCOMPARE(currentTrackChangedSpy.count(), 1);
0924     QCOMPARE(playListModelChangedSpy.count(), 1);
0925     QCOMPARE(playerSourceChangedSpy.count(), 2);
0926     QCOMPARE(urlRoleChangedSpy.count(), 1);
0927     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0928     QCOMPARE(playerStatusChangedSpy.count(), 3);
0929     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
0930     QCOMPARE(playerErrorChangedSpy.count(), 0);
0931     QCOMPARE(persistentStateChangedSpy.count(), 0);
0932     QCOMPARE(playerPlaySpy.count(), 1);
0933     QCOMPARE(playerPauseSpy.count(), 0);
0934     QCOMPARE(playerStopSpy.count(), 0);
0935     QCOMPARE(skipNextTrackSpy.count(), 0);
0936     QCOMPARE(seekSpy.count(), 0);
0937     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0938     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0939     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0940 
0941     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
0942 
0943     QCOMPARE(currentTrackChangedSpy.count(), 1);
0944     QCOMPARE(playListModelChangedSpy.count(), 1);
0945     QCOMPARE(playerSourceChangedSpy.count(), 2);
0946     QCOMPARE(urlRoleChangedSpy.count(), 1);
0947     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0948     QCOMPARE(playerStatusChangedSpy.count(), 3);
0949     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
0950     QCOMPARE(playerErrorChangedSpy.count(), 0);
0951     QCOMPARE(persistentStateChangedSpy.count(), 0);
0952     QCOMPARE(playerPlaySpy.count(), 1);
0953     QCOMPARE(playerPauseSpy.count(), 0);
0954     QCOMPARE(playerStopSpy.count(), 0);
0955     QCOMPARE(skipNextTrackSpy.count(), 0);
0956     QCOMPARE(seekSpy.count(), 0);
0957     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
0958     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0959     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0960 
0961     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
0962 
0963     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
0964 
0965     QCOMPARE(currentTrackChangedSpy.count(), 1);
0966     QCOMPARE(playListModelChangedSpy.count(), 1);
0967     QCOMPARE(playerSourceChangedSpy.count(), 2);
0968     QCOMPARE(urlRoleChangedSpy.count(), 1);
0969     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0970     QCOMPARE(playerStatusChangedSpy.count(), 4);
0971     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
0972     QCOMPARE(playerErrorChangedSpy.count(), 0);
0973     QCOMPARE(persistentStateChangedSpy.count(), 0);
0974     QCOMPARE(playerPlaySpy.count(), 1);
0975     QCOMPARE(playerPauseSpy.count(), 0);
0976     QCOMPARE(playerStopSpy.count(), 0);
0977     QCOMPARE(skipNextTrackSpy.count(), 0);
0978     QCOMPARE(seekSpy.count(), 0);
0979     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
0980     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0981     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
0982 
0983     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
0984 
0985     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
0986 
0987     QCOMPARE(currentTrackChangedSpy.count(), 2);
0988     QCOMPARE(playListModelChangedSpy.count(), 1);
0989     QCOMPARE(playerSourceChangedSpy.count(), 2);
0990     QCOMPARE(urlRoleChangedSpy.count(), 1);
0991     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
0992     QCOMPARE(playerStatusChangedSpy.count(), 4);
0993     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
0994     QCOMPARE(playerErrorChangedSpy.count(), 0);
0995     QCOMPARE(persistentStateChangedSpy.count(), 0);
0996     QCOMPARE(playerPlaySpy.count(), 1);
0997     QCOMPARE(playerPauseSpy.count(), 0);
0998     QCOMPARE(playerStopSpy.count(), 0);
0999     QCOMPARE(skipNextTrackSpy.count(), 0);
1000     QCOMPARE(seekSpy.count(), 0);
1001     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1002     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1003     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1004 
1005     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
1006 
1007     QCOMPARE(playerStopSpy.wait(100), true);
1008 
1009     QCOMPARE(currentTrackChangedSpy.count(), 2);
1010     QCOMPARE(playListModelChangedSpy.count(), 1);
1011     QCOMPARE(playerSourceChangedSpy.count(), 2);
1012     QCOMPARE(urlRoleChangedSpy.count(), 1);
1013     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1014     QCOMPARE(playerStatusChangedSpy.count(), 4);
1015     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1016     QCOMPARE(playerErrorChangedSpy.count(), 0);
1017     QCOMPARE(persistentStateChangedSpy.count(), 0);
1018     QCOMPARE(playerPlaySpy.count(), 1);
1019     QCOMPARE(playerPauseSpy.count(), 0);
1020     QCOMPARE(playerStopSpy.count(), 1);
1021     QCOMPARE(skipNextTrackSpy.count(), 0);
1022     QCOMPARE(seekSpy.count(), 0);
1023     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1024     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1025     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1026 
1027     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
1028 
1029     QCOMPARE(currentTrackChangedSpy.count(), 2);
1030     QCOMPARE(playListModelChangedSpy.count(), 1);
1031     QCOMPARE(playerSourceChangedSpy.count(), 3);
1032     QCOMPARE(urlRoleChangedSpy.count(), 1);
1033     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1034     QCOMPARE(playerStatusChangedSpy.count(), 4);
1035     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1036     QCOMPARE(playerErrorChangedSpy.count(), 0);
1037     QCOMPARE(persistentStateChangedSpy.count(), 0);
1038     QCOMPARE(playerPlaySpy.count(), 1);
1039     QCOMPARE(playerPauseSpy.count(), 0);
1040     QCOMPARE(playerStopSpy.count(), 1);
1041     QCOMPARE(skipNextTrackSpy.count(), 0);
1042     QCOMPARE(seekSpy.count(), 0);
1043     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1044     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1045     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1046 
1047     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
1048 
1049     QCOMPARE(skipNextTrackSpy.wait(100), false);
1050 
1051     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
1052 
1053     QCOMPARE(currentTrackChangedSpy.count(), 2);
1054     QCOMPARE(playListModelChangedSpy.count(), 1);
1055     QCOMPARE(playerSourceChangedSpy.count(), 3);
1056     QCOMPARE(urlRoleChangedSpy.count(), 1);
1057     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1058     QCOMPARE(playerStatusChangedSpy.count(), 5);
1059     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1060     QCOMPARE(playerErrorChangedSpy.count(), 0);
1061     QCOMPARE(persistentStateChangedSpy.count(), 0);
1062     QCOMPARE(playerPlaySpy.count(), 1);
1063     QCOMPARE(playerPauseSpy.count(), 0);
1064     QCOMPARE(playerStopSpy.count(), 1);
1065     QCOMPARE(skipNextTrackSpy.count(), 0);
1066     QCOMPARE(seekSpy.count(), 0);
1067     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1068     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1069     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1070 
1071     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
1072 
1073     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
1074 
1075     QCOMPARE(currentTrackChangedSpy.count(), 2);
1076     QCOMPARE(playListModelChangedSpy.count(), 1);
1077     QCOMPARE(playerSourceChangedSpy.count(), 3);
1078     QCOMPARE(urlRoleChangedSpy.count(), 1);
1079     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1080     QCOMPARE(playerStatusChangedSpy.count(), 6);
1081     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1082     QCOMPARE(playerErrorChangedSpy.count(), 0);
1083     QCOMPARE(persistentStateChangedSpy.count(), 0);
1084     QCOMPARE(playerPlaySpy.count(), 1);
1085     QCOMPARE(playerPauseSpy.count(), 0);
1086     QCOMPARE(playerStopSpy.count(), 1);
1087     QCOMPARE(skipNextTrackSpy.count(), 0);
1088     QCOMPARE(seekSpy.count(), 0);
1089     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1090     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1091     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1092 
1093     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
1094 
1095     QCOMPARE(playerPlaySpy.wait(100), true);
1096 
1097     QCOMPARE(currentTrackChangedSpy.count(), 2);
1098     QCOMPARE(playListModelChangedSpy.count(), 1);
1099     QCOMPARE(playerSourceChangedSpy.count(), 3);
1100     QCOMPARE(urlRoleChangedSpy.count(), 1);
1101     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1102     QCOMPARE(playerStatusChangedSpy.count(), 6);
1103     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1104     QCOMPARE(playerErrorChangedSpy.count(), 0);
1105     QCOMPARE(persistentStateChangedSpy.count(), 0);
1106     QCOMPARE(playerPlaySpy.count(), 2);
1107     QCOMPARE(playerPauseSpy.count(), 0);
1108     QCOMPARE(playerStopSpy.count(), 1);
1109     QCOMPARE(skipNextTrackSpy.count(), 0);
1110     QCOMPARE(seekSpy.count(), 0);
1111     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1112     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1113     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1114 }
1115 
1116 void ManageAudioPlayerTest::skipNextTrackWithRandomPlay()
1117 {
1118     Elisa::ElisaConfiguration::self()->setDefaults();
1119     ManageAudioPlayer myPlayer;
1120     QStandardItemModel myPlayList;
1121 
1122     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
1123     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
1124     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
1125     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
1126     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
1127     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
1128     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
1129     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
1130     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
1131     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
1132     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
1133     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
1134     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
1135     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
1136 
1137     myPlayList.appendRow(new QStandardItem);
1138     myPlayList.appendRow(new QStandardItem);
1139     myPlayList.appendRow(new QStandardItem);
1140 
1141     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
1142     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
1143     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
1144 
1145     QCOMPARE(currentTrackChangedSpy.count(), 0);
1146     QCOMPARE(playListModelChangedSpy.count(), 0);
1147     QCOMPARE(playerSourceChangedSpy.count(), 0);
1148     QCOMPARE(urlRoleChangedSpy.count(), 0);
1149     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1150     QCOMPARE(playerStatusChangedSpy.count(), 0);
1151     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1152     QCOMPARE(playerErrorChangedSpy.count(), 0);
1153     QCOMPARE(persistentStateChangedSpy.count(), 0);
1154     QCOMPARE(playerPlaySpy.count(), 0);
1155     QCOMPARE(playerPauseSpy.count(), 0);
1156     QCOMPARE(playerStopSpy.count(), 0);
1157     QCOMPARE(skipNextTrackSpy.count(), 0);
1158     QCOMPARE(seekSpy.count(), 0);
1159     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1160     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1161     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1162 
1163     myPlayer.setPlayListModel(&myPlayList);
1164 
1165     QCOMPARE(currentTrackChangedSpy.count(), 0);
1166     QCOMPARE(playListModelChangedSpy.count(), 1);
1167     QCOMPARE(playerSourceChangedSpy.count(), 0);
1168     QCOMPARE(urlRoleChangedSpy.count(), 0);
1169     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1170     QCOMPARE(playerStatusChangedSpy.count(), 0);
1171     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1172     QCOMPARE(playerErrorChangedSpy.count(), 0);
1173     QCOMPARE(persistentStateChangedSpy.count(), 0);
1174     QCOMPARE(playerPlaySpy.count(), 0);
1175     QCOMPARE(playerPauseSpy.count(), 0);
1176     QCOMPARE(playerStopSpy.count(), 0);
1177     QCOMPARE(skipNextTrackSpy.count(), 0);
1178     QCOMPARE(seekSpy.count(), 0);
1179     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1180     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1181     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1182 
1183     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
1184 
1185     QCOMPARE(currentTrackChangedSpy.count(), 1);
1186     QCOMPARE(playListModelChangedSpy.count(), 1);
1187     QCOMPARE(playerSourceChangedSpy.count(), 1);
1188     QCOMPARE(urlRoleChangedSpy.count(), 0);
1189     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1190     QCOMPARE(playerStatusChangedSpy.count(), 0);
1191     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1192     QCOMPARE(playerErrorChangedSpy.count(), 0);
1193     QCOMPARE(persistentStateChangedSpy.count(), 0);
1194     QCOMPARE(playerPlaySpy.count(), 0);
1195     QCOMPARE(playerPauseSpy.count(), 0);
1196     QCOMPARE(playerStopSpy.count(), 0);
1197     QCOMPARE(skipNextTrackSpy.count(), 0);
1198     QCOMPARE(seekSpy.count(), 0);
1199     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1200     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1201     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1202 
1203     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
1204 
1205     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
1206 
1207     QCOMPARE(currentTrackChangedSpy.count(), 1);
1208     QCOMPARE(playListModelChangedSpy.count(), 1);
1209     QCOMPARE(playerSourceChangedSpy.count(), 2);
1210     QCOMPARE(urlRoleChangedSpy.count(), 1);
1211     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1212     QCOMPARE(playerStatusChangedSpy.count(), 0);
1213     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1214     QCOMPARE(playerErrorChangedSpy.count(), 0);
1215     QCOMPARE(persistentStateChangedSpy.count(), 0);
1216     QCOMPARE(playerPlaySpy.count(), 0);
1217     QCOMPARE(playerPauseSpy.count(), 0);
1218     QCOMPARE(playerStopSpy.count(), 0);
1219     QCOMPARE(skipNextTrackSpy.count(), 0);
1220     QCOMPARE(seekSpy.count(), 0);
1221     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1222     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1223     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1224 
1225     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
1226     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
1227 
1228     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
1229 
1230     QCOMPARE(currentTrackChangedSpy.count(), 1);
1231     QCOMPARE(playListModelChangedSpy.count(), 1);
1232     QCOMPARE(playerSourceChangedSpy.count(), 2);
1233     QCOMPARE(urlRoleChangedSpy.count(), 1);
1234     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1235     QCOMPARE(playerStatusChangedSpy.count(), 0);
1236     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1237     QCOMPARE(playerErrorChangedSpy.count(), 0);
1238     QCOMPARE(persistentStateChangedSpy.count(), 0);
1239     QCOMPARE(playerPlaySpy.count(), 0);
1240     QCOMPARE(playerPauseSpy.count(), 0);
1241     QCOMPARE(playerStopSpy.count(), 0);
1242     QCOMPARE(skipNextTrackSpy.count(), 0);
1243     QCOMPARE(seekSpy.count(), 0);
1244     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1245     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1246     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1247 
1248     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
1249 
1250     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
1251 
1252     QCOMPARE(currentTrackChangedSpy.count(), 1);
1253     QCOMPARE(playListModelChangedSpy.count(), 1);
1254     QCOMPARE(playerSourceChangedSpy.count(), 2);
1255     QCOMPARE(urlRoleChangedSpy.count(), 1);
1256     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1257     QCOMPARE(playerStatusChangedSpy.count(), 1);
1258     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1259     QCOMPARE(playerErrorChangedSpy.count(), 0);
1260     QCOMPARE(persistentStateChangedSpy.count(), 0);
1261     QCOMPARE(playerPlaySpy.count(), 0);
1262     QCOMPARE(playerPauseSpy.count(), 0);
1263     QCOMPARE(playerStopSpy.count(), 0);
1264     QCOMPARE(skipNextTrackSpy.count(), 0);
1265     QCOMPARE(seekSpy.count(), 0);
1266     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1267     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1268     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1269 
1270     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
1271 
1272     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
1273 
1274     QCOMPARE(currentTrackChangedSpy.count(), 1);
1275     QCOMPARE(playListModelChangedSpy.count(), 1);
1276     QCOMPARE(playerSourceChangedSpy.count(), 2);
1277     QCOMPARE(urlRoleChangedSpy.count(), 1);
1278     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1279     QCOMPARE(playerStatusChangedSpy.count(), 1);
1280     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1281     QCOMPARE(playerErrorChangedSpy.count(), 0);
1282     QCOMPARE(persistentStateChangedSpy.count(), 0);
1283     QCOMPARE(playerPlaySpy.count(), 0);
1284     QCOMPARE(playerPauseSpy.count(), 0);
1285     QCOMPARE(playerStopSpy.count(), 0);
1286     QCOMPARE(seekSpy.count(), 0);
1287     QCOMPARE(skipNextTrackSpy.count(), 0);
1288     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1289     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1290     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1291 
1292     myPlayer.setPlayerError(QMediaPlayer::NoError);
1293 
1294     QCOMPARE(currentTrackChangedSpy.count(), 1);
1295     QCOMPARE(playListModelChangedSpy.count(), 1);
1296     QCOMPARE(playerSourceChangedSpy.count(), 2);
1297     QCOMPARE(urlRoleChangedSpy.count(), 1);
1298     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1299     QCOMPARE(playerStatusChangedSpy.count(), 1);
1300     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1301     QCOMPARE(playerErrorChangedSpy.count(), 0);
1302     QCOMPARE(persistentStateChangedSpy.count(), 0);
1303     QCOMPARE(playerPlaySpy.count(), 0);
1304     QCOMPARE(playerPauseSpy.count(), 0);
1305     QCOMPARE(playerStopSpy.count(), 0);
1306     QCOMPARE(skipNextTrackSpy.count(), 0);
1307     QCOMPARE(seekSpy.count(), 0);
1308     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1309     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1310     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1311 
1312     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
1313 
1314     QCOMPARE(currentTrackChangedSpy.count(), 1);
1315     QCOMPARE(playListModelChangedSpy.count(), 1);
1316     QCOMPARE(playerSourceChangedSpy.count(), 2);
1317     QCOMPARE(urlRoleChangedSpy.count(), 1);
1318     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1319     QCOMPARE(playerStatusChangedSpy.count(), 2);
1320     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1321     QCOMPARE(playerErrorChangedSpy.count(), 0);
1322     QCOMPARE(persistentStateChangedSpy.count(), 0);
1323     QCOMPARE(playerPlaySpy.count(), 0);
1324     QCOMPARE(playerPauseSpy.count(), 0);
1325     QCOMPARE(playerStopSpy.count(), 0);
1326     QCOMPARE(skipNextTrackSpy.count(), 0);
1327     QCOMPARE(seekSpy.count(), 0);
1328     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1329     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1330     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1331 
1332     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
1333 
1334     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
1335 
1336     QCOMPARE(currentTrackChangedSpy.count(), 1);
1337     QCOMPARE(playListModelChangedSpy.count(), 1);
1338     QCOMPARE(playerSourceChangedSpy.count(), 2);
1339     QCOMPARE(urlRoleChangedSpy.count(), 1);
1340     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1341     QCOMPARE(playerStatusChangedSpy.count(), 3);
1342     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1343     QCOMPARE(playerErrorChangedSpy.count(), 0);
1344     QCOMPARE(persistentStateChangedSpy.count(), 0);
1345     QCOMPARE(playerPlaySpy.count(), 0);
1346     QCOMPARE(playerPauseSpy.count(), 0);
1347     QCOMPARE(playerStopSpy.count(), 0);
1348     QCOMPARE(skipNextTrackSpy.count(), 0);
1349     QCOMPARE(seekSpy.count(), 0);
1350     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1351     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1352     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1353 
1354     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
1355 
1356     myPlayer.playPause();
1357 
1358     QCOMPARE(currentTrackChangedSpy.count(), 1);
1359     QCOMPARE(playListModelChangedSpy.count(), 1);
1360     QCOMPARE(playerSourceChangedSpy.count(), 2);
1361     QCOMPARE(urlRoleChangedSpy.count(), 1);
1362     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1363     QCOMPARE(playerStatusChangedSpy.count(), 3);
1364     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1365     QCOMPARE(playerErrorChangedSpy.count(), 0);
1366     QCOMPARE(persistentStateChangedSpy.count(), 0);
1367     QCOMPARE(playerPlaySpy.count(), 0);
1368     QCOMPARE(playerPauseSpy.count(), 0);
1369     QCOMPARE(playerStopSpy.count(), 0);
1370     QCOMPARE(skipNextTrackSpy.count(), 0);
1371     QCOMPARE(seekSpy.count(), 0);
1372     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1373     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1374     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1375 
1376     QCOMPARE(playerPlaySpy.wait(), true);
1377 
1378     QCOMPARE(currentTrackChangedSpy.count(), 1);
1379     QCOMPARE(playListModelChangedSpy.count(), 1);
1380     QCOMPARE(playerSourceChangedSpy.count(), 2);
1381     QCOMPARE(urlRoleChangedSpy.count(), 1);
1382     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1383     QCOMPARE(playerStatusChangedSpy.count(), 3);
1384     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1385     QCOMPARE(playerErrorChangedSpy.count(), 0);
1386     QCOMPARE(persistentStateChangedSpy.count(), 0);
1387     QCOMPARE(playerPlaySpy.count(), 1);
1388     QCOMPARE(playerPauseSpy.count(), 0);
1389     QCOMPARE(playerStopSpy.count(), 0);
1390     QCOMPARE(skipNextTrackSpy.count(), 0);
1391     QCOMPARE(seekSpy.count(), 0);
1392     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1393     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1394     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1395 
1396     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
1397 
1398     QCOMPARE(currentTrackChangedSpy.count(), 1);
1399     QCOMPARE(playListModelChangedSpy.count(), 1);
1400     QCOMPARE(playerSourceChangedSpy.count(), 2);
1401     QCOMPARE(urlRoleChangedSpy.count(), 1);
1402     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1403     QCOMPARE(playerStatusChangedSpy.count(), 3);
1404     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1405     QCOMPARE(playerErrorChangedSpy.count(), 0);
1406     QCOMPARE(persistentStateChangedSpy.count(), 0);
1407     QCOMPARE(playerPlaySpy.count(), 1);
1408     QCOMPARE(playerPauseSpy.count(), 0);
1409     QCOMPARE(playerStopSpy.count(), 0);
1410     QCOMPARE(skipNextTrackSpy.count(), 0);
1411     QCOMPARE(seekSpy.count(), 0);
1412     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1413     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1414     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1415 
1416     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
1417 
1418     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
1419 
1420     QCOMPARE(currentTrackChangedSpy.count(), 1);
1421     QCOMPARE(playListModelChangedSpy.count(), 1);
1422     QCOMPARE(playerSourceChangedSpy.count(), 2);
1423     QCOMPARE(urlRoleChangedSpy.count(), 1);
1424     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1425     QCOMPARE(playerStatusChangedSpy.count(), 4);
1426     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1427     QCOMPARE(playerErrorChangedSpy.count(), 0);
1428     QCOMPARE(persistentStateChangedSpy.count(), 0);
1429     QCOMPARE(playerPlaySpy.count(), 1);
1430     QCOMPARE(playerPauseSpy.count(), 0);
1431     QCOMPARE(playerStopSpy.count(), 0);
1432     QCOMPARE(skipNextTrackSpy.count(), 0);
1433     QCOMPARE(seekSpy.count(), 0);
1434     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1435     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1436     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1437 
1438     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
1439 
1440     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
1441 
1442     QCOMPARE(currentTrackChangedSpy.count(), 2);
1443     QCOMPARE(playListModelChangedSpy.count(), 1);
1444     QCOMPARE(playerSourceChangedSpy.count(), 2);
1445     QCOMPARE(urlRoleChangedSpy.count(), 1);
1446     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1447     QCOMPARE(playerStatusChangedSpy.count(), 4);
1448     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1449     QCOMPARE(playerErrorChangedSpy.count(), 0);
1450     QCOMPARE(persistentStateChangedSpy.count(), 0);
1451     QCOMPARE(playerPlaySpy.count(), 1);
1452     QCOMPARE(playerPauseSpy.count(), 0);
1453     QCOMPARE(playerStopSpy.count(), 0);
1454     QCOMPARE(skipNextTrackSpy.count(), 0);
1455     QCOMPARE(seekSpy.count(), 0);
1456     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1457     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1458     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1459 
1460     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
1461 
1462     QCOMPARE(playerStopSpy.wait(100), true);
1463 
1464     QCOMPARE(currentTrackChangedSpy.count(), 2);
1465     QCOMPARE(playListModelChangedSpy.count(), 1);
1466     QCOMPARE(playerSourceChangedSpy.count(), 2);
1467     QCOMPARE(urlRoleChangedSpy.count(), 1);
1468     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1469     QCOMPARE(playerStatusChangedSpy.count(), 4);
1470     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1471     QCOMPARE(playerErrorChangedSpy.count(), 0);
1472     QCOMPARE(persistentStateChangedSpy.count(), 0);
1473     QCOMPARE(playerPlaySpy.count(), 1);
1474     QCOMPARE(playerPauseSpy.count(), 0);
1475     QCOMPARE(playerStopSpy.count(), 1);
1476     QCOMPARE(skipNextTrackSpy.count(), 0);
1477     QCOMPARE(seekSpy.count(), 0);
1478     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
1479     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1480     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1481 
1482     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
1483 
1484     QCOMPARE(currentTrackChangedSpy.count(), 2);
1485     QCOMPARE(playListModelChangedSpy.count(), 1);
1486     QCOMPARE(playerSourceChangedSpy.count(), 3);
1487     QCOMPARE(urlRoleChangedSpy.count(), 1);
1488     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1489     QCOMPARE(playerStatusChangedSpy.count(), 4);
1490     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1491     QCOMPARE(playerErrorChangedSpy.count(), 0);
1492     QCOMPARE(persistentStateChangedSpy.count(), 0);
1493     QCOMPARE(playerPlaySpy.count(), 1);
1494     QCOMPARE(playerPauseSpy.count(), 0);
1495     QCOMPARE(playerStopSpy.count(), 1);
1496     QCOMPARE(skipNextTrackSpy.count(), 0);
1497     QCOMPARE(seekSpy.count(), 0);
1498     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1499     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1500     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1501 
1502     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
1503 
1504     QCOMPARE(skipNextTrackSpy.wait(100), false);
1505 
1506     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
1507 
1508     QCOMPARE(currentTrackChangedSpy.count(), 2);
1509     QCOMPARE(playListModelChangedSpy.count(), 1);
1510     QCOMPARE(playerSourceChangedSpy.count(), 3);
1511     QCOMPARE(urlRoleChangedSpy.count(), 1);
1512     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1513     QCOMPARE(playerStatusChangedSpy.count(), 5);
1514     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1515     QCOMPARE(playerErrorChangedSpy.count(), 0);
1516     QCOMPARE(persistentStateChangedSpy.count(), 0);
1517     QCOMPARE(playerPlaySpy.count(), 1);
1518     QCOMPARE(playerPauseSpy.count(), 0);
1519     QCOMPARE(playerStopSpy.count(), 1);
1520     QCOMPARE(skipNextTrackSpy.count(), 0);
1521     QCOMPARE(seekSpy.count(), 0);
1522     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1523     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1524     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1525 
1526     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
1527 
1528     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
1529 
1530     QCOMPARE(currentTrackChangedSpy.count(), 2);
1531     QCOMPARE(playListModelChangedSpy.count(), 1);
1532     QCOMPARE(playerSourceChangedSpy.count(), 3);
1533     QCOMPARE(urlRoleChangedSpy.count(), 1);
1534     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1535     QCOMPARE(playerStatusChangedSpy.count(), 6);
1536     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1537     QCOMPARE(playerErrorChangedSpy.count(), 0);
1538     QCOMPARE(persistentStateChangedSpy.count(), 0);
1539     QCOMPARE(playerPlaySpy.count(), 1);
1540     QCOMPARE(playerPauseSpy.count(), 0);
1541     QCOMPARE(playerStopSpy.count(), 1);
1542     QCOMPARE(skipNextTrackSpy.count(), 0);
1543     QCOMPARE(seekSpy.count(), 0);
1544     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1545     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1546     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1547 
1548     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
1549 
1550     QCOMPARE(playerPlaySpy.wait(100), true);
1551 
1552     QCOMPARE(currentTrackChangedSpy.count(), 2);
1553     QCOMPARE(playListModelChangedSpy.count(), 1);
1554     QCOMPARE(playerSourceChangedSpy.count(), 3);
1555     QCOMPARE(urlRoleChangedSpy.count(), 1);
1556     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1557     QCOMPARE(playerStatusChangedSpy.count(), 6);
1558     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1559     QCOMPARE(playerErrorChangedSpy.count(), 0);
1560     QCOMPARE(persistentStateChangedSpy.count(), 0);
1561     QCOMPARE(playerPlaySpy.count(), 2);
1562     QCOMPARE(playerPauseSpy.count(), 0);
1563     QCOMPARE(playerStopSpy.count(), 1);
1564     QCOMPARE(skipNextTrackSpy.count(), 0);
1565     QCOMPARE(seekSpy.count(), 0);
1566     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1567     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1568     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
1569 }
1570 
1571 void ManageAudioPlayerTest::skipPreviousTrack()
1572 {
1573     Elisa::ElisaConfiguration::self()->setDefaults();
1574     ManageAudioPlayer myPlayer;
1575     QStandardItemModel myPlayList;
1576 
1577     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
1578     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
1579     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
1580     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
1581     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
1582     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
1583     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
1584     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
1585     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
1586     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
1587     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
1588     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
1589     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
1590     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
1591 
1592     myPlayList.appendRow(new QStandardItem);
1593     myPlayList.appendRow(new QStandardItem);
1594     myPlayList.appendRow(new QStandardItem);
1595 
1596     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
1597     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
1598     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
1599 
1600     QCOMPARE(currentTrackChangedSpy.count(), 0);
1601     QCOMPARE(playListModelChangedSpy.count(), 0);
1602     QCOMPARE(playerSourceChangedSpy.count(), 0);
1603     QCOMPARE(urlRoleChangedSpy.count(), 0);
1604     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1605     QCOMPARE(playerStatusChangedSpy.count(), 0);
1606     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1607     QCOMPARE(playerErrorChangedSpy.count(), 0);
1608     QCOMPARE(persistentStateChangedSpy.count(), 0);
1609     QCOMPARE(playerPlaySpy.count(), 0);
1610     QCOMPARE(playerPauseSpy.count(), 0);
1611     QCOMPARE(playerStopSpy.count(), 0);
1612     QCOMPARE(skipNextTrackSpy.count(), 0);
1613     QCOMPARE(seekSpy.count(), 0);
1614 
1615     myPlayer.setPlayListModel(&myPlayList);
1616 
1617     QCOMPARE(currentTrackChangedSpy.count(), 0);
1618     QCOMPARE(playListModelChangedSpy.count(), 1);
1619     QCOMPARE(playerSourceChangedSpy.count(), 0);
1620     QCOMPARE(urlRoleChangedSpy.count(), 0);
1621     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1622     QCOMPARE(playerStatusChangedSpy.count(), 0);
1623     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1624     QCOMPARE(playerErrorChangedSpy.count(), 0);
1625     QCOMPARE(persistentStateChangedSpy.count(), 0);
1626     QCOMPARE(playerPlaySpy.count(), 0);
1627     QCOMPARE(playerPauseSpy.count(), 0);
1628     QCOMPARE(playerStopSpy.count(), 0);
1629     QCOMPARE(skipNextTrackSpy.count(), 0);
1630     QCOMPARE(seekSpy.count(), 0);
1631 
1632     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
1633 
1634     QCOMPARE(currentTrackChangedSpy.count(), 1);
1635     QCOMPARE(playListModelChangedSpy.count(), 1);
1636     QCOMPARE(playerSourceChangedSpy.count(), 1);
1637     QCOMPARE(urlRoleChangedSpy.count(), 0);
1638     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1639     QCOMPARE(playerStatusChangedSpy.count(), 0);
1640     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1641     QCOMPARE(playerErrorChangedSpy.count(), 0);
1642     QCOMPARE(persistentStateChangedSpy.count(), 0);
1643     QCOMPARE(playerPlaySpy.count(), 0);
1644     QCOMPARE(playerPauseSpy.count(), 0);
1645     QCOMPARE(playerStopSpy.count(), 0);
1646     QCOMPARE(skipNextTrackSpy.count(), 0);
1647     QCOMPARE(seekSpy.count(), 0);
1648 
1649     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
1650 
1651     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
1652 
1653     QCOMPARE(currentTrackChangedSpy.count(), 1);
1654     QCOMPARE(playListModelChangedSpy.count(), 1);
1655     QCOMPARE(playerSourceChangedSpy.count(), 2);
1656     QCOMPARE(urlRoleChangedSpy.count(), 1);
1657     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
1658     QCOMPARE(playerStatusChangedSpy.count(), 0);
1659     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1660     QCOMPARE(playerErrorChangedSpy.count(), 0);
1661     QCOMPARE(persistentStateChangedSpy.count(), 0);
1662     QCOMPARE(playerPlaySpy.count(), 0);
1663     QCOMPARE(playerPauseSpy.count(), 0);
1664     QCOMPARE(playerStopSpy.count(), 0);
1665     QCOMPARE(skipNextTrackSpy.count(), 0);
1666     QCOMPARE(seekSpy.count(), 0);
1667 
1668     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
1669     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
1670 
1671     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
1672 
1673     QCOMPARE(currentTrackChangedSpy.count(), 1);
1674     QCOMPARE(playListModelChangedSpy.count(), 1);
1675     QCOMPARE(playListModelChangedSpy.count(), 1);
1676     QCOMPARE(playerSourceChangedSpy.count(), 2);
1677     QCOMPARE(urlRoleChangedSpy.count(), 1);
1678     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1679     QCOMPARE(playerStatusChangedSpy.count(), 0);
1680     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1681     QCOMPARE(playerErrorChangedSpy.count(), 0);
1682     QCOMPARE(persistentStateChangedSpy.count(), 0);
1683     QCOMPARE(playerPlaySpy.count(), 0);
1684     QCOMPARE(playerPauseSpy.count(), 0);
1685     QCOMPARE(playerStopSpy.count(), 0);
1686     QCOMPARE(skipNextTrackSpy.count(), 0);
1687     QCOMPARE(seekSpy.count(), 0);
1688 
1689     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
1690 
1691     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
1692 
1693     QCOMPARE(currentTrackChangedSpy.count(), 1);
1694     QCOMPARE(playListModelChangedSpy.count(), 1);
1695     QCOMPARE(playerSourceChangedSpy.count(), 2);
1696     QCOMPARE(urlRoleChangedSpy.count(), 1);
1697     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1698     QCOMPARE(playerStatusChangedSpy.count(), 1);
1699     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1700     QCOMPARE(playerErrorChangedSpy.count(), 0);
1701     QCOMPARE(persistentStateChangedSpy.count(), 0);
1702     QCOMPARE(playerPlaySpy.count(), 0);
1703     QCOMPARE(playerPauseSpy.count(), 0);
1704     QCOMPARE(playerStopSpy.count(), 0);
1705     QCOMPARE(skipNextTrackSpy.count(), 0);
1706     QCOMPARE(seekSpy.count(), 0);
1707 
1708     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
1709 
1710     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
1711 
1712     QCOMPARE(currentTrackChangedSpy.count(), 1);
1713     QCOMPARE(playListModelChangedSpy.count(), 1);
1714     QCOMPARE(playerSourceChangedSpy.count(), 2);
1715     QCOMPARE(urlRoleChangedSpy.count(), 1);
1716     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1717     QCOMPARE(playerStatusChangedSpy.count(), 1);
1718     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1719     QCOMPARE(playerErrorChangedSpy.count(), 0);
1720     QCOMPARE(persistentStateChangedSpy.count(), 0);
1721     QCOMPARE(playerPlaySpy.count(), 0);
1722     QCOMPARE(playerPauseSpy.count(), 0);
1723     QCOMPARE(playerStopSpy.count(), 0);
1724     QCOMPARE(skipNextTrackSpy.count(), 0);
1725     QCOMPARE(seekSpy.count(), 0);
1726 
1727     myPlayer.setPlayerError(QMediaPlayer::NoError);
1728 
1729     QCOMPARE(currentTrackChangedSpy.count(), 1);
1730     QCOMPARE(playListModelChangedSpy.count(), 1);
1731     QCOMPARE(playerSourceChangedSpy.count(), 2);
1732     QCOMPARE(urlRoleChangedSpy.count(), 1);
1733     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1734     QCOMPARE(playerStatusChangedSpy.count(), 1);
1735     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1736     QCOMPARE(playerErrorChangedSpy.count(), 0);
1737     QCOMPARE(persistentStateChangedSpy.count(), 0);
1738     QCOMPARE(playerPlaySpy.count(), 0);
1739     QCOMPARE(playerPauseSpy.count(), 0);
1740     QCOMPARE(playerStopSpy.count(), 0);
1741     QCOMPARE(skipNextTrackSpy.count(), 0);
1742     QCOMPARE(seekSpy.count(), 0);
1743 
1744     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
1745 
1746     QCOMPARE(currentTrackChangedSpy.count(), 1);
1747     QCOMPARE(playListModelChangedSpy.count(), 1);
1748     QCOMPARE(playerSourceChangedSpy.count(), 2);
1749     QCOMPARE(urlRoleChangedSpy.count(), 1);
1750     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1751     QCOMPARE(playerStatusChangedSpy.count(), 2);
1752     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1753     QCOMPARE(playerErrorChangedSpy.count(), 0);
1754     QCOMPARE(persistentStateChangedSpy.count(), 0);
1755     QCOMPARE(playerPlaySpy.count(), 0);
1756     QCOMPARE(playerPauseSpy.count(), 0);
1757     QCOMPARE(playerStopSpy.count(), 0);
1758     QCOMPARE(skipNextTrackSpy.count(), 0);
1759     QCOMPARE(seekSpy.count(), 0);
1760 
1761     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
1762 
1763     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
1764 
1765     QCOMPARE(currentTrackChangedSpy.count(), 1);
1766     QCOMPARE(playListModelChangedSpy.count(), 1);
1767     QCOMPARE(playerSourceChangedSpy.count(), 2);
1768     QCOMPARE(urlRoleChangedSpy.count(), 1);
1769     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1770     QCOMPARE(playerStatusChangedSpy.count(), 3);
1771     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1772     QCOMPARE(playerErrorChangedSpy.count(), 0);
1773     QCOMPARE(persistentStateChangedSpy.count(), 0);
1774     QCOMPARE(playerPlaySpy.count(), 0);
1775     QCOMPARE(playerPauseSpy.count(), 0);
1776     QCOMPARE(playerStopSpy.count(), 0);
1777     QCOMPARE(skipNextTrackSpy.count(), 0);
1778     QCOMPARE(seekSpy.count(), 0);
1779 
1780     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
1781 
1782     myPlayer.playPause();
1783 
1784     QCOMPARE(currentTrackChangedSpy.count(), 1);
1785     QCOMPARE(playListModelChangedSpy.count(), 1);
1786     QCOMPARE(playerSourceChangedSpy.count(), 2);
1787     QCOMPARE(urlRoleChangedSpy.count(), 1);
1788     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1789     QCOMPARE(playerStatusChangedSpy.count(), 3);
1790     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1791     QCOMPARE(playerErrorChangedSpy.count(), 0);
1792     QCOMPARE(persistentStateChangedSpy.count(), 0);
1793     QCOMPARE(playerPlaySpy.count(), 0);
1794     QCOMPARE(playerPauseSpy.count(), 0);
1795     QCOMPARE(playerStopSpy.count(), 0);
1796     QCOMPARE(skipNextTrackSpy.count(), 0);
1797     QCOMPARE(seekSpy.count(), 0);
1798 
1799     QCOMPARE(playerPlaySpy.wait(), true);
1800 
1801     QCOMPARE(currentTrackChangedSpy.count(), 1);
1802     QCOMPARE(playListModelChangedSpy.count(), 1);
1803     QCOMPARE(playerSourceChangedSpy.count(), 2);
1804     QCOMPARE(urlRoleChangedSpy.count(), 1);
1805     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1806     QCOMPARE(playerStatusChangedSpy.count(), 3);
1807     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
1808     QCOMPARE(playerErrorChangedSpy.count(), 0);
1809     QCOMPARE(persistentStateChangedSpy.count(), 0);
1810     QCOMPARE(playerPlaySpy.count(), 1);
1811     QCOMPARE(playerPauseSpy.count(), 0);
1812     QCOMPARE(playerStopSpy.count(), 0);
1813     QCOMPARE(skipNextTrackSpy.count(), 0);
1814     QCOMPARE(seekSpy.count(), 0);
1815 
1816     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
1817 
1818     QCOMPARE(currentTrackChangedSpy.count(), 1);
1819     QCOMPARE(playListModelChangedSpy.count(), 1);
1820     QCOMPARE(playerSourceChangedSpy.count(), 2);
1821     QCOMPARE(urlRoleChangedSpy.count(), 1);
1822     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1823     QCOMPARE(playerStatusChangedSpy.count(), 3);
1824     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1825     QCOMPARE(playerErrorChangedSpy.count(), 0);
1826     QCOMPARE(persistentStateChangedSpy.count(), 0);
1827     QCOMPARE(playerPlaySpy.count(), 1);
1828     QCOMPARE(playerPauseSpy.count(), 0);
1829     QCOMPARE(playerStopSpy.count(), 0);
1830     QCOMPARE(skipNextTrackSpy.count(), 0);
1831     QCOMPARE(seekSpy.count(), 0);
1832 
1833     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
1834 
1835     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
1836 
1837     QCOMPARE(currentTrackChangedSpy.count(), 1);
1838     QCOMPARE(playListModelChangedSpy.count(), 1);
1839     QCOMPARE(playerSourceChangedSpy.count(), 2);
1840     QCOMPARE(urlRoleChangedSpy.count(), 1);
1841     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1842     QCOMPARE(playerStatusChangedSpy.count(), 4);
1843     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1844     QCOMPARE(playerErrorChangedSpy.count(), 0);
1845     QCOMPARE(persistentStateChangedSpy.count(), 0);
1846     QCOMPARE(playerPlaySpy.count(), 1);
1847     QCOMPARE(playerPauseSpy.count(), 0);
1848     QCOMPARE(playerStopSpy.count(), 0);
1849     QCOMPARE(skipNextTrackSpy.count(), 0);
1850     QCOMPARE(seekSpy.count(), 0);
1851 
1852     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
1853 
1854     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
1855 
1856     QCOMPARE(currentTrackChangedSpy.count(), 2);
1857     QCOMPARE(playListModelChangedSpy.count(), 1);
1858     QCOMPARE(playerSourceChangedSpy.count(), 2);
1859     QCOMPARE(urlRoleChangedSpy.count(), 1);
1860     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1861     QCOMPARE(playerStatusChangedSpy.count(), 4);
1862     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1863     QCOMPARE(playerErrorChangedSpy.count(), 0);
1864     QCOMPARE(persistentStateChangedSpy.count(), 0);
1865     QCOMPARE(playerPlaySpy.count(), 1);
1866     QCOMPARE(playerPauseSpy.count(), 0);
1867     QCOMPARE(playerStopSpy.count(), 0);
1868     QCOMPARE(skipNextTrackSpy.count(), 0);
1869     QCOMPARE(seekSpy.count(), 0);
1870 
1871     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
1872 
1873     QCOMPARE(playerStopSpy.wait(100), true);
1874 
1875     QCOMPARE(currentTrackChangedSpy.count(), 2);
1876     QCOMPARE(playListModelChangedSpy.count(), 1);
1877     QCOMPARE(playerSourceChangedSpy.count(), 2);
1878     QCOMPARE(urlRoleChangedSpy.count(), 1);
1879     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1880     QCOMPARE(playerStatusChangedSpy.count(), 4);
1881     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
1882     QCOMPARE(playerErrorChangedSpy.count(), 0);
1883     QCOMPARE(persistentStateChangedSpy.count(), 0);
1884     QCOMPARE(playerPlaySpy.count(), 1);
1885     QCOMPARE(playerPauseSpy.count(), 0);
1886     QCOMPARE(playerStopSpy.count(), 1);
1887     QCOMPARE(skipNextTrackSpy.count(), 0);
1888     QCOMPARE(seekSpy.count(), 0);
1889 
1890     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
1891 
1892     QCOMPARE(currentTrackChangedSpy.count(), 2);
1893     QCOMPARE(playListModelChangedSpy.count(), 1);
1894     QCOMPARE(playerSourceChangedSpy.count(), 3);
1895     QCOMPARE(urlRoleChangedSpy.count(), 1);
1896     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1897     QCOMPARE(playerStatusChangedSpy.count(), 4);
1898     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1899     QCOMPARE(playerErrorChangedSpy.count(), 0);
1900     QCOMPARE(persistentStateChangedSpy.count(), 0);
1901     QCOMPARE(playerPlaySpy.count(), 1);
1902     QCOMPARE(playerPauseSpy.count(), 0);
1903     QCOMPARE(playerStopSpy.count(), 1);
1904     QCOMPARE(skipNextTrackSpy.count(), 0);
1905     QCOMPARE(seekSpy.count(), 0);
1906 
1907     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
1908 
1909     QCOMPARE(skipNextTrackSpy.wait(100), false);
1910 
1911     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
1912 
1913     QCOMPARE(currentTrackChangedSpy.count(), 2);
1914     QCOMPARE(playListModelChangedSpy.count(), 1);
1915     QCOMPARE(playerSourceChangedSpy.count(), 3);
1916     QCOMPARE(urlRoleChangedSpy.count(), 1);
1917     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1918     QCOMPARE(playerStatusChangedSpy.count(), 5);
1919     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1920     QCOMPARE(playerErrorChangedSpy.count(), 0);
1921     QCOMPARE(persistentStateChangedSpy.count(), 0);
1922     QCOMPARE(playerPlaySpy.count(), 1);
1923     QCOMPARE(playerPauseSpy.count(), 0);
1924     QCOMPARE(playerStopSpy.count(), 1);
1925     QCOMPARE(skipNextTrackSpy.count(), 0);
1926     QCOMPARE(seekSpy.count(), 0);
1927 
1928     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
1929 
1930     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
1931 
1932     QCOMPARE(currentTrackChangedSpy.count(), 2);
1933     QCOMPARE(playListModelChangedSpy.count(), 1);
1934     QCOMPARE(playerSourceChangedSpy.count(), 3);
1935     QCOMPARE(urlRoleChangedSpy.count(), 1);
1936     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1937     QCOMPARE(playerStatusChangedSpy.count(), 6);
1938     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1939     QCOMPARE(playerErrorChangedSpy.count(), 0);
1940     QCOMPARE(persistentStateChangedSpy.count(), 0);
1941     QCOMPARE(playerPlaySpy.count(), 1);
1942     QCOMPARE(playerPauseSpy.count(), 0);
1943     QCOMPARE(playerStopSpy.count(), 1);
1944     QCOMPARE(skipNextTrackSpy.count(), 0);
1945     QCOMPARE(seekSpy.count(), 0);
1946 
1947     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
1948 
1949     QCOMPARE(playerPlaySpy.wait(100), true);
1950 
1951     QCOMPARE(currentTrackChangedSpy.count(), 2);
1952     QCOMPARE(playListModelChangedSpy.count(), 1);
1953     QCOMPARE(playerSourceChangedSpy.count(), 3);
1954     QCOMPARE(urlRoleChangedSpy.count(), 1);
1955     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
1956     QCOMPARE(playerStatusChangedSpy.count(), 6);
1957     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
1958     QCOMPARE(playerErrorChangedSpy.count(), 0);
1959     QCOMPARE(persistentStateChangedSpy.count(), 0);
1960     QCOMPARE(playerPlaySpy.count(), 2);
1961     QCOMPARE(playerPauseSpy.count(), 0);
1962     QCOMPARE(playerStopSpy.count(), 1);
1963     QCOMPARE(skipNextTrackSpy.count(), 0);
1964     QCOMPARE(seekSpy.count(), 0);
1965 }
1966 
1967 void ManageAudioPlayerTest::playTrackAndskipNextTrack()
1968 {
1969     Elisa::ElisaConfiguration::self()->setDefaults();
1970     ManageAudioPlayer myPlayer;
1971     QStandardItemModel myPlayList;
1972 
1973     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
1974     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
1975     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
1976     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
1977     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
1978     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
1979     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
1980     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
1981     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
1982     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
1983     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
1984     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
1985     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
1986     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
1987 
1988     myPlayList.appendRow(new QStandardItem);
1989     myPlayList.appendRow(new QStandardItem);
1990     myPlayList.appendRow(new QStandardItem);
1991 
1992     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
1993     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
1994     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
1995 
1996     QCOMPARE(currentTrackChangedSpy.count(), 0);
1997     QCOMPARE(playListModelChangedSpy.count(), 0);
1998     QCOMPARE(playerSourceChangedSpy.count(), 0);
1999     QCOMPARE(urlRoleChangedSpy.count(), 0);
2000     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2001     QCOMPARE(playerStatusChangedSpy.count(), 0);
2002     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2003     QCOMPARE(playerErrorChangedSpy.count(), 0);
2004     QCOMPARE(persistentStateChangedSpy.count(), 0);
2005     QCOMPARE(playerPlaySpy.count(), 0);
2006     QCOMPARE(playerPauseSpy.count(), 0);
2007     QCOMPARE(playerStopSpy.count(), 0);
2008     QCOMPARE(skipNextTrackSpy.count(), 0);
2009     QCOMPARE(seekSpy.count(), 0);
2010 
2011     myPlayer.setPlayListModel(&myPlayList);
2012 
2013     QCOMPARE(currentTrackChangedSpy.count(), 0);
2014     QCOMPARE(playListModelChangedSpy.count(), 1);
2015     QCOMPARE(playerSourceChangedSpy.count(), 0);
2016     QCOMPARE(urlRoleChangedSpy.count(), 0);
2017     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2018     QCOMPARE(playerStatusChangedSpy.count(), 0);
2019     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2020     QCOMPARE(playerErrorChangedSpy.count(), 0);
2021     QCOMPARE(persistentStateChangedSpy.count(), 0);
2022     QCOMPARE(playerPlaySpy.count(), 0);
2023     QCOMPARE(playerPauseSpy.count(), 0);
2024     QCOMPARE(playerStopSpy.count(), 0);
2025     QCOMPARE(skipNextTrackSpy.count(), 0);
2026     QCOMPARE(seekSpy.count(), 0);
2027 
2028     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
2029 
2030     QCOMPARE(currentTrackChangedSpy.count(), 1);
2031     QCOMPARE(playListModelChangedSpy.count(), 1);
2032     QCOMPARE(playerSourceChangedSpy.count(), 1);
2033     QCOMPARE(urlRoleChangedSpy.count(), 0);
2034     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2035     QCOMPARE(playerStatusChangedSpy.count(), 0);
2036     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2037     QCOMPARE(playerErrorChangedSpy.count(), 0);
2038     QCOMPARE(persistentStateChangedSpy.count(), 0);
2039     QCOMPARE(playerPlaySpy.count(), 0);
2040     QCOMPARE(playerPauseSpy.count(), 0);
2041     QCOMPARE(playerStopSpy.count(), 0);
2042     QCOMPARE(skipNextTrackSpy.count(), 0);
2043     QCOMPARE(seekSpy.count(), 0);
2044 
2045     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
2046 
2047     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
2048 
2049     QCOMPARE(currentTrackChangedSpy.count(), 1);
2050     QCOMPARE(playListModelChangedSpy.count(), 1);
2051     QCOMPARE(playerSourceChangedSpy.count(), 2);
2052     QCOMPARE(urlRoleChangedSpy.count(), 1);
2053     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2054     QCOMPARE(playerStatusChangedSpy.count(), 0);
2055     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2056     QCOMPARE(playerErrorChangedSpy.count(), 0);
2057     QCOMPARE(persistentStateChangedSpy.count(), 0);
2058     QCOMPARE(playerPlaySpy.count(), 0);
2059     QCOMPARE(playerPauseSpy.count(), 0);
2060     QCOMPARE(playerStopSpy.count(), 0);
2061     QCOMPARE(skipNextTrackSpy.count(), 0);
2062     QCOMPARE(seekSpy.count(), 0);
2063 
2064     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
2065     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
2066 
2067     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
2068 
2069     QCOMPARE(currentTrackChangedSpy.count(), 1);
2070     QCOMPARE(playListModelChangedSpy.count(), 1);
2071     QCOMPARE(playerSourceChangedSpy.count(), 2);
2072     QCOMPARE(urlRoleChangedSpy.count(), 1);
2073     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2074     QCOMPARE(playerStatusChangedSpy.count(), 0);
2075     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2076     QCOMPARE(playerErrorChangedSpy.count(), 0);
2077     QCOMPARE(persistentStateChangedSpy.count(), 0);
2078     QCOMPARE(playerPlaySpy.count(), 0);
2079     QCOMPARE(playerPauseSpy.count(), 0);
2080     QCOMPARE(playerStopSpy.count(), 0);
2081     QCOMPARE(skipNextTrackSpy.count(), 0);
2082     QCOMPARE(seekSpy.count(), 0);
2083 
2084     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
2085 
2086     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
2087 
2088     QCOMPARE(currentTrackChangedSpy.count(), 1);
2089     QCOMPARE(playListModelChangedSpy.count(), 1);
2090     QCOMPARE(playerSourceChangedSpy.count(), 2);
2091     QCOMPARE(urlRoleChangedSpy.count(), 1);
2092     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2093     QCOMPARE(playerStatusChangedSpy.count(), 1);
2094     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2095     QCOMPARE(playerErrorChangedSpy.count(), 0);
2096     QCOMPARE(persistentStateChangedSpy.count(), 0);
2097     QCOMPARE(playerPlaySpy.count(), 0);
2098     QCOMPARE(playerPauseSpy.count(), 0);
2099     QCOMPARE(playerStopSpy.count(), 0);
2100     QCOMPARE(skipNextTrackSpy.count(), 0);
2101     QCOMPARE(seekSpy.count(), 0);
2102 
2103     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
2104 
2105     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
2106 
2107     QCOMPARE(currentTrackChangedSpy.count(), 1);
2108     QCOMPARE(playListModelChangedSpy.count(), 1);
2109     QCOMPARE(playerSourceChangedSpy.count(), 2);
2110     QCOMPARE(urlRoleChangedSpy.count(), 1);
2111     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2112     QCOMPARE(playerStatusChangedSpy.count(), 1);
2113     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2114     QCOMPARE(playerErrorChangedSpy.count(), 0);
2115     QCOMPARE(persistentStateChangedSpy.count(), 0);
2116     QCOMPARE(playerPlaySpy.count(), 0);
2117     QCOMPARE(playerPauseSpy.count(), 0);
2118     QCOMPARE(playerStopSpy.count(), 0);
2119     QCOMPARE(skipNextTrackSpy.count(), 0);
2120     QCOMPARE(seekSpy.count(), 0);
2121 
2122     myPlayer.setPlayerError(QMediaPlayer::NoError);
2123 
2124     QCOMPARE(currentTrackChangedSpy.count(), 1);
2125     QCOMPARE(playListModelChangedSpy.count(), 1);
2126     QCOMPARE(playerSourceChangedSpy.count(), 2);
2127     QCOMPARE(urlRoleChangedSpy.count(), 1);
2128     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2129     QCOMPARE(playerStatusChangedSpy.count(), 1);
2130     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2131     QCOMPARE(playerErrorChangedSpy.count(), 0);
2132     QCOMPARE(persistentStateChangedSpy.count(), 0);
2133     QCOMPARE(playerPlaySpy.count(), 0);
2134     QCOMPARE(playerPauseSpy.count(), 0);
2135     QCOMPARE(playerStopSpy.count(), 0);
2136     QCOMPARE(skipNextTrackSpy.count(), 0);
2137     QCOMPARE(seekSpy.count(), 0);
2138 
2139     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
2140 
2141     QCOMPARE(currentTrackChangedSpy.count(), 1);
2142     QCOMPARE(playListModelChangedSpy.count(), 1);
2143     QCOMPARE(playerSourceChangedSpy.count(), 2);
2144     QCOMPARE(urlRoleChangedSpy.count(), 1);
2145     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2146     QCOMPARE(playerStatusChangedSpy.count(), 2);
2147     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2148     QCOMPARE(playerErrorChangedSpy.count(), 0);
2149     QCOMPARE(persistentStateChangedSpy.count(), 0);
2150     QCOMPARE(playerPlaySpy.count(), 0);
2151     QCOMPARE(playerPauseSpy.count(), 0);
2152     QCOMPARE(playerStopSpy.count(), 0);
2153     QCOMPARE(skipNextTrackSpy.count(), 0);
2154     QCOMPARE(seekSpy.count(), 0);
2155 
2156     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
2157 
2158     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
2159 
2160     QCOMPARE(currentTrackChangedSpy.count(), 1);
2161     QCOMPARE(playListModelChangedSpy.count(), 1);
2162     QCOMPARE(playerSourceChangedSpy.count(), 2);
2163     QCOMPARE(urlRoleChangedSpy.count(), 1);
2164     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2165     QCOMPARE(playerStatusChangedSpy.count(), 3);
2166     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2167     QCOMPARE(playerErrorChangedSpy.count(), 0);
2168     QCOMPARE(persistentStateChangedSpy.count(), 0);
2169     QCOMPARE(playerPlaySpy.count(), 0);
2170     QCOMPARE(playerPauseSpy.count(), 0);
2171     QCOMPARE(playerStopSpy.count(), 0);
2172     QCOMPARE(skipNextTrackSpy.count(), 0);
2173     QCOMPARE(seekSpy.count(), 0);
2174 
2175     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
2176 
2177     myPlayer.playPause();
2178 
2179     QCOMPARE(currentTrackChangedSpy.count(), 1);
2180     QCOMPARE(playListModelChangedSpy.count(), 1);
2181     QCOMPARE(playerSourceChangedSpy.count(), 2);
2182     QCOMPARE(urlRoleChangedSpy.count(), 1);
2183     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2184     QCOMPARE(playerStatusChangedSpy.count(), 3);
2185     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2186     QCOMPARE(playerErrorChangedSpy.count(), 0);
2187     QCOMPARE(persistentStateChangedSpy.count(), 0);
2188     QCOMPARE(playerPlaySpy.count(), 0);
2189     QCOMPARE(playerPauseSpy.count(), 0);
2190     QCOMPARE(playerStopSpy.count(), 0);
2191     QCOMPARE(skipNextTrackSpy.count(), 0);
2192     QCOMPARE(seekSpy.count(), 0);
2193 
2194     QCOMPARE(playerPlaySpy.wait(), true);
2195 
2196     QCOMPARE(currentTrackChangedSpy.count(), 1);
2197     QCOMPARE(playListModelChangedSpy.count(), 1);
2198     QCOMPARE(playerSourceChangedSpy.count(), 2);
2199     QCOMPARE(urlRoleChangedSpy.count(), 1);
2200     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2201     QCOMPARE(playerStatusChangedSpy.count(), 3);
2202     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2203     QCOMPARE(playerErrorChangedSpy.count(), 0);
2204     QCOMPARE(persistentStateChangedSpy.count(), 0);
2205     QCOMPARE(playerPlaySpy.count(), 1);
2206     QCOMPARE(playerPauseSpy.count(), 0);
2207     QCOMPARE(playerStopSpy.count(), 0);
2208     QCOMPARE(skipNextTrackSpy.count(), 0);
2209     QCOMPARE(seekSpy.count(), 0);
2210 
2211     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
2212 
2213     QCOMPARE(currentTrackChangedSpy.count(), 1);
2214     QCOMPARE(playListModelChangedSpy.count(), 1);
2215     QCOMPARE(playerSourceChangedSpy.count(), 2);
2216     QCOMPARE(urlRoleChangedSpy.count(), 1);
2217     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2218     QCOMPARE(playerStatusChangedSpy.count(), 3);
2219     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
2220     QCOMPARE(playerErrorChangedSpy.count(), 0);
2221     QCOMPARE(persistentStateChangedSpy.count(), 0);
2222     QCOMPARE(playerPlaySpy.count(), 1);
2223     QCOMPARE(playerPauseSpy.count(), 0);
2224     QCOMPARE(playerStopSpy.count(), 0);
2225     QCOMPARE(skipNextTrackSpy.count(), 0);
2226     QCOMPARE(seekSpy.count(), 0);
2227 
2228     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
2229 
2230     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
2231 
2232     QCOMPARE(currentTrackChangedSpy.count(), 1);
2233     QCOMPARE(playListModelChangedSpy.count(), 1);
2234     QCOMPARE(playerSourceChangedSpy.count(), 2);
2235     QCOMPARE(urlRoleChangedSpy.count(), 1);
2236     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2237     QCOMPARE(playerStatusChangedSpy.count(), 4);
2238     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
2239     QCOMPARE(playerErrorChangedSpy.count(), 0);
2240     QCOMPARE(persistentStateChangedSpy.count(), 0);
2241     QCOMPARE(playerPlaySpy.count(), 1);
2242     QCOMPARE(playerPauseSpy.count(), 0);
2243     QCOMPARE(playerStopSpy.count(), 0);
2244     QCOMPARE(skipNextTrackSpy.count(), 0);
2245     QCOMPARE(seekSpy.count(), 0);
2246 
2247     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
2248 
2249     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
2250 
2251     QCOMPARE(currentTrackChangedSpy.count(), 1);
2252     QCOMPARE(playListModelChangedSpy.count(), 1);
2253     QCOMPARE(playerSourceChangedSpy.count(), 2);
2254     QCOMPARE(urlRoleChangedSpy.count(), 1);
2255     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2256     QCOMPARE(playerStatusChangedSpy.count(), 4);
2257     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2258     QCOMPARE(playerErrorChangedSpy.count(), 0);
2259     QCOMPARE(persistentStateChangedSpy.count(), 0);
2260     QCOMPARE(playerPlaySpy.count(), 1);
2261     QCOMPARE(playerPauseSpy.count(), 0);
2262     QCOMPARE(playerStopSpy.count(), 0);
2263     QCOMPARE(skipNextTrackSpy.count(), 0);
2264     QCOMPARE(seekSpy.count(), 0);
2265 
2266     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
2267 
2268     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
2269 
2270     QCOMPARE(currentTrackChangedSpy.count(), 1);
2271     QCOMPARE(playListModelChangedSpy.count(), 1);
2272     QCOMPARE(playerSourceChangedSpy.count(), 2);
2273     QCOMPARE(urlRoleChangedSpy.count(), 1);
2274     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2275     QCOMPARE(playerStatusChangedSpy.count(), 5);
2276     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2277     QCOMPARE(playerErrorChangedSpy.count(), 0);
2278     QCOMPARE(persistentStateChangedSpy.count(), 0);
2279     QCOMPARE(playerPlaySpy.count(), 1);
2280     QCOMPARE(playerPauseSpy.count(), 0);
2281     QCOMPARE(playerStopSpy.count(), 0);
2282     QCOMPARE(skipNextTrackSpy.count(), 0);
2283     QCOMPARE(seekSpy.count(), 0);
2284 
2285     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
2286 
2287     QCOMPARE(skipNextTrackSpy.wait(100), true);
2288 
2289     QCOMPARE(currentTrackChangedSpy.count(), 1);
2290     QCOMPARE(playListModelChangedSpy.count(), 1);
2291     QCOMPARE(playerSourceChangedSpy.count(), 2);
2292     QCOMPARE(urlRoleChangedSpy.count(), 1);
2293     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2294     QCOMPARE(playerStatusChangedSpy.count(), 5);
2295     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2296     QCOMPARE(playerErrorChangedSpy.count(), 0);
2297     QCOMPARE(persistentStateChangedSpy.count(), 0);
2298     QCOMPARE(playerPlaySpy.count(), 1);
2299     QCOMPARE(playerPauseSpy.count(), 0);
2300     QCOMPARE(playerStopSpy.count(), 0);
2301     QCOMPARE(skipNextTrackSpy.count(), 1);
2302     QCOMPARE(seekSpy.count(), 0);
2303 
2304     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
2305 
2306     QCOMPARE(currentTrackChangedSpy.count(), 2);
2307     QCOMPARE(playListModelChangedSpy.count(), 1);
2308     QCOMPARE(playerSourceChangedSpy.count(), 3);
2309     QCOMPARE(urlRoleChangedSpy.count(), 1);
2310     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2311     QCOMPARE(playerStatusChangedSpy.count(), 5);
2312     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2313     QCOMPARE(playerErrorChangedSpy.count(), 0);
2314     QCOMPARE(persistentStateChangedSpy.count(), 0);
2315     QCOMPARE(playerPlaySpy.count(), 1);
2316     QCOMPARE(playerPauseSpy.count(), 0);
2317     QCOMPARE(playerStopSpy.count(), 0);
2318     QCOMPARE(skipNextTrackSpy.count(), 1);
2319     QCOMPARE(seekSpy.count(), 0);
2320 
2321     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
2322     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
2323 
2324     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
2325 
2326     QCOMPARE(currentTrackChangedSpy.count(), 2);
2327     QCOMPARE(playListModelChangedSpy.count(), 1);
2328     QCOMPARE(playerSourceChangedSpy.count(), 3);
2329     QCOMPARE(urlRoleChangedSpy.count(), 1);
2330     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2331     QCOMPARE(playerStatusChangedSpy.count(), 6);
2332     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2333     QCOMPARE(playerErrorChangedSpy.count(), 0);
2334     QCOMPARE(persistentStateChangedSpy.count(), 0);
2335     QCOMPARE(playerPlaySpy.count(), 1);
2336     QCOMPARE(playerPauseSpy.count(), 0);
2337     QCOMPARE(playerStopSpy.count(), 0);
2338     QCOMPARE(skipNextTrackSpy.count(), 1);
2339     QCOMPARE(seekSpy.count(), 0);
2340 
2341     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
2342 
2343     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
2344 
2345     QCOMPARE(currentTrackChangedSpy.count(), 2);
2346     QCOMPARE(playListModelChangedSpy.count(), 1);
2347     QCOMPARE(playerSourceChangedSpy.count(), 3);
2348     QCOMPARE(urlRoleChangedSpy.count(), 1);
2349     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2350     QCOMPARE(playerStatusChangedSpy.count(), 7);
2351     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2352     QCOMPARE(playerErrorChangedSpy.count(), 0);
2353     QCOMPARE(persistentStateChangedSpy.count(), 0);
2354     QCOMPARE(playerPlaySpy.count(), 1);
2355     QCOMPARE(playerPauseSpy.count(), 0);
2356     QCOMPARE(playerStopSpy.count(), 0);
2357     QCOMPARE(skipNextTrackSpy.count(), 1);
2358     QCOMPARE(seekSpy.count(), 0);
2359 
2360     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
2361 
2362     QCOMPARE(playerPlaySpy.wait(100), true);
2363 
2364     QCOMPARE(currentTrackChangedSpy.count(), 2);
2365     QCOMPARE(playListModelChangedSpy.count(), 1);
2366     QCOMPARE(playerSourceChangedSpy.count(), 3);
2367     QCOMPARE(urlRoleChangedSpy.count(), 1);
2368     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2369     QCOMPARE(playerStatusChangedSpy.count(), 7);
2370     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2371     QCOMPARE(playerErrorChangedSpy.count(), 0);
2372     QCOMPARE(persistentStateChangedSpy.count(), 0);
2373     QCOMPARE(playerPlaySpy.count(), 2);
2374     QCOMPARE(playerPauseSpy.count(), 0);
2375     QCOMPARE(playerStopSpy.count(), 0);
2376     QCOMPARE(skipNextTrackSpy.count(), 1);
2377     QCOMPARE(seekSpy.count(), 0);
2378 
2379     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
2380 
2381     QCOMPARE(currentTrackChangedSpy.count(), 2);
2382     QCOMPARE(playListModelChangedSpy.count(), 1);
2383     QCOMPARE(playerSourceChangedSpy.count(), 3);
2384     QCOMPARE(urlRoleChangedSpy.count(), 1);
2385     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2386     QCOMPARE(playerStatusChangedSpy.count(), 7);
2387     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2388     QCOMPARE(playerErrorChangedSpy.count(), 0);
2389     QCOMPARE(persistentStateChangedSpy.count(), 0);
2390     QCOMPARE(playerPlaySpy.count(), 2);
2391     QCOMPARE(playerPauseSpy.count(), 0);
2392     QCOMPARE(playerStopSpy.count(), 0);
2393     QCOMPARE(skipNextTrackSpy.count(), 1);
2394     QCOMPARE(seekSpy.count(), 0);
2395 
2396     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
2397 
2398     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
2399 
2400     QCOMPARE(currentTrackChangedSpy.count(), 2);
2401     QCOMPARE(playListModelChangedSpy.count(), 1);
2402     QCOMPARE(playerSourceChangedSpy.count(), 3);
2403     QCOMPARE(urlRoleChangedSpy.count(), 1);
2404     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2405     QCOMPARE(playerStatusChangedSpy.count(), 8);
2406     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2407     QCOMPARE(playerErrorChangedSpy.count(), 0);
2408     QCOMPARE(persistentStateChangedSpy.count(), 0);
2409     QCOMPARE(playerPlaySpy.count(), 2);
2410     QCOMPARE(playerPauseSpy.count(), 0);
2411     QCOMPARE(playerStopSpy.count(), 0);
2412     QCOMPARE(skipNextTrackSpy.count(), 1);
2413     QCOMPARE(seekSpy.count(), 0);
2414 
2415     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
2416 
2417     myPlayer.setCurrentTrack(myPlayList.index(2, 0));
2418 
2419     QCOMPARE(currentTrackChangedSpy.count(), 3);
2420     QCOMPARE(playListModelChangedSpy.count(), 1);
2421     QCOMPARE(playerSourceChangedSpy.count(), 3);
2422     QCOMPARE(urlRoleChangedSpy.count(), 1);
2423     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2424     QCOMPARE(playerStatusChangedSpy.count(), 8);
2425     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2426     QCOMPARE(playerErrorChangedSpy.count(), 0);
2427     QCOMPARE(persistentStateChangedSpy.count(), 0);
2428     QCOMPARE(playerPlaySpy.count(), 2);
2429     QCOMPARE(playerPauseSpy.count(), 0);
2430     QCOMPARE(playerStopSpy.count(), 0);
2431     QCOMPARE(skipNextTrackSpy.count(), 1);
2432     QCOMPARE(seekSpy.count(), 0);
2433 
2434     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0)));
2435 
2436     QCOMPARE(playerStopSpy.wait(100), true);
2437 
2438     QCOMPARE(currentTrackChangedSpy.count(), 3);
2439     QCOMPARE(playListModelChangedSpy.count(), 1);
2440     QCOMPARE(playerSourceChangedSpy.count(), 3);
2441     QCOMPARE(urlRoleChangedSpy.count(), 1);
2442     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2443     QCOMPARE(playerStatusChangedSpy.count(), 8);
2444     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2445     QCOMPARE(playerErrorChangedSpy.count(), 0);
2446     QCOMPARE(persistentStateChangedSpy.count(), 0);
2447     QCOMPARE(playerPlaySpy.count(), 2);
2448     QCOMPARE(playerPauseSpy.count(), 0);
2449     QCOMPARE(playerStopSpy.count(), 1);
2450     QCOMPARE(skipNextTrackSpy.count(), 1);
2451     QCOMPARE(seekSpy.count(), 0);
2452 
2453     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
2454 
2455     QCOMPARE(currentTrackChangedSpy.count(), 3);
2456     QCOMPARE(playListModelChangedSpy.count(), 1);
2457     QCOMPARE(playerSourceChangedSpy.count(), 4);
2458     QCOMPARE(urlRoleChangedSpy.count(), 1);
2459     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2460     QCOMPARE(playerStatusChangedSpy.count(), 8);
2461     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
2462     QCOMPARE(playerErrorChangedSpy.count(), 0);
2463     QCOMPARE(persistentStateChangedSpy.count(), 0);
2464     QCOMPARE(playerPlaySpy.count(), 2);
2465     QCOMPARE(playerPauseSpy.count(), 0);
2466     QCOMPARE(playerStopSpy.count(), 1);
2467     QCOMPARE(skipNextTrackSpy.count(), 1);
2468     QCOMPARE(seekSpy.count(), 0);
2469 
2470     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3")));
2471     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
2472 
2473     QCOMPARE(skipNextTrackSpy.wait(100), false);
2474 
2475     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
2476 
2477     QCOMPARE(currentTrackChangedSpy.count(), 3);
2478     QCOMPARE(playListModelChangedSpy.count(), 1);
2479     QCOMPARE(playerSourceChangedSpy.count(), 4);
2480     QCOMPARE(urlRoleChangedSpy.count(), 1);
2481     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2482     QCOMPARE(playerStatusChangedSpy.count(), 9);
2483     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
2484     QCOMPARE(playerErrorChangedSpy.count(), 0);
2485     QCOMPARE(persistentStateChangedSpy.count(), 0);
2486     QCOMPARE(playerPlaySpy.count(), 2);
2487     QCOMPARE(playerPauseSpy.count(), 0);
2488     QCOMPARE(playerStopSpy.count(), 1);
2489     QCOMPARE(skipNextTrackSpy.count(), 1);
2490     QCOMPARE(seekSpy.count(), 0);
2491 
2492     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
2493 
2494     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
2495 
2496     QCOMPARE(currentTrackChangedSpy.count(), 3);
2497     QCOMPARE(playListModelChangedSpy.count(), 1);
2498     QCOMPARE(playerSourceChangedSpy.count(), 4);
2499     QCOMPARE(urlRoleChangedSpy.count(), 1);
2500     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2501     QCOMPARE(playerStatusChangedSpy.count(), 10);
2502     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
2503     QCOMPARE(playerErrorChangedSpy.count(), 0);
2504     QCOMPARE(persistentStateChangedSpy.count(), 0);
2505     QCOMPARE(playerPlaySpy.count(), 2);
2506     QCOMPARE(playerPauseSpy.count(), 0);
2507     QCOMPARE(playerStopSpy.count(), 1);
2508     QCOMPARE(skipNextTrackSpy.count(), 1);
2509     QCOMPARE(seekSpy.count(), 0);
2510 
2511     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
2512 
2513     QCOMPARE(playerPlaySpy.wait(100), true);
2514 
2515     QCOMPARE(currentTrackChangedSpy.count(), 3);
2516     QCOMPARE(playListModelChangedSpy.count(), 1);
2517     QCOMPARE(playerSourceChangedSpy.count(), 4);
2518     QCOMPARE(urlRoleChangedSpy.count(), 1);
2519     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2520     QCOMPARE(playerStatusChangedSpy.count(), 10);
2521     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
2522     QCOMPARE(playerErrorChangedSpy.count(), 0);
2523     QCOMPARE(persistentStateChangedSpy.count(), 0);
2524     QCOMPARE(playerPlaySpy.count(), 3);
2525     QCOMPARE(playerPauseSpy.count(), 0);
2526     QCOMPARE(playerStopSpy.count(), 1);
2527     QCOMPARE(skipNextTrackSpy.count(), 1);
2528     QCOMPARE(seekSpy.count(), 0);
2529 
2530     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
2531 
2532     QCOMPARE(currentTrackChangedSpy.count(), 3);
2533     QCOMPARE(playListModelChangedSpy.count(), 1);
2534     QCOMPARE(playerSourceChangedSpy.count(), 4);
2535     QCOMPARE(urlRoleChangedSpy.count(), 1);
2536     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2537     QCOMPARE(playerStatusChangedSpy.count(), 10);
2538     QCOMPARE(playerPlaybackStateChangedSpy.count(), 5);
2539     QCOMPARE(playerErrorChangedSpy.count(), 0);
2540     QCOMPARE(persistentStateChangedSpy.count(), 0);
2541     QCOMPARE(playerPlaySpy.count(), 3);
2542     QCOMPARE(playerPauseSpy.count(), 0);
2543     QCOMPARE(playerStopSpy.count(), 1);
2544     QCOMPARE(skipNextTrackSpy.count(), 1);
2545     QCOMPARE(seekSpy.count(), 0);
2546 
2547     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
2548 }
2549 
2550 void ManageAudioPlayerTest::playTrackAndskipPreviousTrack()
2551 {
2552     Elisa::ElisaConfiguration::self()->setDefaults();
2553     ManageAudioPlayer myPlayer;
2554     QStandardItemModel myPlayList;
2555 
2556     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
2557     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
2558     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
2559     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
2560     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
2561     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
2562     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
2563     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
2564     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
2565     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
2566     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
2567     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
2568     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
2569     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
2570 
2571     myPlayList.appendRow(new QStandardItem);
2572     myPlayList.appendRow(new QStandardItem);
2573     myPlayList.appendRow(new QStandardItem);
2574 
2575     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
2576     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
2577     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
2578 
2579     QCOMPARE(currentTrackChangedSpy.count(), 0);
2580     QCOMPARE(playListModelChangedSpy.count(), 0);
2581     QCOMPARE(playerSourceChangedSpy.count(), 0);
2582     QCOMPARE(urlRoleChangedSpy.count(), 0);
2583     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2584     QCOMPARE(playerStatusChangedSpy.count(), 0);
2585     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2586     QCOMPARE(playerErrorChangedSpy.count(), 0);
2587     QCOMPARE(persistentStateChangedSpy.count(), 0);
2588     QCOMPARE(playerPlaySpy.count(), 0);
2589     QCOMPARE(playerPauseSpy.count(), 0);
2590     QCOMPARE(playerStopSpy.count(), 0);
2591     QCOMPARE(skipNextTrackSpy.count(), 0);
2592     QCOMPARE(seekSpy.count(), 0);
2593 
2594     myPlayer.setPlayListModel(&myPlayList);
2595 
2596     QCOMPARE(currentTrackChangedSpy.count(), 0);
2597     QCOMPARE(playListModelChangedSpy.count(), 1);
2598     QCOMPARE(playerSourceChangedSpy.count(), 0);
2599     QCOMPARE(urlRoleChangedSpy.count(), 0);
2600     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2601     QCOMPARE(playerStatusChangedSpy.count(), 0);
2602     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2603     QCOMPARE(playerErrorChangedSpy.count(), 0);
2604     QCOMPARE(persistentStateChangedSpy.count(), 0);
2605     QCOMPARE(playerPlaySpy.count(), 0);
2606     QCOMPARE(playerPauseSpy.count(), 0);
2607     QCOMPARE(playerStopSpy.count(), 0);
2608     QCOMPARE(skipNextTrackSpy.count(), 0);
2609     QCOMPARE(seekSpy.count(), 0);
2610 
2611     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
2612 
2613     QCOMPARE(currentTrackChangedSpy.count(), 1);
2614     QCOMPARE(playListModelChangedSpy.count(), 1);
2615     QCOMPARE(playerSourceChangedSpy.count(), 1);
2616     QCOMPARE(urlRoleChangedSpy.count(), 0);
2617     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2618     QCOMPARE(playerStatusChangedSpy.count(), 0);
2619     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2620     QCOMPARE(playerErrorChangedSpy.count(), 0);
2621     QCOMPARE(persistentStateChangedSpy.count(), 0);
2622     QCOMPARE(playerPlaySpy.count(), 0);
2623     QCOMPARE(playerPauseSpy.count(), 0);
2624     QCOMPARE(playerStopSpy.count(), 0);
2625     QCOMPARE(skipNextTrackSpy.count(), 0);
2626     QCOMPARE(seekSpy.count(), 0);
2627 
2628     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
2629 
2630     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
2631 
2632     QCOMPARE(currentTrackChangedSpy.count(), 1);
2633     QCOMPARE(playListModelChangedSpy.count(), 1);
2634     QCOMPARE(playerSourceChangedSpy.count(), 2);
2635     QCOMPARE(urlRoleChangedSpy.count(), 1);
2636     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
2637     QCOMPARE(playerStatusChangedSpy.count(), 0);
2638     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2639     QCOMPARE(playerErrorChangedSpy.count(), 0);
2640     QCOMPARE(persistentStateChangedSpy.count(), 0);
2641     QCOMPARE(playerPlaySpy.count(), 0);
2642     QCOMPARE(playerPauseSpy.count(), 0);
2643     QCOMPARE(playerStopSpy.count(), 0);
2644     QCOMPARE(skipNextTrackSpy.count(), 0);
2645     QCOMPARE(seekSpy.count(), 0);
2646 
2647     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
2648     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
2649 
2650     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
2651 
2652     QCOMPARE(currentTrackChangedSpy.count(), 1);
2653     QCOMPARE(playListModelChangedSpy.count(), 1);
2654     QCOMPARE(playerSourceChangedSpy.count(), 2);
2655     QCOMPARE(urlRoleChangedSpy.count(), 1);
2656     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2657     QCOMPARE(playerStatusChangedSpy.count(), 0);
2658     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2659     QCOMPARE(playerErrorChangedSpy.count(), 0);
2660     QCOMPARE(persistentStateChangedSpy.count(), 0);
2661     QCOMPARE(playerPlaySpy.count(), 0);
2662     QCOMPARE(playerPauseSpy.count(), 0);
2663     QCOMPARE(playerStopSpy.count(), 0);
2664     QCOMPARE(skipNextTrackSpy.count(), 0);
2665     QCOMPARE(seekSpy.count(), 0);
2666 
2667     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
2668 
2669     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
2670 
2671     QCOMPARE(currentTrackChangedSpy.count(), 1);
2672     QCOMPARE(playListModelChangedSpy.count(), 1);
2673     QCOMPARE(playerSourceChangedSpy.count(), 2);
2674     QCOMPARE(urlRoleChangedSpy.count(), 1);
2675     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2676     QCOMPARE(playerStatusChangedSpy.count(), 1);
2677     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2678     QCOMPARE(playerErrorChangedSpy.count(), 0);
2679     QCOMPARE(persistentStateChangedSpy.count(), 0);
2680     QCOMPARE(playerPlaySpy.count(), 0);
2681     QCOMPARE(playerPauseSpy.count(), 0);
2682     QCOMPARE(playerStopSpy.count(), 0);
2683     QCOMPARE(skipNextTrackSpy.count(), 0);
2684     QCOMPARE(seekSpy.count(), 0);
2685 
2686     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
2687 
2688     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
2689 
2690     QCOMPARE(currentTrackChangedSpy.count(), 1);
2691     QCOMPARE(playListModelChangedSpy.count(), 1);
2692     QCOMPARE(playerSourceChangedSpy.count(), 2);
2693     QCOMPARE(urlRoleChangedSpy.count(), 1);
2694     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2695     QCOMPARE(playerStatusChangedSpy.count(), 1);
2696     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2697     QCOMPARE(playerErrorChangedSpy.count(), 0);
2698     QCOMPARE(persistentStateChangedSpy.count(), 0);
2699     QCOMPARE(playerPlaySpy.count(), 0);
2700     QCOMPARE(playerPauseSpy.count(), 0);
2701     QCOMPARE(playerStopSpy.count(), 0);
2702     QCOMPARE(skipNextTrackSpy.count(), 0);
2703     QCOMPARE(seekSpy.count(), 0);
2704 
2705     myPlayer.setPlayerError(QMediaPlayer::NoError);
2706 
2707     QCOMPARE(currentTrackChangedSpy.count(), 1);
2708     QCOMPARE(playListModelChangedSpy.count(), 1);
2709     QCOMPARE(playerSourceChangedSpy.count(), 2);
2710     QCOMPARE(urlRoleChangedSpy.count(), 1);
2711     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2712     QCOMPARE(playerStatusChangedSpy.count(), 1);
2713     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2714     QCOMPARE(playerErrorChangedSpy.count(), 0);
2715     QCOMPARE(persistentStateChangedSpy.count(), 0);
2716     QCOMPARE(playerPlaySpy.count(), 0);
2717     QCOMPARE(playerPauseSpy.count(), 0);
2718     QCOMPARE(playerStopSpy.count(), 0);
2719     QCOMPARE(skipNextTrackSpy.count(), 0);
2720     QCOMPARE(seekSpy.count(), 0);
2721 
2722     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
2723 
2724     QCOMPARE(currentTrackChangedSpy.count(), 1);
2725     QCOMPARE(playListModelChangedSpy.count(), 1);
2726     QCOMPARE(playerSourceChangedSpy.count(), 2);
2727     QCOMPARE(urlRoleChangedSpy.count(), 1);
2728     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2729     QCOMPARE(playerStatusChangedSpy.count(), 2);
2730     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2731     QCOMPARE(playerErrorChangedSpy.count(), 0);
2732     QCOMPARE(persistentStateChangedSpy.count(), 0);
2733     QCOMPARE(playerPlaySpy.count(), 0);
2734     QCOMPARE(playerPauseSpy.count(), 0);
2735     QCOMPARE(playerStopSpy.count(), 0);
2736     QCOMPARE(skipNextTrackSpy.count(), 0);
2737     QCOMPARE(seekSpy.count(), 0);
2738 
2739     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
2740 
2741     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
2742 
2743     QCOMPARE(currentTrackChangedSpy.count(), 1);
2744     QCOMPARE(playListModelChangedSpy.count(), 1);
2745     QCOMPARE(playerSourceChangedSpy.count(), 2);
2746     QCOMPARE(urlRoleChangedSpy.count(), 1);
2747     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2748     QCOMPARE(playerStatusChangedSpy.count(), 3);
2749     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2750     QCOMPARE(playerErrorChangedSpy.count(), 0);
2751     QCOMPARE(persistentStateChangedSpy.count(), 0);
2752     QCOMPARE(playerPlaySpy.count(), 0);
2753     QCOMPARE(playerPauseSpy.count(), 0);
2754     QCOMPARE(playerStopSpy.count(), 0);
2755     QCOMPARE(skipNextTrackSpy.count(), 0);
2756     QCOMPARE(seekSpy.count(), 0);
2757 
2758     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
2759 
2760     myPlayer.playPause();
2761 
2762     QCOMPARE(currentTrackChangedSpy.count(), 1);
2763     QCOMPARE(playListModelChangedSpy.count(), 1);
2764     QCOMPARE(playerSourceChangedSpy.count(), 2);
2765     QCOMPARE(urlRoleChangedSpy.count(), 1);
2766     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2767     QCOMPARE(playerStatusChangedSpy.count(), 3);
2768     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2769     QCOMPARE(playerErrorChangedSpy.count(), 0);
2770     QCOMPARE(persistentStateChangedSpy.count(), 0);
2771     QCOMPARE(playerPlaySpy.count(), 0);
2772     QCOMPARE(playerPauseSpy.count(), 0);
2773     QCOMPARE(playerStopSpy.count(), 0);
2774     QCOMPARE(skipNextTrackSpy.count(), 0);
2775     QCOMPARE(seekSpy.count(), 0);
2776 
2777     QCOMPARE(playerPlaySpy.wait(), true);
2778 
2779     QCOMPARE(currentTrackChangedSpy.count(), 1);
2780     QCOMPARE(playListModelChangedSpy.count(), 1);
2781     QCOMPARE(playerSourceChangedSpy.count(), 2);
2782     QCOMPARE(urlRoleChangedSpy.count(), 1);
2783     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2784     QCOMPARE(playerStatusChangedSpy.count(), 3);
2785     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
2786     QCOMPARE(playerErrorChangedSpy.count(), 0);
2787     QCOMPARE(persistentStateChangedSpy.count(), 0);
2788     QCOMPARE(playerPlaySpy.count(), 1);
2789     QCOMPARE(playerPauseSpy.count(), 0);
2790     QCOMPARE(playerStopSpy.count(), 0);
2791     QCOMPARE(skipNextTrackSpy.count(), 0);
2792     QCOMPARE(seekSpy.count(), 0);
2793 
2794     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
2795 
2796     QCOMPARE(currentTrackChangedSpy.count(), 1);
2797     QCOMPARE(playListModelChangedSpy.count(), 1);
2798     QCOMPARE(playerSourceChangedSpy.count(), 2);
2799     QCOMPARE(urlRoleChangedSpy.count(), 1);
2800     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2801     QCOMPARE(playerStatusChangedSpy.count(), 3);
2802     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
2803     QCOMPARE(playerErrorChangedSpy.count(), 0);
2804     QCOMPARE(persistentStateChangedSpy.count(), 0);
2805     QCOMPARE(playerPlaySpy.count(), 1);
2806     QCOMPARE(playerPauseSpy.count(), 0);
2807     QCOMPARE(playerStopSpy.count(), 0);
2808     QCOMPARE(skipNextTrackSpy.count(), 0);
2809     QCOMPARE(seekSpy.count(), 0);
2810 
2811     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
2812 
2813     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
2814 
2815     QCOMPARE(currentTrackChangedSpy.count(), 1);
2816     QCOMPARE(playListModelChangedSpy.count(), 1);
2817     QCOMPARE(playerSourceChangedSpy.count(), 2);
2818     QCOMPARE(urlRoleChangedSpy.count(), 1);
2819     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2820     QCOMPARE(playerStatusChangedSpy.count(), 4);
2821     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
2822     QCOMPARE(playerErrorChangedSpy.count(), 0);
2823     QCOMPARE(persistentStateChangedSpy.count(), 0);
2824     QCOMPARE(playerPlaySpy.count(), 1);
2825     QCOMPARE(playerPauseSpy.count(), 0);
2826     QCOMPARE(playerStopSpy.count(), 0);
2827     QCOMPARE(skipNextTrackSpy.count(), 0);
2828     QCOMPARE(seekSpy.count(), 0);
2829 
2830     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
2831 
2832     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
2833 
2834     QCOMPARE(currentTrackChangedSpy.count(), 1);
2835     QCOMPARE(playListModelChangedSpy.count(), 1);
2836     QCOMPARE(playerSourceChangedSpy.count(), 2);
2837     QCOMPARE(urlRoleChangedSpy.count(), 1);
2838     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2839     QCOMPARE(playerStatusChangedSpy.count(), 4);
2840     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2841     QCOMPARE(playerErrorChangedSpy.count(), 0);
2842     QCOMPARE(persistentStateChangedSpy.count(), 0);
2843     QCOMPARE(playerPlaySpy.count(), 1);
2844     QCOMPARE(playerPauseSpy.count(), 0);
2845     QCOMPARE(playerStopSpy.count(), 0);
2846     QCOMPARE(skipNextTrackSpy.count(), 0);
2847     QCOMPARE(seekSpy.count(), 0);
2848 
2849     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
2850 
2851     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
2852 
2853     QCOMPARE(currentTrackChangedSpy.count(), 1);
2854     QCOMPARE(playListModelChangedSpy.count(), 1);
2855     QCOMPARE(playerSourceChangedSpy.count(), 2);
2856     QCOMPARE(urlRoleChangedSpy.count(), 1);
2857     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2858     QCOMPARE(playerStatusChangedSpy.count(), 5);
2859     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2860     QCOMPARE(playerErrorChangedSpy.count(), 0);
2861     QCOMPARE(persistentStateChangedSpy.count(), 0);
2862     QCOMPARE(playerPlaySpy.count(), 1);
2863     QCOMPARE(playerPauseSpy.count(), 0);
2864     QCOMPARE(playerStopSpy.count(), 0);
2865     QCOMPARE(skipNextTrackSpy.count(), 0);
2866     QCOMPARE(seekSpy.count(), 0);
2867 
2868     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
2869 
2870     QCOMPARE(skipNextTrackSpy.wait(100), true);
2871 
2872     QCOMPARE(currentTrackChangedSpy.count(), 1);
2873     QCOMPARE(playListModelChangedSpy.count(), 1);
2874     QCOMPARE(playerSourceChangedSpy.count(), 2);
2875     QCOMPARE(urlRoleChangedSpy.count(), 1);
2876     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2877     QCOMPARE(playerStatusChangedSpy.count(), 5);
2878     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2879     QCOMPARE(playerErrorChangedSpy.count(), 0);
2880     QCOMPARE(persistentStateChangedSpy.count(), 0);
2881     QCOMPARE(playerPlaySpy.count(), 1);
2882     QCOMPARE(playerPauseSpy.count(), 0);
2883     QCOMPARE(playerStopSpy.count(), 0);
2884     QCOMPARE(skipNextTrackSpy.count(), 1);
2885     QCOMPARE(seekSpy.count(), 0);
2886 
2887     myPlayer.setCurrentTrack(myPlayList.index(2, 0));
2888 
2889     QCOMPARE(currentTrackChangedSpy.count(), 2);
2890     QCOMPARE(playListModelChangedSpy.count(), 1);
2891     QCOMPARE(playerSourceChangedSpy.count(), 3);
2892     QCOMPARE(urlRoleChangedSpy.count(), 1);
2893     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2894     QCOMPARE(playerStatusChangedSpy.count(), 5);
2895     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2896     QCOMPARE(playerErrorChangedSpy.count(), 0);
2897     QCOMPARE(persistentStateChangedSpy.count(), 0);
2898     QCOMPARE(playerPlaySpy.count(), 1);
2899     QCOMPARE(playerPauseSpy.count(), 0);
2900     QCOMPARE(playerStopSpy.count(), 0);
2901     QCOMPARE(skipNextTrackSpy.count(), 1);
2902     QCOMPARE(seekSpy.count(), 0);
2903 
2904     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0)));
2905     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3")));
2906 
2907     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
2908 
2909     QCOMPARE(currentTrackChangedSpy.count(), 2);
2910     QCOMPARE(playListModelChangedSpy.count(), 1);
2911     QCOMPARE(playerSourceChangedSpy.count(), 3);
2912     QCOMPARE(urlRoleChangedSpy.count(), 1);
2913     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2914     QCOMPARE(playerStatusChangedSpy.count(), 6);
2915     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2916     QCOMPARE(playerErrorChangedSpy.count(), 0);
2917     QCOMPARE(persistentStateChangedSpy.count(), 0);
2918     QCOMPARE(playerPlaySpy.count(), 1);
2919     QCOMPARE(playerPauseSpy.count(), 0);
2920     QCOMPARE(playerStopSpy.count(), 0);
2921     QCOMPARE(skipNextTrackSpy.count(), 1);
2922     QCOMPARE(seekSpy.count(), 0);
2923 
2924     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
2925 
2926     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
2927 
2928     QCOMPARE(currentTrackChangedSpy.count(), 2);
2929     QCOMPARE(playListModelChangedSpy.count(), 1);
2930     QCOMPARE(playerSourceChangedSpy.count(), 3);
2931     QCOMPARE(urlRoleChangedSpy.count(), 1);
2932     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2933     QCOMPARE(playerStatusChangedSpy.count(), 7);
2934     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2935     QCOMPARE(playerErrorChangedSpy.count(), 0);
2936     QCOMPARE(persistentStateChangedSpy.count(), 0);
2937     QCOMPARE(playerPlaySpy.count(), 1);
2938     QCOMPARE(playerPauseSpy.count(), 0);
2939     QCOMPARE(playerStopSpy.count(), 0);
2940     QCOMPARE(skipNextTrackSpy.count(), 1);
2941     QCOMPARE(seekSpy.count(), 0);
2942 
2943     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
2944 
2945     QCOMPARE(playerPlaySpy.wait(100), true);
2946 
2947     QCOMPARE(currentTrackChangedSpy.count(), 2);
2948     QCOMPARE(playListModelChangedSpy.count(), 1);
2949     QCOMPARE(playerSourceChangedSpy.count(), 3);
2950     QCOMPARE(urlRoleChangedSpy.count(), 1);
2951     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2952     QCOMPARE(playerStatusChangedSpy.count(), 7);
2953     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
2954     QCOMPARE(playerErrorChangedSpy.count(), 0);
2955     QCOMPARE(persistentStateChangedSpy.count(), 0);
2956     QCOMPARE(playerPlaySpy.count(), 2);
2957     QCOMPARE(playerPauseSpy.count(), 0);
2958     QCOMPARE(playerStopSpy.count(), 0);
2959     QCOMPARE(skipNextTrackSpy.count(), 1);
2960     QCOMPARE(seekSpy.count(), 0);
2961 
2962     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
2963 
2964     QCOMPARE(currentTrackChangedSpy.count(), 2);
2965     QCOMPARE(playListModelChangedSpy.count(), 1);
2966     QCOMPARE(playerSourceChangedSpy.count(), 3);
2967     QCOMPARE(urlRoleChangedSpy.count(), 1);
2968     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2969     QCOMPARE(playerStatusChangedSpy.count(), 7);
2970     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2971     QCOMPARE(playerErrorChangedSpy.count(), 0);
2972     QCOMPARE(persistentStateChangedSpy.count(), 0);
2973     QCOMPARE(playerPlaySpy.count(), 2);
2974     QCOMPARE(playerPauseSpy.count(), 0);
2975     QCOMPARE(playerStopSpy.count(), 0);
2976     QCOMPARE(skipNextTrackSpy.count(), 1);
2977     QCOMPARE(seekSpy.count(), 0);
2978 
2979     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
2980 
2981     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
2982 
2983     QCOMPARE(currentTrackChangedSpy.count(), 2);
2984     QCOMPARE(playListModelChangedSpy.count(), 1);
2985     QCOMPARE(playerSourceChangedSpy.count(), 3);
2986     QCOMPARE(urlRoleChangedSpy.count(), 1);
2987     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
2988     QCOMPARE(playerStatusChangedSpy.count(), 8);
2989     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
2990     QCOMPARE(playerErrorChangedSpy.count(), 0);
2991     QCOMPARE(persistentStateChangedSpy.count(), 0);
2992     QCOMPARE(playerPlaySpy.count(), 2);
2993     QCOMPARE(playerPauseSpy.count(), 0);
2994     QCOMPARE(playerStopSpy.count(), 0);
2995     QCOMPARE(skipNextTrackSpy.count(), 1);
2996     QCOMPARE(seekSpy.count(), 0);
2997 
2998     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
2999 
3000     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
3001 
3002     QCOMPARE(currentTrackChangedSpy.count(), 3);
3003     QCOMPARE(playListModelChangedSpy.count(), 1);
3004     QCOMPARE(playerSourceChangedSpy.count(), 3);
3005     QCOMPARE(urlRoleChangedSpy.count(), 1);
3006     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3007     QCOMPARE(playerStatusChangedSpy.count(), 8);
3008     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
3009     QCOMPARE(playerErrorChangedSpy.count(), 0);
3010     QCOMPARE(persistentStateChangedSpy.count(), 0);
3011     QCOMPARE(playerPlaySpy.count(), 2);
3012     QCOMPARE(playerPauseSpy.count(), 0);
3013     QCOMPARE(playerStopSpy.count(), 0);
3014     QCOMPARE(skipNextTrackSpy.count(), 1);
3015     QCOMPARE(seekSpy.count(), 0);
3016 
3017     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
3018 
3019     QCOMPARE(playerStopSpy.wait(100), true);
3020 
3021     QCOMPARE(currentTrackChangedSpy.count(), 3);
3022     QCOMPARE(playListModelChangedSpy.count(), 1);
3023     QCOMPARE(playerSourceChangedSpy.count(), 3);
3024     QCOMPARE(urlRoleChangedSpy.count(), 1);
3025     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3026     QCOMPARE(playerStatusChangedSpy.count(), 8);
3027     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
3028     QCOMPARE(playerErrorChangedSpy.count(), 0);
3029     QCOMPARE(persistentStateChangedSpy.count(), 0);
3030     QCOMPARE(playerPlaySpy.count(), 2);
3031     QCOMPARE(playerPauseSpy.count(), 0);
3032     QCOMPARE(playerStopSpy.count(), 1);
3033     QCOMPARE(skipNextTrackSpy.count(), 1);
3034     QCOMPARE(seekSpy.count(), 0);
3035 
3036     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
3037 
3038     QCOMPARE(currentTrackChangedSpy.count(), 3);
3039     QCOMPARE(playListModelChangedSpy.count(), 1);
3040     QCOMPARE(playerSourceChangedSpy.count(), 4);
3041     QCOMPARE(urlRoleChangedSpy.count(), 1);
3042     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3043     QCOMPARE(playerStatusChangedSpy.count(), 8);
3044     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3045     QCOMPARE(playerErrorChangedSpy.count(), 0);
3046     QCOMPARE(persistentStateChangedSpy.count(), 0);
3047     QCOMPARE(playerPlaySpy.count(), 2);
3048     QCOMPARE(playerPauseSpy.count(), 0);
3049     QCOMPARE(playerStopSpy.count(), 1);
3050     QCOMPARE(skipNextTrackSpy.count(), 1);
3051     QCOMPARE(seekSpy.count(), 0);
3052 
3053     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
3054     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
3055 
3056     QCOMPARE(skipNextTrackSpy.wait(100), false);
3057 
3058     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
3059 
3060     QCOMPARE(currentTrackChangedSpy.count(), 3);
3061     QCOMPARE(playListModelChangedSpy.count(), 1);
3062     QCOMPARE(playerSourceChangedSpy.count(), 4);
3063     QCOMPARE(urlRoleChangedSpy.count(), 1);
3064     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3065     QCOMPARE(playerStatusChangedSpy.count(), 9);
3066     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3067     QCOMPARE(playerErrorChangedSpy.count(), 0);
3068     QCOMPARE(persistentStateChangedSpy.count(), 0);
3069     QCOMPARE(playerPlaySpy.count(), 2);
3070     QCOMPARE(playerPauseSpy.count(), 0);
3071     QCOMPARE(playerStopSpy.count(), 1);
3072     QCOMPARE(skipNextTrackSpy.count(), 1);
3073     QCOMPARE(seekSpy.count(), 0);
3074 
3075     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
3076 
3077     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
3078 
3079     QCOMPARE(currentTrackChangedSpy.count(), 3);
3080     QCOMPARE(playListModelChangedSpy.count(), 1);
3081     QCOMPARE(playerSourceChangedSpy.count(), 4);
3082     QCOMPARE(urlRoleChangedSpy.count(), 1);
3083     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3084     QCOMPARE(playerStatusChangedSpy.count(), 10);
3085     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3086     QCOMPARE(playerErrorChangedSpy.count(), 0);
3087     QCOMPARE(persistentStateChangedSpy.count(), 0);
3088     QCOMPARE(playerPlaySpy.count(), 2);
3089     QCOMPARE(playerPauseSpy.count(), 0);
3090     QCOMPARE(playerStopSpy.count(), 1);
3091     QCOMPARE(skipNextTrackSpy.count(), 1);
3092     QCOMPARE(seekSpy.count(), 0);
3093 
3094     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
3095 
3096     QCOMPARE(playerPlaySpy.wait(100), true);
3097 
3098     QCOMPARE(currentTrackChangedSpy.count(), 3);
3099     QCOMPARE(playListModelChangedSpy.count(), 1);
3100     QCOMPARE(playerSourceChangedSpy.count(), 4);
3101     QCOMPARE(urlRoleChangedSpy.count(), 1);
3102     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3103     QCOMPARE(playerStatusChangedSpy.count(), 10);
3104     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3105     QCOMPARE(playerErrorChangedSpy.count(), 0);
3106     QCOMPARE(persistentStateChangedSpy.count(), 0);
3107     QCOMPARE(playerPlaySpy.count(), 3);
3108     QCOMPARE(playerPauseSpy.count(), 0);
3109     QCOMPARE(playerStopSpy.count(), 1);
3110     QCOMPARE(skipNextTrackSpy.count(), 1);
3111     QCOMPARE(seekSpy.count(), 0);
3112 
3113     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
3114 
3115     QCOMPARE(currentTrackChangedSpy.count(), 3);
3116     QCOMPARE(playListModelChangedSpy.count(), 1);
3117     QCOMPARE(playerSourceChangedSpy.count(), 4);
3118     QCOMPARE(urlRoleChangedSpy.count(), 1);
3119     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3120     QCOMPARE(playerStatusChangedSpy.count(), 10);
3121     QCOMPARE(playerPlaybackStateChangedSpy.count(), 5);
3122     QCOMPARE(playerErrorChangedSpy.count(), 0);
3123     QCOMPARE(persistentStateChangedSpy.count(), 0);
3124     QCOMPARE(playerPlaySpy.count(), 3);
3125     QCOMPARE(playerPauseSpy.count(), 0);
3126     QCOMPARE(playerStopSpy.count(), 1);
3127     QCOMPARE(skipNextTrackSpy.count(), 1);
3128     QCOMPARE(seekSpy.count(), 0);
3129 
3130     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
3131 }
3132 
3133 void ManageAudioPlayerTest::skipNextTrackAndPlayTrack()
3134 {
3135     Elisa::ElisaConfiguration::self()->setDefaults();
3136     ManageAudioPlayer myPlayer;
3137     QStandardItemModel myPlayList;
3138 
3139     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
3140     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
3141     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
3142     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
3143     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
3144     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
3145     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
3146     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
3147     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
3148     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
3149     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
3150     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
3151     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
3152     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
3153 
3154     myPlayList.appendRow(new QStandardItem);
3155     myPlayList.appendRow(new QStandardItem);
3156     myPlayList.appendRow(new QStandardItem);
3157 
3158     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
3159     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
3160     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
3161 
3162     QCOMPARE(currentTrackChangedSpy.count(), 0);
3163     QCOMPARE(playListModelChangedSpy.count(), 0);
3164     QCOMPARE(playerSourceChangedSpy.count(), 0);
3165     QCOMPARE(urlRoleChangedSpy.count(), 0);
3166     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3167     QCOMPARE(playerStatusChangedSpy.count(), 0);
3168     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3169     QCOMPARE(playerErrorChangedSpy.count(), 0);
3170     QCOMPARE(persistentStateChangedSpy.count(), 0);
3171     QCOMPARE(playerPlaySpy.count(), 0);
3172     QCOMPARE(playerPauseSpy.count(), 0);
3173     QCOMPARE(playerStopSpy.count(), 0);
3174     QCOMPARE(skipNextTrackSpy.count(), 0);
3175     QCOMPARE(seekSpy.count(), 0);
3176 
3177     myPlayer.setPlayListModel(&myPlayList);
3178 
3179     QCOMPARE(currentTrackChangedSpy.count(), 0);
3180     QCOMPARE(playListModelChangedSpy.count(), 1);
3181     QCOMPARE(playerSourceChangedSpy.count(), 0);
3182     QCOMPARE(urlRoleChangedSpy.count(), 0);
3183     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3184     QCOMPARE(playerStatusChangedSpy.count(), 0);
3185     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3186     QCOMPARE(playerErrorChangedSpy.count(), 0);
3187     QCOMPARE(persistentStateChangedSpy.count(), 0);
3188     QCOMPARE(playerPlaySpy.count(), 0);
3189     QCOMPARE(playerPauseSpy.count(), 0);
3190     QCOMPARE(playerStopSpy.count(), 0);
3191     QCOMPARE(skipNextTrackSpy.count(), 0);
3192     QCOMPARE(seekSpy.count(), 0);
3193 
3194     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
3195 
3196     QCOMPARE(currentTrackChangedSpy.count(), 1);
3197     QCOMPARE(playListModelChangedSpy.count(), 1);
3198     QCOMPARE(playerSourceChangedSpy.count(), 1);
3199     QCOMPARE(urlRoleChangedSpy.count(), 0);
3200     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3201     QCOMPARE(playerStatusChangedSpy.count(), 0);
3202     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3203     QCOMPARE(playerErrorChangedSpy.count(), 0);
3204     QCOMPARE(persistentStateChangedSpy.count(), 0);
3205     QCOMPARE(playerPlaySpy.count(), 0);
3206     QCOMPARE(playerPauseSpy.count(), 0);
3207     QCOMPARE(playerStopSpy.count(), 0);
3208     QCOMPARE(skipNextTrackSpy.count(), 0);
3209     QCOMPARE(seekSpy.count(), 0);
3210 
3211     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
3212 
3213     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
3214 
3215     QCOMPARE(currentTrackChangedSpy.count(), 1);
3216     QCOMPARE(playListModelChangedSpy.count(), 1);
3217     QCOMPARE(playerSourceChangedSpy.count(), 2);
3218     QCOMPARE(urlRoleChangedSpy.count(), 1);
3219     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3220     QCOMPARE(playerStatusChangedSpy.count(), 0);
3221     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3222     QCOMPARE(playerErrorChangedSpy.count(), 0);
3223     QCOMPARE(persistentStateChangedSpy.count(), 0);
3224     QCOMPARE(playerPlaySpy.count(), 0);
3225     QCOMPARE(playerPauseSpy.count(), 0);
3226     QCOMPARE(playerStopSpy.count(), 0);
3227     QCOMPARE(skipNextTrackSpy.count(), 0);
3228     QCOMPARE(seekSpy.count(), 0);
3229 
3230     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
3231     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
3232 
3233     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
3234 
3235     QCOMPARE(currentTrackChangedSpy.count(), 1);
3236     QCOMPARE(playListModelChangedSpy.count(), 1);
3237     QCOMPARE(playerSourceChangedSpy.count(), 2);
3238     QCOMPARE(urlRoleChangedSpy.count(), 1);
3239     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3240     QCOMPARE(playerStatusChangedSpy.count(), 0);
3241     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3242     QCOMPARE(playerErrorChangedSpy.count(), 0);
3243     QCOMPARE(persistentStateChangedSpy.count(), 0);
3244     QCOMPARE(playerPlaySpy.count(), 0);
3245     QCOMPARE(playerPauseSpy.count(), 0);
3246     QCOMPARE(playerStopSpy.count(), 0);
3247     QCOMPARE(skipNextTrackSpy.count(), 0);
3248     QCOMPARE(seekSpy.count(), 0);
3249 
3250     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
3251 
3252     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
3253 
3254     QCOMPARE(currentTrackChangedSpy.count(), 1);
3255     QCOMPARE(playListModelChangedSpy.count(), 1);
3256     QCOMPARE(playerSourceChangedSpy.count(), 2);
3257     QCOMPARE(urlRoleChangedSpy.count(), 1);
3258     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3259     QCOMPARE(playerStatusChangedSpy.count(), 1);
3260     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3261     QCOMPARE(playerErrorChangedSpy.count(), 0);
3262     QCOMPARE(persistentStateChangedSpy.count(), 0);
3263     QCOMPARE(playerPlaySpy.count(), 0);
3264     QCOMPARE(playerPauseSpy.count(), 0);
3265     QCOMPARE(playerStopSpy.count(), 0);
3266     QCOMPARE(skipNextTrackSpy.count(), 0);
3267     QCOMPARE(seekSpy.count(), 0);
3268 
3269     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
3270 
3271     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
3272 
3273     QCOMPARE(currentTrackChangedSpy.count(), 1);
3274     QCOMPARE(playListModelChangedSpy.count(), 1);
3275     QCOMPARE(playerSourceChangedSpy.count(), 2);
3276     QCOMPARE(urlRoleChangedSpy.count(), 1);
3277     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3278     QCOMPARE(playerStatusChangedSpy.count(), 1);
3279     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3280     QCOMPARE(playerErrorChangedSpy.count(), 0);
3281     QCOMPARE(persistentStateChangedSpy.count(), 0);
3282     QCOMPARE(playerPlaySpy.count(), 0);
3283     QCOMPARE(playerPauseSpy.count(), 0);
3284     QCOMPARE(playerStopSpy.count(), 0);
3285     QCOMPARE(skipNextTrackSpy.count(), 0);
3286     QCOMPARE(seekSpy.count(), 0);
3287 
3288     myPlayer.setPlayerError(QMediaPlayer::NoError);
3289 
3290     QCOMPARE(currentTrackChangedSpy.count(), 1);
3291     QCOMPARE(playListModelChangedSpy.count(), 1);
3292     QCOMPARE(playerSourceChangedSpy.count(), 2);
3293     QCOMPARE(urlRoleChangedSpy.count(), 1);
3294     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3295     QCOMPARE(playerStatusChangedSpy.count(), 1);
3296     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3297     QCOMPARE(playerErrorChangedSpy.count(), 0);
3298     QCOMPARE(persistentStateChangedSpy.count(), 0);
3299     QCOMPARE(playerPlaySpy.count(), 0);
3300     QCOMPARE(playerPauseSpy.count(), 0);
3301     QCOMPARE(playerStopSpy.count(), 0);
3302     QCOMPARE(skipNextTrackSpy.count(), 0);
3303     QCOMPARE(seekSpy.count(), 0);
3304 
3305     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
3306 
3307     QCOMPARE(currentTrackChangedSpy.count(), 1);
3308     QCOMPARE(playListModelChangedSpy.count(), 1);
3309     QCOMPARE(playerSourceChangedSpy.count(), 2);
3310     QCOMPARE(urlRoleChangedSpy.count(), 1);
3311     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3312     QCOMPARE(playerStatusChangedSpy.count(), 2);
3313     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3314     QCOMPARE(playerErrorChangedSpy.count(), 0);
3315     QCOMPARE(persistentStateChangedSpy.count(), 0);
3316     QCOMPARE(playerPlaySpy.count(), 0);
3317     QCOMPARE(playerPauseSpy.count(), 0);
3318     QCOMPARE(playerStopSpy.count(), 0);
3319     QCOMPARE(skipNextTrackSpy.count(), 0);
3320     QCOMPARE(seekSpy.count(), 0);
3321 
3322     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
3323 
3324     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
3325 
3326     QCOMPARE(currentTrackChangedSpy.count(), 1);
3327     QCOMPARE(playListModelChangedSpy.count(), 1);
3328     QCOMPARE(playerSourceChangedSpy.count(), 2);
3329     QCOMPARE(urlRoleChangedSpy.count(), 1);
3330     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3331     QCOMPARE(playerStatusChangedSpy.count(), 3);
3332     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3333     QCOMPARE(playerErrorChangedSpy.count(), 0);
3334     QCOMPARE(persistentStateChangedSpy.count(), 0);
3335     QCOMPARE(playerPlaySpy.count(), 0);
3336     QCOMPARE(playerPauseSpy.count(), 0);
3337     QCOMPARE(playerStopSpy.count(), 0);
3338     QCOMPARE(skipNextTrackSpy.count(), 0);
3339     QCOMPARE(seekSpy.count(), 0);
3340 
3341     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
3342 
3343     myPlayer.playPause();
3344 
3345     QCOMPARE(currentTrackChangedSpy.count(), 1);
3346     QCOMPARE(playListModelChangedSpy.count(), 1);
3347     QCOMPARE(playerSourceChangedSpy.count(), 2);
3348     QCOMPARE(urlRoleChangedSpy.count(), 1);
3349     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3350     QCOMPARE(playerStatusChangedSpy.count(), 3);
3351     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3352     QCOMPARE(playerErrorChangedSpy.count(), 0);
3353     QCOMPARE(persistentStateChangedSpy.count(), 0);
3354     QCOMPARE(playerPlaySpy.count(), 0);
3355     QCOMPARE(playerPauseSpy.count(), 0);
3356     QCOMPARE(playerStopSpy.count(), 0);
3357     QCOMPARE(skipNextTrackSpy.count(), 0);
3358     QCOMPARE(seekSpy.count(), 0);
3359 
3360     QCOMPARE(playerPlaySpy.wait(), true);
3361 
3362     QCOMPARE(currentTrackChangedSpy.count(), 1);
3363     QCOMPARE(playListModelChangedSpy.count(), 1);
3364     QCOMPARE(playerSourceChangedSpy.count(), 2);
3365     QCOMPARE(urlRoleChangedSpy.count(), 1);
3366     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3367     QCOMPARE(playerStatusChangedSpy.count(), 3);
3368     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3369     QCOMPARE(playerErrorChangedSpy.count(), 0);
3370     QCOMPARE(persistentStateChangedSpy.count(), 0);
3371     QCOMPARE(playerPlaySpy.count(), 1);
3372     QCOMPARE(playerPauseSpy.count(), 0);
3373     QCOMPARE(playerStopSpy.count(), 0);
3374     QCOMPARE(skipNextTrackSpy.count(), 0);
3375     QCOMPARE(seekSpy.count(), 0);
3376 
3377     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
3378 
3379     QCOMPARE(currentTrackChangedSpy.count(), 1);
3380     QCOMPARE(playListModelChangedSpy.count(), 1);
3381     QCOMPARE(playerSourceChangedSpy.count(), 2);
3382     QCOMPARE(urlRoleChangedSpy.count(), 1);
3383     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3384     QCOMPARE(playerStatusChangedSpy.count(), 3);
3385     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3386     QCOMPARE(playerErrorChangedSpy.count(), 0);
3387     QCOMPARE(persistentStateChangedSpy.count(), 0);
3388     QCOMPARE(playerPlaySpy.count(), 1);
3389     QCOMPARE(playerPauseSpy.count(), 0);
3390     QCOMPARE(playerStopSpy.count(), 0);
3391     QCOMPARE(skipNextTrackSpy.count(), 0);
3392     QCOMPARE(seekSpy.count(), 0);
3393 
3394     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
3395 
3396     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
3397 
3398     QCOMPARE(currentTrackChangedSpy.count(), 1);
3399     QCOMPARE(playListModelChangedSpy.count(), 1);
3400     QCOMPARE(playerSourceChangedSpy.count(), 2);
3401     QCOMPARE(urlRoleChangedSpy.count(), 1);
3402     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3403     QCOMPARE(playerStatusChangedSpy.count(), 4);
3404     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3405     QCOMPARE(playerErrorChangedSpy.count(), 0);
3406     QCOMPARE(persistentStateChangedSpy.count(), 0);
3407     QCOMPARE(playerPlaySpy.count(), 1);
3408     QCOMPARE(playerPauseSpy.count(), 0);
3409     QCOMPARE(playerStopSpy.count(), 0);
3410     QCOMPARE(skipNextTrackSpy.count(), 0);
3411     QCOMPARE(seekSpy.count(), 0);
3412 
3413     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
3414 
3415     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
3416 
3417     QCOMPARE(currentTrackChangedSpy.count(), 2);
3418     QCOMPARE(playListModelChangedSpy.count(), 1);
3419     QCOMPARE(playerSourceChangedSpy.count(), 2);
3420     QCOMPARE(urlRoleChangedSpy.count(), 1);
3421     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3422     QCOMPARE(playerStatusChangedSpy.count(), 4);
3423     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3424     QCOMPARE(playerErrorChangedSpy.count(), 0);
3425     QCOMPARE(persistentStateChangedSpy.count(), 0);
3426     QCOMPARE(playerPlaySpy.count(), 1);
3427     QCOMPARE(playerPauseSpy.count(), 0);
3428     QCOMPARE(playerStopSpy.count(), 0);
3429     QCOMPARE(skipNextTrackSpy.count(), 0);
3430     QCOMPARE(seekSpy.count(), 0);
3431 
3432     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
3433 
3434     QCOMPARE(playerStopSpy.wait(100), true);
3435 
3436     QCOMPARE(currentTrackChangedSpy.count(), 2);
3437     QCOMPARE(playListModelChangedSpy.count(), 1);
3438     QCOMPARE(playerSourceChangedSpy.count(), 2);
3439     QCOMPARE(urlRoleChangedSpy.count(), 1);
3440     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3441     QCOMPARE(playerStatusChangedSpy.count(), 4);
3442     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3443     QCOMPARE(playerErrorChangedSpy.count(), 0);
3444     QCOMPARE(persistentStateChangedSpy.count(), 0);
3445     QCOMPARE(playerPlaySpy.count(), 1);
3446     QCOMPARE(playerPauseSpy.count(), 0);
3447     QCOMPARE(playerStopSpy.count(), 1);
3448     QCOMPARE(skipNextTrackSpy.count(), 0);
3449     QCOMPARE(seekSpy.count(), 0);
3450 
3451     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
3452 
3453     QCOMPARE(currentTrackChangedSpy.count(), 2);
3454     QCOMPARE(playListModelChangedSpy.count(), 1);
3455     QCOMPARE(playerSourceChangedSpy.count(), 3);
3456     QCOMPARE(urlRoleChangedSpy.count(), 1);
3457     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3458     QCOMPARE(playerStatusChangedSpy.count(), 4);
3459     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
3460     QCOMPARE(playerErrorChangedSpy.count(), 0);
3461     QCOMPARE(persistentStateChangedSpy.count(), 0);
3462     QCOMPARE(playerPlaySpy.count(), 1);
3463     QCOMPARE(playerPauseSpy.count(), 0);
3464     QCOMPARE(playerStopSpy.count(), 1);
3465     QCOMPARE(skipNextTrackSpy.count(), 0);
3466     QCOMPARE(seekSpy.count(), 0);
3467 
3468     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
3469     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
3470 
3471     QCOMPARE(skipNextTrackSpy.wait(100), false);
3472 
3473     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
3474 
3475     QCOMPARE(currentTrackChangedSpy.count(), 2);
3476     QCOMPARE(playListModelChangedSpy.count(), 1);
3477     QCOMPARE(playerSourceChangedSpy.count(), 3);
3478     QCOMPARE(urlRoleChangedSpy.count(), 1);
3479     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3480     QCOMPARE(playerStatusChangedSpy.count(), 5);
3481     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
3482     QCOMPARE(playerErrorChangedSpy.count(), 0);
3483     QCOMPARE(persistentStateChangedSpy.count(), 0);
3484     QCOMPARE(playerPlaySpy.count(), 1);
3485     QCOMPARE(playerPauseSpy.count(), 0);
3486     QCOMPARE(playerStopSpy.count(), 1);
3487     QCOMPARE(skipNextTrackSpy.count(), 0);
3488     QCOMPARE(seekSpy.count(), 0);
3489 
3490     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
3491 
3492     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
3493 
3494     QCOMPARE(currentTrackChangedSpy.count(), 2);
3495     QCOMPARE(playListModelChangedSpy.count(), 1);
3496     QCOMPARE(playerSourceChangedSpy.count(), 3);
3497     QCOMPARE(urlRoleChangedSpy.count(), 1);
3498     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3499     QCOMPARE(playerStatusChangedSpy.count(), 6);
3500     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
3501     QCOMPARE(playerErrorChangedSpy.count(), 0);
3502     QCOMPARE(persistentStateChangedSpy.count(), 0);
3503     QCOMPARE(playerPlaySpy.count(), 1);
3504     QCOMPARE(playerPauseSpy.count(), 0);
3505     QCOMPARE(playerStopSpy.count(), 1);
3506     QCOMPARE(skipNextTrackSpy.count(), 0);
3507     QCOMPARE(seekSpy.count(), 0);
3508 
3509     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
3510 
3511     QCOMPARE(playerPlaySpy.wait(100), true);
3512 
3513     QCOMPARE(currentTrackChangedSpy.count(), 2);
3514     QCOMPARE(playListModelChangedSpy.count(), 1);
3515     QCOMPARE(playerSourceChangedSpy.count(), 3);
3516     QCOMPARE(urlRoleChangedSpy.count(), 1);
3517     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3518     QCOMPARE(playerStatusChangedSpy.count(), 6);
3519     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
3520     QCOMPARE(playerErrorChangedSpy.count(), 0);
3521     QCOMPARE(persistentStateChangedSpy.count(), 0);
3522     QCOMPARE(playerPlaySpy.count(), 2);
3523     QCOMPARE(playerPauseSpy.count(), 0);
3524     QCOMPARE(playerStopSpy.count(), 1);
3525     QCOMPARE(skipNextTrackSpy.count(), 0);
3526     QCOMPARE(seekSpy.count(), 0);
3527 
3528     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
3529 
3530     QCOMPARE(currentTrackChangedSpy.count(), 2);
3531     QCOMPARE(playListModelChangedSpy.count(), 1);
3532     QCOMPARE(playerSourceChangedSpy.count(), 3);
3533     QCOMPARE(urlRoleChangedSpy.count(), 1);
3534     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3535     QCOMPARE(playerStatusChangedSpy.count(), 6);
3536     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
3537     QCOMPARE(playerErrorChangedSpy.count(), 0);
3538     QCOMPARE(persistentStateChangedSpy.count(), 0);
3539     QCOMPARE(playerPlaySpy.count(), 2);
3540     QCOMPARE(playerPauseSpy.count(), 0);
3541     QCOMPARE(playerStopSpy.count(), 1);
3542     QCOMPARE(skipNextTrackSpy.count(), 0);
3543     QCOMPARE(seekSpy.count(), 0);
3544 
3545     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
3546 
3547     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
3548 
3549     QCOMPARE(currentTrackChangedSpy.count(), 2);
3550     QCOMPARE(playListModelChangedSpy.count(), 1);
3551     QCOMPARE(playerSourceChangedSpy.count(), 3);
3552     QCOMPARE(urlRoleChangedSpy.count(), 1);
3553     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3554     QCOMPARE(playerStatusChangedSpy.count(), 7);
3555     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
3556     QCOMPARE(playerErrorChangedSpy.count(), 0);
3557     QCOMPARE(persistentStateChangedSpy.count(), 0);
3558     QCOMPARE(playerPlaySpy.count(), 2);
3559     QCOMPARE(playerPauseSpy.count(), 0);
3560     QCOMPARE(playerStopSpy.count(), 1);
3561     QCOMPARE(skipNextTrackSpy.count(), 0);
3562     QCOMPARE(seekSpy.count(), 0);
3563 
3564     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
3565 
3566     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
3567 
3568     QCOMPARE(currentTrackChangedSpy.count(), 2);
3569     QCOMPARE(playListModelChangedSpy.count(), 1);
3570     QCOMPARE(playerSourceChangedSpy.count(), 3);
3571     QCOMPARE(urlRoleChangedSpy.count(), 1);
3572     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3573     QCOMPARE(playerStatusChangedSpy.count(), 7);
3574     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3575     QCOMPARE(playerErrorChangedSpy.count(), 0);
3576     QCOMPARE(persistentStateChangedSpy.count(), 0);
3577     QCOMPARE(playerPlaySpy.count(), 2);
3578     QCOMPARE(playerPauseSpy.count(), 0);
3579     QCOMPARE(playerStopSpy.count(), 1);
3580     QCOMPARE(skipNextTrackSpy.count(), 0);
3581     QCOMPARE(seekSpy.count(), 0);
3582 
3583     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
3584 
3585     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
3586 
3587     QCOMPARE(currentTrackChangedSpy.count(), 2);
3588     QCOMPARE(playListModelChangedSpy.count(), 1);
3589     QCOMPARE(playerSourceChangedSpy.count(), 3);
3590     QCOMPARE(urlRoleChangedSpy.count(), 1);
3591     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3592     QCOMPARE(playerStatusChangedSpy.count(), 8);
3593     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3594     QCOMPARE(playerErrorChangedSpy.count(), 0);
3595     QCOMPARE(persistentStateChangedSpy.count(), 0);
3596     QCOMPARE(playerPlaySpy.count(), 2);
3597     QCOMPARE(playerPauseSpy.count(), 0);
3598     QCOMPARE(playerStopSpy.count(), 1);
3599     QCOMPARE(skipNextTrackSpy.count(), 0);
3600     QCOMPARE(seekSpy.count(), 0);
3601 
3602     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
3603 
3604     QCOMPARE(skipNextTrackSpy.wait(100), true);
3605 
3606     QCOMPARE(currentTrackChangedSpy.count(), 2);
3607     QCOMPARE(playListModelChangedSpy.count(), 1);
3608     QCOMPARE(playerSourceChangedSpy.count(), 3);
3609     QCOMPARE(urlRoleChangedSpy.count(), 1);
3610     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3611     QCOMPARE(playerStatusChangedSpy.count(), 8);
3612     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3613     QCOMPARE(playerErrorChangedSpy.count(), 0);
3614     QCOMPARE(persistentStateChangedSpy.count(), 0);
3615     QCOMPARE(playerPlaySpy.count(), 2);
3616     QCOMPARE(playerPauseSpy.count(), 0);
3617     QCOMPARE(playerStopSpy.count(), 1);
3618     QCOMPARE(skipNextTrackSpy.count(), 1);
3619     QCOMPARE(seekSpy.count(), 0);
3620 
3621     myPlayer.setCurrentTrack(myPlayList.index(2, 0));
3622 
3623     QCOMPARE(currentTrackChangedSpy.count(), 3);
3624     QCOMPARE(playListModelChangedSpy.count(), 1);
3625     QCOMPARE(playerSourceChangedSpy.count(), 4);
3626     QCOMPARE(urlRoleChangedSpy.count(), 1);
3627     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3628     QCOMPARE(playerStatusChangedSpy.count(), 8);
3629     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3630     QCOMPARE(playerErrorChangedSpy.count(), 0);
3631     QCOMPARE(persistentStateChangedSpy.count(), 0);
3632     QCOMPARE(playerPlaySpy.count(), 2);
3633     QCOMPARE(playerPauseSpy.count(), 0);
3634     QCOMPARE(playerStopSpy.count(), 1);
3635     QCOMPARE(skipNextTrackSpy.count(), 1);
3636     QCOMPARE(seekSpy.count(), 0);
3637 
3638     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0)));
3639     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3")));
3640 
3641     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
3642 
3643     QCOMPARE(currentTrackChangedSpy.count(), 3);
3644     QCOMPARE(playListModelChangedSpy.count(), 1);
3645     QCOMPARE(playerSourceChangedSpy.count(), 4);
3646     QCOMPARE(urlRoleChangedSpy.count(), 1);
3647     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3648     QCOMPARE(playerStatusChangedSpy.count(), 9);
3649     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3650     QCOMPARE(playerErrorChangedSpy.count(), 0);
3651     QCOMPARE(persistentStateChangedSpy.count(), 0);
3652     QCOMPARE(playerPlaySpy.count(), 2);
3653     QCOMPARE(playerPauseSpy.count(), 0);
3654     QCOMPARE(playerStopSpy.count(), 1);
3655     QCOMPARE(skipNextTrackSpy.count(), 1);
3656     QCOMPARE(seekSpy.count(), 0);
3657 
3658     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
3659 
3660     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
3661 
3662     QCOMPARE(currentTrackChangedSpy.count(), 3);
3663     QCOMPARE(playListModelChangedSpy.count(), 1);
3664     QCOMPARE(playerSourceChangedSpy.count(), 4);
3665     QCOMPARE(urlRoleChangedSpy.count(), 1);
3666     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3667     QCOMPARE(playerStatusChangedSpy.count(), 10);
3668     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3669     QCOMPARE(playerErrorChangedSpy.count(), 0);
3670     QCOMPARE(persistentStateChangedSpy.count(), 0);
3671     QCOMPARE(playerPlaySpy.count(), 2);
3672     QCOMPARE(playerPauseSpy.count(), 0);
3673     QCOMPARE(playerStopSpy.count(), 1);
3674     QCOMPARE(skipNextTrackSpy.count(), 1);
3675     QCOMPARE(seekSpy.count(), 0);
3676 
3677     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
3678 
3679     QCOMPARE(playerPlaySpy.wait(100), true);
3680 
3681     QCOMPARE(currentTrackChangedSpy.count(), 3);
3682     QCOMPARE(playListModelChangedSpy.count(), 1);
3683     QCOMPARE(playerSourceChangedSpy.count(), 4);
3684     QCOMPARE(urlRoleChangedSpy.count(), 1);
3685     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3686     QCOMPARE(playerStatusChangedSpy.count(), 10);
3687     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
3688     QCOMPARE(playerErrorChangedSpy.count(), 0);
3689     QCOMPARE(persistentStateChangedSpy.count(), 0);
3690     QCOMPARE(playerPlaySpy.count(), 3);
3691     QCOMPARE(playerPauseSpy.count(), 0);
3692     QCOMPARE(playerStopSpy.count(), 1);
3693     QCOMPARE(skipNextTrackSpy.count(), 1);
3694     QCOMPARE(seekSpy.count(), 0);
3695 }
3696 
3697 void ManageAudioPlayerTest::skipPreviousTrackAndPlayTrack()
3698 {
3699     Elisa::ElisaConfiguration::self()->setDefaults();
3700     ManageAudioPlayer myPlayer;
3701     QStandardItemModel myPlayList;
3702 
3703     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
3704     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
3705     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
3706     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
3707     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
3708     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
3709     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
3710     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
3711     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
3712     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
3713     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
3714     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
3715     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
3716     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
3717 
3718     myPlayList.appendRow(new QStandardItem);
3719     myPlayList.appendRow(new QStandardItem);
3720     myPlayList.appendRow(new QStandardItem);
3721 
3722     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
3723     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
3724     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
3725 
3726     QCOMPARE(currentTrackChangedSpy.count(), 0);
3727     QCOMPARE(playListModelChangedSpy.count(), 0);
3728     QCOMPARE(playerSourceChangedSpy.count(), 0);
3729     QCOMPARE(urlRoleChangedSpy.count(), 0);
3730     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3731     QCOMPARE(playerStatusChangedSpy.count(), 0);
3732     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3733     QCOMPARE(playerErrorChangedSpy.count(), 0);
3734     QCOMPARE(persistentStateChangedSpy.count(), 0);
3735     QCOMPARE(playerPlaySpy.count(), 0);
3736     QCOMPARE(playerPauseSpy.count(), 0);
3737     QCOMPARE(playerStopSpy.count(), 0);
3738     QCOMPARE(skipNextTrackSpy.count(), 0);
3739     QCOMPARE(seekSpy.count(), 0);
3740 
3741     myPlayer.setPlayListModel(&myPlayList);
3742 
3743     QCOMPARE(currentTrackChangedSpy.count(), 0);
3744     QCOMPARE(playListModelChangedSpy.count(), 1);
3745     QCOMPARE(playerSourceChangedSpy.count(), 0);
3746     QCOMPARE(urlRoleChangedSpy.count(), 0);
3747     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3748     QCOMPARE(playerStatusChangedSpy.count(), 0);
3749     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3750     QCOMPARE(playerErrorChangedSpy.count(), 0);
3751     QCOMPARE(persistentStateChangedSpy.count(), 0);
3752     QCOMPARE(playerPlaySpy.count(), 0);
3753     QCOMPARE(playerPauseSpy.count(), 0);
3754     QCOMPARE(playerStopSpy.count(), 0);
3755     QCOMPARE(skipNextTrackSpy.count(), 0);
3756     QCOMPARE(seekSpy.count(), 0);
3757 
3758     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
3759 
3760     QCOMPARE(currentTrackChangedSpy.count(), 1);
3761     QCOMPARE(playListModelChangedSpy.count(), 1);
3762     QCOMPARE(playerSourceChangedSpy.count(), 1);
3763     QCOMPARE(urlRoleChangedSpy.count(), 0);
3764     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3765     QCOMPARE(playerStatusChangedSpy.count(), 0);
3766     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3767     QCOMPARE(playerErrorChangedSpy.count(), 0);
3768     QCOMPARE(persistentStateChangedSpy.count(), 0);
3769     QCOMPARE(playerPlaySpy.count(), 0);
3770     QCOMPARE(playerPauseSpy.count(), 0);
3771     QCOMPARE(playerStopSpy.count(), 0);
3772     QCOMPARE(skipNextTrackSpy.count(), 0);
3773     QCOMPARE(seekSpy.count(), 0);
3774 
3775     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
3776 
3777     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
3778 
3779     QCOMPARE(currentTrackChangedSpy.count(), 1);
3780     QCOMPARE(playListModelChangedSpy.count(), 1);
3781     QCOMPARE(playerSourceChangedSpy.count(), 2);
3782     QCOMPARE(urlRoleChangedSpy.count(), 1);
3783     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
3784     QCOMPARE(playerStatusChangedSpy.count(), 0);
3785     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3786     QCOMPARE(playerErrorChangedSpy.count(), 0);
3787     QCOMPARE(persistentStateChangedSpy.count(), 0);
3788     QCOMPARE(playerPlaySpy.count(), 0);
3789     QCOMPARE(playerPauseSpy.count(), 0);
3790     QCOMPARE(playerStopSpy.count(), 0);
3791     QCOMPARE(skipNextTrackSpy.count(), 0);
3792     QCOMPARE(seekSpy.count(), 0);
3793 
3794     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
3795     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
3796 
3797     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
3798 
3799     QCOMPARE(currentTrackChangedSpy.count(), 1);
3800     QCOMPARE(playListModelChangedSpy.count(), 1);
3801     QCOMPARE(playerSourceChangedSpy.count(), 2);
3802     QCOMPARE(urlRoleChangedSpy.count(), 1);
3803     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3804     QCOMPARE(playerStatusChangedSpy.count(), 0);
3805     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3806     QCOMPARE(playerErrorChangedSpy.count(), 0);
3807     QCOMPARE(persistentStateChangedSpy.count(), 0);
3808     QCOMPARE(playerPlaySpy.count(), 0);
3809     QCOMPARE(playerPauseSpy.count(), 0);
3810     QCOMPARE(playerStopSpy.count(), 0);
3811     QCOMPARE(skipNextTrackSpy.count(), 0);
3812     QCOMPARE(seekSpy.count(), 0);
3813 
3814     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
3815 
3816     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
3817 
3818     QCOMPARE(currentTrackChangedSpy.count(), 1);
3819     QCOMPARE(playListModelChangedSpy.count(), 1);
3820     QCOMPARE(playerSourceChangedSpy.count(), 2);
3821     QCOMPARE(urlRoleChangedSpy.count(), 1);
3822     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3823     QCOMPARE(playerStatusChangedSpy.count(), 1);
3824     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3825     QCOMPARE(playerErrorChangedSpy.count(), 0);
3826     QCOMPARE(persistentStateChangedSpy.count(), 0);
3827     QCOMPARE(playerPlaySpy.count(), 0);
3828     QCOMPARE(playerPauseSpy.count(), 0);
3829     QCOMPARE(playerStopSpy.count(), 0);
3830     QCOMPARE(skipNextTrackSpy.count(), 0);
3831     QCOMPARE(seekSpy.count(), 0);
3832 
3833     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
3834 
3835     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
3836 
3837     QCOMPARE(currentTrackChangedSpy.count(), 1);
3838     QCOMPARE(playListModelChangedSpy.count(), 1);
3839     QCOMPARE(playerSourceChangedSpy.count(), 2);
3840     QCOMPARE(urlRoleChangedSpy.count(), 1);
3841     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3842     QCOMPARE(playerStatusChangedSpy.count(), 1);
3843     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3844     QCOMPARE(playerErrorChangedSpy.count(), 0);
3845     QCOMPARE(persistentStateChangedSpy.count(), 0);
3846     QCOMPARE(playerPlaySpy.count(), 0);
3847     QCOMPARE(playerPauseSpy.count(), 0);
3848     QCOMPARE(playerStopSpy.count(), 0);
3849     QCOMPARE(skipNextTrackSpy.count(), 0);
3850     QCOMPARE(seekSpy.count(), 0);
3851 
3852     myPlayer.setPlayerError(QMediaPlayer::NoError);
3853 
3854     QCOMPARE(currentTrackChangedSpy.count(), 1);
3855     QCOMPARE(playListModelChangedSpy.count(), 1);
3856     QCOMPARE(playerSourceChangedSpy.count(), 2);
3857     QCOMPARE(urlRoleChangedSpy.count(), 1);
3858     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3859     QCOMPARE(playerStatusChangedSpy.count(), 1);
3860     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3861     QCOMPARE(playerErrorChangedSpy.count(), 0);
3862     QCOMPARE(persistentStateChangedSpy.count(), 0);
3863     QCOMPARE(playerPlaySpy.count(), 0);
3864     QCOMPARE(playerPauseSpy.count(), 0);
3865     QCOMPARE(playerStopSpy.count(), 0);
3866     QCOMPARE(skipNextTrackSpy.count(), 0);
3867     QCOMPARE(seekSpy.count(), 0);
3868 
3869     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
3870 
3871     QCOMPARE(currentTrackChangedSpy.count(), 1);
3872     QCOMPARE(playListModelChangedSpy.count(), 1);
3873     QCOMPARE(playerSourceChangedSpy.count(), 2);
3874     QCOMPARE(urlRoleChangedSpy.count(), 1);
3875     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3876     QCOMPARE(playerStatusChangedSpy.count(), 2);
3877     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3878     QCOMPARE(playerErrorChangedSpy.count(), 0);
3879     QCOMPARE(persistentStateChangedSpy.count(), 0);
3880     QCOMPARE(playerPlaySpy.count(), 0);
3881     QCOMPARE(playerPauseSpy.count(), 0);
3882     QCOMPARE(playerStopSpy.count(), 0);
3883     QCOMPARE(skipNextTrackSpy.count(), 0);
3884     QCOMPARE(seekSpy.count(), 0);
3885 
3886     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
3887 
3888     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
3889 
3890     QCOMPARE(currentTrackChangedSpy.count(), 1);
3891     QCOMPARE(playListModelChangedSpy.count(), 1);
3892     QCOMPARE(playerSourceChangedSpy.count(), 2);
3893     QCOMPARE(urlRoleChangedSpy.count(), 1);
3894     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3895     QCOMPARE(playerStatusChangedSpy.count(), 3);
3896     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3897     QCOMPARE(playerErrorChangedSpy.count(), 0);
3898     QCOMPARE(persistentStateChangedSpy.count(), 0);
3899     QCOMPARE(playerPlaySpy.count(), 0);
3900     QCOMPARE(playerPauseSpy.count(), 0);
3901     QCOMPARE(playerStopSpy.count(), 0);
3902     QCOMPARE(skipNextTrackSpy.count(), 0);
3903     QCOMPARE(seekSpy.count(), 0);
3904 
3905     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
3906 
3907     myPlayer.playPause();
3908 
3909     QCOMPARE(currentTrackChangedSpy.count(), 1);
3910     QCOMPARE(playListModelChangedSpy.count(), 1);
3911     QCOMPARE(playerSourceChangedSpy.count(), 2);
3912     QCOMPARE(urlRoleChangedSpy.count(), 1);
3913     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3914     QCOMPARE(playerStatusChangedSpy.count(), 3);
3915     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3916     QCOMPARE(playerErrorChangedSpy.count(), 0);
3917     QCOMPARE(persistentStateChangedSpy.count(), 0);
3918     QCOMPARE(playerPlaySpy.count(), 0);
3919     QCOMPARE(playerPauseSpy.count(), 0);
3920     QCOMPARE(playerStopSpy.count(), 0);
3921     QCOMPARE(skipNextTrackSpy.count(), 0);
3922     QCOMPARE(seekSpy.count(), 0);
3923 
3924     QCOMPARE(playerPlaySpy.wait(), true);
3925 
3926     QCOMPARE(currentTrackChangedSpy.count(), 1);
3927     QCOMPARE(playListModelChangedSpy.count(), 1);
3928     QCOMPARE(playerSourceChangedSpy.count(), 2);
3929     QCOMPARE(urlRoleChangedSpy.count(), 1);
3930     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3931     QCOMPARE(playerStatusChangedSpy.count(), 3);
3932     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
3933     QCOMPARE(playerErrorChangedSpy.count(), 0);
3934     QCOMPARE(persistentStateChangedSpy.count(), 0);
3935     QCOMPARE(playerPlaySpy.count(), 1);
3936     QCOMPARE(playerPauseSpy.count(), 0);
3937     QCOMPARE(playerStopSpy.count(), 0);
3938     QCOMPARE(skipNextTrackSpy.count(), 0);
3939     QCOMPARE(seekSpy.count(), 0);
3940 
3941     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
3942 
3943     QCOMPARE(currentTrackChangedSpy.count(), 1);
3944     QCOMPARE(playListModelChangedSpy.count(), 1);
3945     QCOMPARE(playerSourceChangedSpy.count(), 2);
3946     QCOMPARE(urlRoleChangedSpy.count(), 1);
3947     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3948     QCOMPARE(playerStatusChangedSpy.count(), 3);
3949     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3950     QCOMPARE(playerErrorChangedSpy.count(), 0);
3951     QCOMPARE(persistentStateChangedSpy.count(), 0);
3952     QCOMPARE(playerPlaySpy.count(), 1);
3953     QCOMPARE(playerPauseSpy.count(), 0);
3954     QCOMPARE(playerStopSpy.count(), 0);
3955     QCOMPARE(skipNextTrackSpy.count(), 0);
3956     QCOMPARE(seekSpy.count(), 0);
3957 
3958     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
3959 
3960     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
3961 
3962     QCOMPARE(currentTrackChangedSpy.count(), 1);
3963     QCOMPARE(playListModelChangedSpy.count(), 1);
3964     QCOMPARE(playerSourceChangedSpy.count(), 2);
3965     QCOMPARE(urlRoleChangedSpy.count(), 1);
3966     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3967     QCOMPARE(playerStatusChangedSpy.count(), 4);
3968     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3969     QCOMPARE(playerErrorChangedSpy.count(), 0);
3970     QCOMPARE(persistentStateChangedSpy.count(), 0);
3971     QCOMPARE(playerPlaySpy.count(), 1);
3972     QCOMPARE(playerPauseSpy.count(), 0);
3973     QCOMPARE(playerStopSpy.count(), 0);
3974     QCOMPARE(skipNextTrackSpy.count(), 0);
3975     QCOMPARE(seekSpy.count(), 0);
3976 
3977     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
3978 
3979     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
3980 
3981     QCOMPARE(currentTrackChangedSpy.count(), 2);
3982     QCOMPARE(playListModelChangedSpy.count(), 1);
3983     QCOMPARE(playerSourceChangedSpy.count(), 2);
3984     QCOMPARE(urlRoleChangedSpy.count(), 1);
3985     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
3986     QCOMPARE(playerStatusChangedSpy.count(), 4);
3987     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
3988     QCOMPARE(playerErrorChangedSpy.count(), 0);
3989     QCOMPARE(persistentStateChangedSpy.count(), 0);
3990     QCOMPARE(playerPlaySpy.count(), 1);
3991     QCOMPARE(playerPauseSpy.count(), 0);
3992     QCOMPARE(playerStopSpy.count(), 0);
3993     QCOMPARE(skipNextTrackSpy.count(), 0);
3994     QCOMPARE(seekSpy.count(), 0);
3995 
3996     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
3997 
3998     QCOMPARE(playerStopSpy.wait(100), true);
3999 
4000     QCOMPARE(currentTrackChangedSpy.count(), 2);
4001     QCOMPARE(playListModelChangedSpy.count(), 1);
4002     QCOMPARE(playerSourceChangedSpy.count(), 2);
4003     QCOMPARE(urlRoleChangedSpy.count(), 1);
4004     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4005     QCOMPARE(playerStatusChangedSpy.count(), 4);
4006     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
4007     QCOMPARE(playerErrorChangedSpy.count(), 0);
4008     QCOMPARE(persistentStateChangedSpy.count(), 0);
4009     QCOMPARE(playerPlaySpy.count(), 1);
4010     QCOMPARE(playerPauseSpy.count(), 0);
4011     QCOMPARE(playerStopSpy.count(), 1);
4012     QCOMPARE(skipNextTrackSpy.count(), 0);
4013     QCOMPARE(seekSpy.count(), 0);
4014 
4015     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
4016 
4017     QCOMPARE(currentTrackChangedSpy.count(), 2);
4018     QCOMPARE(playListModelChangedSpy.count(), 1);
4019     QCOMPARE(playerSourceChangedSpy.count(), 3);
4020     QCOMPARE(urlRoleChangedSpy.count(), 1);
4021     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4022     QCOMPARE(playerStatusChangedSpy.count(), 4);
4023     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4024     QCOMPARE(playerErrorChangedSpy.count(), 0);
4025     QCOMPARE(persistentStateChangedSpy.count(), 0);
4026     QCOMPARE(playerPlaySpy.count(), 1);
4027     QCOMPARE(playerPauseSpy.count(), 0);
4028     QCOMPARE(playerStopSpy.count(), 1);
4029     QCOMPARE(skipNextTrackSpy.count(), 0);
4030     QCOMPARE(seekSpy.count(), 0);
4031 
4032     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
4033     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
4034 
4035     QCOMPARE(skipNextTrackSpy.wait(100), false);
4036 
4037     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
4038 
4039     QCOMPARE(currentTrackChangedSpy.count(), 2);
4040     QCOMPARE(playListModelChangedSpy.count(), 1);
4041     QCOMPARE(playerSourceChangedSpy.count(), 3);
4042     QCOMPARE(urlRoleChangedSpy.count(), 1);
4043     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4044     QCOMPARE(playerStatusChangedSpy.count(), 5);
4045     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4046     QCOMPARE(playerErrorChangedSpy.count(), 0);
4047     QCOMPARE(persistentStateChangedSpy.count(), 0);
4048     QCOMPARE(playerPlaySpy.count(), 1);
4049     QCOMPARE(playerPauseSpy.count(), 0);
4050     QCOMPARE(playerStopSpy.count(), 1);
4051     QCOMPARE(skipNextTrackSpy.count(), 0);
4052     QCOMPARE(seekSpy.count(), 0);
4053 
4054     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
4055 
4056     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
4057 
4058     QCOMPARE(currentTrackChangedSpy.count(), 2);
4059     QCOMPARE(playListModelChangedSpy.count(), 1);
4060     QCOMPARE(playerSourceChangedSpy.count(), 3);
4061     QCOMPARE(urlRoleChangedSpy.count(), 1);
4062     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4063     QCOMPARE(playerStatusChangedSpy.count(), 6);
4064     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4065     QCOMPARE(playerErrorChangedSpy.count(), 0);
4066     QCOMPARE(persistentStateChangedSpy.count(), 0);
4067     QCOMPARE(playerPlaySpy.count(), 1);
4068     QCOMPARE(playerPauseSpy.count(), 0);
4069     QCOMPARE(playerStopSpy.count(), 1);
4070     QCOMPARE(skipNextTrackSpy.count(), 0);
4071     QCOMPARE(seekSpy.count(), 0);
4072 
4073     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
4074 
4075     QCOMPARE(playerPlaySpy.wait(100), true);
4076 
4077     QCOMPARE(currentTrackChangedSpy.count(), 2);
4078     QCOMPARE(playListModelChangedSpy.count(), 1);
4079     QCOMPARE(playerSourceChangedSpy.count(), 3);
4080     QCOMPARE(urlRoleChangedSpy.count(), 1);
4081     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4082     QCOMPARE(playerStatusChangedSpy.count(), 6);
4083     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4084     QCOMPARE(playerErrorChangedSpy.count(), 0);
4085     QCOMPARE(persistentStateChangedSpy.count(), 0);
4086     QCOMPARE(playerPlaySpy.count(), 2);
4087     QCOMPARE(playerPauseSpy.count(), 0);
4088     QCOMPARE(playerStopSpy.count(), 1);
4089     QCOMPARE(skipNextTrackSpy.count(), 0);
4090     QCOMPARE(seekSpy.count(), 0);
4091 
4092     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
4093 
4094     QCOMPARE(currentTrackChangedSpy.count(), 2);
4095     QCOMPARE(playListModelChangedSpy.count(), 1);
4096     QCOMPARE(playerSourceChangedSpy.count(), 3);
4097     QCOMPARE(urlRoleChangedSpy.count(), 1);
4098     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4099     QCOMPARE(playerStatusChangedSpy.count(), 6);
4100     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
4101     QCOMPARE(playerErrorChangedSpy.count(), 0);
4102     QCOMPARE(persistentStateChangedSpy.count(), 0);
4103     QCOMPARE(playerPlaySpy.count(), 2);
4104     QCOMPARE(playerPauseSpy.count(), 0);
4105     QCOMPARE(playerStopSpy.count(), 1);
4106     QCOMPARE(skipNextTrackSpy.count(), 0);
4107     QCOMPARE(seekSpy.count(), 0);
4108 
4109     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
4110 
4111     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
4112 
4113     QCOMPARE(currentTrackChangedSpy.count(), 2);
4114     QCOMPARE(playListModelChangedSpy.count(), 1);
4115     QCOMPARE(playerSourceChangedSpy.count(), 3);
4116     QCOMPARE(urlRoleChangedSpy.count(), 1);
4117     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4118     QCOMPARE(playerStatusChangedSpy.count(), 7);
4119     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
4120     QCOMPARE(playerErrorChangedSpy.count(), 0);
4121     QCOMPARE(persistentStateChangedSpy.count(), 0);
4122     QCOMPARE(playerPlaySpy.count(), 2);
4123     QCOMPARE(playerPauseSpy.count(), 0);
4124     QCOMPARE(playerStopSpy.count(), 1);
4125     QCOMPARE(skipNextTrackSpy.count(), 0);
4126     QCOMPARE(seekSpy.count(), 0);
4127 
4128     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
4129 
4130     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
4131 
4132     QCOMPARE(currentTrackChangedSpy.count(), 2);
4133     QCOMPARE(playListModelChangedSpy.count(), 1);
4134     QCOMPARE(playerSourceChangedSpy.count(), 3);
4135     QCOMPARE(urlRoleChangedSpy.count(), 1);
4136     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4137     QCOMPARE(playerStatusChangedSpy.count(), 7);
4138     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4139     QCOMPARE(playerErrorChangedSpy.count(), 0);
4140     QCOMPARE(persistentStateChangedSpy.count(), 0);
4141     QCOMPARE(playerPlaySpy.count(), 2);
4142     QCOMPARE(playerPauseSpy.count(), 0);
4143     QCOMPARE(playerStopSpy.count(), 1);
4144     QCOMPARE(skipNextTrackSpy.count(), 0);
4145     QCOMPARE(seekSpy.count(), 0);
4146 
4147     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
4148 
4149     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
4150 
4151     QCOMPARE(currentTrackChangedSpy.count(), 2);
4152     QCOMPARE(playListModelChangedSpy.count(), 1);
4153     QCOMPARE(playerSourceChangedSpy.count(), 3);
4154     QCOMPARE(urlRoleChangedSpy.count(), 1);
4155     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4156     QCOMPARE(playerStatusChangedSpy.count(), 8);
4157     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4158     QCOMPARE(playerErrorChangedSpy.count(), 0);
4159     QCOMPARE(persistentStateChangedSpy.count(), 0);
4160     QCOMPARE(playerPlaySpy.count(), 2);
4161     QCOMPARE(playerPauseSpy.count(), 0);
4162     QCOMPARE(playerStopSpy.count(), 1);
4163     QCOMPARE(skipNextTrackSpy.count(), 0);
4164     QCOMPARE(seekSpy.count(), 0);
4165 
4166     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
4167 
4168     QCOMPARE(skipNextTrackSpy.wait(100), true);
4169 
4170     QCOMPARE(currentTrackChangedSpy.count(), 2);
4171     QCOMPARE(playListModelChangedSpy.count(), 1);
4172     QCOMPARE(playerSourceChangedSpy.count(), 3);
4173     QCOMPARE(urlRoleChangedSpy.count(), 1);
4174     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4175     QCOMPARE(playerStatusChangedSpy.count(), 8);
4176     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4177     QCOMPARE(playerErrorChangedSpy.count(), 0);
4178     QCOMPARE(persistentStateChangedSpy.count(), 0);
4179     QCOMPARE(playerPlaySpy.count(), 2);
4180     QCOMPARE(playerPauseSpy.count(), 0);
4181     QCOMPARE(playerStopSpy.count(), 1);
4182     QCOMPARE(skipNextTrackSpy.count(), 1);
4183     QCOMPARE(seekSpy.count(), 0);
4184 
4185     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
4186 
4187     QCOMPARE(currentTrackChangedSpy.count(), 3);
4188     QCOMPARE(playListModelChangedSpy.count(), 1);
4189     QCOMPARE(playerSourceChangedSpy.count(), 4);
4190     QCOMPARE(urlRoleChangedSpy.count(), 1);
4191     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4192     QCOMPARE(playerStatusChangedSpy.count(), 8);
4193     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4194     QCOMPARE(playerErrorChangedSpy.count(), 0);
4195     QCOMPARE(persistentStateChangedSpy.count(), 0);
4196     QCOMPARE(playerPlaySpy.count(), 2);
4197     QCOMPARE(playerPauseSpy.count(), 0);
4198     QCOMPARE(playerStopSpy.count(), 1);
4199     QCOMPARE(skipNextTrackSpy.count(), 1);
4200     QCOMPARE(seekSpy.count(), 0);
4201 
4202     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
4203     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
4204 
4205     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
4206 
4207     QCOMPARE(currentTrackChangedSpy.count(), 3);
4208     QCOMPARE(playListModelChangedSpy.count(), 1);
4209     QCOMPARE(playerSourceChangedSpy.count(), 4);
4210     QCOMPARE(urlRoleChangedSpy.count(), 1);
4211     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4212     QCOMPARE(playerStatusChangedSpy.count(), 9);
4213     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4214     QCOMPARE(playerErrorChangedSpy.count(), 0);
4215     QCOMPARE(persistentStateChangedSpy.count(), 0);
4216     QCOMPARE(playerPlaySpy.count(), 2);
4217     QCOMPARE(playerPauseSpy.count(), 0);
4218     QCOMPARE(playerStopSpy.count(), 1);
4219     QCOMPARE(skipNextTrackSpy.count(), 1);
4220     QCOMPARE(seekSpy.count(), 0);
4221 
4222     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
4223 
4224     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
4225 
4226     QCOMPARE(currentTrackChangedSpy.count(), 3);
4227     QCOMPARE(playListModelChangedSpy.count(), 1);
4228     QCOMPARE(playerSourceChangedSpy.count(), 4);
4229     QCOMPARE(urlRoleChangedSpy.count(), 1);
4230     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4231     QCOMPARE(playerStatusChangedSpy.count(), 10);
4232     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4233     QCOMPARE(playerErrorChangedSpy.count(), 0);
4234     QCOMPARE(persistentStateChangedSpy.count(), 0);
4235     QCOMPARE(playerPlaySpy.count(), 2);
4236     QCOMPARE(playerPauseSpy.count(), 0);
4237     QCOMPARE(playerStopSpy.count(), 1);
4238     QCOMPARE(skipNextTrackSpy.count(), 1);
4239     QCOMPARE(seekSpy.count(), 0);
4240 
4241     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
4242 
4243     QCOMPARE(playerPlaySpy.wait(100), true);
4244 
4245     QCOMPARE(currentTrackChangedSpy.count(), 3);
4246     QCOMPARE(playListModelChangedSpy.count(), 1);
4247     QCOMPARE(playerSourceChangedSpy.count(), 4);
4248     QCOMPARE(urlRoleChangedSpy.count(), 1);
4249     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4250     QCOMPARE(playerStatusChangedSpy.count(), 10);
4251     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
4252     QCOMPARE(playerErrorChangedSpy.count(), 0);
4253     QCOMPARE(persistentStateChangedSpy.count(), 0);
4254     QCOMPARE(playerPlaySpy.count(), 3);
4255     QCOMPARE(playerPauseSpy.count(), 0);
4256     QCOMPARE(playerStopSpy.count(), 1);
4257     QCOMPARE(skipNextTrackSpy.count(), 1);
4258     QCOMPARE(seekSpy.count(), 0);
4259 }
4260 
4261 void ManageAudioPlayerTest::playLastCase()
4262 {
4263     Elisa::ElisaConfiguration::self()->setDefaults();
4264     ManageAudioPlayer myPlayer;
4265     QStandardItemModel myPlayList;
4266 
4267     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
4268     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
4269     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
4270     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
4271     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
4272     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
4273     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
4274     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
4275     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
4276     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
4277     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
4278     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
4279     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
4280     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
4281 
4282     myPlayList.appendRow(new QStandardItem);
4283     myPlayList.appendRow(new QStandardItem);
4284     myPlayList.appendRow(new QStandardItem);
4285 
4286     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
4287     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
4288     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
4289 
4290     QCOMPARE(currentTrackChangedSpy.count(), 0);
4291     QCOMPARE(playListModelChangedSpy.count(), 0);
4292     QCOMPARE(playerSourceChangedSpy.count(), 0);
4293     QCOMPARE(urlRoleChangedSpy.count(), 0);
4294     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4295     QCOMPARE(playerStatusChangedSpy.count(), 0);
4296     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4297     QCOMPARE(playerErrorChangedSpy.count(), 0);
4298     QCOMPARE(persistentStateChangedSpy.count(), 0);
4299     QCOMPARE(playerPlaySpy.count(), 0);
4300     QCOMPARE(playerPauseSpy.count(), 0);
4301     QCOMPARE(playerStopSpy.count(), 0);
4302     QCOMPARE(skipNextTrackSpy.count(), 0);
4303     QCOMPARE(seekSpy.count(), 0);
4304 
4305     myPlayer.setPlayListModel(&myPlayList);
4306 
4307     QCOMPARE(currentTrackChangedSpy.count(), 0);
4308     QCOMPARE(playListModelChangedSpy.count(), 1);
4309     QCOMPARE(playerSourceChangedSpy.count(), 0);
4310     QCOMPARE(urlRoleChangedSpy.count(), 0);
4311     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4312     QCOMPARE(playerStatusChangedSpy.count(), 0);
4313     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4314     QCOMPARE(playerErrorChangedSpy.count(), 0);
4315     QCOMPARE(persistentStateChangedSpy.count(), 0);
4316     QCOMPARE(playerPlaySpy.count(), 0);
4317     QCOMPARE(playerPauseSpy.count(), 0);
4318     QCOMPARE(playerStopSpy.count(), 0);
4319     QCOMPARE(skipNextTrackSpy.count(), 0);
4320     QCOMPARE(seekSpy.count(), 0);
4321     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4322     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4323     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4324 
4325     myPlayer.setCurrentTrack(myPlayList.index(2, 0));
4326 
4327     QCOMPARE(currentTrackChangedSpy.count(), 1);
4328     QCOMPARE(playListModelChangedSpy.count(), 1);
4329     QCOMPARE(playerSourceChangedSpy.count(), 1);
4330     QCOMPARE(urlRoleChangedSpy.count(), 0);
4331     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4332     QCOMPARE(playerStatusChangedSpy.count(), 0);
4333     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4334     QCOMPARE(playerErrorChangedSpy.count(), 0);
4335     QCOMPARE(persistentStateChangedSpy.count(), 0);
4336     QCOMPARE(playerPlaySpy.count(), 0);
4337     QCOMPARE(playerPauseSpy.count(), 0);
4338     QCOMPARE(playerStopSpy.count(), 0);
4339     QCOMPARE(skipNextTrackSpy.count(), 0);
4340     QCOMPARE(seekSpy.count(), 0);
4341     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4342     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4343     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4344 
4345     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0)));
4346 
4347     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
4348 
4349     QCOMPARE(currentTrackChangedSpy.count(), 1);
4350     QCOMPARE(playListModelChangedSpy.count(), 1);
4351     QCOMPARE(playerSourceChangedSpy.count(), 2);
4352     QCOMPARE(urlRoleChangedSpy.count(), 1);
4353     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4354     QCOMPARE(playerStatusChangedSpy.count(), 0);
4355     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4356     QCOMPARE(playerErrorChangedSpy.count(), 0);
4357     QCOMPARE(persistentStateChangedSpy.count(), 0);
4358     QCOMPARE(playerPlaySpy.count(), 0);
4359     QCOMPARE(playerPauseSpy.count(), 0);
4360     QCOMPARE(playerStopSpy.count(), 0);
4361     QCOMPARE(skipNextTrackSpy.count(), 0);
4362     QCOMPARE(seekSpy.count(), 0);
4363     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4364     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4365     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4366 
4367     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
4368     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3")));
4369 
4370     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
4371 
4372     QCOMPARE(currentTrackChangedSpy.count(), 1);
4373     QCOMPARE(playListModelChangedSpy.count(), 1);
4374     QCOMPARE(playerSourceChangedSpy.count(), 2);
4375     QCOMPARE(urlRoleChangedSpy.count(), 1);
4376     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4377     QCOMPARE(playerStatusChangedSpy.count(), 0);
4378     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4379     QCOMPARE(playerErrorChangedSpy.count(), 0);
4380     QCOMPARE(persistentStateChangedSpy.count(), 0);
4381     QCOMPARE(playerPlaySpy.count(), 0);
4382     QCOMPARE(playerPauseSpy.count(), 0);
4383     QCOMPARE(playerStopSpy.count(), 0);
4384     QCOMPARE(skipNextTrackSpy.count(), 0);
4385     QCOMPARE(seekSpy.count(), 0);
4386     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4387     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4388     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4389 
4390     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
4391 
4392     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
4393 
4394     QCOMPARE(currentTrackChangedSpy.count(), 1);
4395     QCOMPARE(playListModelChangedSpy.count(), 1);
4396     QCOMPARE(playerSourceChangedSpy.count(), 2);
4397     QCOMPARE(urlRoleChangedSpy.count(), 1);
4398     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4399     QCOMPARE(playerStatusChangedSpy.count(), 1);
4400     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4401     QCOMPARE(playerErrorChangedSpy.count(), 0);
4402     QCOMPARE(persistentStateChangedSpy.count(), 0);
4403     QCOMPARE(playerPlaySpy.count(), 0);
4404     QCOMPARE(playerPauseSpy.count(), 0);
4405     QCOMPARE(playerStopSpy.count(), 0);
4406     QCOMPARE(skipNextTrackSpy.count(), 0);
4407     QCOMPARE(seekSpy.count(), 0);
4408     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4409     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4410     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4411 
4412     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
4413 
4414     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
4415 
4416     QCOMPARE(currentTrackChangedSpy.count(), 1);
4417     QCOMPARE(playListModelChangedSpy.count(), 1);
4418     QCOMPARE(playerSourceChangedSpy.count(), 2);
4419     QCOMPARE(urlRoleChangedSpy.count(), 1);
4420     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4421     QCOMPARE(playerStatusChangedSpy.count(), 1);
4422     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4423     QCOMPARE(playerErrorChangedSpy.count(), 0);
4424     QCOMPARE(persistentStateChangedSpy.count(), 0);
4425     QCOMPARE(playerPlaySpy.count(), 0);
4426     QCOMPARE(playerPauseSpy.count(), 0);
4427     QCOMPARE(playerStopSpy.count(), 0);
4428     QCOMPARE(skipNextTrackSpy.count(), 0);
4429     QCOMPARE(seekSpy.count(), 0);
4430     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4431     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4432     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4433 
4434     myPlayer.setPlayerError(QMediaPlayer::NoError);
4435 
4436     QCOMPARE(currentTrackChangedSpy.count(), 1);
4437     QCOMPARE(playListModelChangedSpy.count(), 1);
4438     QCOMPARE(playerSourceChangedSpy.count(), 2);
4439     QCOMPARE(urlRoleChangedSpy.count(), 1);
4440     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4441     QCOMPARE(playerStatusChangedSpy.count(), 1);
4442     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4443     QCOMPARE(playerErrorChangedSpy.count(), 0);
4444     QCOMPARE(persistentStateChangedSpy.count(), 0);
4445     QCOMPARE(playerPlaySpy.count(), 0);
4446     QCOMPARE(playerPauseSpy.count(), 0);
4447     QCOMPARE(playerStopSpy.count(), 0);
4448     QCOMPARE(skipNextTrackSpy.count(), 0);
4449     QCOMPARE(seekSpy.count(), 0);
4450     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4451     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4452     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4453 
4454     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
4455 
4456     QCOMPARE(currentTrackChangedSpy.count(), 1);
4457     QCOMPARE(playListModelChangedSpy.count(), 1);
4458     QCOMPARE(playerSourceChangedSpy.count(), 2);
4459     QCOMPARE(urlRoleChangedSpy.count(), 1);
4460     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4461     QCOMPARE(playerStatusChangedSpy.count(), 2);
4462     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4463     QCOMPARE(playerErrorChangedSpy.count(), 0);
4464     QCOMPARE(persistentStateChangedSpy.count(), 0);
4465     QCOMPARE(playerPlaySpy.count(), 0);
4466     QCOMPARE(playerPauseSpy.count(), 0);
4467     QCOMPARE(playerStopSpy.count(), 0);
4468     QCOMPARE(skipNextTrackSpy.count(), 0);
4469     QCOMPARE(seekSpy.count(), 0);
4470     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4471     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4472     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4473 
4474     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
4475 
4476     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
4477 
4478     QCOMPARE(currentTrackChangedSpy.count(), 1);
4479     QCOMPARE(playListModelChangedSpy.count(), 1);
4480     QCOMPARE(playerSourceChangedSpy.count(), 2);
4481     QCOMPARE(urlRoleChangedSpy.count(), 1);
4482     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4483     QCOMPARE(playerStatusChangedSpy.count(), 3);
4484     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4485     QCOMPARE(playerErrorChangedSpy.count(), 0);
4486     QCOMPARE(persistentStateChangedSpy.count(), 0);
4487     QCOMPARE(playerPlaySpy.count(), 0);
4488     QCOMPARE(playerPauseSpy.count(), 0);
4489     QCOMPARE(playerStopSpy.count(), 0);
4490     QCOMPARE(skipNextTrackSpy.count(), 0);
4491     QCOMPARE(seekSpy.count(), 0);
4492     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4493     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4494     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4495 
4496     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
4497 
4498     myPlayer.playPause();
4499 
4500     QCOMPARE(currentTrackChangedSpy.count(), 1);
4501     QCOMPARE(playListModelChangedSpy.count(), 1);
4502     QCOMPARE(playerSourceChangedSpy.count(), 2);
4503     QCOMPARE(urlRoleChangedSpy.count(), 1);
4504     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4505     QCOMPARE(playerStatusChangedSpy.count(), 3);
4506     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4507     QCOMPARE(playerErrorChangedSpy.count(), 0);
4508     QCOMPARE(persistentStateChangedSpy.count(), 0);
4509     QCOMPARE(playerPlaySpy.count(), 0);
4510     QCOMPARE(playerPauseSpy.count(), 0);
4511     QCOMPARE(playerStopSpy.count(), 0);
4512     QCOMPARE(skipNextTrackSpy.count(), 0);
4513     QCOMPARE(seekSpy.count(), 0);
4514     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4515     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4516     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4517 
4518     QCOMPARE(playerPlaySpy.wait(), true);
4519 
4520     QCOMPARE(currentTrackChangedSpy.count(), 1);
4521     QCOMPARE(playListModelChangedSpy.count(), 1);
4522     QCOMPARE(playerSourceChangedSpy.count(), 2);
4523     QCOMPARE(urlRoleChangedSpy.count(), 1);
4524     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4525     QCOMPARE(playerStatusChangedSpy.count(), 3);
4526     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4527     QCOMPARE(playerErrorChangedSpy.count(), 0);
4528     QCOMPARE(persistentStateChangedSpy.count(), 0);
4529     QCOMPARE(playerPlaySpy.count(), 1);
4530     QCOMPARE(playerPauseSpy.count(), 0);
4531     QCOMPARE(playerStopSpy.count(), 0);
4532     QCOMPARE(skipNextTrackSpy.count(), 0);
4533     QCOMPARE(seekSpy.count(), 0);
4534     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4535     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4536     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4537 
4538     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
4539 
4540     QCOMPARE(currentTrackChangedSpy.count(), 1);
4541     QCOMPARE(playListModelChangedSpy.count(), 1);
4542     QCOMPARE(playerSourceChangedSpy.count(), 2);
4543     QCOMPARE(urlRoleChangedSpy.count(), 1);
4544     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4545     QCOMPARE(playerStatusChangedSpy.count(), 3);
4546     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
4547     QCOMPARE(playerErrorChangedSpy.count(), 0);
4548     QCOMPARE(persistentStateChangedSpy.count(), 0);
4549     QCOMPARE(playerPlaySpy.count(), 1);
4550     QCOMPARE(playerPauseSpy.count(), 0);
4551     QCOMPARE(playerStopSpy.count(), 0);
4552     QCOMPARE(skipNextTrackSpy.count(), 0);
4553     QCOMPARE(seekSpy.count(), 0);
4554     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4555     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4556     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
4557 
4558     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
4559 
4560     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
4561 
4562     QCOMPARE(currentTrackChangedSpy.count(), 1);
4563     QCOMPARE(playListModelChangedSpy.count(), 1);
4564     QCOMPARE(playerSourceChangedSpy.count(), 2);
4565     QCOMPARE(urlRoleChangedSpy.count(), 1);
4566     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4567     QCOMPARE(playerStatusChangedSpy.count(), 4);
4568     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
4569     QCOMPARE(playerErrorChangedSpy.count(), 0);
4570     QCOMPARE(persistentStateChangedSpy.count(), 0);
4571     QCOMPARE(playerPlaySpy.count(), 1);
4572     QCOMPARE(playerPauseSpy.count(), 0);
4573     QCOMPARE(playerStopSpy.count(), 0);
4574     QCOMPARE(skipNextTrackSpy.count(), 0);
4575     QCOMPARE(seekSpy.count(), 0);
4576     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4577     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4578     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
4579 
4580     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
4581 
4582     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
4583 
4584     QCOMPARE(currentTrackChangedSpy.count(), 1);
4585     QCOMPARE(playListModelChangedSpy.count(), 1);
4586     QCOMPARE(playerSourceChangedSpy.count(), 2);
4587     QCOMPARE(urlRoleChangedSpy.count(), 1);
4588     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4589     QCOMPARE(playerStatusChangedSpy.count(), 4);
4590     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4591     QCOMPARE(playerErrorChangedSpy.count(), 0);
4592     QCOMPARE(persistentStateChangedSpy.count(), 0);
4593     QCOMPARE(playerPlaySpy.count(), 1);
4594     QCOMPARE(playerPauseSpy.count(), 0);
4595     QCOMPARE(playerStopSpy.count(), 0);
4596     QCOMPARE(skipNextTrackSpy.count(), 0);
4597     QCOMPARE(seekSpy.count(), 0);
4598     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4599     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4600     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4601 
4602     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
4603 
4604     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
4605 
4606     QCOMPARE(currentTrackChangedSpy.count(), 1);
4607     QCOMPARE(playListModelChangedSpy.count(), 1);
4608     QCOMPARE(playerSourceChangedSpy.count(), 2);
4609     QCOMPARE(urlRoleChangedSpy.count(), 1);
4610     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4611     QCOMPARE(playerStatusChangedSpy.count(), 5);
4612     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4613     QCOMPARE(playerErrorChangedSpy.count(), 0);
4614     QCOMPARE(persistentStateChangedSpy.count(), 0);
4615     QCOMPARE(playerPlaySpy.count(), 1);
4616     QCOMPARE(playerPauseSpy.count(), 0);
4617     QCOMPARE(playerStopSpy.count(), 0);
4618     QCOMPARE(skipNextTrackSpy.count(), 0);
4619     QCOMPARE(seekSpy.count(), 0);
4620     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4621     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4622     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4623 
4624     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
4625 
4626     QCOMPARE(skipNextTrackSpy.wait(100), true);
4627 
4628     QCOMPARE(currentTrackChangedSpy.count(), 1);
4629     QCOMPARE(playListModelChangedSpy.count(), 1);
4630     QCOMPARE(playerSourceChangedSpy.count(), 2);
4631     QCOMPARE(urlRoleChangedSpy.count(), 1);
4632     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4633     QCOMPARE(playerStatusChangedSpy.count(), 5);
4634     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4635     QCOMPARE(playerErrorChangedSpy.count(), 0);
4636     QCOMPARE(persistentStateChangedSpy.count(), 0);
4637     QCOMPARE(playerPlaySpy.count(), 1);
4638     QCOMPARE(playerPauseSpy.count(), 0);
4639     QCOMPARE(playerStopSpy.count(), 0);
4640     QCOMPARE(skipNextTrackSpy.count(), 1);
4641     QCOMPARE(seekSpy.count(), 0);
4642     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4643     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4644     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4645 
4646     myPlayer.playListFinished();
4647 
4648     QCOMPARE(currentTrackChangedSpy.count(), 1);
4649     QCOMPARE(playListModelChangedSpy.count(), 1);
4650     QCOMPARE(playerSourceChangedSpy.count(), 2);
4651     QCOMPARE(urlRoleChangedSpy.count(), 1);
4652     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4653     QCOMPARE(playerStatusChangedSpy.count(), 5);
4654     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4655     QCOMPARE(playerErrorChangedSpy.count(), 0);
4656     QCOMPARE(persistentStateChangedSpy.count(), 0);
4657     QCOMPARE(playerPlaySpy.count(), 1);
4658     QCOMPARE(playerPauseSpy.count(), 0);
4659     QCOMPARE(playerStopSpy.count(), 0);
4660     QCOMPARE(skipNextTrackSpy.count(), 1);
4661     QCOMPARE(seekSpy.count(), 0);
4662     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4663     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4664     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4665 
4666     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
4667 
4668     QCOMPARE(currentTrackChangedSpy.count(), 2);
4669     QCOMPARE(playListModelChangedSpy.count(), 1);
4670     QCOMPARE(playerSourceChangedSpy.count(), 3);
4671     QCOMPARE(urlRoleChangedSpy.count(), 1);
4672     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4673     QCOMPARE(playerStatusChangedSpy.count(), 5);
4674     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4675     QCOMPARE(playerErrorChangedSpy.count(), 0);
4676     QCOMPARE(persistentStateChangedSpy.count(), 0);
4677     QCOMPARE(playerPlaySpy.count(), 1);
4678     QCOMPARE(playerPauseSpy.count(), 0);
4679     QCOMPARE(playerStopSpy.count(), 0);
4680     QCOMPARE(skipNextTrackSpy.count(), 1);
4681     QCOMPARE(seekSpy.count(), 0);
4682     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4683     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4684     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4685 
4686     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
4687 
4688     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
4689 
4690     QCOMPARE(currentTrackChangedSpy.count(), 2);
4691     QCOMPARE(playListModelChangedSpy.count(), 1);
4692     QCOMPARE(playerSourceChangedSpy.count(), 3);
4693     QCOMPARE(urlRoleChangedSpy.count(), 1);
4694     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4695     QCOMPARE(playerStatusChangedSpy.count(), 6);
4696     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4697     QCOMPARE(playerErrorChangedSpy.count(), 0);
4698     QCOMPARE(persistentStateChangedSpy.count(), 0);
4699     QCOMPARE(playerPlaySpy.count(), 1);
4700     QCOMPARE(playerPauseSpy.count(), 0);
4701     QCOMPARE(playerStopSpy.count(), 0);
4702     QCOMPARE(skipNextTrackSpy.count(), 1);
4703     QCOMPARE(seekSpy.count(), 0);
4704     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4705     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4706     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4707 
4708     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
4709 
4710     QCOMPARE(playerPlaySpy.wait(100), false);
4711 
4712     QCOMPARE(currentTrackChangedSpy.count(), 2);
4713     QCOMPARE(playListModelChangedSpy.count(), 1);
4714     QCOMPARE(playerSourceChangedSpy.count(), 3);
4715     QCOMPARE(urlRoleChangedSpy.count(), 1);
4716     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4717     QCOMPARE(playerStatusChangedSpy.count(), 6);
4718     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
4719     QCOMPARE(playerErrorChangedSpy.count(), 0);
4720     QCOMPARE(persistentStateChangedSpy.count(), 0);
4721     QCOMPARE(playerPlaySpy.count(), 1);
4722     QCOMPARE(playerPauseSpy.count(), 0);
4723     QCOMPARE(playerStopSpy.count(), 0);
4724     QCOMPARE(skipNextTrackSpy.count(), 1);
4725     QCOMPARE(seekSpy.count(), 0);
4726     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4727     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4728     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4729 }
4730 
4731 void ManageAudioPlayerTest::playSingleAndClearPlayListTrack()
4732 {
4733     Elisa::ElisaConfiguration::self()->setDefaults();
4734     ManageAudioPlayer myPlayer;
4735     QStandardItemModel myPlayList;
4736 
4737     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
4738     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
4739     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
4740     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
4741     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
4742     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
4743     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
4744     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
4745     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
4746     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
4747     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
4748     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
4749     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
4750     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
4751 
4752     myPlayList.appendRow(new QStandardItem);
4753 
4754     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
4755 
4756     QCOMPARE(currentTrackChangedSpy.count(), 0);
4757     QCOMPARE(playListModelChangedSpy.count(), 0);
4758     QCOMPARE(playerSourceChangedSpy.count(), 0);
4759     QCOMPARE(urlRoleChangedSpy.count(), 0);
4760     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4761     QCOMPARE(playerStatusChangedSpy.count(), 0);
4762     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4763     QCOMPARE(playerErrorChangedSpy.count(), 0);
4764     QCOMPARE(persistentStateChangedSpy.count(), 0);
4765     QCOMPARE(playerPlaySpy.count(), 0);
4766     QCOMPARE(playerPauseSpy.count(), 0);
4767     QCOMPARE(playerStopSpy.count(), 0);
4768     QCOMPARE(skipNextTrackSpy.count(), 0);
4769     QCOMPARE(seekSpy.count(), 0);
4770 
4771     myPlayer.setPlayListModel(&myPlayList);
4772 
4773     QCOMPARE(currentTrackChangedSpy.count(), 0);
4774     QCOMPARE(playListModelChangedSpy.count(), 1);
4775     QCOMPARE(playerSourceChangedSpy.count(), 0);
4776     QCOMPARE(urlRoleChangedSpy.count(), 0);
4777     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4778     QCOMPARE(playerStatusChangedSpy.count(), 0);
4779     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4780     QCOMPARE(playerErrorChangedSpy.count(), 0);
4781     QCOMPARE(persistentStateChangedSpy.count(), 0);
4782     QCOMPARE(playerPlaySpy.count(), 0);
4783     QCOMPARE(playerPauseSpy.count(), 0);
4784     QCOMPARE(playerStopSpy.count(), 0);
4785     QCOMPARE(skipNextTrackSpy.count(), 0);
4786     QCOMPARE(seekSpy.count(), 0);
4787     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4788 
4789     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
4790 
4791     QCOMPARE(currentTrackChangedSpy.count(), 1);
4792     QCOMPARE(playListModelChangedSpy.count(), 1);
4793     QCOMPARE(playerSourceChangedSpy.count(), 1);
4794     QCOMPARE(urlRoleChangedSpy.count(), 0);
4795     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4796     QCOMPARE(playerStatusChangedSpy.count(), 0);
4797     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4798     QCOMPARE(playerErrorChangedSpy.count(), 0);
4799     QCOMPARE(persistentStateChangedSpy.count(), 0);
4800     QCOMPARE(playerPlaySpy.count(), 0);
4801     QCOMPARE(playerPauseSpy.count(), 0);
4802     QCOMPARE(playerStopSpy.count(), 0);
4803     QCOMPARE(skipNextTrackSpy.count(), 0);
4804     QCOMPARE(seekSpy.count(), 0);
4805     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4806 
4807     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
4808 
4809     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
4810 
4811     QCOMPARE(currentTrackChangedSpy.count(), 1);
4812     QCOMPARE(playListModelChangedSpy.count(), 1);
4813     QCOMPARE(playerSourceChangedSpy.count(), 2);
4814     QCOMPARE(urlRoleChangedSpy.count(), 1);
4815     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
4816     QCOMPARE(playerStatusChangedSpy.count(), 0);
4817     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4818     QCOMPARE(playerErrorChangedSpy.count(), 0);
4819     QCOMPARE(persistentStateChangedSpy.count(), 0);
4820     QCOMPARE(playerPlaySpy.count(), 0);
4821     QCOMPARE(playerPauseSpy.count(), 0);
4822     QCOMPARE(playerStopSpy.count(), 0);
4823     QCOMPARE(skipNextTrackSpy.count(), 0);
4824     QCOMPARE(seekSpy.count(), 0);
4825     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4826 
4827     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
4828     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
4829 
4830     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
4831 
4832     QCOMPARE(currentTrackChangedSpy.count(), 1);
4833     QCOMPARE(playListModelChangedSpy.count(), 1);
4834     QCOMPARE(playerSourceChangedSpy.count(), 2);
4835     QCOMPARE(urlRoleChangedSpy.count(), 1);
4836     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4837     QCOMPARE(playerStatusChangedSpy.count(), 0);
4838     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4839     QCOMPARE(playerErrorChangedSpy.count(), 0);
4840     QCOMPARE(persistentStateChangedSpy.count(), 0);
4841     QCOMPARE(playerPlaySpy.count(), 0);
4842     QCOMPARE(playerPauseSpy.count(), 0);
4843     QCOMPARE(playerStopSpy.count(), 0);
4844     QCOMPARE(skipNextTrackSpy.count(), 0);
4845     QCOMPARE(seekSpy.count(), 0);
4846     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4847 
4848     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
4849 
4850     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
4851 
4852     QCOMPARE(currentTrackChangedSpy.count(), 1);
4853     QCOMPARE(playListModelChangedSpy.count(), 1);
4854     QCOMPARE(playerSourceChangedSpy.count(), 2);
4855     QCOMPARE(urlRoleChangedSpy.count(), 1);
4856     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4857     QCOMPARE(playerStatusChangedSpy.count(), 1);
4858     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4859     QCOMPARE(playerErrorChangedSpy.count(), 0);
4860     QCOMPARE(persistentStateChangedSpy.count(), 0);
4861     QCOMPARE(playerPlaySpy.count(), 0);
4862     QCOMPARE(playerPauseSpy.count(), 0);
4863     QCOMPARE(playerStopSpy.count(), 0);
4864     QCOMPARE(skipNextTrackSpy.count(), 0);
4865     QCOMPARE(seekSpy.count(), 0);
4866     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4867 
4868     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
4869 
4870     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
4871 
4872     QCOMPARE(currentTrackChangedSpy.count(), 1);
4873     QCOMPARE(playListModelChangedSpy.count(), 1);
4874     QCOMPARE(playerSourceChangedSpy.count(), 2);
4875     QCOMPARE(urlRoleChangedSpy.count(), 1);
4876     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4877     QCOMPARE(playerStatusChangedSpy.count(), 1);
4878     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4879     QCOMPARE(playerErrorChangedSpy.count(), 0);
4880     QCOMPARE(persistentStateChangedSpy.count(), 0);
4881     QCOMPARE(playerPlaySpy.count(), 0);
4882     QCOMPARE(playerPauseSpy.count(), 0);
4883     QCOMPARE(playerStopSpy.count(), 0);
4884     QCOMPARE(skipNextTrackSpy.count(), 0);
4885     QCOMPARE(seekSpy.count(), 0);
4886     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4887 
4888     myPlayer.setPlayerError(QMediaPlayer::NoError);
4889 
4890     QCOMPARE(currentTrackChangedSpy.count(), 1);
4891     QCOMPARE(playListModelChangedSpy.count(), 1);
4892     QCOMPARE(playerSourceChangedSpy.count(), 2);
4893     QCOMPARE(urlRoleChangedSpy.count(), 1);
4894     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4895     QCOMPARE(playerStatusChangedSpy.count(), 1);
4896     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4897     QCOMPARE(playerErrorChangedSpy.count(), 0);
4898     QCOMPARE(persistentStateChangedSpy.count(), 0);
4899     QCOMPARE(playerPlaySpy.count(), 0);
4900     QCOMPARE(playerPauseSpy.count(), 0);
4901     QCOMPARE(playerStopSpy.count(), 0);
4902     QCOMPARE(skipNextTrackSpy.count(), 0);
4903     QCOMPARE(seekSpy.count(), 0);
4904     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4905 
4906     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
4907 
4908     QCOMPARE(currentTrackChangedSpy.count(), 1);
4909     QCOMPARE(playListModelChangedSpy.count(), 1);
4910     QCOMPARE(playerSourceChangedSpy.count(), 2);
4911     QCOMPARE(urlRoleChangedSpy.count(), 1);
4912     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4913     QCOMPARE(playerStatusChangedSpy.count(), 2);
4914     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4915     QCOMPARE(playerErrorChangedSpy.count(), 0);
4916     QCOMPARE(persistentStateChangedSpy.count(), 0);
4917     QCOMPARE(playerPlaySpy.count(), 0);
4918     QCOMPARE(playerPauseSpy.count(), 0);
4919     QCOMPARE(playerStopSpy.count(), 0);
4920     QCOMPARE(skipNextTrackSpy.count(), 0);
4921     QCOMPARE(seekSpy.count(), 0);
4922     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4923 
4924     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
4925 
4926     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
4927 
4928     QCOMPARE(currentTrackChangedSpy.count(), 1);
4929     QCOMPARE(playListModelChangedSpy.count(), 1);
4930     QCOMPARE(playerSourceChangedSpy.count(), 2);
4931     QCOMPARE(urlRoleChangedSpy.count(), 1);
4932     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4933     QCOMPARE(playerStatusChangedSpy.count(), 3);
4934     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4935     QCOMPARE(playerErrorChangedSpy.count(), 0);
4936     QCOMPARE(persistentStateChangedSpy.count(), 0);
4937     QCOMPARE(playerPlaySpy.count(), 0);
4938     QCOMPARE(playerPauseSpy.count(), 0);
4939     QCOMPARE(playerStopSpy.count(), 0);
4940     QCOMPARE(skipNextTrackSpy.count(), 0);
4941     QCOMPARE(seekSpy.count(), 0);
4942     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4943 
4944     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
4945 
4946     myPlayer.playPause();
4947 
4948     QCOMPARE(currentTrackChangedSpy.count(), 1);
4949     QCOMPARE(playListModelChangedSpy.count(), 1);
4950     QCOMPARE(playerSourceChangedSpy.count(), 2);
4951     QCOMPARE(urlRoleChangedSpy.count(), 1);
4952     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4953     QCOMPARE(playerStatusChangedSpy.count(), 3);
4954     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4955     QCOMPARE(playerErrorChangedSpy.count(), 0);
4956     QCOMPARE(persistentStateChangedSpy.count(), 0);
4957     QCOMPARE(playerPlaySpy.count(), 0);
4958     QCOMPARE(playerPauseSpy.count(), 0);
4959     QCOMPARE(playerStopSpy.count(), 0);
4960     QCOMPARE(skipNextTrackSpy.count(), 0);
4961     QCOMPARE(seekSpy.count(), 0);
4962     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4963 
4964     QCOMPARE(playerPlaySpy.wait(), true);
4965 
4966     QCOMPARE(currentTrackChangedSpy.count(), 1);
4967     QCOMPARE(playListModelChangedSpy.count(), 1);
4968     QCOMPARE(playerSourceChangedSpy.count(), 2);
4969     QCOMPARE(urlRoleChangedSpy.count(), 1);
4970     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4971     QCOMPARE(playerStatusChangedSpy.count(), 3);
4972     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
4973     QCOMPARE(playerErrorChangedSpy.count(), 0);
4974     QCOMPARE(persistentStateChangedSpy.count(), 0);
4975     QCOMPARE(playerPlaySpy.count(), 1);
4976     QCOMPARE(playerPauseSpy.count(), 0);
4977     QCOMPARE(playerStopSpy.count(), 0);
4978     QCOMPARE(skipNextTrackSpy.count(), 0);
4979     QCOMPARE(seekSpy.count(), 0);
4980     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
4981 
4982     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
4983 
4984     QCOMPARE(currentTrackChangedSpy.count(), 1);
4985     QCOMPARE(playListModelChangedSpy.count(), 1);
4986     QCOMPARE(playerSourceChangedSpy.count(), 2);
4987     QCOMPARE(urlRoleChangedSpy.count(), 1);
4988     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
4989     QCOMPARE(playerStatusChangedSpy.count(), 3);
4990     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
4991     QCOMPARE(playerErrorChangedSpy.count(), 0);
4992     QCOMPARE(persistentStateChangedSpy.count(), 0);
4993     QCOMPARE(playerPlaySpy.count(), 1);
4994     QCOMPARE(playerPauseSpy.count(), 0);
4995     QCOMPARE(playerStopSpy.count(), 0);
4996     QCOMPARE(skipNextTrackSpy.count(), 0);
4997     QCOMPARE(seekSpy.count(), 0);
4998     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
4999 
5000     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
5001 
5002     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
5003 
5004     QCOMPARE(currentTrackChangedSpy.count(), 1);
5005     QCOMPARE(playListModelChangedSpy.count(), 1);
5006     QCOMPARE(playerSourceChangedSpy.count(), 2);
5007     QCOMPARE(urlRoleChangedSpy.count(), 1);
5008     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5009     QCOMPARE(playerStatusChangedSpy.count(), 4);
5010     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
5011     QCOMPARE(playerErrorChangedSpy.count(), 0);
5012     QCOMPARE(persistentStateChangedSpy.count(), 0);
5013     QCOMPARE(playerPlaySpy.count(), 1);
5014     QCOMPARE(playerPauseSpy.count(), 0);
5015     QCOMPARE(playerStopSpy.count(), 0);
5016     QCOMPARE(skipNextTrackSpy.count(), 0);
5017     QCOMPARE(seekSpy.count(), 0);
5018     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
5019 
5020     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
5021 
5022     myPlayer.setCurrentTrack({});
5023 
5024     QCOMPARE(currentTrackChangedSpy.count(), 2);
5025     QCOMPARE(playListModelChangedSpy.count(), 1);
5026     QCOMPARE(playerSourceChangedSpy.count(), 2);
5027     QCOMPARE(urlRoleChangedSpy.count(), 1);
5028     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5029     QCOMPARE(playerStatusChangedSpy.count(), 4);
5030     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
5031     QCOMPARE(playerErrorChangedSpy.count(), 0);
5032     QCOMPARE(persistentStateChangedSpy.count(), 0);
5033     QCOMPARE(playerPlaySpy.count(), 1);
5034     QCOMPARE(playerPauseSpy.count(), 0);
5035     QCOMPARE(playerStopSpy.count(), 0);
5036     QCOMPARE(skipNextTrackSpy.count(), 0);
5037     QCOMPARE(seekSpy.count(), 0);
5038     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
5039 
5040     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex{});
5041 
5042     QCOMPARE(playerStopSpy.wait(300), true);
5043 
5044     QCOMPARE(currentTrackChangedSpy.count(), 2);
5045     QCOMPARE(playListModelChangedSpy.count(), 1);
5046     QCOMPARE(playerSourceChangedSpy.count(), 2);
5047     QCOMPARE(urlRoleChangedSpy.count(), 1);
5048     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5049     QCOMPARE(playerStatusChangedSpy.count(), 4);
5050     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
5051     QCOMPARE(playerErrorChangedSpy.count(), 0);
5052     QCOMPARE(persistentStateChangedSpy.count(), 0);
5053     QCOMPARE(playerPlaySpy.count(), 1);
5054     QCOMPARE(playerPauseSpy.count(), 0);
5055     QCOMPARE(playerStopSpy.count(), 1);
5056     QCOMPARE(skipNextTrackSpy.count(), 0);
5057     QCOMPARE(seekSpy.count(), 0);
5058     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
5059 
5060     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
5061 
5062     QCOMPARE(currentTrackChangedSpy.count(), 2);
5063     QCOMPARE(playListModelChangedSpy.count(), 1);
5064     QCOMPARE(playerSourceChangedSpy.count(), 3);
5065     QCOMPARE(urlRoleChangedSpy.count(), 1);
5066     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5067     QCOMPARE(playerStatusChangedSpy.count(), 4);
5068     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5069     QCOMPARE(playerErrorChangedSpy.count(), 0);
5070     QCOMPARE(persistentStateChangedSpy.count(), 0);
5071     QCOMPARE(playerPlaySpy.count(), 1);
5072     QCOMPARE(playerPauseSpy.count(), 0);
5073     QCOMPARE(playerStopSpy.count(), 1);
5074     QCOMPARE(skipNextTrackSpy.count(), 0);
5075     QCOMPARE(seekSpy.count(), 0);
5076     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5077 
5078     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
5079 
5080     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
5081 
5082     QCOMPARE(currentTrackChangedSpy.count(), 3);
5083     QCOMPARE(playListModelChangedSpy.count(), 1);
5084     QCOMPARE(playerSourceChangedSpy.count(), 4);
5085     QCOMPARE(urlRoleChangedSpy.count(), 1);
5086     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5087     QCOMPARE(playerStatusChangedSpy.count(), 4);
5088     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5089     QCOMPARE(playerErrorChangedSpy.count(), 0);
5090     QCOMPARE(persistentStateChangedSpy.count(), 0);
5091     QCOMPARE(playerPlaySpy.count(), 1);
5092     QCOMPARE(playerPauseSpy.count(), 0);
5093     QCOMPARE(playerStopSpy.count(), 1);
5094     QCOMPARE(skipNextTrackSpy.count(), 0);
5095     QCOMPARE(seekSpy.count(), 0);
5096     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5097 
5098     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
5099 
5100     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
5101 
5102     QCOMPARE(currentTrackChangedSpy.count(), 3);
5103     QCOMPARE(playListModelChangedSpy.count(), 1);
5104     QCOMPARE(playerSourceChangedSpy.count(), 4);
5105     QCOMPARE(urlRoleChangedSpy.count(), 1);
5106     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5107     QCOMPARE(playerStatusChangedSpy.count(), 5);
5108     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5109     QCOMPARE(playerErrorChangedSpy.count(), 0);
5110     QCOMPARE(persistentStateChangedSpy.count(), 0);
5111     QCOMPARE(playerPlaySpy.count(), 1);
5112     QCOMPARE(playerPauseSpy.count(), 0);
5113     QCOMPARE(playerStopSpy.count(), 1);
5114     QCOMPARE(skipNextTrackSpy.count(), 0);
5115     QCOMPARE(seekSpy.count(), 0);
5116     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5117 
5118     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
5119 
5120     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
5121 
5122     QCOMPARE(currentTrackChangedSpy.count(), 3);
5123     QCOMPARE(playListModelChangedSpy.count(), 1);
5124     QCOMPARE(playerSourceChangedSpy.count(), 4);
5125     QCOMPARE(urlRoleChangedSpy.count(), 1);
5126     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5127     QCOMPARE(playerStatusChangedSpy.count(), 6);
5128     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5129     QCOMPARE(playerErrorChangedSpy.count(), 0);
5130     QCOMPARE(persistentStateChangedSpy.count(), 0);
5131     QCOMPARE(playerPlaySpy.count(), 1);
5132     QCOMPARE(playerPauseSpy.count(), 0);
5133     QCOMPARE(playerStopSpy.count(), 1);
5134     QCOMPARE(skipNextTrackSpy.count(), 0);
5135     QCOMPARE(seekSpy.count(), 0);
5136     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5137 
5138     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
5139 
5140     QCOMPARE(playerPlaySpy.wait(300), false);
5141 
5142     QCOMPARE(currentTrackChangedSpy.count(), 3);
5143     QCOMPARE(playListModelChangedSpy.count(), 1);
5144     QCOMPARE(playerSourceChangedSpy.count(), 4);
5145     QCOMPARE(urlRoleChangedSpy.count(), 1);
5146     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5147     QCOMPARE(playerStatusChangedSpy.count(), 6);
5148     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5149     QCOMPARE(playerErrorChangedSpy.count(), 0);
5150     QCOMPARE(persistentStateChangedSpy.count(), 0);
5151     QCOMPARE(playerPlaySpy.count(), 1);
5152     QCOMPARE(playerPauseSpy.count(), 0);
5153     QCOMPARE(playerStopSpy.count(), 1);
5154     QCOMPARE(skipNextTrackSpy.count(), 0);
5155     QCOMPARE(seekSpy.count(), 0);
5156     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5157 }
5158 
5159 void ManageAudioPlayerTest::playSingleTrack()
5160 {
5161     Elisa::ElisaConfiguration::self()->setDefaults();
5162     ManageAudioPlayer myPlayer;
5163     QStandardItemModel myPlayList;
5164 
5165     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
5166     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
5167     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
5168     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
5169     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
5170     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
5171     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
5172     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
5173     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
5174     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
5175     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
5176     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
5177     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
5178     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
5179 
5180     myPlayList.appendRow(new QStandardItem);
5181 
5182     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
5183 
5184     QCOMPARE(currentTrackChangedSpy.count(), 0);
5185     QCOMPARE(playListModelChangedSpy.count(), 0);
5186     QCOMPARE(playerSourceChangedSpy.count(), 0);
5187     QCOMPARE(urlRoleChangedSpy.count(), 0);
5188     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5189     QCOMPARE(playerStatusChangedSpy.count(), 0);
5190     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5191     QCOMPARE(playerErrorChangedSpy.count(), 0);
5192     QCOMPARE(persistentStateChangedSpy.count(), 0);
5193     QCOMPARE(playerPlaySpy.count(), 0);
5194     QCOMPARE(playerPauseSpy.count(), 0);
5195     QCOMPARE(playerStopSpy.count(), 0);
5196     QCOMPARE(skipNextTrackSpy.count(), 0);
5197     QCOMPARE(seekSpy.count(), 0);
5198 
5199     myPlayer.setPlayListModel(&myPlayList);
5200 
5201     QCOMPARE(currentTrackChangedSpy.count(), 0);
5202     QCOMPARE(playListModelChangedSpy.count(), 1);
5203     QCOMPARE(playerSourceChangedSpy.count(), 0);
5204     QCOMPARE(urlRoleChangedSpy.count(), 0);
5205     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5206     QCOMPARE(playerStatusChangedSpy.count(), 0);
5207     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5208     QCOMPARE(playerErrorChangedSpy.count(), 0);
5209     QCOMPARE(persistentStateChangedSpy.count(), 0);
5210     QCOMPARE(playerPlaySpy.count(), 0);
5211     QCOMPARE(playerPauseSpy.count(), 0);
5212     QCOMPARE(playerStopSpy.count(), 0);
5213     QCOMPARE(skipNextTrackSpy.count(), 0);
5214     QCOMPARE(seekSpy.count(), 0);
5215     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5216 
5217     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
5218 
5219     QCOMPARE(currentTrackChangedSpy.count(), 1);
5220     QCOMPARE(playListModelChangedSpy.count(), 1);
5221     QCOMPARE(playerSourceChangedSpy.count(), 1);
5222     QCOMPARE(urlRoleChangedSpy.count(), 0);
5223     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5224     QCOMPARE(playerStatusChangedSpy.count(), 0);
5225     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5226     QCOMPARE(playerErrorChangedSpy.count(), 0);
5227     QCOMPARE(persistentStateChangedSpy.count(), 0);
5228     QCOMPARE(playerPlaySpy.count(), 0);
5229     QCOMPARE(playerPauseSpy.count(), 0);
5230     QCOMPARE(playerStopSpy.count(), 0);
5231     QCOMPARE(skipNextTrackSpy.count(), 0);
5232     QCOMPARE(seekSpy.count(), 0);
5233     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5234 
5235     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
5236 
5237     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
5238 
5239     QCOMPARE(currentTrackChangedSpy.count(), 1);
5240     QCOMPARE(playListModelChangedSpy.count(), 1);
5241     QCOMPARE(playerSourceChangedSpy.count(), 2);
5242     QCOMPARE(urlRoleChangedSpy.count(), 1);
5243     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5244     QCOMPARE(playerStatusChangedSpy.count(), 0);
5245     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5246     QCOMPARE(playerErrorChangedSpy.count(), 0);
5247     QCOMPARE(persistentStateChangedSpy.count(), 0);
5248     QCOMPARE(playerPlaySpy.count(), 0);
5249     QCOMPARE(playerPauseSpy.count(), 0);
5250     QCOMPARE(playerStopSpy.count(), 0);
5251     QCOMPARE(skipNextTrackSpy.count(), 0);
5252     QCOMPARE(seekSpy.count(), 0);
5253     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5254 
5255     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
5256     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
5257 
5258     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
5259 
5260     QCOMPARE(currentTrackChangedSpy.count(), 1);
5261     QCOMPARE(playListModelChangedSpy.count(), 1);
5262     QCOMPARE(playerSourceChangedSpy.count(), 2);
5263     QCOMPARE(urlRoleChangedSpy.count(), 1);
5264     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5265     QCOMPARE(playerStatusChangedSpy.count(), 0);
5266     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5267     QCOMPARE(playerErrorChangedSpy.count(), 0);
5268     QCOMPARE(persistentStateChangedSpy.count(), 0);
5269     QCOMPARE(playerPlaySpy.count(), 0);
5270     QCOMPARE(playerPauseSpy.count(), 0);
5271     QCOMPARE(playerStopSpy.count(), 0);
5272     QCOMPARE(skipNextTrackSpy.count(), 0);
5273     QCOMPARE(seekSpy.count(), 0);
5274     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5275 
5276     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
5277 
5278     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
5279 
5280     QCOMPARE(currentTrackChangedSpy.count(), 1);
5281     QCOMPARE(playListModelChangedSpy.count(), 1);
5282     QCOMPARE(playerSourceChangedSpy.count(), 2);
5283     QCOMPARE(urlRoleChangedSpy.count(), 1);
5284     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5285     QCOMPARE(playerStatusChangedSpy.count(), 1);
5286     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5287     QCOMPARE(playerErrorChangedSpy.count(), 0);
5288     QCOMPARE(persistentStateChangedSpy.count(), 0);
5289     QCOMPARE(playerPlaySpy.count(), 0);
5290     QCOMPARE(playerPauseSpy.count(), 0);
5291     QCOMPARE(playerStopSpy.count(), 0);
5292     QCOMPARE(skipNextTrackSpy.count(), 0);
5293     QCOMPARE(seekSpy.count(), 0);
5294     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5295 
5296     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
5297 
5298     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
5299 
5300     QCOMPARE(currentTrackChangedSpy.count(), 1);
5301     QCOMPARE(playListModelChangedSpy.count(), 1);
5302     QCOMPARE(playerSourceChangedSpy.count(), 2);
5303     QCOMPARE(urlRoleChangedSpy.count(), 1);
5304     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5305     QCOMPARE(playerStatusChangedSpy.count(), 1);
5306     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5307     QCOMPARE(playerErrorChangedSpy.count(), 0);
5308     QCOMPARE(persistentStateChangedSpy.count(), 0);
5309     QCOMPARE(playerPlaySpy.count(), 0);
5310     QCOMPARE(playerPauseSpy.count(), 0);
5311     QCOMPARE(playerStopSpy.count(), 0);
5312     QCOMPARE(skipNextTrackSpy.count(), 0);
5313     QCOMPARE(seekSpy.count(), 0);
5314     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5315 
5316     myPlayer.setPlayerError(QMediaPlayer::NoError);
5317 
5318     QCOMPARE(currentTrackChangedSpy.count(), 1);
5319     QCOMPARE(playListModelChangedSpy.count(), 1);
5320     QCOMPARE(playerSourceChangedSpy.count(), 2);
5321     QCOMPARE(urlRoleChangedSpy.count(), 1);
5322     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5323     QCOMPARE(playerStatusChangedSpy.count(), 1);
5324     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5325     QCOMPARE(playerErrorChangedSpy.count(), 0);
5326     QCOMPARE(persistentStateChangedSpy.count(), 0);
5327     QCOMPARE(playerPlaySpy.count(), 0);
5328     QCOMPARE(playerPauseSpy.count(), 0);
5329     QCOMPARE(playerStopSpy.count(), 0);
5330     QCOMPARE(skipNextTrackSpy.count(), 0);
5331     QCOMPARE(seekSpy.count(), 0);
5332     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5333 
5334     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
5335 
5336     QCOMPARE(currentTrackChangedSpy.count(), 1);
5337     QCOMPARE(playListModelChangedSpy.count(), 1);
5338     QCOMPARE(playerSourceChangedSpy.count(), 2);
5339     QCOMPARE(urlRoleChangedSpy.count(), 1);
5340     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5341     QCOMPARE(playerStatusChangedSpy.count(), 2);
5342     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5343     QCOMPARE(playerErrorChangedSpy.count(), 0);
5344     QCOMPARE(persistentStateChangedSpy.count(), 0);
5345     QCOMPARE(playerPlaySpy.count(), 0);
5346     QCOMPARE(playerPauseSpy.count(), 0);
5347     QCOMPARE(playerStopSpy.count(), 0);
5348     QCOMPARE(skipNextTrackSpy.count(), 0);
5349     QCOMPARE(seekSpy.count(), 0);
5350     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5351 
5352     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
5353 
5354     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
5355 
5356     QCOMPARE(currentTrackChangedSpy.count(), 1);
5357     QCOMPARE(playListModelChangedSpy.count(), 1);
5358     QCOMPARE(playerSourceChangedSpy.count(), 2);
5359     QCOMPARE(urlRoleChangedSpy.count(), 1);
5360     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5361     QCOMPARE(playerStatusChangedSpy.count(), 3);
5362     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5363     QCOMPARE(playerErrorChangedSpy.count(), 0);
5364     QCOMPARE(persistentStateChangedSpy.count(), 0);
5365     QCOMPARE(playerPlaySpy.count(), 0);
5366     QCOMPARE(playerPauseSpy.count(), 0);
5367     QCOMPARE(playerStopSpy.count(), 0);
5368     QCOMPARE(skipNextTrackSpy.count(), 0);
5369     QCOMPARE(seekSpy.count(), 0);
5370     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5371 
5372     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
5373 
5374     myPlayer.playPause();
5375 
5376     QCOMPARE(currentTrackChangedSpy.count(), 1);
5377     QCOMPARE(playListModelChangedSpy.count(), 1);
5378     QCOMPARE(playerSourceChangedSpy.count(), 2);
5379     QCOMPARE(urlRoleChangedSpy.count(), 1);
5380     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5381     QCOMPARE(playerStatusChangedSpy.count(), 3);
5382     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5383     QCOMPARE(playerErrorChangedSpy.count(), 0);
5384     QCOMPARE(persistentStateChangedSpy.count(), 0);
5385     QCOMPARE(playerPlaySpy.count(), 0);
5386     QCOMPARE(playerPauseSpy.count(), 0);
5387     QCOMPARE(playerStopSpy.count(), 0);
5388     QCOMPARE(skipNextTrackSpy.count(), 0);
5389     QCOMPARE(seekSpy.count(), 0);
5390     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5391 
5392     QCOMPARE(playerPlaySpy.wait(), true);
5393 
5394     QCOMPARE(currentTrackChangedSpy.count(), 1);
5395     QCOMPARE(playListModelChangedSpy.count(), 1);
5396     QCOMPARE(playerSourceChangedSpy.count(), 2);
5397     QCOMPARE(urlRoleChangedSpy.count(), 1);
5398     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5399     QCOMPARE(playerStatusChangedSpy.count(), 3);
5400     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5401     QCOMPARE(playerErrorChangedSpy.count(), 0);
5402     QCOMPARE(persistentStateChangedSpy.count(), 0);
5403     QCOMPARE(playerPlaySpy.count(), 1);
5404     QCOMPARE(playerPauseSpy.count(), 0);
5405     QCOMPARE(playerStopSpy.count(), 0);
5406     QCOMPARE(skipNextTrackSpy.count(), 0);
5407     QCOMPARE(seekSpy.count(), 0);
5408     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5409 
5410     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
5411 
5412     QCOMPARE(currentTrackChangedSpy.count(), 1);
5413     QCOMPARE(playListModelChangedSpy.count(), 1);
5414     QCOMPARE(playerSourceChangedSpy.count(), 2);
5415     QCOMPARE(urlRoleChangedSpy.count(), 1);
5416     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5417     QCOMPARE(playerStatusChangedSpy.count(), 3);
5418     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
5419     QCOMPARE(playerErrorChangedSpy.count(), 0);
5420     QCOMPARE(persistentStateChangedSpy.count(), 0);
5421     QCOMPARE(playerPlaySpy.count(), 1);
5422     QCOMPARE(playerPauseSpy.count(), 0);
5423     QCOMPARE(playerStopSpy.count(), 0);
5424     QCOMPARE(skipNextTrackSpy.count(), 0);
5425     QCOMPARE(seekSpy.count(), 0);
5426     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
5427 
5428     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
5429 
5430     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
5431 
5432     QCOMPARE(currentTrackChangedSpy.count(), 1);
5433     QCOMPARE(playListModelChangedSpy.count(), 1);
5434     QCOMPARE(playerSourceChangedSpy.count(), 2);
5435     QCOMPARE(urlRoleChangedSpy.count(), 1);
5436     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5437     QCOMPARE(playerStatusChangedSpy.count(), 4);
5438     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
5439     QCOMPARE(playerErrorChangedSpy.count(), 0);
5440     QCOMPARE(persistentStateChangedSpy.count(), 0);
5441     QCOMPARE(playerPlaySpy.count(), 1);
5442     QCOMPARE(playerPauseSpy.count(), 0);
5443     QCOMPARE(playerStopSpy.count(), 0);
5444     QCOMPARE(skipNextTrackSpy.count(), 0);
5445     QCOMPARE(seekSpy.count(), 0);
5446     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
5447 
5448     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
5449 
5450     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
5451 
5452     QCOMPARE(currentTrackChangedSpy.count(), 1);
5453     QCOMPARE(playListModelChangedSpy.count(), 1);
5454     QCOMPARE(playerSourceChangedSpy.count(), 2);
5455     QCOMPARE(urlRoleChangedSpy.count(), 1);
5456     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5457     QCOMPARE(playerStatusChangedSpy.count(), 4);
5458     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5459     QCOMPARE(playerErrorChangedSpy.count(), 0);
5460     QCOMPARE(persistentStateChangedSpy.count(), 0);
5461     QCOMPARE(playerPlaySpy.count(), 1);
5462     QCOMPARE(playerPauseSpy.count(), 0);
5463     QCOMPARE(playerStopSpy.count(), 0);
5464     QCOMPARE(skipNextTrackSpy.count(), 0);
5465     QCOMPARE(seekSpy.count(), 0);
5466     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5467 
5468     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
5469 
5470     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
5471 
5472     QCOMPARE(currentTrackChangedSpy.count(), 1);
5473     QCOMPARE(playListModelChangedSpy.count(), 1);
5474     QCOMPARE(playerSourceChangedSpy.count(), 2);
5475     QCOMPARE(urlRoleChangedSpy.count(), 1);
5476     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5477     QCOMPARE(playerStatusChangedSpy.count(), 5);
5478     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5479     QCOMPARE(playerErrorChangedSpy.count(), 0);
5480     QCOMPARE(persistentStateChangedSpy.count(), 0);
5481     QCOMPARE(playerPlaySpy.count(), 1);
5482     QCOMPARE(playerPauseSpy.count(), 0);
5483     QCOMPARE(playerStopSpy.count(), 0);
5484     QCOMPARE(skipNextTrackSpy.count(), 0);
5485     QCOMPARE(seekSpy.count(), 0);
5486     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5487 
5488     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
5489 
5490     QCOMPARE(skipNextTrackSpy.wait(100), true);
5491 
5492     QCOMPARE(currentTrackChangedSpy.count(), 1);
5493     QCOMPARE(playListModelChangedSpy.count(), 1);
5494     QCOMPARE(playerSourceChangedSpy.count(), 2);
5495     QCOMPARE(urlRoleChangedSpy.count(), 1);
5496     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5497     QCOMPARE(playerStatusChangedSpy.count(), 5);
5498     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5499     QCOMPARE(playerErrorChangedSpy.count(), 0);
5500     QCOMPARE(persistentStateChangedSpy.count(), 0);
5501     QCOMPARE(playerPlaySpy.count(), 1);
5502     QCOMPARE(playerPauseSpy.count(), 0);
5503     QCOMPARE(playerStopSpy.count(), 0);
5504     QCOMPARE(skipNextTrackSpy.count(), 1);
5505     QCOMPARE(seekSpy.count(), 0);
5506     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5507 
5508     myPlayer.playListFinished();
5509 
5510     QCOMPARE(currentTrackChangedSpy.count(), 1);
5511     QCOMPARE(playListModelChangedSpy.count(), 1);
5512     QCOMPARE(playerSourceChangedSpy.count(), 2);
5513     QCOMPARE(urlRoleChangedSpy.count(), 1);
5514     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5515     QCOMPARE(playerStatusChangedSpy.count(), 5);
5516     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5517     QCOMPARE(playerErrorChangedSpy.count(), 0);
5518     QCOMPARE(persistentStateChangedSpy.count(), 0);
5519     QCOMPARE(playerPlaySpy.count(), 1);
5520     QCOMPARE(playerPauseSpy.count(), 0);
5521     QCOMPARE(playerStopSpy.count(), 0);
5522     QCOMPARE(skipNextTrackSpy.count(), 1);
5523     QCOMPARE(seekSpy.count(), 0);
5524     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5525 
5526     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
5527 
5528     QCOMPARE(currentTrackChangedSpy.count(), 1);
5529     QCOMPARE(playListModelChangedSpy.count(), 1);
5530     QCOMPARE(playerSourceChangedSpy.count(), 3);
5531     QCOMPARE(urlRoleChangedSpy.count(), 1);
5532     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5533     QCOMPARE(playerStatusChangedSpy.count(), 5);
5534     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5535     QCOMPARE(playerErrorChangedSpy.count(), 0);
5536     QCOMPARE(persistentStateChangedSpy.count(), 0);
5537     QCOMPARE(playerPlaySpy.count(), 1);
5538     QCOMPARE(playerPauseSpy.count(), 0);
5539     QCOMPARE(playerStopSpy.count(), 0);
5540     QCOMPARE(skipNextTrackSpy.count(), 1);
5541     QCOMPARE(seekSpy.count(), 0);
5542     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5543 
5544     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
5545 
5546     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
5547 
5548     QCOMPARE(currentTrackChangedSpy.count(), 1);
5549     QCOMPARE(playListModelChangedSpy.count(), 1);
5550     QCOMPARE(playerSourceChangedSpy.count(), 3);
5551     QCOMPARE(urlRoleChangedSpy.count(), 1);
5552     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5553     QCOMPARE(playerStatusChangedSpy.count(), 6);
5554     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5555     QCOMPARE(playerErrorChangedSpy.count(), 0);
5556     QCOMPARE(persistentStateChangedSpy.count(), 0);
5557     QCOMPARE(playerPlaySpy.count(), 1);
5558     QCOMPARE(playerPauseSpy.count(), 0);
5559     QCOMPARE(playerStopSpy.count(), 0);
5560     QCOMPARE(skipNextTrackSpy.count(), 1);
5561     QCOMPARE(seekSpy.count(), 0);
5562     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5563 
5564     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
5565 
5566     QCOMPARE(playerPlaySpy.wait(100), false);
5567 
5568     QCOMPARE(currentTrackChangedSpy.count(), 1);
5569     QCOMPARE(playListModelChangedSpy.count(), 1);
5570     QCOMPARE(playerSourceChangedSpy.count(), 3);
5571     QCOMPARE(urlRoleChangedSpy.count(), 1);
5572     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5573     QCOMPARE(playerStatusChangedSpy.count(), 6);
5574     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
5575     QCOMPARE(playerErrorChangedSpy.count(), 0);
5576     QCOMPARE(persistentStateChangedSpy.count(), 0);
5577     QCOMPARE(playerPlaySpy.count(), 1);
5578     QCOMPARE(playerPauseSpy.count(), 0);
5579     QCOMPARE(playerStopSpy.count(), 0);
5580     QCOMPARE(skipNextTrackSpy.count(), 1);
5581     QCOMPARE(seekSpy.count(), 0);
5582     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5583 }
5584 
5585 void ManageAudioPlayerTest::playRestoredTrack()
5586 {
5587     Elisa::ElisaConfiguration::self()->setDefaults();
5588     ManageAudioPlayer myPlayer;
5589     QStandardItemModel myPlayList;
5590 
5591     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
5592     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
5593     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
5594     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
5595     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
5596     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
5597     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
5598     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
5599     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
5600     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
5601     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
5602     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
5603     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
5604     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
5605 
5606     myPlayList.appendRow(new QStandardItem);
5607     myPlayList.appendRow(new QStandardItem);
5608     myPlayList.appendRow(new QStandardItem);
5609 
5610     QCOMPARE(currentTrackChangedSpy.count(), 0);
5611     QCOMPARE(playListModelChangedSpy.count(), 0);
5612     QCOMPARE(playerSourceChangedSpy.count(), 0);
5613     QCOMPARE(urlRoleChangedSpy.count(), 0);
5614     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5615     QCOMPARE(playerStatusChangedSpy.count(), 0);
5616     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5617     QCOMPARE(playerErrorChangedSpy.count(), 0);
5618     QCOMPARE(persistentStateChangedSpy.count(), 0);
5619     QCOMPARE(playerPlaySpy.count(), 0);
5620     QCOMPARE(playerPauseSpy.count(), 0);
5621     QCOMPARE(playerStopSpy.count(), 0);
5622     QCOMPARE(skipNextTrackSpy.count(), 0);
5623     QCOMPARE(seekSpy.count(), 0);
5624     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5625     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5626     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5627 
5628     myPlayer.setPlayListModel(&myPlayList);
5629 
5630     QCOMPARE(currentTrackChangedSpy.count(), 0);
5631     QCOMPARE(playListModelChangedSpy.count(), 1);
5632     QCOMPARE(playerSourceChangedSpy.count(), 0);
5633     QCOMPARE(urlRoleChangedSpy.count(), 0);
5634     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5635     QCOMPARE(playerStatusChangedSpy.count(), 0);
5636     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5637     QCOMPARE(playerErrorChangedSpy.count(), 0);
5638     QCOMPARE(persistentStateChangedSpy.count(), 0);
5639     QCOMPARE(playerPlaySpy.count(), 0);
5640     QCOMPARE(playerPauseSpy.count(), 0);
5641     QCOMPARE(playerStopSpy.count(), 0);
5642     QCOMPARE(skipNextTrackSpy.count(), 0);
5643     QCOMPARE(seekSpy.count(), 0);
5644     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5645     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5646     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5647 
5648     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
5649 
5650     QCOMPARE(currentTrackChangedSpy.count(), 0);
5651     QCOMPARE(playListModelChangedSpy.count(), 1);
5652     QCOMPARE(playerSourceChangedSpy.count(), 0);
5653     QCOMPARE(urlRoleChangedSpy.count(), 1);
5654     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5655     QCOMPARE(playerStatusChangedSpy.count(), 0);
5656     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5657     QCOMPARE(playerErrorChangedSpy.count(), 0);
5658     QCOMPARE(persistentStateChangedSpy.count(), 0);
5659     QCOMPARE(playerPlaySpy.count(), 0);
5660     QCOMPARE(playerPauseSpy.count(), 0);
5661     QCOMPARE(playerStopSpy.count(), 0);
5662     QCOMPARE(skipNextTrackSpy.count(), 0);
5663     QCOMPARE(seekSpy.count(), 0);
5664     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5665     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5666     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5667 
5668     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
5669 
5670     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
5671 
5672     QCOMPARE(currentTrackChangedSpy.count(), 0);
5673     QCOMPARE(playListModelChangedSpy.count(), 1);
5674     QCOMPARE(playerSourceChangedSpy.count(), 0);
5675     QCOMPARE(urlRoleChangedSpy.count(), 1);
5676     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5677     QCOMPARE(playerStatusChangedSpy.count(), 0);
5678     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5679     QCOMPARE(playerErrorChangedSpy.count(), 0);
5680     QCOMPARE(persistentStateChangedSpy.count(), 0);
5681     QCOMPARE(playerPlaySpy.count(), 0);
5682     QCOMPARE(playerPauseSpy.count(), 0);
5683     QCOMPARE(playerStopSpy.count(), 0);
5684     QCOMPARE(skipNextTrackSpy.count(), 0);
5685     QCOMPARE(seekSpy.count(), 0);
5686     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5687     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5688     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5689 
5690     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
5691 
5692     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
5693 
5694     QCOMPARE(currentTrackChangedSpy.count(), 1);
5695     QCOMPARE(playListModelChangedSpy.count(), 1);
5696     QCOMPARE(playerSourceChangedSpy.count(), 1);
5697     QCOMPARE(urlRoleChangedSpy.count(), 1);
5698     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5699     QCOMPARE(playerStatusChangedSpy.count(), 0);
5700     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5701     QCOMPARE(playerErrorChangedSpy.count(), 0);
5702     QCOMPARE(persistentStateChangedSpy.count(), 0);
5703     QCOMPARE(playerPlaySpy.count(), 0);
5704     QCOMPARE(playerPauseSpy.count(), 0);
5705     QCOMPARE(playerStopSpy.count(), 0);
5706     QCOMPARE(skipNextTrackSpy.count(), 0);
5707     QCOMPARE(seekSpy.count(), 0);
5708     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5709     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5710     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5711 
5712     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
5713 
5714     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
5715     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
5716     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
5717 
5718     QCOMPARE(currentTrackChangedSpy.count(), 1);
5719     QCOMPARE(playListModelChangedSpy.count(), 1);
5720     QCOMPARE(playerSourceChangedSpy.count(), 2);
5721     QCOMPARE(urlRoleChangedSpy.count(), 1);
5722     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5723     QCOMPARE(playerStatusChangedSpy.count(), 0);
5724     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5725     QCOMPARE(playerErrorChangedSpy.count(), 0);
5726     QCOMPARE(persistentStateChangedSpy.count(), 0);
5727     QCOMPARE(playerPlaySpy.count(), 0);
5728     QCOMPARE(playerPauseSpy.count(), 0);
5729     QCOMPARE(playerStopSpy.count(), 0);
5730     QCOMPARE(skipNextTrackSpy.count(), 0);
5731     QCOMPARE(seekSpy.count(), 0);
5732     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5733     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5734     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5735 
5736     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
5737 
5738     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
5739 
5740     QCOMPARE(currentTrackChangedSpy.count(), 1);
5741     QCOMPARE(playListModelChangedSpy.count(), 1);
5742     QCOMPARE(playerSourceChangedSpy.count(), 2);
5743     QCOMPARE(urlRoleChangedSpy.count(), 1);
5744     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5745     QCOMPARE(playerStatusChangedSpy.count(), 1);
5746     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5747     QCOMPARE(playerErrorChangedSpy.count(), 0);
5748     QCOMPARE(persistentStateChangedSpy.count(), 0);
5749     QCOMPARE(playerPlaySpy.count(), 0);
5750     QCOMPARE(playerPauseSpy.count(), 0);
5751     QCOMPARE(playerStopSpy.count(), 0);
5752     QCOMPARE(skipNextTrackSpy.count(), 0);
5753     QCOMPARE(seekSpy.count(), 0);
5754     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5755     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5756     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5757 
5758     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
5759 
5760     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
5761 
5762     QCOMPARE(currentTrackChangedSpy.count(), 1);
5763     QCOMPARE(playListModelChangedSpy.count(), 1);
5764     QCOMPARE(playerSourceChangedSpy.count(), 2);
5765     QCOMPARE(urlRoleChangedSpy.count(), 1);
5766     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5767     QCOMPARE(playerStatusChangedSpy.count(), 1);
5768     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5769     QCOMPARE(playerErrorChangedSpy.count(), 0);
5770     QCOMPARE(persistentStateChangedSpy.count(), 0);
5771     QCOMPARE(playerPlaySpy.count(), 0);
5772     QCOMPARE(playerPauseSpy.count(), 0);
5773     QCOMPARE(playerStopSpy.count(), 0);
5774     QCOMPARE(skipNextTrackSpy.count(), 0);
5775     QCOMPARE(seekSpy.count(), 0);
5776     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5777     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5778     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5779 
5780     myPlayer.setPlayerError(QMediaPlayer::NoError);
5781 
5782     QCOMPARE(currentTrackChangedSpy.count(), 1);
5783     QCOMPARE(playListModelChangedSpy.count(), 1);
5784     QCOMPARE(playerSourceChangedSpy.count(), 2);
5785     QCOMPARE(urlRoleChangedSpy.count(), 1);
5786     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5787     QCOMPARE(playerStatusChangedSpy.count(), 1);
5788     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5789     QCOMPARE(playerErrorChangedSpy.count(), 0);
5790     QCOMPARE(persistentStateChangedSpy.count(), 0);
5791     QCOMPARE(playerPlaySpy.count(), 0);
5792     QCOMPARE(playerPauseSpy.count(), 0);
5793     QCOMPARE(playerStopSpy.count(), 0);
5794     QCOMPARE(skipNextTrackSpy.count(), 0);
5795     QCOMPARE(seekSpy.count(), 0);
5796     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5797     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5798     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5799 
5800     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
5801 
5802     QCOMPARE(currentTrackChangedSpy.count(), 1);
5803     QCOMPARE(playListModelChangedSpy.count(), 1);
5804     QCOMPARE(playerSourceChangedSpy.count(), 2);
5805     QCOMPARE(urlRoleChangedSpy.count(), 1);
5806     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5807     QCOMPARE(playerStatusChangedSpy.count(), 2);
5808     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5809     QCOMPARE(playerErrorChangedSpy.count(), 0);
5810     QCOMPARE(persistentStateChangedSpy.count(), 0);
5811     QCOMPARE(playerPlaySpy.count(), 0);
5812     QCOMPARE(playerPauseSpy.count(), 0);
5813     QCOMPARE(playerStopSpy.count(), 0);
5814     QCOMPARE(skipNextTrackSpy.count(), 0);
5815     QCOMPARE(seekSpy.count(), 0);
5816     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5817     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5818     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5819 
5820     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
5821 
5822     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
5823 
5824     QCOMPARE(currentTrackChangedSpy.count(), 1);
5825     QCOMPARE(playListModelChangedSpy.count(), 1);
5826     QCOMPARE(playerSourceChangedSpy.count(), 2);
5827     QCOMPARE(urlRoleChangedSpy.count(), 1);
5828     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5829     QCOMPARE(playerStatusChangedSpy.count(), 3);
5830     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5831     QCOMPARE(playerErrorChangedSpy.count(), 0);
5832     QCOMPARE(persistentStateChangedSpy.count(), 0);
5833     QCOMPARE(playerPlaySpy.count(), 0);
5834     QCOMPARE(playerPauseSpy.count(), 0);
5835     QCOMPARE(playerStopSpy.count(), 0);
5836     QCOMPARE(skipNextTrackSpy.count(), 0);
5837     QCOMPARE(seekSpy.count(), 0);
5838     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5839     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5840     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5841 
5842     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
5843 
5844     myPlayer.playPause();
5845 
5846     QCOMPARE(currentTrackChangedSpy.count(), 1);
5847     QCOMPARE(playListModelChangedSpy.count(), 1);
5848     QCOMPARE(playerSourceChangedSpy.count(), 2);
5849     QCOMPARE(urlRoleChangedSpy.count(), 1);
5850     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5851     QCOMPARE(playerStatusChangedSpy.count(), 3);
5852     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5853     QCOMPARE(playerErrorChangedSpy.count(), 0);
5854     QCOMPARE(persistentStateChangedSpy.count(), 0);
5855     QCOMPARE(playerPlaySpy.count(), 0);
5856     QCOMPARE(playerPauseSpy.count(), 0);
5857     QCOMPARE(playerStopSpy.count(), 0);
5858     QCOMPARE(skipNextTrackSpy.count(), 0);
5859     QCOMPARE(seekSpy.count(), 0);
5860     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5861     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5862     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5863 
5864     QCOMPARE(playerPlaySpy.wait(), true);
5865 
5866     QCOMPARE(currentTrackChangedSpy.count(), 1);
5867     QCOMPARE(playListModelChangedSpy.count(), 1);
5868     QCOMPARE(playerSourceChangedSpy.count(), 2);
5869     QCOMPARE(urlRoleChangedSpy.count(), 1);
5870     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
5871     QCOMPARE(playerStatusChangedSpy.count(), 3);
5872     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5873     QCOMPARE(playerErrorChangedSpy.count(), 0);
5874     QCOMPARE(persistentStateChangedSpy.count(), 0);
5875     QCOMPARE(playerPlaySpy.count(), 1);
5876     QCOMPARE(playerPauseSpy.count(), 0);
5877     QCOMPARE(playerStopSpy.count(), 0);
5878     QCOMPARE(skipNextTrackSpy.count(), 0);
5879     QCOMPARE(seekSpy.count(), 0);
5880     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5881     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5882     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5883 }
5884 
5885 void ManageAudioPlayerTest::testRestoreSettingsAutomaticPlay()
5886 {
5887     Elisa::ElisaConfiguration::self()->setDefaults();
5888     Elisa::ElisaConfiguration::self()->setPlayAtStartup(true);
5889     ManageAudioPlayer myPlayer;
5890     QStandardItemModel myPlayList;
5891 
5892     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
5893     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
5894     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
5895     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
5896     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
5897     QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged);
5898     QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged);
5899     QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged);
5900     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
5901     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
5902     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
5903     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
5904     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
5905     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
5906     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
5907     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
5908     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
5909 
5910     myPlayList.appendRow(new QStandardItem);
5911     myPlayList.appendRow(new QStandardItem);
5912     myPlayList.appendRow(new QStandardItem);
5913 
5914     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
5915     myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole);
5916     myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole);
5917     myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole);
5918     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
5919     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
5920 
5921     QCOMPARE(currentTrackChangedSpy.count(), 0);
5922     QCOMPARE(playListModelChangedSpy.count(), 0);
5923     QCOMPARE(playerSourceChangedSpy.count(), 0);
5924     QCOMPARE(urlRoleChangedSpy.count(), 0);
5925     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5926     QCOMPARE(titleRoleChangedSpy.count(), 0);
5927     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
5928     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
5929     QCOMPARE(playerStatusChangedSpy.count(), 0);
5930     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5931     QCOMPARE(playerErrorChangedSpy.count(), 0);
5932     QCOMPARE(persistentStateChangedSpy.count(), 0);
5933     QCOMPARE(playerPlaySpy.count(), 0);
5934     QCOMPARE(playerPauseSpy.count(), 0);
5935     QCOMPARE(playerStopSpy.count(), 0);
5936     QCOMPARE(skipNextTrackSpy.count(), 0);
5937     QCOMPARE(seekSpy.count(), 0);
5938     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5939     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5940     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5941 
5942     myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole);
5943 
5944     QCOMPARE(currentTrackChangedSpy.count(), 0);
5945     QCOMPARE(playListModelChangedSpy.count(), 0);
5946     QCOMPARE(playerSourceChangedSpy.count(), 0);
5947     QCOMPARE(urlRoleChangedSpy.count(), 0);
5948     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5949     QCOMPARE(titleRoleChangedSpy.count(), 1);
5950     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
5951     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
5952     QCOMPARE(playerStatusChangedSpy.count(), 0);
5953     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5954     QCOMPARE(playerErrorChangedSpy.count(), 0);
5955     QCOMPARE(persistentStateChangedSpy.count(), 0);
5956     QCOMPARE(playerPlaySpy.count(), 0);
5957     QCOMPARE(playerPauseSpy.count(), 0);
5958     QCOMPARE(playerStopSpy.count(), 0);
5959     QCOMPARE(skipNextTrackSpy.count(), 0);
5960     QCOMPARE(seekSpy.count(), 0);
5961     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5962     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5963     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5964 
5965     QCOMPARE(myPlayer.titleRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole));
5966 
5967     myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole);
5968 
5969     QCOMPARE(currentTrackChangedSpy.count(), 0);
5970     QCOMPARE(playListModelChangedSpy.count(), 0);
5971     QCOMPARE(playerSourceChangedSpy.count(), 0);
5972     QCOMPARE(urlRoleChangedSpy.count(), 0);
5973     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5974     QCOMPARE(titleRoleChangedSpy.count(), 1);
5975     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
5976     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
5977     QCOMPARE(playerStatusChangedSpy.count(), 0);
5978     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
5979     QCOMPARE(playerErrorChangedSpy.count(), 0);
5980     QCOMPARE(persistentStateChangedSpy.count(), 0);
5981     QCOMPARE(playerPlaySpy.count(), 0);
5982     QCOMPARE(playerPauseSpy.count(), 0);
5983     QCOMPARE(playerStopSpy.count(), 0);
5984     QCOMPARE(skipNextTrackSpy.count(), 0);
5985     QCOMPARE(seekSpy.count(), 0);
5986     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5987     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5988     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
5989 
5990     QCOMPARE(myPlayer.artistNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole));
5991 
5992     myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole);
5993 
5994     QCOMPARE(currentTrackChangedSpy.count(), 0);
5995     QCOMPARE(playListModelChangedSpy.count(), 0);
5996     QCOMPARE(playerSourceChangedSpy.count(), 0);
5997     QCOMPARE(urlRoleChangedSpy.count(), 0);
5998     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
5999     QCOMPARE(titleRoleChangedSpy.count(), 1);
6000     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6001     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6002     QCOMPARE(playerStatusChangedSpy.count(), 0);
6003     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6004     QCOMPARE(playerErrorChangedSpy.count(), 0);
6005     QCOMPARE(persistentStateChangedSpy.count(), 0);
6006     QCOMPARE(playerPlaySpy.count(), 0);
6007     QCOMPARE(playerPauseSpy.count(), 0);
6008     QCOMPARE(playerStopSpy.count(), 0);
6009     QCOMPARE(skipNextTrackSpy.count(), 0);
6010     QCOMPARE(seekSpy.count(), 0);
6011     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6012     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6013     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6014 
6015     QCOMPARE(myPlayer.albumNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole));
6016 
6017     QCOMPARE(currentTrackChangedSpy.count(), 0);
6018     QCOMPARE(playListModelChangedSpy.count(), 0);
6019     QCOMPARE(playerSourceChangedSpy.count(), 0);
6020     QCOMPARE(urlRoleChangedSpy.count(), 0);
6021     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6022     QCOMPARE(titleRoleChangedSpy.count(), 1);
6023     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6024     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6025     QCOMPARE(playerStatusChangedSpy.count(), 0);
6026     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6027     QCOMPARE(playerErrorChangedSpy.count(), 0);
6028     QCOMPARE(persistentStateChangedSpy.count(), 0);
6029     QCOMPARE(playerPlaySpy.count(), 0);
6030     QCOMPARE(playerPauseSpy.count(), 0);
6031     QCOMPARE(playerStopSpy.count(), 0);
6032     QCOMPARE(skipNextTrackSpy.count(), 0);
6033     QCOMPARE(seekSpy.count(), 0);
6034     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6035     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6036     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6037 
6038     myPlayer.setPlayListModel(&myPlayList);
6039 
6040     QCOMPARE(currentTrackChangedSpy.count(), 0);
6041     QCOMPARE(playListModelChangedSpy.count(), 1);
6042     QCOMPARE(playerSourceChangedSpy.count(), 0);
6043     QCOMPARE(urlRoleChangedSpy.count(), 0);
6044     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6045     QCOMPARE(titleRoleChangedSpy.count(), 1);
6046     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6047     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6048     QCOMPARE(playerStatusChangedSpy.count(), 0);
6049     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6050     QCOMPARE(playerErrorChangedSpy.count(), 0);
6051     QCOMPARE(persistentStateChangedSpy.count(), 0);
6052     QCOMPARE(playerPlaySpy.count(), 0);
6053     QCOMPARE(playerPauseSpy.count(), 0);
6054     QCOMPARE(playerStopSpy.count(), 0);
6055     QCOMPARE(skipNextTrackSpy.count(), 0);
6056     QCOMPARE(seekSpy.count(), 0);
6057     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6058     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6059     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6060 
6061     QVariantMap settings;
6062     settings[QStringLiteral("isPlaying")] = true;
6063     settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title");
6064     settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist");
6065     settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album");
6066 
6067     myPlayer.setPersistentState(settings);
6068 
6069     QCOMPARE(currentTrackChangedSpy.count(), 0);
6070     QCOMPARE(playListModelChangedSpy.count(), 1);
6071     QCOMPARE(playerSourceChangedSpy.count(), 0);
6072     QCOMPARE(urlRoleChangedSpy.count(), 0);
6073     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6074     QCOMPARE(titleRoleChangedSpy.count(), 1);
6075     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6076     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6077     QCOMPARE(playerStatusChangedSpy.count(), 0);
6078     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6079     QCOMPARE(playerErrorChangedSpy.count(), 0);
6080     QCOMPARE(persistentStateChangedSpy.count(), 1);
6081     QCOMPARE(playerPlaySpy.count(), 0);
6082     QCOMPARE(playerPauseSpy.count(), 0);
6083     QCOMPARE(playerStopSpy.count(), 0);
6084     QCOMPARE(skipNextTrackSpy.count(), 0);
6085     QCOMPARE(seekSpy.count(), 0);
6086     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6087     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6088     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6089 
6090     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
6091 
6092     QCOMPARE(currentTrackChangedSpy.count(), 1);
6093     QCOMPARE(playListModelChangedSpy.count(), 1);
6094     QCOMPARE(playerSourceChangedSpy.count(), 1);
6095     QCOMPARE(urlRoleChangedSpy.count(), 0);
6096     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6097     QCOMPARE(titleRoleChangedSpy.count(), 1);
6098     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6099     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6100     QCOMPARE(playerStatusChangedSpy.count(), 0);
6101     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6102     QCOMPARE(playerErrorChangedSpy.count(), 0);
6103     QCOMPARE(persistentStateChangedSpy.count(), 1);
6104     QCOMPARE(playerPlaySpy.count(), 0);
6105     QCOMPARE(playerPauseSpy.count(), 0);
6106     QCOMPARE(playerStopSpy.count(), 0);
6107     QCOMPARE(skipNextTrackSpy.count(), 0);
6108     QCOMPARE(seekSpy.count(), 0);
6109     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6110     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6111     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6112 
6113     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
6114 
6115     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
6116 
6117     QCOMPARE(currentTrackChangedSpy.count(), 1);
6118     QCOMPARE(playListModelChangedSpy.count(), 1);
6119     QCOMPARE(playerSourceChangedSpy.count(), 2);
6120     QCOMPARE(urlRoleChangedSpy.count(), 1);
6121     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6122     QCOMPARE(titleRoleChangedSpy.count(), 1);
6123     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6124     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6125     QCOMPARE(playerStatusChangedSpy.count(), 0);
6126     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6127     QCOMPARE(playerErrorChangedSpy.count(), 0);
6128     QCOMPARE(persistentStateChangedSpy.count(), 1);
6129     QCOMPARE(playerPlaySpy.count(), 0);
6130     QCOMPARE(playerPauseSpy.count(), 0);
6131     QCOMPARE(playerStopSpy.count(), 0);
6132     QCOMPARE(skipNextTrackSpy.count(), 0);
6133     QCOMPARE(seekSpy.count(), 0);
6134     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6135     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6136     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6137 
6138     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
6139     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
6140 
6141     QCOMPARE(playerPlaySpy.wait(500), false);
6142 
6143     QCOMPARE(currentTrackChangedSpy.count(), 1);
6144     QCOMPARE(playListModelChangedSpy.count(), 1);
6145     QCOMPARE(playerSourceChangedSpy.count(), 2);
6146     QCOMPARE(urlRoleChangedSpy.count(), 1);
6147     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6148     QCOMPARE(titleRoleChangedSpy.count(), 1);
6149     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6150     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6151     QCOMPARE(playerStatusChangedSpy.count(), 0);
6152     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6153     QCOMPARE(playerErrorChangedSpy.count(), 0);
6154     QCOMPARE(persistentStateChangedSpy.count(), 1);
6155     QCOMPARE(playerPlaySpy.count(), 0);
6156     QCOMPARE(playerPauseSpy.count(), 0);
6157     QCOMPARE(playerStopSpy.count(), 0);
6158     QCOMPARE(skipNextTrackSpy.count(), 0);
6159     QCOMPARE(seekSpy.count(), 0);
6160     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6161     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6162     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6163 
6164     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
6165 
6166     QCOMPARE(currentTrackChangedSpy.count(), 1);
6167     QCOMPARE(playListModelChangedSpy.count(), 1);
6168     QCOMPARE(playerSourceChangedSpy.count(), 2);
6169     QCOMPARE(urlRoleChangedSpy.count(), 1);
6170     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6171     QCOMPARE(titleRoleChangedSpy.count(), 1);
6172     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6173     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6174     QCOMPARE(playerStatusChangedSpy.count(), 0);
6175     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6176     QCOMPARE(playerErrorChangedSpy.count(), 0);
6177     QCOMPARE(persistentStateChangedSpy.count(), 1);
6178     QCOMPARE(playerPlaySpy.count(), 0);
6179     QCOMPARE(playerPauseSpy.count(), 0);
6180     QCOMPARE(playerStopSpy.count(), 0);
6181     QCOMPARE(skipNextTrackSpy.count(), 0);
6182     QCOMPARE(seekSpy.count(), 0);
6183     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6184     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6185     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6186 
6187     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
6188 
6189     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
6190 
6191     QCOMPARE(currentTrackChangedSpy.count(), 1);
6192     QCOMPARE(playListModelChangedSpy.count(), 1);
6193     QCOMPARE(playerSourceChangedSpy.count(), 2);
6194     QCOMPARE(urlRoleChangedSpy.count(), 1);
6195     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6196     QCOMPARE(titleRoleChangedSpy.count(), 1);
6197     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6198     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6199     QCOMPARE(playerStatusChangedSpy.count(), 1);
6200     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6201     QCOMPARE(playerErrorChangedSpy.count(), 0);
6202     QCOMPARE(persistentStateChangedSpy.count(), 1);
6203     QCOMPARE(playerPlaySpy.count(), 0);
6204     QCOMPARE(playerPauseSpy.count(), 0);
6205     QCOMPARE(playerStopSpy.count(), 0);
6206     QCOMPARE(skipNextTrackSpy.count(), 0);
6207     QCOMPARE(seekSpy.count(), 0);
6208     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6209     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6210     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6211 
6212     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
6213 
6214     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
6215 
6216     QCOMPARE(currentTrackChangedSpy.count(), 1);
6217     QCOMPARE(playListModelChangedSpy.count(), 1);
6218     QCOMPARE(playerSourceChangedSpy.count(), 2);
6219     QCOMPARE(urlRoleChangedSpy.count(), 1);
6220     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6221     QCOMPARE(titleRoleChangedSpy.count(), 1);
6222     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6223     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6224     QCOMPARE(playerStatusChangedSpy.count(), 1);
6225     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6226     QCOMPARE(playerErrorChangedSpy.count(), 0);
6227     QCOMPARE(persistentStateChangedSpy.count(), 1);
6228     QCOMPARE(playerPlaySpy.count(), 0);
6229     QCOMPARE(playerPauseSpy.count(), 0);
6230     QCOMPARE(playerStopSpy.count(), 0);
6231     QCOMPARE(skipNextTrackSpy.count(), 0);
6232     QCOMPARE(seekSpy.count(), 0);
6233     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6234     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6235     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6236 
6237     myPlayer.setPlayerError(QMediaPlayer::NoError);
6238 
6239     QCOMPARE(currentTrackChangedSpy.count(), 1);
6240     QCOMPARE(playListModelChangedSpy.count(), 1);
6241     QCOMPARE(playerSourceChangedSpy.count(), 2);
6242     QCOMPARE(urlRoleChangedSpy.count(), 1);
6243     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6244     QCOMPARE(titleRoleChangedSpy.count(), 1);
6245     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6246     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6247     QCOMPARE(playerStatusChangedSpy.count(), 1);
6248     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6249     QCOMPARE(playerErrorChangedSpy.count(), 0);
6250     QCOMPARE(persistentStateChangedSpy.count(), 1);
6251     QCOMPARE(playerPlaySpy.count(), 0);
6252     QCOMPARE(playerPauseSpy.count(), 0);
6253     QCOMPARE(playerStopSpy.count(), 0);
6254     QCOMPARE(skipNextTrackSpy.count(), 0);
6255     QCOMPARE(seekSpy.count(), 0);
6256     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6257     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6258     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6259 
6260     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
6261 
6262     QCOMPARE(currentTrackChangedSpy.count(), 1);
6263     QCOMPARE(playListModelChangedSpy.count(), 1);
6264     QCOMPARE(playerSourceChangedSpy.count(), 2);
6265     QCOMPARE(urlRoleChangedSpy.count(), 1);
6266     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6267     QCOMPARE(titleRoleChangedSpy.count(), 1);
6268     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6269     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6270     QCOMPARE(playerStatusChangedSpy.count(), 2);
6271     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6272     QCOMPARE(playerErrorChangedSpy.count(), 0);
6273     QCOMPARE(persistentStateChangedSpy.count(), 1);
6274     QCOMPARE(playerPlaySpy.count(), 0);
6275     QCOMPARE(playerPauseSpy.count(), 0);
6276     QCOMPARE(playerStopSpy.count(), 0);
6277     QCOMPARE(skipNextTrackSpy.count(), 0);
6278     QCOMPARE(seekSpy.count(), 0);
6279     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6280     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6281     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6282 
6283     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
6284 
6285     QCOMPARE(playerPlaySpy.wait(), true);
6286 
6287     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
6288 
6289     QCOMPARE(currentTrackChangedSpy.count(), 1);
6290     QCOMPARE(playListModelChangedSpy.count(), 1);
6291     QCOMPARE(playerSourceChangedSpy.count(), 2);
6292     QCOMPARE(urlRoleChangedSpy.count(), 1);
6293     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6294     QCOMPARE(titleRoleChangedSpy.count(), 1);
6295     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6296     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6297     QCOMPARE(playerStatusChangedSpy.count(), 3);
6298     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6299     QCOMPARE(playerErrorChangedSpy.count(), 0);
6300     QCOMPARE(persistentStateChangedSpy.count(), 1);
6301     QCOMPARE(playerPlaySpy.count(), 1);
6302     QCOMPARE(playerPauseSpy.count(), 0);
6303     QCOMPARE(playerStopSpy.count(), 0);
6304     QCOMPARE(skipNextTrackSpy.count(), 0);
6305     QCOMPARE(seekSpy.count(), 0);
6306     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6307     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6308     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6309 
6310     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
6311 
6312     QCOMPARE(currentTrackChangedSpy.count(), 1);
6313     QCOMPARE(playListModelChangedSpy.count(), 1);
6314     QCOMPARE(playerSourceChangedSpy.count(), 2);
6315     QCOMPARE(urlRoleChangedSpy.count(), 1);
6316     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6317     QCOMPARE(titleRoleChangedSpy.count(), 1);
6318     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6319     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6320     QCOMPARE(playerStatusChangedSpy.count(), 3);
6321     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6322     QCOMPARE(playerErrorChangedSpy.count(), 0);
6323     QCOMPARE(persistentStateChangedSpy.count(), 1);
6324     QCOMPARE(playerPlaySpy.count(), 1);
6325     QCOMPARE(playerPauseSpy.count(), 0);
6326     QCOMPARE(playerStopSpy.count(), 0);
6327     QCOMPARE(skipNextTrackSpy.count(), 0);
6328     QCOMPARE(seekSpy.count(), 0);
6329     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6330     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6331     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6332 
6333     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
6334 
6335     QCOMPARE(currentTrackChangedSpy.count(), 1);
6336     QCOMPARE(playListModelChangedSpy.count(), 1);
6337     QCOMPARE(playerSourceChangedSpy.count(), 2);
6338     QCOMPARE(urlRoleChangedSpy.count(), 1);
6339     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6340     QCOMPARE(titleRoleChangedSpy.count(), 1);
6341     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6342     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6343     QCOMPARE(playerStatusChangedSpy.count(), 3);
6344     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
6345     QCOMPARE(playerErrorChangedSpy.count(), 0);
6346     QCOMPARE(persistentStateChangedSpy.count(), 1);
6347     QCOMPARE(playerPlaySpy.count(), 1);
6348     QCOMPARE(playerPauseSpy.count(), 0);
6349     QCOMPARE(playerStopSpy.count(), 0);
6350     QCOMPARE(skipNextTrackSpy.count(), 0);
6351     QCOMPARE(seekSpy.count(), 0);
6352     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
6353     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6354     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6355 
6356     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
6357 
6358     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
6359 
6360     QCOMPARE(currentTrackChangedSpy.count(), 1);
6361     QCOMPARE(playListModelChangedSpy.count(), 1);
6362     QCOMPARE(playerSourceChangedSpy.count(), 2);
6363     QCOMPARE(urlRoleChangedSpy.count(), 1);
6364     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6365     QCOMPARE(titleRoleChangedSpy.count(), 1);
6366     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6367     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6368     QCOMPARE(playerStatusChangedSpy.count(), 4);
6369     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
6370     QCOMPARE(playerErrorChangedSpy.count(), 0);
6371     QCOMPARE(persistentStateChangedSpy.count(), 1);
6372     QCOMPARE(playerPlaySpy.count(), 1);
6373     QCOMPARE(playerPauseSpy.count(), 0);
6374     QCOMPARE(playerStopSpy.count(), 0);
6375     QCOMPARE(skipNextTrackSpy.count(), 0);
6376     QCOMPARE(seekSpy.count(), 0);
6377     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
6378     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6379     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6380 
6381     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
6382 
6383     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
6384 
6385     QCOMPARE(currentTrackChangedSpy.count(), 1);
6386     QCOMPARE(playListModelChangedSpy.count(), 1);
6387     QCOMPARE(playerSourceChangedSpy.count(), 2);
6388     QCOMPARE(urlRoleChangedSpy.count(), 1);
6389     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6390     QCOMPARE(titleRoleChangedSpy.count(), 1);
6391     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6392     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6393     QCOMPARE(playerStatusChangedSpy.count(), 4);
6394     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
6395     QCOMPARE(playerErrorChangedSpy.count(), 0);
6396     QCOMPARE(persistentStateChangedSpy.count(), 1);
6397     QCOMPARE(playerPlaySpy.count(), 1);
6398     QCOMPARE(playerPauseSpy.count(), 0);
6399     QCOMPARE(playerStopSpy.count(), 0);
6400     QCOMPARE(skipNextTrackSpy.count(), 0);
6401     QCOMPARE(seekSpy.count(), 0);
6402     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6403     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6404     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6405 
6406     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
6407 
6408     QCOMPARE(skipNextTrackSpy.wait(), true);
6409 
6410     QCOMPARE(currentTrackChangedSpy.count(), 1);
6411     QCOMPARE(playListModelChangedSpy.count(), 1);
6412     QCOMPARE(playerSourceChangedSpy.count(), 2);
6413     QCOMPARE(urlRoleChangedSpy.count(), 1);
6414     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6415     QCOMPARE(titleRoleChangedSpy.count(), 1);
6416     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6417     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6418     QCOMPARE(playerStatusChangedSpy.count(), 4);
6419     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
6420     QCOMPARE(playerErrorChangedSpy.count(), 0);
6421     QCOMPARE(persistentStateChangedSpy.count(), 1);
6422     QCOMPARE(playerPlaySpy.count(), 1);
6423     QCOMPARE(playerPauseSpy.count(), 0);
6424     QCOMPARE(playerStopSpy.count(), 0);
6425     QCOMPARE(skipNextTrackSpy.count(), 1);
6426     QCOMPARE(seekSpy.count(), 0);
6427     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6428     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6429     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6430 
6431     myPlayer.setPlayerStatus(QMediaPlayer::InvalidMedia);
6432 
6433     QCOMPARE(skipNextTrackSpy.wait(150), true);
6434 
6435     QCOMPARE(currentTrackChangedSpy.count(), 1);
6436     QCOMPARE(playListModelChangedSpy.count(), 1);
6437     QCOMPARE(playerSourceChangedSpy.count(), 2);
6438     QCOMPARE(urlRoleChangedSpy.count(), 1);
6439     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6440     QCOMPARE(titleRoleChangedSpy.count(), 1);
6441     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6442     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6443     QCOMPARE(playerStatusChangedSpy.count(), 5);
6444     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
6445     QCOMPARE(playerErrorChangedSpy.count(), 0);
6446     QCOMPARE(persistentStateChangedSpy.count(), 1);
6447     QCOMPARE(playerPlaySpy.count(), 1);
6448     QCOMPARE(playerPauseSpy.count(), 0);
6449     QCOMPARE(playerStopSpy.count(), 0);
6450     QCOMPARE(skipNextTrackSpy.count(), 2);
6451     QCOMPARE(seekSpy.count(), 0);
6452     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6453     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6454     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6455 
6456     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::InvalidMedia);
6457 }
6458 
6459 void ManageAudioPlayerTest::testRestoreSettingsNoAutomaticPlay()
6460 {
6461     Elisa::ElisaConfiguration::self()->setDefaults();
6462     ManageAudioPlayer myPlayer;
6463     QStandardItemModel myPlayList;
6464 
6465     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
6466     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
6467     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
6468     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
6469     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
6470     QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged);
6471     QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged);
6472     QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged);
6473     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
6474     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
6475     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
6476     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
6477     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
6478     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
6479     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
6480     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
6481     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
6482 
6483     myPlayList.appendRow(new QStandardItem);
6484     myPlayList.appendRow(new QStandardItem);
6485     myPlayList.appendRow(new QStandardItem);
6486 
6487     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
6488     myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole);
6489     myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole);
6490     myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole);
6491     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
6492     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
6493 
6494     QCOMPARE(currentTrackChangedSpy.count(), 0);
6495     QCOMPARE(playListModelChangedSpy.count(), 0);
6496     QCOMPARE(playerSourceChangedSpy.count(), 0);
6497     QCOMPARE(urlRoleChangedSpy.count(), 0);
6498     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6499     QCOMPARE(titleRoleChangedSpy.count(), 0);
6500     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6501     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6502     QCOMPARE(playerStatusChangedSpy.count(), 0);
6503     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6504     QCOMPARE(playerErrorChangedSpy.count(), 0);
6505     QCOMPARE(persistentStateChangedSpy.count(), 0);
6506     QCOMPARE(playerPlaySpy.count(), 0);
6507     QCOMPARE(playerPauseSpy.count(), 0);
6508     QCOMPARE(playerStopSpy.count(), 0);
6509     QCOMPARE(skipNextTrackSpy.count(), 0);
6510     QCOMPARE(seekSpy.count(), 0);
6511     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6512     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6513     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6514 
6515     myPlayer.setPlayListModel(&myPlayList);
6516 
6517     QCOMPARE(currentTrackChangedSpy.count(), 0);
6518     QCOMPARE(playListModelChangedSpy.count(), 1);
6519     QCOMPARE(playerSourceChangedSpy.count(), 0);
6520     QCOMPARE(urlRoleChangedSpy.count(), 0);
6521     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6522     QCOMPARE(titleRoleChangedSpy.count(), 0);
6523     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6524     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6525     QCOMPARE(playerStatusChangedSpy.count(), 0);
6526     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6527     QCOMPARE(playerErrorChangedSpy.count(), 0);
6528     QCOMPARE(persistentStateChangedSpy.count(), 0);
6529     QCOMPARE(playerPlaySpy.count(), 0);
6530     QCOMPARE(playerPauseSpy.count(), 0);
6531     QCOMPARE(playerStopSpy.count(), 0);
6532     QCOMPARE(skipNextTrackSpy.count(), 0);
6533     QCOMPARE(seekSpy.count(), 0);
6534     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6535     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6536     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6537 
6538     QVariantMap settings;
6539     settings[QStringLiteral("isPlaying")] = false;
6540     settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title");
6541     settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist");
6542     settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album");
6543 
6544     myPlayer.setPersistentState(settings);
6545 
6546     QCOMPARE(currentTrackChangedSpy.count(), 0);
6547     QCOMPARE(playListModelChangedSpy.count(), 1);
6548     QCOMPARE(playerSourceChangedSpy.count(), 0);
6549     QCOMPARE(urlRoleChangedSpy.count(), 0);
6550     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6551     QCOMPARE(titleRoleChangedSpy.count(), 0);
6552     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6553     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6554     QCOMPARE(playerStatusChangedSpy.count(), 0);
6555     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6556     QCOMPARE(playerErrorChangedSpy.count(), 0);
6557     QCOMPARE(persistentStateChangedSpy.count(), 1);
6558     QCOMPARE(playerPlaySpy.count(), 0);
6559     QCOMPARE(playerPauseSpy.count(), 0);
6560     QCOMPARE(playerStopSpy.count(), 0);
6561     QCOMPARE(skipNextTrackSpy.count(), 0);
6562     QCOMPARE(seekSpy.count(), 0);
6563     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6564     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6565     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6566 
6567     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
6568 
6569     QCOMPARE(currentTrackChangedSpy.count(), 1);
6570     QCOMPARE(playListModelChangedSpy.count(), 1);
6571     QCOMPARE(playerSourceChangedSpy.count(), 1);
6572     QCOMPARE(urlRoleChangedSpy.count(), 0);
6573     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6574     QCOMPARE(titleRoleChangedSpy.count(), 0);
6575     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6576     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6577     QCOMPARE(playerStatusChangedSpy.count(), 0);
6578     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6579     QCOMPARE(playerErrorChangedSpy.count(), 0);
6580     QCOMPARE(persistentStateChangedSpy.count(), 1);
6581     QCOMPARE(playerPlaySpy.count(), 0);
6582     QCOMPARE(playerPauseSpy.count(), 0);
6583     QCOMPARE(playerStopSpy.count(), 0);
6584     QCOMPARE(skipNextTrackSpy.count(), 0);
6585     QCOMPARE(seekSpy.count(), 0);
6586     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6587     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6588     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6589 
6590     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
6591 
6592     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
6593 
6594     QCOMPARE(currentTrackChangedSpy.count(), 1);
6595     QCOMPARE(playListModelChangedSpy.count(), 1);
6596     QCOMPARE(playerSourceChangedSpy.count(), 2);
6597     QCOMPARE(urlRoleChangedSpy.count(), 1);
6598     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6599     QCOMPARE(titleRoleChangedSpy.count(), 0);
6600     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6601     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6602     QCOMPARE(playerStatusChangedSpy.count(), 0);
6603     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6604     QCOMPARE(playerErrorChangedSpy.count(), 0);
6605     QCOMPARE(persistentStateChangedSpy.count(), 1);
6606     QCOMPARE(playerPlaySpy.count(), 0);
6607     QCOMPARE(playerPauseSpy.count(), 0);
6608     QCOMPARE(playerStopSpy.count(), 0);
6609     QCOMPARE(skipNextTrackSpy.count(), 0);
6610     QCOMPARE(seekSpy.count(), 0);
6611     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6612     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6613     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6614 
6615     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
6616     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
6617 
6618     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
6619 
6620     QCOMPARE(currentTrackChangedSpy.count(), 1);
6621     QCOMPARE(playListModelChangedSpy.count(), 1);
6622     QCOMPARE(playerSourceChangedSpy.count(), 2);
6623     QCOMPARE(urlRoleChangedSpy.count(), 1);
6624     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6625     QCOMPARE(titleRoleChangedSpy.count(), 0);
6626     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6627     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6628     QCOMPARE(playerStatusChangedSpy.count(), 0);
6629     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6630     QCOMPARE(playerErrorChangedSpy.count(), 0);
6631     QCOMPARE(persistentStateChangedSpy.count(), 1);
6632     QCOMPARE(playerPlaySpy.count(), 0);
6633     QCOMPARE(playerPauseSpy.count(), 0);
6634     QCOMPARE(playerStopSpy.count(), 0);
6635     QCOMPARE(skipNextTrackSpy.count(), 0);
6636     QCOMPARE(seekSpy.count(), 0);
6637     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6638     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6639     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6640 
6641     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
6642 
6643     myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole);
6644 
6645     QCOMPARE(currentTrackChangedSpy.count(), 1);
6646     QCOMPARE(playListModelChangedSpy.count(), 1);
6647     QCOMPARE(playerSourceChangedSpy.count(), 2);
6648     QCOMPARE(urlRoleChangedSpy.count(), 1);
6649     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6650     QCOMPARE(titleRoleChangedSpy.count(), 1);
6651     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6652     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6653     QCOMPARE(playerStatusChangedSpy.count(), 0);
6654     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6655     QCOMPARE(playerErrorChangedSpy.count(), 0);
6656     QCOMPARE(persistentStateChangedSpy.count(), 1);
6657     QCOMPARE(playerPlaySpy.count(), 0);
6658     QCOMPARE(playerPauseSpy.count(), 0);
6659     QCOMPARE(playerStopSpy.count(), 0);
6660     QCOMPARE(skipNextTrackSpy.count(), 0);
6661     QCOMPARE(seekSpy.count(), 0);
6662     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6663     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6664     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6665 
6666     QCOMPARE(myPlayer.titleRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole));
6667 
6668     myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole);
6669 
6670     QCOMPARE(currentTrackChangedSpy.count(), 1);
6671     QCOMPARE(playListModelChangedSpy.count(), 1);
6672     QCOMPARE(playerSourceChangedSpy.count(), 2);
6673     QCOMPARE(urlRoleChangedSpy.count(), 1);
6674     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6675     QCOMPARE(titleRoleChangedSpy.count(), 1);
6676     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6677     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6678     QCOMPARE(playerStatusChangedSpy.count(), 0);
6679     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6680     QCOMPARE(playerErrorChangedSpy.count(), 0);
6681     QCOMPARE(persistentStateChangedSpy.count(), 1);
6682     QCOMPARE(playerPlaySpy.count(), 0);
6683     QCOMPARE(playerPauseSpy.count(), 0);
6684     QCOMPARE(playerStopSpy.count(), 0);
6685     QCOMPARE(skipNextTrackSpy.count(), 0);
6686     QCOMPARE(seekSpy.count(), 0);
6687     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6688     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6689     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6690 
6691     QCOMPARE(myPlayer.artistNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole));
6692 
6693     myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole);
6694 
6695     QCOMPARE(currentTrackChangedSpy.count(), 1);
6696     QCOMPARE(playListModelChangedSpy.count(), 1);
6697     QCOMPARE(playerSourceChangedSpy.count(), 2);
6698     QCOMPARE(urlRoleChangedSpy.count(), 1);
6699     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6700     QCOMPARE(titleRoleChangedSpy.count(), 1);
6701     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6702     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6703     QCOMPARE(playerStatusChangedSpy.count(), 0);
6704     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6705     QCOMPARE(playerErrorChangedSpy.count(), 0);
6706     QCOMPARE(persistentStateChangedSpy.count(), 1);
6707     QCOMPARE(playerPlaySpy.count(), 0);
6708     QCOMPARE(playerPauseSpy.count(), 0);
6709     QCOMPARE(playerStopSpy.count(), 0);
6710     QCOMPARE(skipNextTrackSpy.count(), 0);
6711     QCOMPARE(seekSpy.count(), 0);
6712     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6713     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6714     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6715 
6716     QCOMPARE(myPlayer.albumNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole));
6717 
6718     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
6719 
6720     QCOMPARE(currentTrackChangedSpy.count(), 1);
6721     QCOMPARE(playListModelChangedSpy.count(), 1);
6722     QCOMPARE(playerSourceChangedSpy.count(), 2);
6723     QCOMPARE(urlRoleChangedSpy.count(), 1);
6724     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6725     QCOMPARE(titleRoleChangedSpy.count(), 1);
6726     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6727     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6728     QCOMPARE(playerStatusChangedSpy.count(), 1);
6729     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6730     QCOMPARE(playerErrorChangedSpy.count(), 0);
6731     QCOMPARE(persistentStateChangedSpy.count(), 1);
6732     QCOMPARE(playerPlaySpy.count(), 0);
6733     QCOMPARE(playerPauseSpy.count(), 0);
6734     QCOMPARE(playerStopSpy.count(), 0);
6735     QCOMPARE(skipNextTrackSpy.count(), 0);
6736     QCOMPARE(seekSpy.count(), 0);
6737     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6738     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6739     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6740 
6741     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
6742 
6743     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
6744 
6745     QCOMPARE(currentTrackChangedSpy.count(), 1);
6746     QCOMPARE(playListModelChangedSpy.count(), 1);
6747     QCOMPARE(playerSourceChangedSpy.count(), 2);
6748     QCOMPARE(urlRoleChangedSpy.count(), 1);
6749     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6750     QCOMPARE(titleRoleChangedSpy.count(), 1);
6751     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6752     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6753     QCOMPARE(playerStatusChangedSpy.count(), 1);
6754     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6755     QCOMPARE(playerErrorChangedSpy.count(), 0);
6756     QCOMPARE(persistentStateChangedSpy.count(), 1);
6757     QCOMPARE(playerPlaySpy.count(), 0);
6758     QCOMPARE(playerPauseSpy.count(), 0);
6759     QCOMPARE(playerStopSpy.count(), 0);
6760     QCOMPARE(skipNextTrackSpy.count(), 0);
6761     QCOMPARE(seekSpy.count(), 0);
6762     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6763     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6764     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6765 
6766     myPlayer.setPlayerError(QMediaPlayer::NoError);
6767 
6768     QCOMPARE(currentTrackChangedSpy.count(), 1);
6769     QCOMPARE(playListModelChangedSpy.count(), 1);
6770     QCOMPARE(playerSourceChangedSpy.count(), 2);
6771     QCOMPARE(urlRoleChangedSpy.count(), 1);
6772     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6773     QCOMPARE(titleRoleChangedSpy.count(), 1);
6774     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6775     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6776     QCOMPARE(playerStatusChangedSpy.count(), 1);
6777     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6778     QCOMPARE(playerErrorChangedSpy.count(), 0);
6779     QCOMPARE(persistentStateChangedSpy.count(), 1);
6780     QCOMPARE(playerPlaySpy.count(), 0);
6781     QCOMPARE(playerPauseSpy.count(), 0);
6782     QCOMPARE(playerStopSpy.count(), 0);
6783     QCOMPARE(skipNextTrackSpy.count(), 0);
6784     QCOMPARE(seekSpy.count(), 0);
6785     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6786     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6787     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6788 
6789     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
6790 
6791     QCOMPARE(currentTrackChangedSpy.count(), 1);
6792     QCOMPARE(playListModelChangedSpy.count(), 1);
6793     QCOMPARE(playerSourceChangedSpy.count(), 2);
6794     QCOMPARE(urlRoleChangedSpy.count(), 1);
6795     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6796     QCOMPARE(titleRoleChangedSpy.count(), 1);
6797     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6798     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6799     QCOMPARE(playerStatusChangedSpy.count(), 2);
6800     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6801     QCOMPARE(playerErrorChangedSpy.count(), 0);
6802     QCOMPARE(persistentStateChangedSpy.count(), 1);
6803     QCOMPARE(playerPlaySpy.count(), 0);
6804     QCOMPARE(playerPauseSpy.count(), 0);
6805     QCOMPARE(playerStopSpy.count(), 0);
6806     QCOMPARE(skipNextTrackSpy.count(), 0);
6807     QCOMPARE(seekSpy.count(), 0);
6808     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6809     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6810     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6811 
6812     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
6813 
6814     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
6815 
6816     QCOMPARE(currentTrackChangedSpy.count(), 1);
6817     QCOMPARE(playListModelChangedSpy.count(), 1);
6818     QCOMPARE(playerSourceChangedSpy.count(), 2);
6819     QCOMPARE(urlRoleChangedSpy.count(), 1);
6820     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6821     QCOMPARE(titleRoleChangedSpy.count(), 1);
6822     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6823     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6824     QCOMPARE(playerStatusChangedSpy.count(), 3);
6825     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6826     QCOMPARE(playerErrorChangedSpy.count(), 0);
6827     QCOMPARE(persistentStateChangedSpy.count(), 1);
6828     QCOMPARE(playerPlaySpy.count(), 0);
6829     QCOMPARE(playerPauseSpy.count(), 0);
6830     QCOMPARE(playerStopSpy.count(), 0);
6831     QCOMPARE(skipNextTrackSpy.count(), 0);
6832     QCOMPARE(seekSpy.count(), 0);
6833     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6834     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6835     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6836 
6837     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
6838 
6839     QCOMPARE(playerPlaySpy.wait(1000), false);
6840 
6841     QCOMPARE(currentTrackChangedSpy.count(), 1);
6842     QCOMPARE(playListModelChangedSpy.count(), 1);
6843     QCOMPARE(playerSourceChangedSpy.count(), 2);
6844     QCOMPARE(urlRoleChangedSpy.count(), 1);
6845     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
6846     QCOMPARE(titleRoleChangedSpy.count(), 1);
6847     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
6848     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
6849     QCOMPARE(playerStatusChangedSpy.count(), 3);
6850     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6851     QCOMPARE(playerErrorChangedSpy.count(), 0);
6852     QCOMPARE(persistentStateChangedSpy.count(), 1);
6853     QCOMPARE(playerPlaySpy.count(), 0);
6854     QCOMPARE(playerPauseSpy.count(), 0);
6855     QCOMPARE(playerStopSpy.count(), 0);
6856     QCOMPARE(skipNextTrackSpy.count(), 0);
6857     QCOMPARE(seekSpy.count(), 0);
6858     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6859     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6860     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6861 }
6862 
6863 void ManageAudioPlayerTest::testRestoreSettingsAutomaticPlayAndPosition()
6864 {
6865     Elisa::ElisaConfiguration::self()->setDefaults();
6866     Elisa::ElisaConfiguration::self()->setPlayAtStartup(true);
6867     ManageAudioPlayer myPlayer;
6868     QStandardItemModel myPlayList;
6869 
6870     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
6871     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
6872     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
6873     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
6874     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
6875     QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged);
6876     QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged);
6877     QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged);
6878     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
6879     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
6880     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
6881     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
6882     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
6883     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
6884     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
6885     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
6886     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
6887 
6888     myPlayList.appendRow(new QStandardItem);
6889     myPlayList.appendRow(new QStandardItem);
6890     myPlayList.appendRow(new QStandardItem);
6891 
6892     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
6893     myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole);
6894     myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole);
6895     myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole);
6896     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
6897     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
6898 
6899     QCOMPARE(currentTrackChangedSpy.count(), 0);
6900     QCOMPARE(playListModelChangedSpy.count(), 0);
6901     QCOMPARE(playerSourceChangedSpy.count(), 0);
6902     QCOMPARE(urlRoleChangedSpy.count(), 0);
6903     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6904     QCOMPARE(titleRoleChangedSpy.count(), 0);
6905     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6906     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6907     QCOMPARE(playerStatusChangedSpy.count(), 0);
6908     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6909     QCOMPARE(playerErrorChangedSpy.count(), 0);
6910     QCOMPARE(persistentStateChangedSpy.count(), 0);
6911     QCOMPARE(playerPlaySpy.count(), 0);
6912     QCOMPARE(playerPauseSpy.count(), 0);
6913     QCOMPARE(playerStopSpy.count(), 0);
6914     QCOMPARE(skipNextTrackSpy.count(), 0);
6915     QCOMPARE(seekSpy.count(), 0);
6916     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6917     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6918     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6919 
6920     myPlayer.setPlayListModel(&myPlayList);
6921 
6922     QCOMPARE(currentTrackChangedSpy.count(), 0);
6923     QCOMPARE(playListModelChangedSpy.count(), 1);
6924     QCOMPARE(playerSourceChangedSpy.count(), 0);
6925     QCOMPARE(urlRoleChangedSpy.count(), 0);
6926     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6927     QCOMPARE(titleRoleChangedSpy.count(), 0);
6928     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6929     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6930     QCOMPARE(playerStatusChangedSpy.count(), 0);
6931     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6932     QCOMPARE(playerErrorChangedSpy.count(), 0);
6933     QCOMPARE(persistentStateChangedSpy.count(), 0);
6934     QCOMPARE(playerPlaySpy.count(), 0);
6935     QCOMPARE(playerPauseSpy.count(), 0);
6936     QCOMPARE(playerStopSpy.count(), 0);
6937     QCOMPARE(skipNextTrackSpy.count(), 0);
6938     QCOMPARE(seekSpy.count(), 0);
6939     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6940     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6941     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6942 
6943     QVariantMap settings;
6944     settings[QStringLiteral("isPlaying")] = true;
6945     settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title");
6946     settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist");
6947     settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album");
6948     settings[QStringLiteral("playerPosition")] = 10000;
6949 
6950     myPlayer.setPersistentState(settings);
6951 
6952     QCOMPARE(currentTrackChangedSpy.count(), 0);
6953     QCOMPARE(playListModelChangedSpy.count(), 1);
6954     QCOMPARE(playerSourceChangedSpy.count(), 0);
6955     QCOMPARE(urlRoleChangedSpy.count(), 0);
6956     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6957     QCOMPARE(titleRoleChangedSpy.count(), 0);
6958     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6959     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6960     QCOMPARE(playerStatusChangedSpy.count(), 0);
6961     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6962     QCOMPARE(playerErrorChangedSpy.count(), 0);
6963     QCOMPARE(persistentStateChangedSpy.count(), 1);
6964     QCOMPARE(playerPlaySpy.count(), 0);
6965     QCOMPARE(playerPauseSpy.count(), 0);
6966     QCOMPARE(playerStopSpy.count(), 0);
6967     QCOMPARE(skipNextTrackSpy.count(), 0);
6968     QCOMPARE(seekSpy.count(), 0);
6969     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6970     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6971     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6972 
6973     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
6974 
6975     QCOMPARE(currentTrackChangedSpy.count(), 1);
6976     QCOMPARE(playListModelChangedSpy.count(), 1);
6977     QCOMPARE(playerSourceChangedSpy.count(), 1);
6978     QCOMPARE(urlRoleChangedSpy.count(), 0);
6979     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
6980     QCOMPARE(titleRoleChangedSpy.count(), 0);
6981     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
6982     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
6983     QCOMPARE(playerStatusChangedSpy.count(), 0);
6984     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
6985     QCOMPARE(playerErrorChangedSpy.count(), 0);
6986     QCOMPARE(persistentStateChangedSpy.count(), 1);
6987     QCOMPARE(playerPlaySpy.count(), 0);
6988     QCOMPARE(playerPauseSpy.count(), 0);
6989     QCOMPARE(playerStopSpy.count(), 0);
6990     QCOMPARE(skipNextTrackSpy.count(), 0);
6991     QCOMPARE(seekSpy.count(), 0);
6992     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6993     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6994     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
6995 
6996     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
6997 
6998     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
6999 
7000     QCOMPARE(currentTrackChangedSpy.count(), 1);
7001     QCOMPARE(playListModelChangedSpy.count(), 1);
7002     QCOMPARE(playerSourceChangedSpy.count(), 2);
7003     QCOMPARE(urlRoleChangedSpy.count(), 1);
7004     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7005     QCOMPARE(titleRoleChangedSpy.count(), 0);
7006     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
7007     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7008     QCOMPARE(playerStatusChangedSpy.count(), 0);
7009     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7010     QCOMPARE(playerErrorChangedSpy.count(), 0);
7011     QCOMPARE(persistentStateChangedSpy.count(), 1);
7012     QCOMPARE(playerPlaySpy.count(), 0);
7013     QCOMPARE(playerPauseSpy.count(), 0);
7014     QCOMPARE(playerStopSpy.count(), 0);
7015     QCOMPARE(skipNextTrackSpy.count(), 0);
7016     QCOMPARE(seekSpy.count(), 0);
7017     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7018     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7019     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7020 
7021     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
7022     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
7023 
7024     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
7025 
7026     QCOMPARE(currentTrackChangedSpy.count(), 1);
7027     QCOMPARE(playListModelChangedSpy.count(), 1);
7028     QCOMPARE(playerSourceChangedSpy.count(), 2);
7029     QCOMPARE(urlRoleChangedSpy.count(), 1);
7030     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7031     QCOMPARE(titleRoleChangedSpy.count(), 0);
7032     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
7033     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7034     QCOMPARE(playerStatusChangedSpy.count(), 0);
7035     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7036     QCOMPARE(playerErrorChangedSpy.count(), 0);
7037     QCOMPARE(persistentStateChangedSpy.count(), 1);
7038     QCOMPARE(playerPlaySpy.count(), 0);
7039     QCOMPARE(playerPauseSpy.count(), 0);
7040     QCOMPARE(playerStopSpy.count(), 0);
7041     QCOMPARE(skipNextTrackSpy.count(), 0);
7042     QCOMPARE(seekSpy.count(), 0);
7043     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7044     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7045     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7046 
7047     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
7048 
7049     myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole);
7050 
7051     QCOMPARE(currentTrackChangedSpy.count(), 1);
7052     QCOMPARE(playListModelChangedSpy.count(), 1);
7053     QCOMPARE(playerSourceChangedSpy.count(), 2);
7054     QCOMPARE(urlRoleChangedSpy.count(), 1);
7055     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7056     QCOMPARE(titleRoleChangedSpy.count(), 1);
7057     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
7058     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7059     QCOMPARE(playerStatusChangedSpy.count(), 0);
7060     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7061     QCOMPARE(playerErrorChangedSpy.count(), 0);
7062     QCOMPARE(persistentStateChangedSpy.count(), 1);
7063     QCOMPARE(playerPlaySpy.count(), 0);
7064     QCOMPARE(playerPauseSpy.count(), 0);
7065     QCOMPARE(playerStopSpy.count(), 0);
7066     QCOMPARE(skipNextTrackSpy.count(), 0);
7067     QCOMPARE(seekSpy.count(), 0);
7068     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7069     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7070     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7071 
7072     QCOMPARE(myPlayer.titleRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole));
7073 
7074     myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole);
7075 
7076     QCOMPARE(currentTrackChangedSpy.count(), 1);
7077     QCOMPARE(playListModelChangedSpy.count(), 1);
7078     QCOMPARE(playerSourceChangedSpy.count(), 2);
7079     QCOMPARE(urlRoleChangedSpy.count(), 1);
7080     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7081     QCOMPARE(titleRoleChangedSpy.count(), 1);
7082     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7083     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7084     QCOMPARE(playerStatusChangedSpy.count(), 0);
7085     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7086     QCOMPARE(playerErrorChangedSpy.count(), 0);
7087     QCOMPARE(persistentStateChangedSpy.count(), 1);
7088     QCOMPARE(playerPlaySpy.count(), 0);
7089     QCOMPARE(playerPauseSpy.count(), 0);
7090     QCOMPARE(playerStopSpy.count(), 0);
7091     QCOMPARE(skipNextTrackSpy.count(), 0);
7092     QCOMPARE(seekSpy.count(), 0);
7093     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7094     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7095     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7096 
7097     QCOMPARE(myPlayer.artistNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole));
7098 
7099     myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole);
7100 
7101     QCOMPARE(currentTrackChangedSpy.count(), 1);
7102     QCOMPARE(playListModelChangedSpy.count(), 1);
7103     QCOMPARE(playerSourceChangedSpy.count(), 2);
7104     QCOMPARE(urlRoleChangedSpy.count(), 1);
7105     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7106     QCOMPARE(titleRoleChangedSpy.count(), 1);
7107     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7108     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7109     QCOMPARE(playerStatusChangedSpy.count(), 0);
7110     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7111     QCOMPARE(playerErrorChangedSpy.count(), 0);
7112     QCOMPARE(persistentStateChangedSpy.count(), 1);
7113     QCOMPARE(playerPlaySpy.count(), 0);
7114     QCOMPARE(playerPauseSpy.count(), 0);
7115     QCOMPARE(playerStopSpy.count(), 0);
7116     QCOMPARE(skipNextTrackSpy.count(), 0);
7117     QCOMPARE(seekSpy.count(), 1);
7118     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7119     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7120     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7121 
7122     QCOMPARE(seekSpy.at(0).at(0).toInt(), 10000);
7123     QCOMPARE(myPlayer.albumNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole));
7124 
7125     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
7126 
7127     QCOMPARE(currentTrackChangedSpy.count(), 1);
7128     QCOMPARE(playListModelChangedSpy.count(), 1);
7129     QCOMPARE(playerSourceChangedSpy.count(), 2);
7130     QCOMPARE(urlRoleChangedSpy.count(), 1);
7131     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7132     QCOMPARE(titleRoleChangedSpy.count(), 1);
7133     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7134     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7135     QCOMPARE(playerStatusChangedSpy.count(), 1);
7136     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7137     QCOMPARE(playerErrorChangedSpy.count(), 0);
7138     QCOMPARE(persistentStateChangedSpy.count(), 1);
7139     QCOMPARE(playerPlaySpy.count(), 0);
7140     QCOMPARE(playerPauseSpy.count(), 0);
7141     QCOMPARE(playerStopSpy.count(), 0);
7142     QCOMPARE(skipNextTrackSpy.count(), 0);
7143     QCOMPARE(seekSpy.count(), 1);
7144     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7145     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7146     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7147 
7148     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
7149 
7150     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
7151 
7152     QCOMPARE(currentTrackChangedSpy.count(), 1);
7153     QCOMPARE(playListModelChangedSpy.count(), 1);
7154     QCOMPARE(playerSourceChangedSpy.count(), 2);
7155     QCOMPARE(urlRoleChangedSpy.count(), 1);
7156     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7157     QCOMPARE(titleRoleChangedSpy.count(), 1);
7158     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7159     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7160     QCOMPARE(playerStatusChangedSpy.count(), 1);
7161     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7162     QCOMPARE(playerErrorChangedSpy.count(), 0);
7163     QCOMPARE(persistentStateChangedSpy.count(), 1);
7164     QCOMPARE(playerPlaySpy.count(), 0);
7165     QCOMPARE(playerPauseSpy.count(), 0);
7166     QCOMPARE(playerStopSpy.count(), 0);
7167     QCOMPARE(skipNextTrackSpy.count(), 0);
7168     QCOMPARE(seekSpy.count(), 1);
7169     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7170     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7171     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7172 
7173     myPlayer.setPlayerError(QMediaPlayer::NoError);
7174 
7175     QCOMPARE(currentTrackChangedSpy.count(), 1);
7176     QCOMPARE(playListModelChangedSpy.count(), 1);
7177     QCOMPARE(playerSourceChangedSpy.count(), 2);
7178     QCOMPARE(urlRoleChangedSpy.count(), 1);
7179     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7180     QCOMPARE(titleRoleChangedSpy.count(), 1);
7181     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7182     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7183     QCOMPARE(playerStatusChangedSpy.count(), 1);
7184     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7185     QCOMPARE(playerErrorChangedSpy.count(), 0);
7186     QCOMPARE(persistentStateChangedSpy.count(), 1);
7187     QCOMPARE(playerPlaySpy.count(), 0);
7188     QCOMPARE(playerPauseSpy.count(), 0);
7189     QCOMPARE(playerStopSpy.count(), 0);
7190     QCOMPARE(skipNextTrackSpy.count(), 0);
7191     QCOMPARE(seekSpy.count(), 1);
7192     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7193     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7194     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7195 
7196     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
7197 
7198     QCOMPARE(currentTrackChangedSpy.count(), 1);
7199     QCOMPARE(playListModelChangedSpy.count(), 1);
7200     QCOMPARE(playerSourceChangedSpy.count(), 2);
7201     QCOMPARE(urlRoleChangedSpy.count(), 1);
7202     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7203     QCOMPARE(titleRoleChangedSpy.count(), 1);
7204     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7205     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7206     QCOMPARE(playerStatusChangedSpy.count(), 2);
7207     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7208     QCOMPARE(playerErrorChangedSpy.count(), 0);
7209     QCOMPARE(persistentStateChangedSpy.count(), 1);
7210     QCOMPARE(playerPlaySpy.count(), 0);
7211     QCOMPARE(playerPauseSpy.count(), 0);
7212     QCOMPARE(playerStopSpy.count(), 0);
7213     QCOMPARE(skipNextTrackSpy.count(), 0);
7214     QCOMPARE(seekSpy.count(), 1);
7215     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7216     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7217     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7218 
7219     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
7220 
7221     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
7222 
7223     QCOMPARE(currentTrackChangedSpy.count(), 1);
7224     QCOMPARE(playListModelChangedSpy.count(), 1);
7225     QCOMPARE(playerSourceChangedSpy.count(), 2);
7226     QCOMPARE(urlRoleChangedSpy.count(), 1);
7227     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7228     QCOMPARE(titleRoleChangedSpy.count(), 1);
7229     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7230     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7231     QCOMPARE(playerStatusChangedSpy.count(), 3);
7232     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7233     QCOMPARE(playerErrorChangedSpy.count(), 0);
7234     QCOMPARE(persistentStateChangedSpy.count(), 1);
7235     QCOMPARE(playerPlaySpy.count(), 0);
7236     QCOMPARE(playerPauseSpy.count(), 0);
7237     QCOMPARE(playerStopSpy.count(), 0);
7238     QCOMPARE(skipNextTrackSpy.count(), 0);
7239     QCOMPARE(seekSpy.count(), 1);
7240     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7241     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7242     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7243 
7244     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
7245 
7246     QCOMPARE(playerPlaySpy.wait(), true);
7247 
7248     QCOMPARE(currentTrackChangedSpy.count(), 1);
7249     QCOMPARE(playListModelChangedSpy.count(), 1);
7250     QCOMPARE(playerSourceChangedSpy.count(), 2);
7251     QCOMPARE(urlRoleChangedSpy.count(), 1);
7252     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7253     QCOMPARE(titleRoleChangedSpy.count(), 1);
7254     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7255     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7256     QCOMPARE(playerStatusChangedSpy.count(), 3);
7257     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7258     QCOMPARE(playerErrorChangedSpy.count(), 0);
7259     QCOMPARE(persistentStateChangedSpy.count(), 1);
7260     QCOMPARE(playerPlaySpy.count(), 1);
7261     QCOMPARE(playerPauseSpy.count(), 0);
7262     QCOMPARE(playerStopSpy.count(), 0);
7263     QCOMPARE(skipNextTrackSpy.count(), 0);
7264     QCOMPARE(seekSpy.count(), 1);
7265     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7266     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7267     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7268 
7269     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
7270 
7271     QCOMPARE(currentTrackChangedSpy.count(), 1);
7272     QCOMPARE(playListModelChangedSpy.count(), 1);
7273     QCOMPARE(playerSourceChangedSpy.count(), 2);
7274     QCOMPARE(urlRoleChangedSpy.count(), 1);
7275     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7276     QCOMPARE(titleRoleChangedSpy.count(), 1);
7277     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7278     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7279     QCOMPARE(playerStatusChangedSpy.count(), 3);
7280     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7281     QCOMPARE(playerErrorChangedSpy.count(), 0);
7282     QCOMPARE(persistentStateChangedSpy.count(), 1);
7283     QCOMPARE(playerPlaySpy.count(), 1);
7284     QCOMPARE(playerPauseSpy.count(), 0);
7285     QCOMPARE(playerStopSpy.count(), 0);
7286     QCOMPARE(skipNextTrackSpy.count(), 0);
7287     QCOMPARE(seekSpy.count(), 1);
7288     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
7289     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7290     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7291 
7292     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
7293 
7294     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
7295 
7296     QCOMPARE(currentTrackChangedSpy.count(), 1);
7297     QCOMPARE(playListModelChangedSpy.count(), 1);
7298     QCOMPARE(playerSourceChangedSpy.count(), 2);
7299     QCOMPARE(urlRoleChangedSpy.count(), 1);
7300     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7301     QCOMPARE(titleRoleChangedSpy.count(), 1);
7302     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7303     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7304     QCOMPARE(playerStatusChangedSpy.count(), 4);
7305     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7306     QCOMPARE(playerErrorChangedSpy.count(), 0);
7307     QCOMPARE(persistentStateChangedSpy.count(), 1);
7308     QCOMPARE(playerPlaySpy.count(), 1);
7309     QCOMPARE(playerPauseSpy.count(), 0);
7310     QCOMPARE(playerStopSpy.count(), 0);
7311     QCOMPARE(skipNextTrackSpy.count(), 0);
7312     QCOMPARE(seekSpy.count(), 1);
7313     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
7314     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7315     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7316 
7317     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
7318 
7319     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
7320 
7321     QCOMPARE(currentTrackChangedSpy.count(), 1);
7322     QCOMPARE(playListModelChangedSpy.count(), 1);
7323     QCOMPARE(playerSourceChangedSpy.count(), 2);
7324     QCOMPARE(urlRoleChangedSpy.count(), 1);
7325     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7326     QCOMPARE(titleRoleChangedSpy.count(), 1);
7327     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7328     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7329     QCOMPARE(playerStatusChangedSpy.count(), 4);
7330     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7331     QCOMPARE(playerErrorChangedSpy.count(), 0);
7332     QCOMPARE(persistentStateChangedSpy.count(), 1);
7333     QCOMPARE(playerPlaySpy.count(), 1);
7334     QCOMPARE(playerPauseSpy.count(), 0);
7335     QCOMPARE(playerStopSpy.count(), 0);
7336     QCOMPARE(skipNextTrackSpy.count(), 0);
7337     QCOMPARE(seekSpy.count(), 1);
7338     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7339     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7340     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7341 
7342     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
7343 
7344     myPlayer.setPlayerStatus(QMediaPlayer::NoMedia);
7345 
7346     QCOMPARE(currentTrackChangedSpy.count(), 1);
7347     QCOMPARE(playListModelChangedSpy.count(), 1);
7348     QCOMPARE(playerSourceChangedSpy.count(), 2);
7349     QCOMPARE(urlRoleChangedSpy.count(), 1);
7350     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7351     QCOMPARE(titleRoleChangedSpy.count(), 1);
7352     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7353     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7354     QCOMPARE(playerStatusChangedSpy.count(), 5);
7355     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7356     QCOMPARE(playerErrorChangedSpy.count(), 0);
7357     QCOMPARE(persistentStateChangedSpy.count(), 1);
7358     QCOMPARE(playerPlaySpy.count(), 1);
7359     QCOMPARE(playerPauseSpy.count(), 0);
7360     QCOMPARE(playerStopSpy.count(), 0);
7361     QCOMPARE(skipNextTrackSpy.count(), 0);
7362     QCOMPARE(seekSpy.count(), 1);
7363     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7364     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7365     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7366 
7367     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia);
7368 
7369     QCOMPARE(skipNextTrackSpy.wait(), true);
7370 
7371     QCOMPARE(currentTrackChangedSpy.count(), 1);
7372     QCOMPARE(playListModelChangedSpy.count(), 1);
7373     QCOMPARE(playerSourceChangedSpy.count(), 2);
7374     QCOMPARE(urlRoleChangedSpy.count(), 1);
7375     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7376     QCOMPARE(titleRoleChangedSpy.count(), 1);
7377     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7378     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
7379     QCOMPARE(playerStatusChangedSpy.count(), 5);
7380     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7381     QCOMPARE(playerErrorChangedSpy.count(), 0);
7382     QCOMPARE(persistentStateChangedSpy.count(), 1);
7383     QCOMPARE(playerPlaySpy.count(), 1);
7384     QCOMPARE(playerPauseSpy.count(), 0);
7385     QCOMPARE(playerStopSpy.count(), 0);
7386     QCOMPARE(skipNextTrackSpy.count(), 1);
7387     QCOMPARE(seekSpy.count(), 1);
7388     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7389     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7390     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7391 }
7392 
7393 void ManageAudioPlayerTest::playTrackPauseAndSkipNextTrack()
7394 {
7395     Elisa::ElisaConfiguration::self()->setDefaults();
7396     ManageAudioPlayer myPlayer;
7397     QStandardItemModel myPlayList;
7398 
7399     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
7400     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
7401     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
7402     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
7403     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
7404     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
7405     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
7406     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
7407     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
7408     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
7409     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
7410     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
7411     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
7412     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
7413 
7414     myPlayList.appendRow(new QStandardItem);
7415     myPlayList.appendRow(new QStandardItem);
7416     myPlayList.appendRow(new QStandardItem);
7417 
7418     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
7419     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
7420     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
7421 
7422     QCOMPARE(currentTrackChangedSpy.count(), 0);
7423     QCOMPARE(playListModelChangedSpy.count(), 0);
7424     QCOMPARE(playerSourceChangedSpy.count(), 0);
7425     QCOMPARE(urlRoleChangedSpy.count(), 0);
7426     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7427     QCOMPARE(playerStatusChangedSpy.count(), 0);
7428     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7429     QCOMPARE(playerErrorChangedSpy.count(), 0);
7430     QCOMPARE(persistentStateChangedSpy.count(), 0);
7431     QCOMPARE(playerPlaySpy.count(), 0);
7432     QCOMPARE(playerPauseSpy.count(), 0);
7433     QCOMPARE(playerStopSpy.count(), 0);
7434     QCOMPARE(skipNextTrackSpy.count(), 0);
7435     QCOMPARE(seekSpy.count(), 0);
7436 
7437     myPlayer.setPlayListModel(&myPlayList);
7438 
7439     QCOMPARE(currentTrackChangedSpy.count(), 0);
7440     QCOMPARE(playListModelChangedSpy.count(), 1);
7441     QCOMPARE(playerSourceChangedSpy.count(), 0);
7442     QCOMPARE(urlRoleChangedSpy.count(), 0);
7443     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7444     QCOMPARE(playerStatusChangedSpy.count(), 0);
7445     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7446     QCOMPARE(playerErrorChangedSpy.count(), 0);
7447     QCOMPARE(persistentStateChangedSpy.count(), 0);
7448     QCOMPARE(playerPlaySpy.count(), 0);
7449     QCOMPARE(playerPauseSpy.count(), 0);
7450     QCOMPARE(playerStopSpy.count(), 0);
7451     QCOMPARE(skipNextTrackSpy.count(), 0);
7452     QCOMPARE(seekSpy.count(), 0);
7453 
7454     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
7455 
7456     QCOMPARE(currentTrackChangedSpy.count(), 1);
7457     QCOMPARE(playListModelChangedSpy.count(), 1);
7458     QCOMPARE(playerSourceChangedSpy.count(), 1);
7459     QCOMPARE(urlRoleChangedSpy.count(), 0);
7460     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7461     QCOMPARE(playerStatusChangedSpy.count(), 0);
7462     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7463     QCOMPARE(playerErrorChangedSpy.count(), 0);
7464     QCOMPARE(persistentStateChangedSpy.count(), 0);
7465     QCOMPARE(playerPlaySpy.count(), 0);
7466     QCOMPARE(playerPauseSpy.count(), 0);
7467     QCOMPARE(playerStopSpy.count(), 0);
7468     QCOMPARE(skipNextTrackSpy.count(), 0);
7469     QCOMPARE(seekSpy.count(), 0);
7470 
7471     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
7472 
7473     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
7474 
7475     QCOMPARE(currentTrackChangedSpy.count(), 1);
7476     QCOMPARE(playListModelChangedSpy.count(), 1);
7477     QCOMPARE(playerSourceChangedSpy.count(), 2);
7478     QCOMPARE(urlRoleChangedSpy.count(), 1);
7479     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7480     QCOMPARE(playerStatusChangedSpy.count(), 0);
7481     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7482     QCOMPARE(playerErrorChangedSpy.count(), 0);
7483     QCOMPARE(persistentStateChangedSpy.count(), 0);
7484     QCOMPARE(playerPlaySpy.count(), 0);
7485     QCOMPARE(playerPauseSpy.count(), 0);
7486     QCOMPARE(playerStopSpy.count(), 0);
7487     QCOMPARE(skipNextTrackSpy.count(), 0);
7488     QCOMPARE(seekSpy.count(), 0);
7489 
7490     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
7491     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
7492 
7493     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
7494 
7495     QCOMPARE(currentTrackChangedSpy.count(), 1);
7496     QCOMPARE(playListModelChangedSpy.count(), 1);
7497     QCOMPARE(playerSourceChangedSpy.count(), 2);
7498     QCOMPARE(urlRoleChangedSpy.count(), 1);
7499     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7500     QCOMPARE(playerStatusChangedSpy.count(), 0);
7501     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7502     QCOMPARE(playerErrorChangedSpy.count(), 0);
7503     QCOMPARE(persistentStateChangedSpy.count(), 0);
7504     QCOMPARE(playerPlaySpy.count(), 0);
7505     QCOMPARE(playerPauseSpy.count(), 0);
7506     QCOMPARE(playerStopSpy.count(), 0);
7507     QCOMPARE(skipNextTrackSpy.count(), 0);
7508     QCOMPARE(seekSpy.count(), 0);
7509 
7510     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
7511 
7512     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
7513 
7514     QCOMPARE(currentTrackChangedSpy.count(), 1);
7515     QCOMPARE(playListModelChangedSpy.count(), 1);
7516     QCOMPARE(playerSourceChangedSpy.count(), 2);
7517     QCOMPARE(urlRoleChangedSpy.count(), 1);
7518     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7519     QCOMPARE(playerStatusChangedSpy.count(), 1);
7520     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7521     QCOMPARE(playerErrorChangedSpy.count(), 0);
7522     QCOMPARE(persistentStateChangedSpy.count(), 0);
7523     QCOMPARE(playerPlaySpy.count(), 0);
7524     QCOMPARE(playerPauseSpy.count(), 0);
7525     QCOMPARE(playerStopSpy.count(), 0);
7526     QCOMPARE(skipNextTrackSpy.count(), 0);
7527     QCOMPARE(seekSpy.count(), 0);
7528 
7529     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
7530 
7531     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
7532 
7533     QCOMPARE(currentTrackChangedSpy.count(), 1);
7534     QCOMPARE(playListModelChangedSpy.count(), 1);
7535     QCOMPARE(playerSourceChangedSpy.count(), 2);
7536     QCOMPARE(urlRoleChangedSpy.count(), 1);
7537     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7538     QCOMPARE(playerStatusChangedSpy.count(), 1);
7539     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7540     QCOMPARE(playerErrorChangedSpy.count(), 0);
7541     QCOMPARE(persistentStateChangedSpy.count(), 0);
7542     QCOMPARE(playerPlaySpy.count(), 0);
7543     QCOMPARE(playerPauseSpy.count(), 0);
7544     QCOMPARE(playerStopSpy.count(), 0);
7545     QCOMPARE(skipNextTrackSpy.count(), 0);
7546     QCOMPARE(seekSpy.count(), 0);
7547 
7548     myPlayer.setPlayerError(QMediaPlayer::NoError);
7549 
7550     QCOMPARE(currentTrackChangedSpy.count(), 1);
7551     QCOMPARE(playListModelChangedSpy.count(), 1);
7552     QCOMPARE(playerSourceChangedSpy.count(), 2);
7553     QCOMPARE(urlRoleChangedSpy.count(), 1);
7554     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7555     QCOMPARE(playerStatusChangedSpy.count(), 1);
7556     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7557     QCOMPARE(playerErrorChangedSpy.count(), 0);
7558     QCOMPARE(persistentStateChangedSpy.count(), 0);
7559     QCOMPARE(playerPlaySpy.count(), 0);
7560     QCOMPARE(playerPauseSpy.count(), 0);
7561     QCOMPARE(playerStopSpy.count(), 0);
7562     QCOMPARE(skipNextTrackSpy.count(), 0);
7563     QCOMPARE(seekSpy.count(), 0);
7564 
7565     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
7566 
7567     QCOMPARE(currentTrackChangedSpy.count(), 1);
7568     QCOMPARE(playListModelChangedSpy.count(), 1);
7569     QCOMPARE(playerSourceChangedSpy.count(), 2);
7570     QCOMPARE(urlRoleChangedSpy.count(), 1);
7571     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7572     QCOMPARE(playerStatusChangedSpy.count(), 2);
7573     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7574     QCOMPARE(playerErrorChangedSpy.count(), 0);
7575     QCOMPARE(persistentStateChangedSpy.count(), 0);
7576     QCOMPARE(playerPlaySpy.count(), 0);
7577     QCOMPARE(playerPauseSpy.count(), 0);
7578     QCOMPARE(playerStopSpy.count(), 0);
7579     QCOMPARE(skipNextTrackSpy.count(), 0);
7580     QCOMPARE(seekSpy.count(), 0);
7581 
7582     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
7583 
7584     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
7585 
7586     QCOMPARE(currentTrackChangedSpy.count(), 1);
7587     QCOMPARE(playListModelChangedSpy.count(), 1);
7588     QCOMPARE(playerSourceChangedSpy.count(), 2);
7589     QCOMPARE(urlRoleChangedSpy.count(), 1);
7590     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7591     QCOMPARE(playerStatusChangedSpy.count(), 3);
7592     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7593     QCOMPARE(playerErrorChangedSpy.count(), 0);
7594     QCOMPARE(persistentStateChangedSpy.count(), 0);
7595     QCOMPARE(playerPlaySpy.count(), 0);
7596     QCOMPARE(playerPauseSpy.count(), 0);
7597     QCOMPARE(playerStopSpy.count(), 0);
7598     QCOMPARE(skipNextTrackSpy.count(), 0);
7599     QCOMPARE(seekSpy.count(), 0);
7600 
7601     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
7602 
7603     myPlayer.playPause();
7604 
7605     QCOMPARE(currentTrackChangedSpy.count(), 1);
7606     QCOMPARE(playListModelChangedSpy.count(), 1);
7607     QCOMPARE(playerSourceChangedSpy.count(), 2);
7608     QCOMPARE(urlRoleChangedSpy.count(), 1);
7609     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7610     QCOMPARE(playerStatusChangedSpy.count(), 3);
7611     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7612     QCOMPARE(playerErrorChangedSpy.count(), 0);
7613     QCOMPARE(persistentStateChangedSpy.count(), 0);
7614     QCOMPARE(playerPlaySpy.count(), 0);
7615     QCOMPARE(playerPauseSpy.count(), 0);
7616     QCOMPARE(playerStopSpy.count(), 0);
7617     QCOMPARE(skipNextTrackSpy.count(), 0);
7618     QCOMPARE(seekSpy.count(), 0);
7619 
7620     QCOMPARE(playerPlaySpy.wait(), true);
7621 
7622     QCOMPARE(currentTrackChangedSpy.count(), 1);
7623     QCOMPARE(playListModelChangedSpy.count(), 1);
7624     QCOMPARE(playerSourceChangedSpy.count(), 2);
7625     QCOMPARE(urlRoleChangedSpy.count(), 1);
7626     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7627     QCOMPARE(playerStatusChangedSpy.count(), 3);
7628     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7629     QCOMPARE(playerErrorChangedSpy.count(), 0);
7630     QCOMPARE(persistentStateChangedSpy.count(), 0);
7631     QCOMPARE(playerPlaySpy.count(), 1);
7632     QCOMPARE(playerPauseSpy.count(), 0);
7633     QCOMPARE(playerStopSpy.count(), 0);
7634     QCOMPARE(skipNextTrackSpy.count(), 0);
7635     QCOMPARE(seekSpy.count(), 0);
7636 
7637     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
7638 
7639     QCOMPARE(currentTrackChangedSpy.count(), 1);
7640     QCOMPARE(playListModelChangedSpy.count(), 1);
7641     QCOMPARE(playerSourceChangedSpy.count(), 2);
7642     QCOMPARE(urlRoleChangedSpy.count(), 1);
7643     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7644     QCOMPARE(playerStatusChangedSpy.count(), 3);
7645     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7646     QCOMPARE(playerErrorChangedSpy.count(), 0);
7647     QCOMPARE(persistentStateChangedSpy.count(), 0);
7648     QCOMPARE(playerPlaySpy.count(), 1);
7649     QCOMPARE(playerPauseSpy.count(), 0);
7650     QCOMPARE(playerStopSpy.count(), 0);
7651     QCOMPARE(skipNextTrackSpy.count(), 0);
7652     QCOMPARE(seekSpy.count(), 0);
7653 
7654     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
7655 
7656     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
7657 
7658     QCOMPARE(currentTrackChangedSpy.count(), 1);
7659     QCOMPARE(playListModelChangedSpy.count(), 1);
7660     QCOMPARE(playerSourceChangedSpy.count(), 2);
7661     QCOMPARE(urlRoleChangedSpy.count(), 1);
7662     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7663     QCOMPARE(playerStatusChangedSpy.count(), 4);
7664     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7665     QCOMPARE(playerErrorChangedSpy.count(), 0);
7666     QCOMPARE(persistentStateChangedSpy.count(), 0);
7667     QCOMPARE(playerPlaySpy.count(), 1);
7668     QCOMPARE(playerPauseSpy.count(), 0);
7669     QCOMPARE(playerStopSpy.count(), 0);
7670     QCOMPARE(skipNextTrackSpy.count(), 0);
7671     QCOMPARE(seekSpy.count(), 0);
7672 
7673     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
7674 
7675     myPlayer.playPause();
7676 
7677     QCOMPARE(currentTrackChangedSpy.count(), 1);
7678     QCOMPARE(playListModelChangedSpy.count(), 1);
7679     QCOMPARE(playerSourceChangedSpy.count(), 2);
7680     QCOMPARE(urlRoleChangedSpy.count(), 1);
7681     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7682     QCOMPARE(playerStatusChangedSpy.count(), 4);
7683     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7684     QCOMPARE(playerErrorChangedSpy.count(), 0);
7685     QCOMPARE(persistentStateChangedSpy.count(), 0);
7686     QCOMPARE(playerPlaySpy.count(), 1);
7687     QCOMPARE(playerPauseSpy.count(), 0);
7688     QCOMPARE(playerStopSpy.count(), 0);
7689     QCOMPARE(skipNextTrackSpy.count(), 0);
7690     QCOMPARE(seekSpy.count(), 0);
7691 
7692     QCOMPARE(playerPauseSpy.wait(), true);
7693 
7694     QCOMPARE(currentTrackChangedSpy.count(), 1);
7695     QCOMPARE(playListModelChangedSpy.count(), 1);
7696     QCOMPARE(playerSourceChangedSpy.count(), 2);
7697     QCOMPARE(urlRoleChangedSpy.count(), 1);
7698     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7699     QCOMPARE(playerStatusChangedSpy.count(), 4);
7700     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
7701     QCOMPARE(playerErrorChangedSpy.count(), 0);
7702     QCOMPARE(persistentStateChangedSpy.count(), 0);
7703     QCOMPARE(playerPlaySpy.count(), 1);
7704     QCOMPARE(playerPauseSpy.count(), 1);
7705     QCOMPARE(playerStopSpy.count(), 0);
7706     QCOMPARE(skipNextTrackSpy.count(), 0);
7707     QCOMPARE(seekSpy.count(), 0);
7708 
7709     myPlayer.setPlayerPlaybackState(QMediaPlayer::PausedState);
7710 
7711     QCOMPARE(currentTrackChangedSpy.count(), 1);
7712     QCOMPARE(playListModelChangedSpy.count(), 1);
7713     QCOMPARE(playerSourceChangedSpy.count(), 2);
7714     QCOMPARE(urlRoleChangedSpy.count(), 1);
7715     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7716     QCOMPARE(playerStatusChangedSpy.count(), 4);
7717     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7718     QCOMPARE(playerErrorChangedSpy.count(), 0);
7719     QCOMPARE(persistentStateChangedSpy.count(), 0);
7720     QCOMPARE(playerPlaySpy.count(), 1);
7721     QCOMPARE(playerPauseSpy.count(), 1);
7722     QCOMPARE(playerStopSpy.count(), 0);
7723     QCOMPARE(skipNextTrackSpy.count(), 0);
7724     QCOMPARE(seekSpy.count(), 0);
7725 
7726     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PausedState));
7727 
7728     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
7729 
7730     QCOMPARE(currentTrackChangedSpy.count(), 2);
7731     QCOMPARE(playListModelChangedSpy.count(), 1);
7732     QCOMPARE(playerSourceChangedSpy.count(), 2);
7733     QCOMPARE(urlRoleChangedSpy.count(), 1);
7734     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7735     QCOMPARE(playerStatusChangedSpy.count(), 4);
7736     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7737     QCOMPARE(playerErrorChangedSpy.count(), 0);
7738     QCOMPARE(persistentStateChangedSpy.count(), 0);
7739     QCOMPARE(playerPlaySpy.count(), 1);
7740     QCOMPARE(playerPauseSpy.count(), 1);
7741     QCOMPARE(playerStopSpy.count(), 0);
7742     QCOMPARE(skipNextTrackSpy.count(), 0);
7743     QCOMPARE(seekSpy.count(), 0);
7744 
7745     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
7746 
7747     QCOMPARE(playerStopSpy.wait(100), true);
7748 
7749     QCOMPARE(currentTrackChangedSpy.count(), 2);
7750     QCOMPARE(playListModelChangedSpy.count(), 1);
7751     QCOMPARE(playerSourceChangedSpy.count(), 2);
7752     QCOMPARE(urlRoleChangedSpy.count(), 1);
7753     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7754     QCOMPARE(playerStatusChangedSpy.count(), 4);
7755     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
7756     QCOMPARE(playerErrorChangedSpy.count(), 0);
7757     QCOMPARE(persistentStateChangedSpy.count(), 0);
7758     QCOMPARE(playerPlaySpy.count(), 1);
7759     QCOMPARE(playerPauseSpy.count(), 1);
7760     QCOMPARE(playerStopSpy.count(), 1);
7761     QCOMPARE(skipNextTrackSpy.count(), 0);
7762     QCOMPARE(seekSpy.count(), 0);
7763 
7764     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
7765 
7766     QCOMPARE(currentTrackChangedSpy.count(), 2);
7767     QCOMPARE(playListModelChangedSpy.count(), 1);
7768     QCOMPARE(playerSourceChangedSpy.count(), 3);
7769     QCOMPARE(urlRoleChangedSpy.count(), 1);
7770     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7771     QCOMPARE(playerStatusChangedSpy.count(), 4);
7772     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
7773     QCOMPARE(playerErrorChangedSpy.count(), 0);
7774     QCOMPARE(persistentStateChangedSpy.count(), 0);
7775     QCOMPARE(playerPlaySpy.count(), 1);
7776     QCOMPARE(playerPauseSpy.count(), 1);
7777     QCOMPARE(playerStopSpy.count(), 1);
7778     QCOMPARE(skipNextTrackSpy.count(), 0);
7779     QCOMPARE(seekSpy.count(), 0);
7780 
7781     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
7782     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
7783 
7784     QCOMPARE(skipNextTrackSpy.wait(100), false);
7785 
7786     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
7787 
7788     QCOMPARE(currentTrackChangedSpy.count(), 2);
7789     QCOMPARE(playListModelChangedSpy.count(), 1);
7790     QCOMPARE(playerSourceChangedSpy.count(), 3);
7791     QCOMPARE(urlRoleChangedSpy.count(), 1);
7792     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7793     QCOMPARE(playerStatusChangedSpy.count(), 5);
7794     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
7795     QCOMPARE(playerErrorChangedSpy.count(), 0);
7796     QCOMPARE(persistentStateChangedSpy.count(), 0);
7797     QCOMPARE(playerPlaySpy.count(), 1);
7798     QCOMPARE(playerPauseSpy.count(), 1);
7799     QCOMPARE(playerStopSpy.count(), 1);
7800     QCOMPARE(skipNextTrackSpy.count(), 0);
7801     QCOMPARE(seekSpy.count(), 0);
7802 
7803     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
7804 
7805     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
7806 
7807     QCOMPARE(currentTrackChangedSpy.count(), 2);
7808     QCOMPARE(playListModelChangedSpy.count(), 1);
7809     QCOMPARE(playerSourceChangedSpy.count(), 3);
7810     QCOMPARE(urlRoleChangedSpy.count(), 1);
7811     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7812     QCOMPARE(playerStatusChangedSpy.count(), 6);
7813     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
7814     QCOMPARE(playerErrorChangedSpy.count(), 0);
7815     QCOMPARE(persistentStateChangedSpy.count(), 0);
7816     QCOMPARE(playerPlaySpy.count(), 1);
7817     QCOMPARE(playerPauseSpy.count(), 1);
7818     QCOMPARE(playerStopSpy.count(), 1);
7819     QCOMPARE(skipNextTrackSpy.count(), 0);
7820     QCOMPARE(seekSpy.count(), 0);
7821 
7822     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
7823 
7824     myPlayer.playPause();
7825 
7826     QCOMPARE(currentTrackChangedSpy.count(), 2);
7827     QCOMPARE(playListModelChangedSpy.count(), 1);
7828     QCOMPARE(playerSourceChangedSpy.count(), 3);
7829     QCOMPARE(urlRoleChangedSpy.count(), 1);
7830     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7831     QCOMPARE(playerStatusChangedSpy.count(), 6);
7832     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
7833     QCOMPARE(playerErrorChangedSpy.count(), 0);
7834     QCOMPARE(persistentStateChangedSpy.count(), 0);
7835     QCOMPARE(playerPlaySpy.count(), 1);
7836     QCOMPARE(playerPauseSpy.count(), 1);
7837     QCOMPARE(playerStopSpy.count(), 1);
7838     QCOMPARE(skipNextTrackSpy.count(), 0);
7839     QCOMPARE(seekSpy.count(), 0);
7840 
7841     QCOMPARE(playerPlaySpy.wait(100), true);
7842 
7843     QCOMPARE(currentTrackChangedSpy.count(), 2);
7844     QCOMPARE(playListModelChangedSpy.count(), 1);
7845     QCOMPARE(playerSourceChangedSpy.count(), 3);
7846     QCOMPARE(urlRoleChangedSpy.count(), 1);
7847     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7848     QCOMPARE(playerStatusChangedSpy.count(), 6);
7849     QCOMPARE(playerPlaybackStateChangedSpy.count(), 3);
7850     QCOMPARE(playerErrorChangedSpy.count(), 0);
7851     QCOMPARE(persistentStateChangedSpy.count(), 0);
7852     QCOMPARE(playerPlaySpy.count(), 2);
7853     QCOMPARE(playerPauseSpy.count(), 1);
7854     QCOMPARE(playerStopSpy.count(), 1);
7855     QCOMPARE(skipNextTrackSpy.count(), 0);
7856     QCOMPARE(seekSpy.count(), 0);
7857 
7858     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
7859 
7860     QCOMPARE(currentTrackChangedSpy.count(), 2);
7861     QCOMPARE(playListModelChangedSpy.count(), 1);
7862     QCOMPARE(playerSourceChangedSpy.count(), 3);
7863     QCOMPARE(urlRoleChangedSpy.count(), 1);
7864     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7865     QCOMPARE(playerStatusChangedSpy.count(), 6);
7866     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
7867     QCOMPARE(playerErrorChangedSpy.count(), 0);
7868     QCOMPARE(persistentStateChangedSpy.count(), 0);
7869     QCOMPARE(playerPlaySpy.count(), 2);
7870     QCOMPARE(playerPauseSpy.count(), 1);
7871     QCOMPARE(playerStopSpy.count(), 1);
7872     QCOMPARE(skipNextTrackSpy.count(), 0);
7873     QCOMPARE(seekSpy.count(), 0);
7874 
7875     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
7876 
7877     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
7878 
7879     QCOMPARE(currentTrackChangedSpy.count(), 2);
7880     QCOMPARE(playListModelChangedSpy.count(), 1);
7881     QCOMPARE(playerSourceChangedSpy.count(), 3);
7882     QCOMPARE(urlRoleChangedSpy.count(), 1);
7883     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
7884     QCOMPARE(playerStatusChangedSpy.count(), 7);
7885     QCOMPARE(playerPlaybackStateChangedSpy.count(), 4);
7886     QCOMPARE(playerErrorChangedSpy.count(), 0);
7887     QCOMPARE(persistentStateChangedSpy.count(), 0);
7888     QCOMPARE(playerPlaySpy.count(), 2);
7889     QCOMPARE(playerPauseSpy.count(), 1);
7890     QCOMPARE(playerStopSpy.count(), 1);
7891     QCOMPARE(skipNextTrackSpy.count(), 0);
7892     QCOMPARE(seekSpy.count(), 0);
7893 
7894     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
7895 }
7896 
7897 void ManageAudioPlayerTest::testRestoreSettingsNoPlayWrongTrack()
7898 {
7899     Elisa::ElisaConfiguration::self()->setDefaults();
7900     ManageAudioPlayer myPlayer;
7901     QStandardItemModel myPlayList;
7902 
7903     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
7904     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
7905     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
7906     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
7907     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
7908     QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged);
7909     QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged);
7910     QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged);
7911     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
7912     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
7913     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
7914     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
7915     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
7916     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
7917     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
7918     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
7919     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
7920 
7921     myPlayList.appendRow(new QStandardItem);
7922     myPlayList.appendRow(new QStandardItem);
7923     myPlayList.appendRow(new QStandardItem);
7924 
7925     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
7926     myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole);
7927     myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole);
7928     myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole);
7929     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
7930     myPlayList.item(1, 0)->setData(QStringLiteral("title2"), ManageAudioPlayerTest::TitleRole);
7931     myPlayList.item(1, 0)->setData(QStringLiteral("artist2"), ManageAudioPlayerTest::ArtistRole);
7932     myPlayList.item(1, 0)->setData(QStringLiteral("album2"), ManageAudioPlayerTest::AlbumRole);
7933     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
7934 
7935     QCOMPARE(currentTrackChangedSpy.count(), 0);
7936     QCOMPARE(playListModelChangedSpy.count(), 0);
7937     QCOMPARE(playerSourceChangedSpy.count(), 0);
7938     QCOMPARE(urlRoleChangedSpy.count(), 0);
7939     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7940     QCOMPARE(titleRoleChangedSpy.count(), 0);
7941     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
7942     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7943     QCOMPARE(playerStatusChangedSpy.count(), 0);
7944     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7945     QCOMPARE(playerErrorChangedSpy.count(), 0);
7946     QCOMPARE(persistentStateChangedSpy.count(), 0);
7947     QCOMPARE(playerPlaySpy.count(), 0);
7948     QCOMPARE(playerPauseSpy.count(), 0);
7949     QCOMPARE(playerStopSpy.count(), 0);
7950     QCOMPARE(skipNextTrackSpy.count(), 0);
7951     QCOMPARE(seekSpy.count(), 0);
7952     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7953     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7954     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7955 
7956     myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole);
7957 
7958     QCOMPARE(currentTrackChangedSpy.count(), 0);
7959     QCOMPARE(playListModelChangedSpy.count(), 0);
7960     QCOMPARE(playerSourceChangedSpy.count(), 0);
7961     QCOMPARE(urlRoleChangedSpy.count(), 0);
7962     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7963     QCOMPARE(titleRoleChangedSpy.count(), 1);
7964     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
7965     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7966     QCOMPARE(playerStatusChangedSpy.count(), 0);
7967     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7968     QCOMPARE(playerErrorChangedSpy.count(), 0);
7969     QCOMPARE(persistentStateChangedSpy.count(), 0);
7970     QCOMPARE(playerPlaySpy.count(), 0);
7971     QCOMPARE(playerPauseSpy.count(), 0);
7972     QCOMPARE(playerStopSpy.count(), 0);
7973     QCOMPARE(skipNextTrackSpy.count(), 0);
7974     QCOMPARE(seekSpy.count(), 0);
7975     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7976     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7977     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
7978 
7979     QCOMPARE(myPlayer.titleRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole));
7980 
7981     myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole);
7982 
7983     QCOMPARE(currentTrackChangedSpy.count(), 0);
7984     QCOMPARE(playListModelChangedSpy.count(), 0);
7985     QCOMPARE(playerSourceChangedSpy.count(), 0);
7986     QCOMPARE(urlRoleChangedSpy.count(), 0);
7987     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
7988     QCOMPARE(titleRoleChangedSpy.count(), 1);
7989     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
7990     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
7991     QCOMPARE(playerStatusChangedSpy.count(), 0);
7992     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
7993     QCOMPARE(playerErrorChangedSpy.count(), 0);
7994     QCOMPARE(persistentStateChangedSpy.count(), 0);
7995     QCOMPARE(playerPlaySpy.count(), 0);
7996     QCOMPARE(playerPauseSpy.count(), 0);
7997     QCOMPARE(playerStopSpy.count(), 0);
7998     QCOMPARE(skipNextTrackSpy.count(), 0);
7999     QCOMPARE(seekSpy.count(), 0);
8000     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8001     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8002     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8003 
8004     QCOMPARE(myPlayer.artistNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole));
8005 
8006     myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole);
8007 
8008     QCOMPARE(currentTrackChangedSpy.count(), 0);
8009     QCOMPARE(playListModelChangedSpy.count(), 0);
8010     QCOMPARE(playerSourceChangedSpy.count(), 0);
8011     QCOMPARE(urlRoleChangedSpy.count(), 0);
8012     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8013     QCOMPARE(titleRoleChangedSpy.count(), 1);
8014     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8015     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8016     QCOMPARE(playerStatusChangedSpy.count(), 0);
8017     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8018     QCOMPARE(playerErrorChangedSpy.count(), 0);
8019     QCOMPARE(persistentStateChangedSpy.count(), 0);
8020     QCOMPARE(playerPlaySpy.count(), 0);
8021     QCOMPARE(playerPauseSpy.count(), 0);
8022     QCOMPARE(playerStopSpy.count(), 0);
8023     QCOMPARE(skipNextTrackSpy.count(), 0);
8024     QCOMPARE(seekSpy.count(), 0);
8025     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8026     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8027     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8028 
8029     QCOMPARE(myPlayer.albumNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole));
8030 
8031     QCOMPARE(currentTrackChangedSpy.count(), 0);
8032     QCOMPARE(playListModelChangedSpy.count(), 0);
8033     QCOMPARE(playerSourceChangedSpy.count(), 0);
8034     QCOMPARE(urlRoleChangedSpy.count(), 0);
8035     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8036     QCOMPARE(titleRoleChangedSpy.count(), 1);
8037     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8038     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8039     QCOMPARE(playerStatusChangedSpy.count(), 0);
8040     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8041     QCOMPARE(playerErrorChangedSpy.count(), 0);
8042     QCOMPARE(persistentStateChangedSpy.count(), 0);
8043     QCOMPARE(playerPlaySpy.count(), 0);
8044     QCOMPARE(playerPauseSpy.count(), 0);
8045     QCOMPARE(playerStopSpy.count(), 0);
8046     QCOMPARE(skipNextTrackSpy.count(), 0);
8047     QCOMPARE(seekSpy.count(), 0);
8048     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8049     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8050     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8051 
8052     myPlayer.setPlayListModel(&myPlayList);
8053 
8054     QCOMPARE(currentTrackChangedSpy.count(), 0);
8055     QCOMPARE(playListModelChangedSpy.count(), 1);
8056     QCOMPARE(playerSourceChangedSpy.count(), 0);
8057     QCOMPARE(urlRoleChangedSpy.count(), 0);
8058     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8059     QCOMPARE(titleRoleChangedSpy.count(), 1);
8060     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8061     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8062     QCOMPARE(playerStatusChangedSpy.count(), 0);
8063     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8064     QCOMPARE(playerErrorChangedSpy.count(), 0);
8065     QCOMPARE(persistentStateChangedSpy.count(), 0);
8066     QCOMPARE(playerPlaySpy.count(), 0);
8067     QCOMPARE(playerPauseSpy.count(), 0);
8068     QCOMPARE(playerStopSpy.count(), 0);
8069     QCOMPARE(skipNextTrackSpy.count(), 0);
8070     QCOMPARE(seekSpy.count(), 0);
8071     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8072     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8073     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8074 
8075     QVariantMap settings;
8076     settings[QStringLiteral("isPlaying")] = true;
8077     settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title");
8078     settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist");
8079     settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album");
8080 
8081     myPlayer.setPersistentState(settings);
8082 
8083     QCOMPARE(currentTrackChangedSpy.count(), 0);
8084     QCOMPARE(playListModelChangedSpy.count(), 1);
8085     QCOMPARE(playerSourceChangedSpy.count(), 0);
8086     QCOMPARE(urlRoleChangedSpy.count(), 0);
8087     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8088     QCOMPARE(titleRoleChangedSpy.count(), 1);
8089     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8090     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8091     QCOMPARE(playerStatusChangedSpy.count(), 0);
8092     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8093     QCOMPARE(playerErrorChangedSpy.count(), 0);
8094     QCOMPARE(persistentStateChangedSpy.count(), 1);
8095     QCOMPARE(playerPlaySpy.count(), 0);
8096     QCOMPARE(playerPauseSpy.count(), 0);
8097     QCOMPARE(playerStopSpy.count(), 0);
8098     QCOMPARE(skipNextTrackSpy.count(), 0);
8099     QCOMPARE(seekSpy.count(), 0);
8100     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8101     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8102     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8103 
8104     myPlayer.setCurrentTrack(myPlayList.index(1, 0));
8105 
8106     QCOMPARE(currentTrackChangedSpy.count(), 1);
8107     QCOMPARE(playListModelChangedSpy.count(), 1);
8108     QCOMPARE(playerSourceChangedSpy.count(), 1);
8109     QCOMPARE(urlRoleChangedSpy.count(), 0);
8110     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8111     QCOMPARE(titleRoleChangedSpy.count(), 1);
8112     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8113     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8114     QCOMPARE(playerStatusChangedSpy.count(), 0);
8115     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8116     QCOMPARE(playerErrorChangedSpy.count(), 0);
8117     QCOMPARE(persistentStateChangedSpy.count(), 1);
8118     QCOMPARE(playerPlaySpy.count(), 0);
8119     QCOMPARE(playerPauseSpy.count(), 0);
8120     QCOMPARE(playerStopSpy.count(), 0);
8121     QCOMPARE(skipNextTrackSpy.count(), 0);
8122     QCOMPARE(seekSpy.count(), 0);
8123     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8124     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8125     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8126 
8127     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0)));
8128 
8129     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
8130 
8131     QCOMPARE(currentTrackChangedSpy.count(), 1);
8132     QCOMPARE(playListModelChangedSpy.count(), 1);
8133     QCOMPARE(playerSourceChangedSpy.count(), 2);
8134     QCOMPARE(urlRoleChangedSpy.count(), 1);
8135     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8136     QCOMPARE(titleRoleChangedSpy.count(), 1);
8137     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8138     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8139     QCOMPARE(playerStatusChangedSpy.count(), 0);
8140     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8141     QCOMPARE(playerErrorChangedSpy.count(), 0);
8142     QCOMPARE(persistentStateChangedSpy.count(), 1);
8143     QCOMPARE(playerPlaySpy.count(), 0);
8144     QCOMPARE(playerPauseSpy.count(), 0);
8145     QCOMPARE(playerStopSpy.count(), 0);
8146     QCOMPARE(skipNextTrackSpy.count(), 0);
8147     QCOMPARE(seekSpy.count(), 0);
8148     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8149     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8150     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8151 
8152     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
8153     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3")));
8154 
8155     QCOMPARE(playerPlaySpy.wait(500), false);
8156 
8157     QCOMPARE(currentTrackChangedSpy.count(), 1);
8158     QCOMPARE(playListModelChangedSpy.count(), 1);
8159     QCOMPARE(playerSourceChangedSpy.count(), 2);
8160     QCOMPARE(urlRoleChangedSpy.count(), 1);
8161     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8162     QCOMPARE(titleRoleChangedSpy.count(), 1);
8163     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8164     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8165     QCOMPARE(playerStatusChangedSpy.count(), 0);
8166     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8167     QCOMPARE(playerErrorChangedSpy.count(), 0);
8168     QCOMPARE(persistentStateChangedSpy.count(), 1);
8169     QCOMPARE(playerPlaySpy.count(), 0);
8170     QCOMPARE(playerPauseSpy.count(), 0);
8171     QCOMPARE(playerStopSpy.count(), 0);
8172     QCOMPARE(skipNextTrackSpy.count(), 0);
8173     QCOMPARE(seekSpy.count(), 0);
8174     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8175     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8176     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8177 
8178     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
8179 
8180     QCOMPARE(currentTrackChangedSpy.count(), 1);
8181     QCOMPARE(playListModelChangedSpy.count(), 1);
8182     QCOMPARE(playerSourceChangedSpy.count(), 2);
8183     QCOMPARE(urlRoleChangedSpy.count(), 1);
8184     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8185     QCOMPARE(titleRoleChangedSpy.count(), 1);
8186     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8187     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8188     QCOMPARE(playerStatusChangedSpy.count(), 0);
8189     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8190     QCOMPARE(playerErrorChangedSpy.count(), 0);
8191     QCOMPARE(persistentStateChangedSpy.count(), 1);
8192     QCOMPARE(playerPlaySpy.count(), 0);
8193     QCOMPARE(playerPauseSpy.count(), 0);
8194     QCOMPARE(playerStopSpy.count(), 0);
8195     QCOMPARE(skipNextTrackSpy.count(), 0);
8196     QCOMPARE(seekSpy.count(), 0);
8197     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8198     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8199     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8200 
8201     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
8202 
8203     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
8204 
8205     QCOMPARE(currentTrackChangedSpy.count(), 1);
8206     QCOMPARE(playListModelChangedSpy.count(), 1);
8207     QCOMPARE(playerSourceChangedSpy.count(), 2);
8208     QCOMPARE(urlRoleChangedSpy.count(), 1);
8209     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8210     QCOMPARE(titleRoleChangedSpy.count(), 1);
8211     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8212     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8213     QCOMPARE(playerStatusChangedSpy.count(), 1);
8214     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8215     QCOMPARE(playerErrorChangedSpy.count(), 0);
8216     QCOMPARE(persistentStateChangedSpy.count(), 1);
8217     QCOMPARE(playerPlaySpy.count(), 0);
8218     QCOMPARE(playerPauseSpy.count(), 0);
8219     QCOMPARE(playerStopSpy.count(), 0);
8220     QCOMPARE(skipNextTrackSpy.count(), 0);
8221     QCOMPARE(seekSpy.count(), 0);
8222     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8223     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8224     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8225 
8226     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
8227 
8228     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
8229 
8230     QCOMPARE(currentTrackChangedSpy.count(), 1);
8231     QCOMPARE(playListModelChangedSpy.count(), 1);
8232     QCOMPARE(playerSourceChangedSpy.count(), 2);
8233     QCOMPARE(urlRoleChangedSpy.count(), 1);
8234     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8235     QCOMPARE(titleRoleChangedSpy.count(), 1);
8236     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8237     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8238     QCOMPARE(playerStatusChangedSpy.count(), 1);
8239     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8240     QCOMPARE(playerErrorChangedSpy.count(), 0);
8241     QCOMPARE(persistentStateChangedSpy.count(), 1);
8242     QCOMPARE(playerPlaySpy.count(), 0);
8243     QCOMPARE(playerPauseSpy.count(), 0);
8244     QCOMPARE(playerStopSpy.count(), 0);
8245     QCOMPARE(skipNextTrackSpy.count(), 0);
8246     QCOMPARE(seekSpy.count(), 0);
8247     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8248     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8249     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8250 
8251     myPlayer.setPlayerError(QMediaPlayer::NoError);
8252 
8253     QCOMPARE(currentTrackChangedSpy.count(), 1);
8254     QCOMPARE(playListModelChangedSpy.count(), 1);
8255     QCOMPARE(playerSourceChangedSpy.count(), 2);
8256     QCOMPARE(urlRoleChangedSpy.count(), 1);
8257     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8258     QCOMPARE(titleRoleChangedSpy.count(), 1);
8259     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8260     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8261     QCOMPARE(playerStatusChangedSpy.count(), 1);
8262     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8263     QCOMPARE(playerErrorChangedSpy.count(), 0);
8264     QCOMPARE(persistentStateChangedSpy.count(), 1);
8265     QCOMPARE(playerPlaySpy.count(), 0);
8266     QCOMPARE(playerPauseSpy.count(), 0);
8267     QCOMPARE(playerStopSpy.count(), 0);
8268     QCOMPARE(skipNextTrackSpy.count(), 0);
8269     QCOMPARE(seekSpy.count(), 0);
8270     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8271     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8272     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8273 
8274     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
8275 
8276     QCOMPARE(currentTrackChangedSpy.count(), 1);
8277     QCOMPARE(playListModelChangedSpy.count(), 1);
8278     QCOMPARE(playerSourceChangedSpy.count(), 2);
8279     QCOMPARE(urlRoleChangedSpy.count(), 1);
8280     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8281     QCOMPARE(titleRoleChangedSpy.count(), 1);
8282     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8283     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8284     QCOMPARE(playerStatusChangedSpy.count(), 2);
8285     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8286     QCOMPARE(playerErrorChangedSpy.count(), 0);
8287     QCOMPARE(persistentStateChangedSpy.count(), 1);
8288     QCOMPARE(playerPlaySpy.count(), 0);
8289     QCOMPARE(playerPauseSpy.count(), 0);
8290     QCOMPARE(playerStopSpy.count(), 0);
8291     QCOMPARE(skipNextTrackSpy.count(), 0);
8292     QCOMPARE(seekSpy.count(), 0);
8293     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8294     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8295     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8296 
8297     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
8298 
8299     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
8300 
8301     QCOMPARE(currentTrackChangedSpy.count(), 1);
8302     QCOMPARE(playListModelChangedSpy.count(), 1);
8303     QCOMPARE(playerSourceChangedSpy.count(), 2);
8304     QCOMPARE(urlRoleChangedSpy.count(), 1);
8305     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8306     QCOMPARE(titleRoleChangedSpy.count(), 1);
8307     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8308     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8309     QCOMPARE(playerStatusChangedSpy.count(), 3);
8310     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8311     QCOMPARE(playerErrorChangedSpy.count(), 0);
8312     QCOMPARE(persistentStateChangedSpy.count(), 1);
8313     QCOMPARE(playerPlaySpy.count(), 0);
8314     QCOMPARE(playerPauseSpy.count(), 0);
8315     QCOMPARE(playerStopSpy.count(), 0);
8316     QCOMPARE(skipNextTrackSpy.count(), 0);
8317     QCOMPARE(seekSpy.count(), 0);
8318     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8319     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8320     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8321 
8322     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
8323 
8324     QCOMPARE(playerPlaySpy.wait(500), false);
8325 
8326     QCOMPARE(currentTrackChangedSpy.count(), 1);
8327     QCOMPARE(playListModelChangedSpy.count(), 1);
8328     QCOMPARE(playerSourceChangedSpy.count(), 2);
8329     QCOMPARE(urlRoleChangedSpy.count(), 1);
8330     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8331     QCOMPARE(titleRoleChangedSpy.count(), 1);
8332     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8333     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8334     QCOMPARE(playerStatusChangedSpy.count(), 3);
8335     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8336     QCOMPARE(playerErrorChangedSpy.count(), 0);
8337     QCOMPARE(persistentStateChangedSpy.count(), 1);
8338     QCOMPARE(playerPlaySpy.count(), 0);
8339     QCOMPARE(playerPauseSpy.count(), 0);
8340     QCOMPARE(playerStopSpy.count(), 0);
8341     QCOMPARE(skipNextTrackSpy.count(), 0);
8342     QCOMPARE(seekSpy.count(), 0);
8343     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8344     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8345     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8346 }
8347 
8348 void ManageAudioPlayerTest::testRestorePlayListAndSettingsAutomaticPlay()
8349 {
8350     Elisa::ElisaConfiguration::self()->setDefaults();
8351     Elisa::ElisaConfiguration::self()->setPlayAtStartup(true);
8352     ManageAudioPlayer myPlayer;
8353     QStandardItemModel myPlayList;
8354 
8355     QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged);
8356     QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged);
8357     QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged);
8358     QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged);
8359     QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged);
8360     QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged);
8361     QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged);
8362     QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged);
8363     QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged);
8364     QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged);
8365     QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged);
8366     QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged);
8367     QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay);
8368     QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause);
8369     QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop);
8370     QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack);
8371     QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek);
8372 
8373     myPlayList.appendRow(new QStandardItem);
8374     myPlayList.appendRow(new QStandardItem);
8375     myPlayList.appendRow(new QStandardItem);
8376 
8377     myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole);
8378     myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole);
8379     myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole);
8380     myPlayList.item(1, 0)->setData(QStringLiteral("title2"), ManageAudioPlayerTest::TitleRole);
8381     myPlayList.item(1, 0)->setData(QStringLiteral("artist2"), ManageAudioPlayerTest::ArtistRole);
8382     myPlayList.item(1, 0)->setData(QStringLiteral("album2"), ManageAudioPlayerTest::AlbumRole);
8383     myPlayList.item(2, 0)->setData(QStringLiteral("title3"), ManageAudioPlayerTest::TitleRole);
8384     myPlayList.item(2, 0)->setData(QStringLiteral("artist3"), ManageAudioPlayerTest::ArtistRole);
8385     myPlayList.item(2, 0)->setData(QStringLiteral("album3"), ManageAudioPlayerTest::AlbumRole);
8386 
8387     QCOMPARE(currentTrackChangedSpy.count(), 0);
8388     QCOMPARE(playListModelChangedSpy.count(), 0);
8389     QCOMPARE(playerSourceChangedSpy.count(), 0);
8390     QCOMPARE(urlRoleChangedSpy.count(), 0);
8391     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8392     QCOMPARE(titleRoleChangedSpy.count(), 0);
8393     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
8394     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
8395     QCOMPARE(playerStatusChangedSpy.count(), 0);
8396     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8397     QCOMPARE(playerErrorChangedSpy.count(), 0);
8398     QCOMPARE(persistentStateChangedSpy.count(), 0);
8399     QCOMPARE(playerPlaySpy.count(), 0);
8400     QCOMPARE(playerPauseSpy.count(), 0);
8401     QCOMPARE(playerStopSpy.count(), 0);
8402     QCOMPARE(skipNextTrackSpy.count(), 0);
8403     QCOMPARE(seekSpy.count(), 0);
8404     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8405     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8406     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8407 
8408     myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole);
8409 
8410     QCOMPARE(currentTrackChangedSpy.count(), 0);
8411     QCOMPARE(playListModelChangedSpy.count(), 0);
8412     QCOMPARE(playerSourceChangedSpy.count(), 0);
8413     QCOMPARE(urlRoleChangedSpy.count(), 0);
8414     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8415     QCOMPARE(titleRoleChangedSpy.count(), 1);
8416     QCOMPARE(artistNameRoleChangedSpy.count(), 0);
8417     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
8418     QCOMPARE(playerStatusChangedSpy.count(), 0);
8419     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8420     QCOMPARE(playerErrorChangedSpy.count(), 0);
8421     QCOMPARE(persistentStateChangedSpy.count(), 0);
8422     QCOMPARE(playerPlaySpy.count(), 0);
8423     QCOMPARE(playerPauseSpy.count(), 0);
8424     QCOMPARE(playerStopSpy.count(), 0);
8425     QCOMPARE(skipNextTrackSpy.count(), 0);
8426     QCOMPARE(seekSpy.count(), 0);
8427     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8428     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8429     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8430 
8431     QCOMPARE(myPlayer.titleRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole));
8432 
8433     myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole);
8434 
8435     QCOMPARE(currentTrackChangedSpy.count(), 0);
8436     QCOMPARE(playListModelChangedSpy.count(), 0);
8437     QCOMPARE(playerSourceChangedSpy.count(), 0);
8438     QCOMPARE(urlRoleChangedSpy.count(), 0);
8439     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8440     QCOMPARE(titleRoleChangedSpy.count(), 1);
8441     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8442     QCOMPARE(albumNameRoleChangedSpy.count(), 0);
8443     QCOMPARE(playerStatusChangedSpy.count(), 0);
8444     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8445     QCOMPARE(playerErrorChangedSpy.count(), 0);
8446     QCOMPARE(persistentStateChangedSpy.count(), 0);
8447     QCOMPARE(playerPlaySpy.count(), 0);
8448     QCOMPARE(playerPauseSpy.count(), 0);
8449     QCOMPARE(playerStopSpy.count(), 0);
8450     QCOMPARE(skipNextTrackSpy.count(), 0);
8451     QCOMPARE(seekSpy.count(), 0);
8452     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8453     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8454     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8455 
8456     QCOMPARE(myPlayer.artistNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole));
8457 
8458     myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole);
8459 
8460     QCOMPARE(currentTrackChangedSpy.count(), 0);
8461     QCOMPARE(playListModelChangedSpy.count(), 0);
8462     QCOMPARE(playerSourceChangedSpy.count(), 0);
8463     QCOMPARE(urlRoleChangedSpy.count(), 0);
8464     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8465     QCOMPARE(titleRoleChangedSpy.count(), 1);
8466     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8467     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8468     QCOMPARE(playerStatusChangedSpy.count(), 0);
8469     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8470     QCOMPARE(playerErrorChangedSpy.count(), 0);
8471     QCOMPARE(persistentStateChangedSpy.count(), 0);
8472     QCOMPARE(playerPlaySpy.count(), 0);
8473     QCOMPARE(playerPauseSpy.count(), 0);
8474     QCOMPARE(playerStopSpy.count(), 0);
8475     QCOMPARE(skipNextTrackSpy.count(), 0);
8476     QCOMPARE(seekSpy.count(), 0);
8477     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8478     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8479     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8480 
8481     QCOMPARE(myPlayer.albumNameRole(), static_cast<int>(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole));
8482 
8483     QCOMPARE(currentTrackChangedSpy.count(), 0);
8484     QCOMPARE(playListModelChangedSpy.count(), 0);
8485     QCOMPARE(playerSourceChangedSpy.count(), 0);
8486     QCOMPARE(urlRoleChangedSpy.count(), 0);
8487     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8488     QCOMPARE(titleRoleChangedSpy.count(), 1);
8489     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8490     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8491     QCOMPARE(playerStatusChangedSpy.count(), 0);
8492     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8493     QCOMPARE(playerErrorChangedSpy.count(), 0);
8494     QCOMPARE(persistentStateChangedSpy.count(), 0);
8495     QCOMPARE(playerPlaySpy.count(), 0);
8496     QCOMPARE(playerPauseSpy.count(), 0);
8497     QCOMPARE(playerStopSpy.count(), 0);
8498     QCOMPARE(skipNextTrackSpy.count(), 0);
8499     QCOMPARE(seekSpy.count(), 0);
8500     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8501     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8502     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8503 
8504     myPlayer.setPlayListModel(&myPlayList);
8505 
8506     QCOMPARE(currentTrackChangedSpy.count(), 0);
8507     QCOMPARE(playListModelChangedSpy.count(), 1);
8508     QCOMPARE(playerSourceChangedSpy.count(), 0);
8509     QCOMPARE(urlRoleChangedSpy.count(), 0);
8510     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8511     QCOMPARE(titleRoleChangedSpy.count(), 1);
8512     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8513     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8514     QCOMPARE(playerStatusChangedSpy.count(), 0);
8515     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8516     QCOMPARE(playerErrorChangedSpy.count(), 0);
8517     QCOMPARE(persistentStateChangedSpy.count(), 0);
8518     QCOMPARE(playerPlaySpy.count(), 0);
8519     QCOMPARE(playerPauseSpy.count(), 0);
8520     QCOMPARE(playerStopSpy.count(), 0);
8521     QCOMPARE(skipNextTrackSpy.count(), 0);
8522     QCOMPARE(seekSpy.count(), 0);
8523     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8524     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8525     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8526 
8527     QVariantMap settings;
8528     settings[QStringLiteral("isPlaying")] = true;
8529     settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title");
8530     settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist");
8531     settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album");
8532 
8533     myPlayer.setPersistentState(settings);
8534 
8535     QCOMPARE(currentTrackChangedSpy.count(), 0);
8536     QCOMPARE(playListModelChangedSpy.count(), 1);
8537     QCOMPARE(playerSourceChangedSpy.count(), 0);
8538     QCOMPARE(urlRoleChangedSpy.count(), 0);
8539     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8540     QCOMPARE(titleRoleChangedSpy.count(), 1);
8541     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8542     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8543     QCOMPARE(playerStatusChangedSpy.count(), 0);
8544     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8545     QCOMPARE(playerErrorChangedSpy.count(), 0);
8546     QCOMPARE(persistentStateChangedSpy.count(), 1);
8547     QCOMPARE(playerPlaySpy.count(), 0);
8548     QCOMPARE(playerPauseSpy.count(), 0);
8549     QCOMPARE(playerStopSpy.count(), 0);
8550     QCOMPARE(skipNextTrackSpy.count(), 0);
8551     QCOMPARE(seekSpy.count(), 0);
8552     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8553     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8554     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8555 
8556     myPlayer.setCurrentTrack(myPlayList.index(0, 0));
8557 
8558     QCOMPARE(currentTrackChangedSpy.count(), 1);
8559     QCOMPARE(playListModelChangedSpy.count(), 1);
8560     QCOMPARE(playerSourceChangedSpy.count(), 1);
8561     QCOMPARE(urlRoleChangedSpy.count(), 0);
8562     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8563     QCOMPARE(titleRoleChangedSpy.count(), 1);
8564     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8565     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8566     QCOMPARE(playerStatusChangedSpy.count(), 0);
8567     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8568     QCOMPARE(playerErrorChangedSpy.count(), 0);
8569     QCOMPARE(persistentStateChangedSpy.count(), 1);
8570     QCOMPARE(playerPlaySpy.count(), 0);
8571     QCOMPARE(playerPauseSpy.count(), 0);
8572     QCOMPARE(playerStopSpy.count(), 0);
8573     QCOMPARE(skipNextTrackSpy.count(), 0);
8574     QCOMPARE(seekSpy.count(), 0);
8575     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8576     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8577     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8578 
8579     QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0)));
8580 
8581     myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole);
8582 
8583     QCOMPARE(currentTrackChangedSpy.count(), 1);
8584     QCOMPARE(playListModelChangedSpy.count(), 1);
8585     QCOMPARE(playerSourceChangedSpy.count(), 1);
8586     QCOMPARE(urlRoleChangedSpy.count(), 1);
8587     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8588     QCOMPARE(titleRoleChangedSpy.count(), 1);
8589     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8590     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8591     QCOMPARE(playerStatusChangedSpy.count(), 0);
8592     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8593     QCOMPARE(playerErrorChangedSpy.count(), 0);
8594     QCOMPARE(persistentStateChangedSpy.count(), 1);
8595     QCOMPARE(playerPlaySpy.count(), 0);
8596     QCOMPARE(playerPauseSpy.count(), 0);
8597     QCOMPARE(playerStopSpy.count(), 0);
8598     QCOMPARE(skipNextTrackSpy.count(), 0);
8599     QCOMPARE(seekSpy.count(), 0);
8600     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8601     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8602     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8603 
8604     QCOMPARE(myPlayer.urlRole(), static_cast<int>(ManageAudioPlayerTest::ResourceRole));
8605 
8606     QCOMPARE(playerPlaySpy.wait(500), false);
8607 
8608     QCOMPARE(currentTrackChangedSpy.count(), 1);
8609     QCOMPARE(playListModelChangedSpy.count(), 1);
8610     QCOMPARE(playerSourceChangedSpy.count(), 1);
8611     QCOMPARE(urlRoleChangedSpy.count(), 1);
8612     QCOMPARE(isPlayingRoleChangedSpy.count(), 0);
8613     QCOMPARE(titleRoleChangedSpy.count(), 1);
8614     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8615     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8616     QCOMPARE(playerStatusChangedSpy.count(), 0);
8617     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8618     QCOMPARE(playerErrorChangedSpy.count(), 0);
8619     QCOMPARE(persistentStateChangedSpy.count(), 1);
8620     QCOMPARE(playerPlaySpy.count(), 0);
8621     QCOMPARE(playerPauseSpy.count(), 0);
8622     QCOMPARE(playerStopSpy.count(), 0);
8623     QCOMPARE(skipNextTrackSpy.count(), 0);
8624     QCOMPARE(seekSpy.count(), 0);
8625     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8626     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8627     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8628 
8629     myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole);
8630 
8631     QCOMPARE(currentTrackChangedSpy.count(), 1);
8632     QCOMPARE(playListModelChangedSpy.count(), 1);
8633     QCOMPARE(playerSourceChangedSpy.count(), 1);
8634     QCOMPARE(urlRoleChangedSpy.count(), 1);
8635     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8636     QCOMPARE(titleRoleChangedSpy.count(), 1);
8637     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8638     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8639     QCOMPARE(playerStatusChangedSpy.count(), 0);
8640     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8641     QCOMPARE(playerErrorChangedSpy.count(), 0);
8642     QCOMPARE(persistentStateChangedSpy.count(), 1);
8643     QCOMPARE(playerPlaySpy.count(), 0);
8644     QCOMPARE(playerPauseSpy.count(), 0);
8645     QCOMPARE(playerStopSpy.count(), 0);
8646     QCOMPARE(skipNextTrackSpy.count(), 0);
8647     QCOMPARE(seekSpy.count(), 0);
8648     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8649     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8650     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8651 
8652     QCOMPARE(myPlayer.isPlayingRole(), static_cast<int>(ManageAudioPlayerTest::IsPlayingRole));
8653 
8654     myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole);
8655     myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole);
8656     myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole);
8657 
8658     QCOMPARE(currentTrackChangedSpy.count(), 1);
8659     QCOMPARE(playListModelChangedSpy.count(), 1);
8660     QCOMPARE(playerSourceChangedSpy.count(), 2);
8661     QCOMPARE(urlRoleChangedSpy.count(), 1);
8662     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8663     QCOMPARE(titleRoleChangedSpy.count(), 1);
8664     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8665     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8666     QCOMPARE(playerStatusChangedSpy.count(), 0);
8667     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8668     QCOMPARE(playerErrorChangedSpy.count(), 0);
8669     QCOMPARE(persistentStateChangedSpy.count(), 1);
8670     QCOMPARE(playerPlaySpy.count(), 0);
8671     QCOMPARE(playerPauseSpy.count(), 0);
8672     QCOMPARE(playerStopSpy.count(), 0);
8673     QCOMPARE(skipNextTrackSpy.count(), 0);
8674     QCOMPARE(seekSpy.count(), 0);
8675     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8676     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8677     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8678 
8679     QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3")));
8680 
8681     myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia);
8682 
8683     QCOMPARE(currentTrackChangedSpy.count(), 1);
8684     QCOMPARE(playListModelChangedSpy.count(), 1);
8685     QCOMPARE(playerSourceChangedSpy.count(), 2);
8686     QCOMPARE(urlRoleChangedSpy.count(), 1);
8687     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8688     QCOMPARE(titleRoleChangedSpy.count(), 1);
8689     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8690     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8691     QCOMPARE(playerStatusChangedSpy.count(), 1);
8692     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8693     QCOMPARE(playerErrorChangedSpy.count(), 0);
8694     QCOMPARE(persistentStateChangedSpy.count(), 1);
8695     QCOMPARE(playerPlaySpy.count(), 0);
8696     QCOMPARE(playerPauseSpy.count(), 0);
8697     QCOMPARE(playerStopSpy.count(), 0);
8698     QCOMPARE(skipNextTrackSpy.count(), 0);
8699     QCOMPARE(seekSpy.count(), 0);
8700     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8701     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8702     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8703 
8704     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia);
8705 
8706     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
8707 
8708     QCOMPARE(currentTrackChangedSpy.count(), 1);
8709     QCOMPARE(playListModelChangedSpy.count(), 1);
8710     QCOMPARE(playerSourceChangedSpy.count(), 2);
8711     QCOMPARE(urlRoleChangedSpy.count(), 1);
8712     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8713     QCOMPARE(titleRoleChangedSpy.count(), 1);
8714     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8715     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8716     QCOMPARE(playerStatusChangedSpy.count(), 1);
8717     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8718     QCOMPARE(playerErrorChangedSpy.count(), 0);
8719     QCOMPARE(persistentStateChangedSpy.count(), 1);
8720     QCOMPARE(playerPlaySpy.count(), 0);
8721     QCOMPARE(playerPauseSpy.count(), 0);
8722     QCOMPARE(playerStopSpy.count(), 0);
8723     QCOMPARE(skipNextTrackSpy.count(), 0);
8724     QCOMPARE(seekSpy.count(), 0);
8725     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8726     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8727     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8728 
8729     myPlayer.setPlayerError(QMediaPlayer::NoError);
8730 
8731     QCOMPARE(currentTrackChangedSpy.count(), 1);
8732     QCOMPARE(playListModelChangedSpy.count(), 1);
8733     QCOMPARE(playerSourceChangedSpy.count(), 2);
8734     QCOMPARE(urlRoleChangedSpy.count(), 1);
8735     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8736     QCOMPARE(titleRoleChangedSpy.count(), 1);
8737     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8738     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8739     QCOMPARE(playerStatusChangedSpy.count(), 1);
8740     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8741     QCOMPARE(playerErrorChangedSpy.count(), 0);
8742     QCOMPARE(persistentStateChangedSpy.count(), 1);
8743     QCOMPARE(playerPlaySpy.count(), 0);
8744     QCOMPARE(playerPauseSpy.count(), 0);
8745     QCOMPARE(playerStopSpy.count(), 0);
8746     QCOMPARE(skipNextTrackSpy.count(), 0);
8747     QCOMPARE(seekSpy.count(), 0);
8748     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8749     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8750     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8751 
8752     myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia);
8753 
8754     QCOMPARE(currentTrackChangedSpy.count(), 1);
8755     QCOMPARE(playListModelChangedSpy.count(), 1);
8756     QCOMPARE(playerSourceChangedSpy.count(), 2);
8757     QCOMPARE(urlRoleChangedSpy.count(), 1);
8758     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8759     QCOMPARE(titleRoleChangedSpy.count(), 1);
8760     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8761     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8762     QCOMPARE(playerStatusChangedSpy.count(), 2);
8763     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8764     QCOMPARE(playerErrorChangedSpy.count(), 0);
8765     QCOMPARE(persistentStateChangedSpy.count(), 1);
8766     QCOMPARE(playerPlaySpy.count(), 0);
8767     QCOMPARE(playerPauseSpy.count(), 0);
8768     QCOMPARE(playerStopSpy.count(), 0);
8769     QCOMPARE(skipNextTrackSpy.count(), 0);
8770     QCOMPARE(seekSpy.count(), 0);
8771     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8772     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8773     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8774 
8775     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia);
8776 
8777     myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia);
8778 
8779     QCOMPARE(currentTrackChangedSpy.count(), 1);
8780     QCOMPARE(playListModelChangedSpy.count(), 1);
8781     QCOMPARE(playerSourceChangedSpy.count(), 2);
8782     QCOMPARE(urlRoleChangedSpy.count(), 1);
8783     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8784     QCOMPARE(titleRoleChangedSpy.count(), 1);
8785     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8786     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8787     QCOMPARE(playerStatusChangedSpy.count(), 3);
8788     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8789     QCOMPARE(playerErrorChangedSpy.count(), 0);
8790     QCOMPARE(persistentStateChangedSpy.count(), 1);
8791     QCOMPARE(playerPlaySpy.count(), 0);
8792     QCOMPARE(playerPauseSpy.count(), 0);
8793     QCOMPARE(playerStopSpy.count(), 0);
8794     QCOMPARE(skipNextTrackSpy.count(), 0);
8795     QCOMPARE(seekSpy.count(), 0);
8796     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8797     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8798     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8799 
8800     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia);
8801 
8802     QCOMPARE(playerPlaySpy.wait(), true);
8803 
8804     QCOMPARE(currentTrackChangedSpy.count(), 1);
8805     QCOMPARE(playListModelChangedSpy.count(), 1);
8806     QCOMPARE(playerSourceChangedSpy.count(), 2);
8807     QCOMPARE(urlRoleChangedSpy.count(), 1);
8808     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8809     QCOMPARE(titleRoleChangedSpy.count(), 1);
8810     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8811     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8812     QCOMPARE(playerStatusChangedSpy.count(), 3);
8813     QCOMPARE(playerPlaybackStateChangedSpy.count(), 0);
8814     QCOMPARE(playerErrorChangedSpy.count(), 0);
8815     QCOMPARE(persistentStateChangedSpy.count(), 1);
8816     QCOMPARE(playerPlaySpy.count(), 1);
8817     QCOMPARE(playerPauseSpy.count(), 0);
8818     QCOMPARE(playerStopSpy.count(), 0);
8819     QCOMPARE(skipNextTrackSpy.count(), 0);
8820     QCOMPARE(seekSpy.count(), 0);
8821     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8822     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8823     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8824 
8825     myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState);
8826 
8827     QCOMPARE(currentTrackChangedSpy.count(), 1);
8828     QCOMPARE(playListModelChangedSpy.count(), 1);
8829     QCOMPARE(playerSourceChangedSpy.count(), 2);
8830     QCOMPARE(urlRoleChangedSpy.count(), 1);
8831     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8832     QCOMPARE(titleRoleChangedSpy.count(), 1);
8833     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8834     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8835     QCOMPARE(playerStatusChangedSpy.count(), 3);
8836     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
8837     QCOMPARE(playerErrorChangedSpy.count(), 0);
8838     QCOMPARE(persistentStateChangedSpy.count(), 1);
8839     QCOMPARE(playerPlaySpy.count(), 1);
8840     QCOMPARE(playerPauseSpy.count(), 0);
8841     QCOMPARE(playerStopSpy.count(), 0);
8842     QCOMPARE(skipNextTrackSpy.count(), 0);
8843     QCOMPARE(seekSpy.count(), 0);
8844     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
8845     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8846     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8847 
8848     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::PlayingState));
8849 
8850     myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia);
8851 
8852     QCOMPARE(currentTrackChangedSpy.count(), 1);
8853     QCOMPARE(playListModelChangedSpy.count(), 1);
8854     QCOMPARE(playerSourceChangedSpy.count(), 2);
8855     QCOMPARE(urlRoleChangedSpy.count(), 1);
8856     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8857     QCOMPARE(titleRoleChangedSpy.count(), 1);
8858     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8859     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8860     QCOMPARE(playerStatusChangedSpy.count(), 4);
8861     QCOMPARE(playerPlaybackStateChangedSpy.count(), 1);
8862     QCOMPARE(playerErrorChangedSpy.count(), 0);
8863     QCOMPARE(persistentStateChangedSpy.count(), 1);
8864     QCOMPARE(playerPlaySpy.count(), 1);
8865     QCOMPARE(playerPauseSpy.count(), 0);
8866     QCOMPARE(playerStopSpy.count(), 0);
8867     QCOMPARE(skipNextTrackSpy.count(), 0);
8868     QCOMPARE(seekSpy.count(), 0);
8869     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true);
8870     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8871     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8872 
8873     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia);
8874 
8875     myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState);
8876 
8877     QCOMPARE(currentTrackChangedSpy.count(), 1);
8878     QCOMPARE(playListModelChangedSpy.count(), 1);
8879     QCOMPARE(playerSourceChangedSpy.count(), 2);
8880     QCOMPARE(urlRoleChangedSpy.count(), 1);
8881     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8882     QCOMPARE(titleRoleChangedSpy.count(), 1);
8883     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8884     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8885     QCOMPARE(playerStatusChangedSpy.count(), 4);
8886     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
8887     QCOMPARE(playerErrorChangedSpy.count(), 0);
8888     QCOMPARE(persistentStateChangedSpy.count(), 1);
8889     QCOMPARE(playerPlaySpy.count(), 1);
8890     QCOMPARE(playerPauseSpy.count(), 0);
8891     QCOMPARE(playerStopSpy.count(), 0);
8892     QCOMPARE(skipNextTrackSpy.count(), 0);
8893     QCOMPARE(seekSpy.count(), 0);
8894     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8895     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8896     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8897 
8898     QCOMPARE(myPlayer.playerPlaybackState(), static_cast<int>(QMediaPlayer::StoppedState));
8899 
8900     QCOMPARE(skipNextTrackSpy.wait(), true);
8901 
8902     QCOMPARE(currentTrackChangedSpy.count(), 1);
8903     QCOMPARE(playListModelChangedSpy.count(), 1);
8904     QCOMPARE(playerSourceChangedSpy.count(), 2);
8905     QCOMPARE(urlRoleChangedSpy.count(), 1);
8906     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8907     QCOMPARE(titleRoleChangedSpy.count(), 1);
8908     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8909     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8910     QCOMPARE(playerStatusChangedSpy.count(), 4);
8911     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
8912     QCOMPARE(playerErrorChangedSpy.count(), 0);
8913     QCOMPARE(persistentStateChangedSpy.count(), 1);
8914     QCOMPARE(playerPlaySpy.count(), 1);
8915     QCOMPARE(playerPauseSpy.count(), 0);
8916     QCOMPARE(playerStopSpy.count(), 0);
8917     QCOMPARE(skipNextTrackSpy.count(), 1);
8918     QCOMPARE(seekSpy.count(), 0);
8919     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8920     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8921     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8922 
8923     myPlayer.setPlayerStatus(QMediaPlayer::InvalidMedia);
8924 
8925     QCOMPARE(currentTrackChangedSpy.count(), 1);
8926     QCOMPARE(playListModelChangedSpy.count(), 1);
8927     QCOMPARE(playerSourceChangedSpy.count(), 2);
8928     QCOMPARE(urlRoleChangedSpy.count(), 1);
8929     QCOMPARE(isPlayingRoleChangedSpy.count(), 1);
8930     QCOMPARE(titleRoleChangedSpy.count(), 1);
8931     QCOMPARE(artistNameRoleChangedSpy.count(), 1);
8932     QCOMPARE(albumNameRoleChangedSpy.count(), 1);
8933     QCOMPARE(playerStatusChangedSpy.count(), 5);
8934     QCOMPARE(playerPlaybackStateChangedSpy.count(), 2);
8935     QCOMPARE(playerErrorChangedSpy.count(), 0);
8936     QCOMPARE(persistentStateChangedSpy.count(), 1);
8937     QCOMPARE(playerPlaySpy.count(), 1);
8938     QCOMPARE(playerPauseSpy.count(), 0);
8939     QCOMPARE(playerStopSpy.count(), 0);
8940     QCOMPARE(skipNextTrackSpy.count(), 1);
8941     QCOMPARE(seekSpy.count(), 0);
8942     QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8943     QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8944     QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false);
8945 
8946     QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::InvalidMedia);
8947 
8948     QCOMPARE(skipNextTrackSpy.wait(300), true);
8949 }
8950 
8951 QTEST_GUILESS_MAIN(ManageAudioPlayerTest)
8952 
8953 
8954 #include "moc_manageaudioplayertest.cpp"