diff -r 2c5162224003 -r fdb31ab341af mpdata/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpdata/tsrc/unittest_mpsongdata/src/unittest_mpsongdata.cpp Fri May 14 18:54:37 2010 -0500 @@ -0,0 +1,1100 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Unit test for mpsongdata +* +*/ +#include +#include +#include +#include + +#include"unittest_mpsongdata.h" +#include "stub/inc/thumbnailmanager_qt.h" + +// Do this so we can access all member variables. +#define private public +#include "mpsongdata.h" +#undef private + + +/*! + Make our test case a stand-alone executable that runs all the test functions. + */ +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + HbMainWindow window; + + TestMpSongData tv; + +if ( argc > 1 ) { + return QTest::qExec( &tv, argc, argv); + } + else { + char *pass[3]; + pass[0] = argv[0]; + pass[1] = "-o"; + pass[2] = "c:\\data\\unittest_mpsongdata.txt"; + + return QTest::qExec(&tv, 3, pass); + } +} + +//Constructor +TestMpSongData::TestMpSongData() + : mTest(0) +{ + +} + +//Destructor +TestMpSongData::~TestMpSongData() +{ + delete mTest; +} + +/*! + Called before the first testfunction is executed. + */ +void TestMpSongData::initTestCase() +{ + +} + +/*! + Called after the last testfunction was executed. + */ +void TestMpSongData::cleanupTestCase() +{ + +} + +/*! + Called before each testfunction is executed. + */ +void TestMpSongData::init() +{ + mTest = new MpSongData(); +} + +/*! + Called after every testfunction. + */ +void TestMpSongData::cleanup() +{ + delete mTest; + mTest = 0; +} + +/*! + Test correct cleanup of member variables. + */ +void TestMpSongData::testMemberCleanup() +{ + cleanup(); + ThumbnailManager::resetInitCounter(); + init(); + cleanup(); + QCOMPARE( ThumbnailManager::getInitCounter(), 0 ); +} + + +/*! + Test title() + */ +void TestMpSongData::testTitle() +{ + mTest->mTitle = QString(); + QVERIFY( mTest->title().isNull() == true ); + + QString title( "title" ); + mTest->mTitle = title; + QVERIFY( mTest->title().isNull() == false ); + QCOMPARE( mTest->title(), title ); +} + +/*! + Test album() + */ +void TestMpSongData::testAlbum() +{ + mTest->mAlbum = QString(); + QVERIFY( mTest->album().isNull() == true ); + + QString album( "album" ); + mTest->mAlbum = album; + QVERIFY( mTest->album().isNull() == false ); + QCOMPARE( mTest->album(), album ); +} + +/*! + Test artist() + */ +void TestMpSongData::testArtist() +{ + mTest->mArtist = QString(); + QVERIFY( mTest->artist().isNull() == true ); + + QString artist( "artist"); + mTest->mArtist = artist; + QVERIFY( mTest->artist().isNull() == false ); + QCOMPARE( mTest->artist(), artist ); +} + +/*! + Test comment() + */ +void TestMpSongData::testComment() +{ + mTest->mComment = QString(); + QVERIFY( mTest->comment().isNull() == true ); + + QString comment( "This is a nice song" ); + mTest->mComment = comment; + QVERIFY( mTest->comment().isNull() == false ); + QCOMPARE( mTest->comment(), comment ); +} + +/*! + Test albumArt() + */ +void TestMpSongData::testAlbumArt() +{ + HbIcon dummyAlbumArt; + mTest->albumArt( dummyAlbumArt ); + QVERIFY( dummyAlbumArt.isNull() == true ); + + HbIcon dummyAlbumArtTwo; + mTest->mAlbumArt = new HbIcon( ":/playbackviewicons/someAlbumArt.png" ); + mTest->albumArt( dummyAlbumArtTwo ); + QVERIFY( dummyAlbumArtTwo.isNull() == false ); +} + +/*! + Test year() + */ +void TestMpSongData::testYear() +{ + mTest->mYear = QString(); + QVERIFY( mTest->year().isNull() == true ); + + QString year("2000"); + mTest->mYear = year; + QVERIFY( mTest->year().isNull() == false ); + QCOMPARE( mTest->year(), year ); +} + +/*! + Test genre() + */ +void TestMpSongData::testGenre() +{ + mTest->mGenre = QString(); + QVERIFY( mTest->genre().isNull() == true ); + + QString genre( "pop" ); + mTest->mGenre = genre; + QVERIFY( mTest->genre().isNull() == false ); + QCOMPARE( mTest->genre(), genre ); +} + +/*! + Test composer() + */ +void TestMpSongData::testComposer() +{ + mTest->mComposer = QString(); + QVERIFY( mTest->composer().isNull() == true ); + + QString composer( "composer "); + mTest->mComposer = composer; + QVERIFY( mTest->composer().isNull() == false ); + QCOMPARE( mTest->composer(), composer ); +} + + +/*! + Test albumTrack() + */ +void TestMpSongData::testAlbumtrack() +{ + mTest->mAlbumTrack = QString(); + QVERIFY( mTest->albumTrack().isNull() == true ); + + QString albumTrack("2"); + mTest->mAlbumTrack = albumTrack; + QVERIFY( mTest->albumTrack().isNull() == false ); + QCOMPARE( mTest->albumTrack(), albumTrack ); +} + +/*! + Test link() + */ +void TestMpSongData::testLink() +{ + mTest->mLink = QString(); + QVERIFY( mTest->link().isNull() == true ); + + QString link( "www.nokia.com" ); + mTest->mLink = link; + QVERIFY( mTest->link().isNull() == false ); + QCOMPARE( mTest->link(), link ); +} + +/*! + Test fileName() + */ +void TestMpSongData::testFileName() +{ + mTest->mFileName = QString(); + QVERIFY( mTest->fileName().isNull() == true ); + + QString fileName( "test.mp3" ); + mTest->mFileName = fileName; + QVERIFY( mTest->fileName().isNull() == false ); + QCOMPARE( mTest->fileName(), fileName ); +} + +/*! + Test fileName() + */ +void TestMpSongData::testMimeType() +{ + mTest->mMimeType = QString(); + QVERIFY( mTest->mimeType().isNull() == true ); + + QString mimeType( "mp3" ); + mTest->mMimeType = mimeType; + QVERIFY( mTest->mimeType().isNull() == false ); + QCOMPARE( mTest->mimeType(), mimeType ); +} + +/*! + Test fileName() + */ +void TestMpSongData::testDuration() +{ + mTest->mDuration = QString(); + QVERIFY( mTest->duration().isNull() == true ); + + QString duration( "04:16" ); + mTest->mDuration = duration; + QVERIFY( mTest->duration().isNull() == false ); + QCOMPARE( mTest->duration(), duration ); +} + +/*! + Test bitRate() + */ +void TestMpSongData::testBitRate() +{ + mTest->mBitRate = QString(); + QVERIFY( mTest->bitRate().isNull() == true ); + + QString bitRate( "320 Kbps" ); + mTest->mBitRate = bitRate; + QVERIFY( mTest->bitRate().isNull() == false ); + QCOMPARE( mTest->bitRate(), bitRate ); +} + +/*! + Test sampleRate() + */ +void TestMpSongData::testSampleRate() +{ + mTest->mSampleRate = QString(); + QVERIFY( mTest->sampleRate().isNull() == true ); + + QString sampleRate( "44100 hz" ); + mTest->mSampleRate = sampleRate; + QVERIFY( mTest->sampleRate().isNull() == false ); + QCOMPARE( mTest->sampleRate(), sampleRate ); +} + +/*! + Test size() + */ +void TestMpSongData::testSize() +{ + mTest->mSize = QString(); + QVERIFY( mTest->size().isNull() == true ); + + QString size( "4.3MB" ); + mTest->mSize = size; + QVERIFY( mTest->size().isNull() == false ); + QCOMPARE( mTest->size(), size ); +} + +/*! + Test modified() + */ +void TestMpSongData::testModified() +{ + mTest->mModified = QString(); + QVERIFY( mTest->modified().isNull() == true ); + + QString modified( "5.7.2010 14:35:08" ); + mTest->mModified = modified; + QVERIFY( mTest->modified().isNull() == false ); + QCOMPARE( mTest->modified(), modified ); +} + +/*! + Test copyright() + */ +void TestMpSongData::testCopyright() +{ + mTest->mCopyright = QString(); + QVERIFY( mTest->copyright().isNull() == true ); + + QString copyright( "Copyright holder" ); + mTest->mCopyright = copyright; + QVERIFY( mTest->copyright().isNull() == false ); + QCOMPARE( mTest->copyright(), copyright ); +} + +/*! + Test musicURL() + */ +void TestMpSongData::testMusicURL() +{ + mTest->mMusicURL = QString(); + QVERIFY( mTest->musicURL().isNull() == true ); + + QString musicURL( "www.nokia.com" ); + mTest->mMusicURL = musicURL; + QVERIFY( mTest->musicURL().isNull() == false ); + QCOMPARE( mTest->musicURL(), musicURL ); +} + +/*! + Test isDrmProtected() + */ +void TestMpSongData::testIsDrmProtected() +{ + mTest->mDrmProtected = true; + QVERIFY( mTest->isDrmProtected() == true ); + + mTest->mDrmProtected = false; + QVERIFY( mTest->isDrmProtected() == false ); +} + +/*! + Test setTitle() + */ +void TestMpSongData::testSetTitle() +{ + bool result; + QString title( "title" ); + mTest->mTitle = QString(); + result = mTest->setTitle( title ); + QCOMPARE( result, true ); + QCOMPARE( mTest->title(), title ); + + result = false; + title = QString( "title" ); + mTest->mTitle = QString( "titleTwo" ); + result = mTest->setTitle( title ); + QCOMPARE( result, true ); + QCOMPARE( mTest->title(), title ); + + result = false; + title = QString(); + mTest->mTitle = QString(); + result = mTest->setTitle( title ); + QCOMPARE( result, false ); + QCOMPARE( mTest->title().isNull(), true ); + + result = false; + title = QString(); + mTest->mTitle = QString( "titleTwo" ); + result = mTest->setTitle( title ); + QCOMPARE( result, true ); + QCOMPARE( mTest->title().isNull(), true ); +} + +/*! + Test SetAlbum() + */ +void TestMpSongData::TestMpSongData::testSetAlbum() +{ + bool result; + QString album( "album" ); + mTest->mAlbum = QString(); + result = mTest->setAlbum( album ); + QCOMPARE( result, true ); + QCOMPARE( mTest->album(), album ); + + result = false; + album = QString( "album" ); + mTest->mAlbum = QString( "albumTwo" ); + result = mTest->setAlbum( album ); + QCOMPARE( result, true ); + QCOMPARE( mTest->album(), album ); + + result = false; + album = QString(); + mTest->mAlbum = QString(); + result = mTest->setAlbum( album ); + QCOMPARE( result, false ); + QCOMPARE( mTest->album().isNull(), true ); + + result = false; + album = QString(); + mTest->mAlbum = QString( "albumTwo" ); + result = mTest->setAlbum( album ); + QCOMPARE( result, true ); + QCOMPARE( mTest->album().isNull(), true ); +} + +/*! + Test SetArtist() + */ +void TestMpSongData::testSetArtist() +{ + bool result; + QString artist( "artist" ); + mTest->mArtist = QString(); + result = mTest->setArtist( artist ); + QCOMPARE( result, true ); + QCOMPARE( mTest->artist(), artist ); + + result = false; + artist = QString( "artist" ); + mTest->mArtist = QString( "artistTwo" ); + result = mTest->setArtist( artist ); + QCOMPARE( result, true ); + QCOMPARE( mTest->artist(), artist ); + + result = false; + artist = QString(); + mTest->mArtist = QString(); + result = mTest->setArtist( artist ); + QCOMPARE( result, false ); + QCOMPARE( mTest->artist().isNull(), true ); + + result = false; + artist = QString(); + mTest->mArtist = QString( "artistTwo" ); + result = mTest->setArtist( artist ); + QCOMPARE( result, true ); + QCOMPARE( mTest->artist().isNull(), true ); +} + +/*! + Test SetComment() + */ +void TestMpSongData::testSetComment() +{ + bool result; + QString comment( "comment" ); + mTest->mComment = QString(); + result = mTest->setComment( comment ); + QCOMPARE( result, true ); + QCOMPARE( mTest->comment(), comment ); + + result = false; + comment = QString( "comment" ); + mTest->mComment = QString( "commentTwo" ); + result = mTest->setComment( comment ); + QCOMPARE( result, true ); + QCOMPARE( mTest->comment(), comment ); + + result = false; + comment = QString(); + mTest->mComment = QString(); + result = mTest->setComment( comment ); + QCOMPARE( result, false ); + QCOMPARE( mTest->comment().isNull(), true ); + + result = false; + comment = QString(); + mTest->mComment = QString( "commentTwo" ); + result = mTest->setComment( comment ); + QCOMPARE( result, true ); + QCOMPARE( mTest->comment().isNull(), true ); +} + +/*! + Test SetYear() + */ +void TestMpSongData::testSetYear() +{ + bool result; + int year = 2010; + mTest->mYear = QString(); + result = mTest->setYear( year ); + QCOMPARE( result, true ); + QCOMPARE( mTest->year(), QString::number( year ) ); + + result = false; + year = 2010; + mTest->mYear = QString::number( 2011 ); + result = mTest->setYear( year ); + QCOMPARE( result, true ); + QCOMPARE( mTest->year(), QString::number( year ) ); + + result = false; + year = -1; + mTest->mYear = QString(); + result = mTest->setYear( year ); + QCOMPARE( result, true ); + QCOMPARE( mTest->year().isNull(), true ); + + result = false; + year = -1; + mTest->mYear = QString::number( 2011 ); + result = mTest->setYear( year ); + QCOMPARE( result, true ); + QCOMPARE( mTest->year().isNull(), true ); +} + +/*! + Test setGenre() + */ +void TestMpSongData::testSetGenre() +{ + bool result; + QString genre( "genre" ); + mTest->mGenre = QString(); + result = mTest->setGenre( genre ); + QCOMPARE( result, true ); + QCOMPARE( mTest->genre(), genre ); + + result = false; + genre = QString( "genre" ); + mTest->mGenre = QString( "genreTwo" ); + result = mTest->setGenre( genre ); + QCOMPARE( result, true ); + QCOMPARE( mTest->genre(), genre ); + + result = false; + genre = QString(); + mTest->mGenre = QString(); + result = mTest->setGenre( genre ); + QCOMPARE( result, false ); + QCOMPARE( mTest->genre().isNull(), true ); + + result = false; + genre = QString(); + mTest->mGenre = QString( "genreTwo" ); + result = mTest->setGenre( genre ); + QCOMPARE( result, true ); + QCOMPARE( mTest->genre().isNull(), true ); +} + +/*! + Test setComposer() + */ +void TestMpSongData::testSetComposer() +{ + bool result; + QString composer( "composer" ); + mTest->mComposer = QString(); + result = mTest->setComposer( composer ); + QCOMPARE( result, true ); + QCOMPARE( mTest->composer(), composer ); + + result = false; + composer = QString( "composer" ); + mTest->mComposer = QString( "composerTwo" ); + result = mTest->setComposer( composer ); + QCOMPARE( result, true ); + QCOMPARE( mTest->composer(), composer ); + + result = false; + composer = QString(); + mTest->mComposer = QString(); + result = mTest->setComposer( composer ); + QCOMPARE( result, false ); + QCOMPARE( mTest->composer().isNull(), true ); + + result = false; + composer = QString(); + mTest->mComposer = QString( "composerTwo" ); + result = mTest->setComposer( composer ); + QCOMPARE( result, true ); + QCOMPARE( mTest->composer().isNull(), true ); +} + +/*! + Test setAlbumTrack() + */ +void TestMpSongData::testSetAlbumTrack() +{ + bool result; + QString albumTrack( "2" ); + mTest->mAlbumTrack = QString(); + result = mTest->setAlbumTrack( albumTrack ); + QCOMPARE( result, true ); + QCOMPARE( mTest->albumTrack(), albumTrack ); + + result = false; + albumTrack = QString( "2" ); + mTest->mAlbumTrack = QString( "3" ); + result = mTest->setAlbumTrack( albumTrack ); + QCOMPARE( result, true ); + QCOMPARE( mTest->albumTrack(), albumTrack ); + + result = false; + albumTrack = QString(); + mTest->mAlbumTrack = QString(); + result = mTest->setAlbumTrack( albumTrack ); + QCOMPARE( result, false ); + QCOMPARE( mTest->albumTrack().isNull(), true ); + + result = false; + albumTrack = QString(); + mTest->mAlbumTrack = QString( "3" ); + result = mTest->setAlbumTrack( albumTrack ); + QCOMPARE( result, true ); + QCOMPARE( mTest->albumTrack().isNull(), true ); +} + +/*! + Test setLink() + */ +void TestMpSongData::testSetLink() +{ + QString link( "www.nokia.com" ); + mTest->mLink = QString(); + mTest->setLink( link ); + QCOMPARE( mTest->link(), link ); + + link = QString( "www.nokia.com" ); + mTest->mLink = QString( "www.nokia.fi" ); + mTest->setLink( link ); + QCOMPARE( mTest->link(), link ); + + link = QString(); + mTest->mLink = QString(); + mTest->setLink( link ); + QCOMPARE( mTest->link().isNull(), true ); + + link = QString(); + mTest->mLink = QString( "www.nokia.fi" ); + mTest->setLink( link ); + QCOMPARE( mTest->link().isNull(), true ); +} + +/*! + Test setFileName() + */ +void TestMpSongData::testSetFileName() +{ + bool result; + QString fileName( "fileName" ); + mTest->mFileName = QString(); + result = mTest->setFileName( fileName ); + QCOMPARE( result, true ); + QCOMPARE( mTest->fileName(), fileName ); + + result = false; + fileName = QString( "fileName" ); + mTest->mFileName = QString( "fileNameTwo" ); + result = mTest->setFileName( fileName ); + QCOMPARE( result, true ); + QCOMPARE( mTest->fileName(), fileName ); + + result = false; + fileName = QString(); + mTest->mFileName = QString(); + result = mTest->setFileName( fileName ); + QCOMPARE( result, false ); + QCOMPARE( mTest->fileName().isNull(), true ); + + result = false; + fileName = QString(); + mTest->mFileName = QString( "fileNameTwo" ); + result = mTest->setFileName( fileName ); + QCOMPARE( result, true ); + QCOMPARE( mTest->fileName().isNull(), true ); +} + +/*! + Test setMimeType() + */ +void TestMpSongData::testSetMimeType() +{ + bool result; + QString mimeType( "mimeType" ); + mTest->mMimeType = QString(); + result = mTest->setMimeType( mimeType ); + QCOMPARE( result, true ); + QCOMPARE( mTest->mimeType(), mimeType ); + + result = false; + mimeType = QString( "mimeType" ); + mTest->mMimeType = QString( "mimeTypeTwo" ); + result = mTest->setMimeType( mimeType ); + QCOMPARE( result, true ); + QCOMPARE( mTest->mimeType(), mimeType ); + + result = false; + mimeType = QString(); + mTest->mMimeType = QString(); + result = mTest->setMimeType( mimeType ); + QCOMPARE( result, false ); + QCOMPARE( mTest->mimeType().isNull(), true ); + + result = false; + mimeType = QString(); + mTest->mMimeType = QString( "mimeTypeTwo" ); + result = mTest->setMimeType( mimeType ); + QCOMPARE( result, true ); + QCOMPARE( mTest->mimeType().isNull(), true ); +} + +/*! + Test setDuration() // TODO: more cases to add here for different time interval + */ +void TestMpSongData::testSetDuration() +{ + bool result; + int duration = 100; + mTest->mDuration = QString(); + result = mTest->setDuration( duration ); + QCOMPARE( result, true ); + QCOMPARE( mTest->duration(), QString("01:40") ); + + result = false; + duration = 100; + mTest->mDuration = QString( "02:00" ); + result = mTest->setDuration( duration ); + QCOMPARE( result, true ); + QCOMPARE( mTest->duration(), QString("01:40") ); + + result = false; + duration = -1; + mTest->mDuration = QString(); + result = mTest->setDuration( duration ); + QCOMPARE( result, true ); + QCOMPARE( mTest->duration().isNull(), true ); + + result = false; + duration = -1; + mTest->mDuration = QString( "02:00" ); + result = mTest->setDuration( duration ); + QCOMPARE( result, true ); + QCOMPARE( mTest->duration().isNull(), true ); +} + +/*! + Test setBitRate() + */ +void TestMpSongData::testSetBitRate() +{ + bool result; + int bitRate = 302000; + mTest->mBitRate = QString(); + result = mTest->setBitRate( bitRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->bitRate(), QString::number( bitRate / 1000 ) ); + + result = false; + bitRate = 302000; + mTest->mBitRate = QString::number( 412 ); + result = mTest->setBitRate( bitRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->bitRate(), QString::number( bitRate / 1000 ) ); + + result = false; + bitRate = -1; + mTest->mBitRate = QString(); + result = mTest->setBitRate( bitRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->bitRate().isNull(), true ); + + result = false; + bitRate = -1; + mTest->mBitRate = QString::number( 412 ); + result = mTest->setBitRate( bitRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->bitRate().isNull(), true ); +} + +/*! + Test setSampleRate + */ +void TestMpSongData::testSetSampleRate() +{ + bool result; + int sampleRate = 44100; + mTest->mSampleRate = QString(); + result = mTest->setSampleRate( sampleRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->sampleRate(), QString::number( sampleRate ) ); + + result = false; + sampleRate = 44100; + mTest->mSampleRate = QString::number( 55000 ); + result = mTest->setSampleRate( sampleRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->sampleRate(), QString::number( sampleRate ) ); + + result = false; + sampleRate = -1; + mTest->mSampleRate = QString(); + result = mTest->setSampleRate( sampleRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->sampleRate().isNull(), true ); + + result = false; + sampleRate = -1; + mTest->mSampleRate = QString::number( 55000 ); + result = mTest->setSampleRate( sampleRate ); + QCOMPARE( result, true ); + QCOMPARE( mTest->sampleRate().isNull(), true ); +} + +/*! + Test setSize + */ +void TestMpSongData::testSetSize() +{ + bool result; + int size = 4300; + mTest->mSize = QString(); + result = mTest->setSize( size ); + QCOMPARE( result, true ); + QCOMPARE( mTest->size(), QString::number( size / 1000 ) ); + + result = false; + size = 4300; + mTest->mSize = QString( "5" ); + result = mTest->setSize( size ); + QCOMPARE( result, true ); + QCOMPARE( mTest->size(), QString::number( size / 1000 ) ); +} + +/*! + Test setModified + */ +void TestMpSongData::testSetModified() +{ + bool result; + QString modified( "5.7.2010 14:35:08" ); + mTest->mModified = QString(); + result = mTest->setModified( modified ); + QCOMPARE( result, true ); + QCOMPARE( mTest->modified(), modified ); + + result = false; + modified = QString( "5.7.2010 14:35:08" ); + mTest->mModified = QString( "9.7.2010 16:35:08" ); + result = mTest->setModified( modified ); + QCOMPARE( result, true ); + QCOMPARE( mTest->modified(), modified ); + + result = false; + modified = QString(); + mTest->mModified = QString(); + result = mTest->setModified( modified ); + QCOMPARE( result, false ); + QCOMPARE( mTest->modified().isNull(), true ); + + result = false; + modified = QString(); + mTest->mModified = QString( "9.7.2010 16:35:08" ); + result = mTest->setModified( modified ); + QCOMPARE( result, true ); + QCOMPARE( mTest->modified().isNull(), true ); +} + +/*! + Test setCopyright + */ +void TestMpSongData::testSetCopyright() +{ + bool result; + QString copyright( "copyright" ); + mTest->mCopyright = QString(); + result = mTest->setCopyright( copyright ); + QCOMPARE( result, true ); + QCOMPARE( mTest->copyright(), copyright ); + + result = false; + copyright = QString( "copyright" ); + mTest->mCopyright = QString( "copyrightTwo" ); + result = mTest->setCopyright( copyright ); + QCOMPARE( result, true ); + QCOMPARE( mTest->copyright(), copyright ); + + result = false; + copyright = QString(); + mTest->mCopyright = QString(); + result = mTest->setCopyright( copyright ); + QCOMPARE( result, false ); + QCOMPARE( mTest->copyright().isNull(), true ); + + result = false; + copyright = QString(); + mTest->mCopyright = QString( "copyrightTwo" ); + result = mTest->setCopyright( copyright ); + QCOMPARE( result, true ); + QCOMPARE( mTest->copyright().isNull(), true ); +} + +/*! + Test setMusicURL + */ +void TestMpSongData::testSetMusicURL() +{ + bool result; + QString musicURL( "musicURL" ); + mTest->mMusicURL = QString(); + result = mTest->setMusicURL( musicURL ); + QCOMPARE( result, true ); + QCOMPARE( mTest->musicURL(), musicURL ); + + result = false; + musicURL = QString( "musicURL" ); + mTest->mMusicURL = QString( "musicURLTwo" ); + result = mTest->setMusicURL( musicURL ); + QCOMPARE( result, true ); + QCOMPARE( mTest->musicURL(), musicURL ); + + result = false; + musicURL = QString(); + mTest->mMusicURL = QString(); + result = mTest->setMusicURL( musicURL ); + QCOMPARE( result, false ); + QCOMPARE( mTest->musicURL().isNull(), true ); + + result = false; + musicURL = QString(); + mTest->mMusicURL = QString( "musicURLTwo" ); + result = mTest->setMusicURL( musicURL ); + QCOMPARE( result, true ); + QCOMPARE( mTest->musicURL().isNull(), true ); +} + +/*! + Test setDrmProtected + */ +void TestMpSongData::testSetDrmProtected() +{ + bool result; + bool drmProtected = false; + mTest->mDrmProtected = true; + result = mTest->setDrmProtected( drmProtected ); + QCOMPARE( result, true ); + QCOMPARE( mTest->isDrmProtected(), false ); + + result = false; + drmProtected = false; + mTest->mDrmProtected = false; + result = mTest->setDrmProtected( drmProtected ); + QCOMPARE( result, false ); + QCOMPARE( mTest->isDrmProtected(), false ); + + result = false; + drmProtected = true; + mTest->mDrmProtected = true; + result = mTest->setDrmProtected( drmProtected); + QCOMPARE( result, false ); + QCOMPARE( mTest->isDrmProtected(), true ); + + result = false; + drmProtected = true; + mTest->mDrmProtected = false; + result = mTest->setDrmProtected( drmProtected ); + QCOMPARE( result, true ); + QCOMPARE( mTest->isDrmProtected(), true ); +} + + +/*! + Test setAlbumArtUri() + */ +void TestMpSongData::testSetAlbumArtUri() +{ + const QString albumArtUri( "AlbumArt" ); + const QString albumArtUriEmpty( "" ); + + QSignalSpy spy( mTest, SIGNAL( albumArtReady() ) ); + + QVERIFY( spy.isValid() ); + QCOMPARE( spy.count(), 0 ); + + mTest->setAlbumArtUri( albumArtUri ); + QCOMPARE( spy.count(), 0 ); + + mTest->mThumbnailManager->mGetThumbFails = true; + mTest->setAlbumArtUri( albumArtUri ); + QCOMPARE( spy.count(), 1 ); + QCOMPARE( mTest->mAlbumArt, mTest->mDefaultAlbumArt ); + + mTest->setAlbumArtUri( albumArtUriEmpty ); + QCOMPARE( spy.count(), 2 ); + QCOMPARE( mTest->mAlbumArt, mTest->mDefaultAlbumArt ); +} + +/*! + Test thumbnailReady()() + */ +void TestMpSongData::testThumbnailReady() +{ + connect( this, SIGNAL(thumbnailReady(QPixmap, void *, int, int)), + mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) ); + + QSignalSpy spy(mTest, SIGNAL(albumArtReady())); + QVERIFY( spy.isValid() ); + QCOMPARE( spy.count(), 0 ); + + QPixmap dummyAlbumArt(":/playbackviewicons/someAlbumArt.png" ); + + emit thumbnailReady(dummyAlbumArt, 0, -1, 0); + QCOMPARE( spy.count(), 1 ); + HbIcon dummyAlbumArtCompare; + mTest->albumArt(dummyAlbumArtCompare); + QCOMPARE( dummyAlbumArtCompare.isNull(), false ); + + emit thumbnailReady(dummyAlbumArt, 0, -1 , 1); + QCOMPARE( spy.count(), 2 ); + mTest->albumArt(dummyAlbumArtCompare); + QCOMPARE( dummyAlbumArtCompare.isNull(), false ); + +} + + +/*! + Test commitPlaybackInfo() + */ +void TestMpSongData::testCommitPlaybackInfo() + { + QSignalSpy spy( mTest, SIGNAL( playbackInfoChanged() ) ); + + QVERIFY( spy.isValid() ); + QCOMPARE( spy.count(), 0 ); + + mTest->commitPlaybackInfo(); + QCOMPARE( spy.count(), 1 ); + + } + +/*! + Test commitSongDetailInfo() + */ +void TestMpSongData::testCommitSongDetailInfo() + { + QSignalSpy spy( mTest, SIGNAL( songDetailInfoChanged() ) ); + + QVERIFY( spy.isValid() ); + QCOMPARE( spy.count(), 0 ); + + mTest->commitSongDetailInfo(); + QCOMPARE( spy.count(), 1 ); + + }