diff --git a/autotests/manageaudioplayertest.cpp b/autotests/manageaudioplayertest.cpp index bc7ee341..8a494cd3 100644 --- a/autotests/manageaudioplayertest.cpp +++ b/autotests/manageaudioplayertest.cpp @@ -1,8938 +1,8938 @@ /* * Copyright 2016 Matthieu Gallien * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ #include "manageaudioplayertest.h" #include "manageaudioplayer.h" #include #include #include #include ManageAudioPlayerTest::ManageAudioPlayerTest(QObject *parent) : QObject(parent) { } void ManageAudioPlayerTest::initTestCase() { } void ManageAudioPlayerTest::simpleInitialCase() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::noPlayCase() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); } void ManageAudioPlayerTest::skipNextTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::skipNextTrackWithRandomPlay() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::skipPreviousTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); } void ManageAudioPlayerTest::playTrackAndskipNextTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(2, 0)); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3"))); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 9); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 5); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); } void ManageAudioPlayerTest::playTrackAndskipPreviousTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(2, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0))); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 9); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 5); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); } void ManageAudioPlayerTest::skipNextTrackAndPlayTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(2, 0)); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0))); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 9); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); } void ManageAudioPlayerTest::skipPreviousTrackAndPlayTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 8); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 9); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 10); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 3); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); } void ManageAudioPlayerTest::playLastCase() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(2, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///3.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.playListFinished(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); QCOMPARE(playerPlaySpy.wait(100), false); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::playSingleAndClearPlayListTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setCurrentTrack({}); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex{}); QCOMPARE(playerStopSpy.wait(300), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); QCOMPARE(playerPlaySpy.wait(300), false); QCOMPARE(currentTrackChangedSpy.count(), 3); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 3); + QCOMPARE(playerSourceChangedSpy.count(), 4); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::playSingleTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.playListFinished(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); QCOMPARE(playerPlaySpy.wait(100), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::playRestoredTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::testRestoreSettingsAutomaticPlay() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged); QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged); QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole); myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.titleRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole)); myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.artistNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole)); myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.albumNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole)); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QVariantMap settings; settings[QStringLiteral("isPlaying")] = true; settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title"); settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist"); settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album"); myPlayer.setPersistentState(settings); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); QCOMPARE(playerPlaySpy.wait(500), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::InvalidMedia); QCOMPARE(skipNextTrackSpy.wait(150), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 2); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::InvalidMedia); } void ManageAudioPlayerTest::testRestoreSettingsNoAutomaticPlay() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged); QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged); QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole); myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QVariantMap settings; settings[QStringLiteral("isPlaying")] = false; settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title"); settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist"); settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album"); myPlayer.setPersistentState(settings); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.titleRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole)); myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.artistNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole)); myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.albumNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(1000), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::testRestoreSettingsAutomaticPlayAndPosition() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged); QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged); QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole); myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QVariantMap settings; settings[QStringLiteral("isPlaying")] = true; settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title"); settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist"); settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album"); settings[QStringLiteral("playerPosition")] = 10000; myPlayer.setPersistentState(settings); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.titleRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole)); myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.artistNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole)); myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(seekSpy.at(0).at(0).toInt(), 10000); QCOMPARE(myPlayer.albumNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); myPlayer.setPlayerStatus(QMediaPlayer::NoMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::NoMedia); QCOMPARE(skipNextTrackSpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 1); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::playTrackPauseAndSkipNextTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPauseSpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PausedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PausedState)); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); QCOMPARE(playerStopSpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(100), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); myPlayer.playPause(); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(playerPlaySpy.wait(100), true); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 3); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 6); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 2); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 2); + QCOMPARE(playerSourceChangedSpy.count(), 3); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 7); QCOMPARE(playerPlaybackStateChangedSpy.count(), 4); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 2); QCOMPARE(playerPauseSpy.count(), 1); QCOMPARE(playerStopSpy.count(), 1); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); } void ManageAudioPlayerTest::testRestoreSettingsNoPlayWrongTrack() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged); QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged); QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole); myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QStringLiteral("title2"), ManageAudioPlayerTest::TitleRole); myPlayList.item(1, 0)->setData(QStringLiteral("artist2"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(1, 0)->setData(QStringLiteral("album2"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.titleRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole)); myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.artistNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole)); myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.albumNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole)); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QVariantMap settings; settings[QStringLiteral("isPlaying")] = true; settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title"); settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist"); settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album"); myPlayer.setPersistentState(settings); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(1, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///2.mp3"))); QCOMPARE(playerPlaySpy.wait(500), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(500), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); } void ManageAudioPlayerTest::testRestorePlayListAndSettingsAutomaticPlay() { ManageAudioPlayer myPlayer; QStandardItemModel myPlayList; QSignalSpy currentTrackChangedSpy(&myPlayer, &ManageAudioPlayer::currentTrackChanged); QSignalSpy playListModelChangedSpy(&myPlayer, &ManageAudioPlayer::playListModelChanged); QSignalSpy playerSourceChangedSpy(&myPlayer, &ManageAudioPlayer::playerSourceChanged); QSignalSpy urlRoleChangedSpy(&myPlayer, &ManageAudioPlayer::urlRoleChanged); QSignalSpy isPlayingRoleChangedSpy(&myPlayer, &ManageAudioPlayer::isPlayingRoleChanged); QSignalSpy titleRoleChangedSpy(&myPlayer, &ManageAudioPlayer::titleRoleChanged); QSignalSpy artistNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::artistNameRoleChanged); QSignalSpy albumNameRoleChangedSpy(&myPlayer, &ManageAudioPlayer::albumNameRoleChanged); QSignalSpy playerStatusChangedSpy(&myPlayer, &ManageAudioPlayer::playerStatusChanged); QSignalSpy playerPlaybackStateChangedSpy(&myPlayer, &ManageAudioPlayer::playerPlaybackStateChanged); QSignalSpy playerErrorChangedSpy(&myPlayer, &ManageAudioPlayer::playerErrorChanged); QSignalSpy persistentStateChangedSpy(&myPlayer, &ManageAudioPlayer::persistentStateChanged); QSignalSpy playerPlaySpy(&myPlayer, &ManageAudioPlayer::playerPlay); QSignalSpy playerPauseSpy(&myPlayer, &ManageAudioPlayer::playerPause); QSignalSpy playerStopSpy(&myPlayer, &ManageAudioPlayer::playerStop); QSignalSpy skipNextTrackSpy(&myPlayer, &ManageAudioPlayer::skipNextTrack); QSignalSpy seekSpy(&myPlayer, &ManageAudioPlayer::seek); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.appendRow(new QStandardItem); myPlayList.item(0, 0)->setData(QStringLiteral("title"), ManageAudioPlayerTest::TitleRole); myPlayList.item(0, 0)->setData(QStringLiteral("artist"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(0, 0)->setData(QStringLiteral("album"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(1, 0)->setData(QStringLiteral("title2"), ManageAudioPlayerTest::TitleRole); myPlayList.item(1, 0)->setData(QStringLiteral("artist2"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(1, 0)->setData(QStringLiteral("album2"), ManageAudioPlayerTest::AlbumRole); myPlayList.item(2, 0)->setData(QStringLiteral("title3"), ManageAudioPlayerTest::TitleRole); myPlayList.item(2, 0)->setData(QStringLiteral("artist3"), ManageAudioPlayerTest::ArtistRole); myPlayList.item(2, 0)->setData(QStringLiteral("album3"), ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setTitleRole(ManageAudioPlayerTest::TitleRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 0); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.titleRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::TitleRole)); myPlayer.setArtistNameRole(ManageAudioPlayerTest::ArtistRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 0); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.artistNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::ArtistRole)); myPlayer.setAlbumNameRole(ManageAudioPlayerTest::AlbumRole); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.albumNameRole(), static_cast(ManageAudioPlayerTest::ManageAudioPlayerTest::AlbumRole)); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 0); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 0); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QVariantMap settings; settings[QStringLiteral("isPlaying")] = true; settings[QStringLiteral("audioPlayerCurrentTitle")] = QStringLiteral("title"); settings[QStringLiteral("audioPlayerCurrentArtistName")] = QStringLiteral("artist"); settings[QStringLiteral("audioPlayerCurrentAlbumName")] = QStringLiteral("album"); myPlayer.setPersistentState(settings); QCOMPARE(currentTrackChangedSpy.count(), 0); QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(playerSourceChangedSpy.count(), 0); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 0); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); myPlayer.setUrlRole(ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.urlRole(), static_cast(ManageAudioPlayerTest::ResourceRole)); QCOMPARE(playerPlaySpy.wait(500), false); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setIsPlayingRole(ManageAudioPlayerTest::IsPlayingRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 0); + QCOMPARE(playerSourceChangedSpy.count(), 1); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.isPlayingRole(), static_cast(ManageAudioPlayerTest::IsPlayingRole)); myPlayList.item(0, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///1.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(1, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///2.mp3")), ManageAudioPlayerTest::ResourceRole); myPlayList.item(2, 0)->setData(QUrl::fromUserInput(QStringLiteral("file:///3.mp3")), ManageAudioPlayerTest::ResourceRole); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 0); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerSource(), QUrl::fromUserInput(QStringLiteral("file:///1.mp3"))); myPlayer.setPlayerStatus(QMediaPlayer::LoadingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadingMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerError(QMediaPlayer::NoError); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 1); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::LoadedMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 2); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::LoadedMedia); myPlayer.setPlayerStatus(QMediaPlayer::BufferingMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 0); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::BufferingMedia); QCOMPARE(playerPlaySpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 0); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerPlaybackState(QMediaPlayer::PlayingState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 3); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::PlayingState)); myPlayer.setPlayerStatus(QMediaPlayer::EndOfMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 1); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), true); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::EndOfMedia); myPlayer.setPlayerPlaybackState(QMediaPlayer::StoppedState); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 0); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerPlaybackState(), static_cast(QMediaPlayer::StoppedState)); QCOMPARE(skipNextTrackSpy.wait(), true); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 4); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); myPlayer.setPlayerStatus(QMediaPlayer::InvalidMedia); QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(playerSourceChangedSpy.count(), 1); + QCOMPARE(playerSourceChangedSpy.count(), 2); QCOMPARE(urlRoleChangedSpy.count(), 1); QCOMPARE(isPlayingRoleChangedSpy.count(), 1); QCOMPARE(titleRoleChangedSpy.count(), 1); QCOMPARE(artistNameRoleChangedSpy.count(), 1); QCOMPARE(albumNameRoleChangedSpy.count(), 1); QCOMPARE(playerStatusChangedSpy.count(), 5); QCOMPARE(playerPlaybackStateChangedSpy.count(), 2); QCOMPARE(playerErrorChangedSpy.count(), 0); QCOMPARE(persistentStateChangedSpy.count(), 1); QCOMPARE(playerPlaySpy.count(), 1); QCOMPARE(playerPauseSpy.count(), 0); QCOMPARE(playerStopSpy.count(), 0); QCOMPARE(skipNextTrackSpy.count(), 1); QCOMPARE(seekSpy.count(), 0); QCOMPARE(myPlayList.data(myPlayList.index(0, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(1, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayList.data(myPlayList.index(2, 0), ManageAudioPlayerTest::IsPlayingRole).toBool(), false); QCOMPARE(myPlayer.playerStatus(), QMediaPlayer::InvalidMedia); QCOMPARE(skipNextTrackSpy.wait(300), true); } QTEST_GUILESS_MAIN(ManageAudioPlayerTest) #include "moc_manageaudioplayertest.cpp" diff --git a/src/manageaudioplayer.cpp b/src/manageaudioplayer.cpp index 469685d3..8118021f 100644 --- a/src/manageaudioplayer.cpp +++ b/src/manageaudioplayer.cpp @@ -1,598 +1,598 @@ /* * Copyright 2016 Matthieu Gallien * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ #include "manageaudioplayer.h" #include "mediaplaylist.h" #include #include ManageAudioPlayer::ManageAudioPlayer(QObject *parent) : QObject(parent) { } QPersistentModelIndex ManageAudioPlayer::currentTrack() const { return mCurrentTrack; } QAbstractItemModel *ManageAudioPlayer::playListModel() const { return mPlayListModel; } int ManageAudioPlayer::urlRole() const { return mUrlRole; } int ManageAudioPlayer::isPlayingRole() const { return mIsPlayingRole; } QUrl ManageAudioPlayer::playerSource() const { if (!mCurrentTrack.isValid()) { return QUrl(); } return mCurrentTrack.data(mUrlRole).toUrl(); } QMediaPlayer::MediaStatus ManageAudioPlayer::playerStatus() const { return mPlayerStatus; } QMediaPlayer::State ManageAudioPlayer::playerPlaybackState() const { return mPlayerPlaybackState; } QMediaPlayer::Error ManageAudioPlayer::playerError() const { return mPlayerError; } qint64 ManageAudioPlayer::audioDuration() const { return mAudioDuration; } bool ManageAudioPlayer::playerIsSeekable() const { return mPlayerIsSeekable; } qint64 ManageAudioPlayer::playerPosition() const { return mPlayerPosition; } qint64 ManageAudioPlayer::playControlPosition() const { return mPlayerPosition; } QVariantMap ManageAudioPlayer::persistentState() const { auto persistentStateValue = QVariantMap(); persistentStateValue[QStringLiteral("isPlaying")] = mPlayingState; persistentStateValue[QStringLiteral("playerPosition")] = mPlayerPosition; if (mCurrentTrack.isValid()) { persistentStateValue[QStringLiteral("audioPlayerCurrentTitle")] = mCurrentTrack.data(mTitleRole); persistentStateValue[QStringLiteral("audioPlayerCurrentArtistName")] = mCurrentTrack.data(mArtistNameRole); persistentStateValue[QStringLiteral("audioPlayerCurrentAlbumName")] = mCurrentTrack.data(mAlbumNameRole); } else { persistentStateValue[QStringLiteral("audioPlayerCurrentTitle")] = {}; persistentStateValue[QStringLiteral("audioPlayerCurrentArtistName")] = {}; persistentStateValue[QStringLiteral("audioPlayerCurrentAlbumName")] = {}; } return persistentStateValue; } int ManageAudioPlayer::playListPosition() const { if (mCurrentTrack.isValid()) { return mCurrentTrack.row(); } return 0; } int ManageAudioPlayer::titleRole() const { return mTitleRole; } int ManageAudioPlayer::artistNameRole() const { return mArtistNameRole; } int ManageAudioPlayer::albumNameRole() const { return mAlbumNameRole; } void ManageAudioPlayer::setCurrentTrack(const QPersistentModelIndex ¤tTrack) { mOldCurrentTrack = mCurrentTrack; mCurrentTrack = currentTrack; if (mCurrentTrack.isValid()) { restorePreviousState(); } mPlayerError = QMediaPlayer::NoError; if (mOldCurrentTrack != mCurrentTrack || mPlayingState) { Q_EMIT currentTrackChanged(); } switch (mPlayerPlaybackState) { case QMediaPlayer::StoppedState: - notifyPlayerSourceProperty(); + Q_EMIT playerSourceChanged(mCurrentTrack.data(mUrlRole).toUrl()); break; case QMediaPlayer::PlayingState: case QMediaPlayer::PausedState: triggerStop(); if (mPlayingState && !mCurrentTrack.isValid()) { mPlayingState = false; } mSkippingCurrentTrack = true; break; } } void ManageAudioPlayer::saveForUndoClearPlaylist(){ mUndoPlayingState = mPlayingState; mUndoPlayerPosition = mPlayerPosition; Q_EMIT saveUndoPositionInAudioWrapper(mUndoPlayerPosition); } void ManageAudioPlayer::restoreForUndoClearPlaylist(){ mPlayerPosition = mUndoPlayerPosition; Q_EMIT seek(mPlayerPosition); mPlayingState = mUndoPlayingState; Q_EMIT restoreUndoPositionInAudioWrapper(); } void ManageAudioPlayer::setPlayListModel(QAbstractItemModel *aPlayListModel) { if (mPlayListModel == aPlayListModel) { return; } if (mPlayListModel) { disconnect(mPlayListModel, &QAbstractItemModel::dataChanged, this, &ManageAudioPlayer::tracksDataChanged); } mPlayListModel = aPlayListModel; if (mPlayListModel) { connect(mPlayListModel, &QAbstractItemModel::dataChanged, this, &ManageAudioPlayer::tracksDataChanged); } Q_EMIT playListModelChanged(); } void ManageAudioPlayer::setUrlRole(int value) { mUrlRole = value; Q_EMIT urlRoleChanged(); notifyPlayerSourceProperty(); restorePreviousState(); } void ManageAudioPlayer::setIsPlayingRole(int value) { if (mIsPlayingRole == value) { return; } mIsPlayingRole = value; Q_EMIT isPlayingRoleChanged(); } void ManageAudioPlayer::setPlayerStatus(QMediaPlayer::MediaStatus playerStatus) { if (mPlayerStatus == playerStatus) { return; } mPlayerStatus = playerStatus; Q_EMIT playerStatusChanged(); switch (mPlayerStatus) { case QMediaPlayer::NoMedia: break; case QMediaPlayer::LoadingMedia: break; case QMediaPlayer::LoadedMedia: if (mPlayingState) { triggerPlay(); } break; case QMediaPlayer::BufferingMedia: break; case QMediaPlayer::StalledMedia: break; case QMediaPlayer::BufferedMedia: break; case QMediaPlayer::EndOfMedia: break; case QMediaPlayer::InvalidMedia: triggerSkipNextTrack(); break; case QMediaPlayer::UnknownMediaStatus: break; } } void ManageAudioPlayer::setPlayerPlaybackState(QMediaPlayer::State playerPlaybackState) { if (mPlayerPlaybackState == playerPlaybackState) { return; } mPlayerPlaybackState = playerPlaybackState; Q_EMIT playerPlaybackStateChanged(); if (!mSkippingCurrentTrack) { switch(mPlayerPlaybackState) { case QMediaPlayer::StoppedState: if (mPlayerStatus == QMediaPlayer::EndOfMedia || mPlayerStatus == QMediaPlayer::InvalidMedia) { triggerSkipNextTrack(); } if (mPlayListModel && mCurrentTrack.isValid()) { mPlayListModel->setData(mCurrentTrack, MediaPlayList::NotPlaying, mIsPlayingRole); } break; case QMediaPlayer::PlayingState: if (mPlayListModel && mCurrentTrack.isValid()) { mPlayListModel->setData(mCurrentTrack, MediaPlayList::IsPlaying, mIsPlayingRole); Q_EMIT startedPlayingTrack(mCurrentTrack.data(mUrlRole).toUrl(), QDateTime::currentDateTime()); } break; case QMediaPlayer::PausedState: if (mPlayListModel && mCurrentTrack.isValid()) { mPlayListModel->setData(mCurrentTrack, MediaPlayList::IsPaused, mIsPlayingRole); } break; } } else { switch(mPlayerPlaybackState) { case QMediaPlayer::StoppedState: notifyPlayerSourceProperty(); mSkippingCurrentTrack = false; if (mPlayListModel && mOldCurrentTrack.isValid()) { mPlayListModel->setData(mOldCurrentTrack, MediaPlayList::NotPlaying, mIsPlayingRole); } break; case QMediaPlayer::PlayingState: if (mPlayListModel && mCurrentTrack.isValid()) { mPlayListModel->setData(mCurrentTrack, MediaPlayList::IsPlaying, mIsPlayingRole); Q_EMIT startedPlayingTrack(mCurrentTrack.data(mUrlRole).toUrl(), QDateTime::currentDateTime()); } break; case QMediaPlayer::PausedState: if (mPlayListModel && mCurrentTrack.isValid()) { mPlayListModel->setData(mCurrentTrack, MediaPlayList::IsPaused, mIsPlayingRole); } break; } } } void ManageAudioPlayer::setPlayerError(QMediaPlayer::Error playerError) { if (mPlayerError == playerError) { return; } mPlayerError = playerError; Q_EMIT playerErrorChanged(); if (mPlayerError != QMediaPlayer::NoError) { auto currentSource = playerSource(); Q_EMIT sourceInError(currentSource, mPlayerError); if (currentSource.isLocalFile()) { Q_EMIT displayTrackError(currentSource.toLocalFile()); } else { Q_EMIT displayTrackError(currentSource.toString()); } } } void ManageAudioPlayer::ensurePause() { if (mPlayingState) { mPlayingState = false; triggerPause(); } } void ManageAudioPlayer::ensurePlay() { if (!mPlayingState) { mPlayingState = true; triggerPlay(); } } void ManageAudioPlayer::stop() { mPlayingState = false; triggerStop(); } void ManageAudioPlayer::playPause() { mPlayingState = !mPlayingState; switch (mPlayerStatus) { case QMediaPlayer::LoadedMedia: case QMediaPlayer::BufferingMedia: case QMediaPlayer::BufferedMedia: case QMediaPlayer::LoadingMedia: if (mPlayingState) { triggerPlay(); } else { triggerPause(); } break; case QMediaPlayer::EndOfMedia: if (mPlayerPlaybackState == QMediaPlayer::PlayingState && !mPlayingState) { triggerPause(); } else if (mPlayerPlaybackState == QMediaPlayer::PausedState && mPlayingState) { triggerPlay(); } break; case QMediaPlayer::NoMedia: case QMediaPlayer::StalledMedia: case QMediaPlayer::InvalidMedia: case QMediaPlayer::UnknownMediaStatus: break; } } void ManageAudioPlayer::setAudioDuration(qint64 audioDuration) { if (mAudioDuration == audioDuration) { return; } mAudioDuration = audioDuration; Q_EMIT audioDurationChanged(); } void ManageAudioPlayer::setPlayerIsSeekable(bool playerIsSeekable) { if (mPlayerIsSeekable == playerIsSeekable) { return; } mPlayerIsSeekable = playerIsSeekable; Q_EMIT playerIsSeekableChanged(); } void ManageAudioPlayer::setPlayerPosition(qint64 playerPosition) { if (mPlayerPosition == playerPosition) { return; } mPlayerPosition = playerPosition; Q_EMIT playerPositionChanged(); QTimer::singleShot(0, [this]() {Q_EMIT playControlPositionChanged();}); } void ManageAudioPlayer::setCurrentPlayingForRadios(QString title, QString nowPlaying) { if (mPlayListModel && mCurrentTrack.isValid()) { Q_EMIT currentPlayingForRadiosChanged(title, MediaPlayList::TitleRole); Q_EMIT currentPlayingForRadiosChanged(nowPlaying, MediaPlayList::ArtistRole); } } void ManageAudioPlayer::setPlayControlPosition(int playerPosition) { Q_EMIT seek(playerPosition); } void ManageAudioPlayer::setPersistentState(const QVariantMap &persistentStateValue) { if (mPersistentState == persistentStateValue) { return; } mPersistentState = persistentStateValue; Q_EMIT persistentStateChanged(); if (mCurrentTrack.isValid()) { restorePreviousState(); } } void ManageAudioPlayer::playerSeek(int position) { Q_EMIT seek(position); } void ManageAudioPlayer::playListFinished() { mPlayingState = false; } void ManageAudioPlayer::tracksDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles) { if (!mCurrentTrack.isValid()) { return; } if (mCurrentTrack.row() > bottomRight.row() || mCurrentTrack.row() < topLeft.row()) { return; } if (mCurrentTrack.column() > bottomRight.column() || mCurrentTrack.column() < topLeft.column()) { return; } if (roles.isEmpty()) { notifyPlayerSourceProperty(); restorePreviousState(); } else { for(auto oneRole : roles) { if (oneRole == mUrlRole) { notifyPlayerSourceProperty(); restorePreviousState(); } } } } void ManageAudioPlayer::setTitleRole(int titleRole) { if (mTitleRole == titleRole) { return; } mTitleRole = titleRole; Q_EMIT titleRoleChanged(); if (mCurrentTrack.isValid()) { restorePreviousState(); } } void ManageAudioPlayer::setArtistNameRole(int artistNameRole) { if (mArtistNameRole == artistNameRole) { return; } mArtistNameRole = artistNameRole; Q_EMIT artistNameRoleChanged(); if (mCurrentTrack.isValid()) { restorePreviousState(); } } void ManageAudioPlayer::setAlbumNameRole(int albumNameRole) { if (mAlbumNameRole == albumNameRole) { return; } mAlbumNameRole = albumNameRole; Q_EMIT albumNameRoleChanged(); if (mCurrentTrack.isValid()) { restorePreviousState(); } } void ManageAudioPlayer::notifyPlayerSourceProperty() { auto newUrlValue = mCurrentTrack.data(mUrlRole); if (mSkippingCurrentTrack || mOldPlayerSource != newUrlValue) { Q_EMIT playerSourceChanged(mCurrentTrack.data(mUrlRole).toUrl()); mOldPlayerSource = newUrlValue; } } void ManageAudioPlayer::triggerPlay() { QTimer::singleShot(0, [this]() {Q_EMIT playerPlay();}); } void ManageAudioPlayer::triggerPause() { QTimer::singleShot(0, [this]() {Q_EMIT playerPause();}); } void ManageAudioPlayer::triggerStop() { QTimer::singleShot(0, [this]() {Q_EMIT playerStop();}); } void ManageAudioPlayer::triggerSkipNextTrack() { QTimer::singleShot(0, [this]() {Q_EMIT skipNextTrack();}); } void ManageAudioPlayer::restorePreviousState() { if (mPersistentState.isEmpty()) { return; } auto itTitle = mPersistentState.find(QStringLiteral("audioPlayerCurrentTitle")); auto itArtistName = mPersistentState.find(QStringLiteral("audioPlayerCurrentArtistName")); auto itAlbumName = mPersistentState.find(QStringLiteral("audioPlayerCurrentAlbumName")); if (itTitle == mPersistentState.end() || itArtistName == mPersistentState.end() || itAlbumName == mPersistentState.end()) { return; } if (*itTitle != mCurrentTrack.data(mTitleRole) || (itArtistName->isValid() && *itArtistName != mCurrentTrack.data(mArtistNameRole)) || (itAlbumName->isValid() && *itAlbumName != mCurrentTrack.data(mAlbumNameRole))) { if (mCurrentTrack.isValid() && mCurrentTrack.data(mTitleRole).isValid() && mCurrentTrack.data(mArtistNameRole).isValid() && mCurrentTrack.data(mAlbumNameRole).isValid()) { mPersistentState.clear(); } return; } if (!mCurrentTrack.data(mUrlRole).toUrl().isValid()) { return; } auto isPlaying = mPersistentState.find(QStringLiteral("isPlaying")); if (isPlaying != mPersistentState.end() && mPlayingState != isPlaying->toBool()) { mPlayingState = isPlaying->toBool(); } auto playerPosition = mPersistentState.find(QStringLiteral("playerPosition")); if (playerPosition != mPersistentState.end()) { mPlayerPosition = playerPosition->toLongLong(); Q_EMIT seek(mPlayerPosition); } mPersistentState.clear(); } #include "moc_manageaudioplayer.cpp"