--- a/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/src/unittest_mpcollectioncontainers.cpp Fri Apr 30 19:33:32 2010 -0500
+++ b/mpviewplugins/mpcollectionviewplugin/tsrc/unittest_mpcollectioncontainers/src/unittest_mpcollectioncontainers.cpp Fri May 14 18:54:37 2010 -0500
@@ -15,12 +15,16 @@
*
*/
-#include <qnamespace.h>
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbInstance.h>
-#include <hbListView.h>
-#include <hbListViewItem.h>
+#include <QTranslator>
+#include <QLocale>
+#include <QSignalSpy>
+#include <hblistview.h>
+#include <hblistviewitem.h>
+#include <hbindexfeedback.h>
+#include <hbgroupbox.h>
+#include <hgmediawall.h>
+
+#include "mpcommondefs.h"
#include "mpcollectiondocumentloader.h"
#include "stub/inc/mpcollectionview.h"
#include "stub/inc/mpmpxcollectiondata.h"
@@ -39,7 +43,6 @@
#include "mpcollectioncontainerartists.h"
#include "mpcollectioncontaineralbums.h"
#include "mpcollectioncontainerplaylists.h"
-#include "mpcollectioncontainergenres.h"
#undef private
#undef protected
/*!
@@ -47,30 +50,34 @@
*/
int main(int argc, char *argv[])
{
- HbApplication app(argc, argv);
- HbMainWindow window;
+ QApplication app(argc, argv);
TestMpCollectionContainers tv;
- char *pass[3];
- pass[0] = argv[0];
- pass[1] = "-o";
- pass[2] = "c:\\data\\unittest_mpcollectioncontainers.txt";
+ 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_mpcollectioncontainers.txt";
- int res = QTest::qExec(&tv, 3, pass);
-
- return res;
+ return QTest::qExec(&tv, 3, pass);
+ }
}
TestMpCollectionContainers::TestMpCollectionContainers()
: mTest(0),
mCollectionDataModel(0),
- mCollectionData(0)
+ mCollectionData(0),
+ mMpTranslator(0)
{
}
TestMpCollectionContainers::~TestMpCollectionContainers()
{
delete mTest;
+ delete mMpTranslator;
}
/*!
@@ -78,6 +85,15 @@
*/
void TestMpCollectionContainers::initTestCase()
{
+ QString lang = QLocale::system().name();
+ QString path = QString("z:/resource/qt/translations/");
+ bool translatorLoaded = false;
+
+ mMpTranslator = new QTranslator(this);
+ translatorLoaded = mMpTranslator->load(path + "musicplayer_" + lang);
+ if ( translatorLoaded ) {
+ qApp->installTranslator(mMpTranslator);
+ }
}
/*!
@@ -96,6 +112,7 @@
mView->initializeView();
mCollectionData = new MpMpxCollectionData();
mCollectionDataModel = new MpCollectionDataModel(mCollectionData);
+ mTest = 0;
}
/*!
@@ -109,345 +126,661 @@
}
/*!
- Test constructors
+ Test constructor for AllSongs container
+ */
+void TestMpCollectionContainers::testConstructorAllSongs()
+{
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ QCOMPARE(mTest->mCollectionContext, ECollectionContextAllSongs);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
+ MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+ QVERIFY(allSongs->mList == 0);
+ QVERIFY(allSongs->mInfoBar == 0);
+ QVERIFY(allSongs->mNoMusic == 0);
+ QVERIFY(allSongs->mIndexFeedback != 0);
+ QVERIFY(allSongs->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+}
+
+/*!
+ Test constructor for Artists container
*/
-void TestMpCollectionContainers::testConstructors()
+void TestMpCollectionContainers::testConstructorArtists()
+{
+ MpCollectionContainer *temp = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+ QCOMPARE(mTest->mCollectionContext, ECollectionContextArtists);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+ QVERIFY(artists->mList == 0);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mNoMusic == 0);
+ QVERIFY(artists->mIndexFeedback != 0);
+ QVERIFY(artists->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+ temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAlbums);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAlbums);
+ // Verify that the same container is used.
+ QVERIFY(mTest == temp);
+
+ temp = 0;
+ temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAlbumsTBone);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAlbumsTBone);
+ // Verify that the same container is used.
+ QVERIFY(mTest == temp);
+
+ temp = 0;
+ temp = mView->mContainerFactory->createContainer(ECollectionContextArtistAllSongs);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtistAllSongs);
+ // Verify that the same container is used.
+ QVERIFY(mTest == temp);
+}
+
+/*!
+ Test constructor for Albums container
+ */
+void TestMpCollectionContainers::testConstructorAlbums()
{
- mTest = new MpCollectionContainerAllSongs(mView->mDocumentLoader);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
+ MpCollectionContainer *temp = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ QCOMPARE(mTest->mCollectionContext, ECollectionContextAlbums);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+ QVERIFY(albums->mList == 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mNoMusic == 0);
+ QVERIFY(albums->mIndexFeedback != 0);
+ QVERIFY(albums->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+ temp = 0;
+ temp = mView->mContainerFactory->createContainer(ECollectionContextAlbumsTBone);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbumsTBone);
+ // Verify that the same container is used.
+ QVERIFY(mTest == temp);
+}
+
+/*!
+ Test constructor for Playlists container
+ */
+void TestMpCollectionContainers::testConstructorPlaylists()
+{
+ MpCollectionContainer *temp = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ QCOMPARE(mTest->mCollectionContext, ECollectionContextPlaylists);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+ MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+ QVERIFY(playlists->mList == 0);
+ QVERIFY(playlists->mInfoBar == 0);
+ QVERIFY(playlists->mNoMusic == 0);
+ QVERIFY(playlists->mIndexFeedback != 0);
+ QVERIFY(playlists->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
+
+ temp = 0;
+ temp = mView->mContainerFactory->createContainer(ECollectionContextPlaylistSongs);
+ QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylistSongs);
+ // Verify that the same container is used.
+ QVERIFY(mTest == temp);
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongs()
+{
+ mCollectionData->mCount = 5;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+ QVERIFY(allSongs->mList != 0);
+ QVERIFY(allSongs->mInfoBar != 0);
+ QVERIFY(allSongs->mNoMusic == 0);
+ QCOMPARE(allSongs->mList->itemRecycling(), true);
+ QCOMPARE(allSongs->mList->scrollingStyle(), HbListView::PanOrFlick);
+ QCOMPARE(allSongs->mList->clampingStyle(), HbListView::BounceBackClamping);
+ QCOMPARE(allSongs->mList->frictionEnabled(), true);
+ QCOMPARE(allSongs->mList->longPressEnabled(), true);
+ QCOMPARE(allSongs->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+ QCOMPARE(allSongs->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+ QVERIFY(allSongs->mIndexFeedback->itemView() == allSongs->mList);
+
+ // Normal mode. Should see count.
+ QCOMPARE(allSongs->mInfoBar->heading(), hbTrId("txt_mus_subhead_ln_songs", 5));
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongsFetcher()
+{
+ mCollectionData->mCount = 5;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ mTest->setViewMode(MpCommon::FetchView);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+ // Fetcher mode.
+ QCOMPARE(allSongs->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+}
+
+/*!
+ Test setupContainer via setDataModel for AllSongs container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerAllSongsNoData()
+{
+ mCollectionData->mCount = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerAllSongs *allSongs = static_cast<MpCollectionContainerAllSongs*>(mTest);
+
+ QVERIFY(allSongs->mList == 0);
+ QVERIFY(allSongs->mInfoBar == 0);
+ QVERIFY(allSongs->mNoMusic != 0);
+}
- delete mTest;
- mTest = 0;
-
- mTest = new MpCollectionContainerArtists(mView->mDocumentLoader);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
-
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-
- delete mTest;
- mTest = 0;
-
- mTest = new MpCollectionContainerAlbums(mView->mDocumentLoader);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-
- delete mTest;
- mTest = 0;
-
- mTest = new MpCollectionContainerPlaylists(mView->mDocumentLoader);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
-
- delete mTest;
- mTest = 0;
-
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->indexFeedbackPolicy() == HbIndexFeedback::IndexFeedbackSingleCharacter);
- QCOMPARE(mTest->mCollectionContext,ECollectionContextUnknown);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
+/*!
+ Test setupContainer via setDataModel for Artists container.
+ */
+void TestMpCollectionContainers::testSetupContainerArtists()
+{
+ mCollectionData->mCount = 5;
+
+ // User selects Artists
+ mCollectionData->mContext = ECollectionContextArtists;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone == 0);
+ QVERIFY(artists->mNoMusic == 0);
+ QCOMPARE(artists->mList->itemRecycling(), true);
+ QCOMPARE(artists->mList->scrollingStyle(), HbListView::PanOrFlick);
+ QCOMPARE(artists->mList->clampingStyle(), HbListView::BounceBackClamping);
+ QCOMPARE(artists->mList->frictionEnabled(), true);
+ QCOMPARE(artists->mList->longPressEnabled(), true);
+ QCOMPARE(artists->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+ QCOMPARE(artists->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+ QVERIFY(artists->mIndexFeedback->itemView() == artists->mList);
+ QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+ // User selects an artist - case where artist has more than 1 album
+ mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+ // User selects an album
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+ mCollectionData->mCurrentAlbumAvailable = false;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone != 0);
+ QVERIFY(artists->mTBoneListModel != 0);
+ QVERIFY(artists->mAlbumIndexOffset == 1);
+ QCOMPARE(artists->mTBone->reflectionsEnabled(), false);
+ QCOMPARE(spy.count(), 1);
+
+ // User selects back - navigate back to artist albums
+ mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QVERIFY(artists->mTBone == 0);
+ QVERIFY(artists->mAlbumIndexOffset == 0);
+ QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+ // User selects Artist's all songs
+ mCollectionData->mContext = ECollectionContextArtistAllSongs;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAllSongs);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_1_all").arg("Title"));
+
+ // User selects back - navigate back to artist albums
+ mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+
+ // User selects back - navigate back to artists
+ mCollectionData->mContext = ECollectionContextArtists;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+ // User selects an artist - case where artist has 1 album
+ // Goes directly to TBone
+ mCollectionData->mCount = 1;
+ mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+ mCollectionData->mCurrentAlbumAvailable = true;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone != 0);
+ QVERIFY(artists->mTBoneListModel != 0);
+ QVERIFY(artists->mAlbumIndexOffset == 0);
+ // We set mCurrentAlbumAvailable to true, so no signal should emit.
+ QCOMPARE(spy.count(), 1);
+
+ // User selects back - navigate back to artists
+ mCollectionData->mContext = ECollectionContextArtists;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone == 0);
+ QVERIFY(artists->mCurrentAlbumIndex == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Artists container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerArtistsFetcher()
+{
+ mCollectionData->mCount = 1;
+
+ // User selects Artists
+ mCollectionData->mContext = ECollectionContextArtists;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+ mTest->setViewMode(MpCommon::FetchView);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+
+ // User selects an artist - case where artist has 1 album
+ // Goes directly to TBone
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ mCollectionData->mContext = ECollectionContextArtistAlbumsTBone;
+ mCollectionData->mCurrentAlbumAvailable = false;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbumsTBone);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QVERIFY(artists->mTBone != 0);
+ QVERIFY(artists->mTBoneListModel != 0);
+ QVERIFY(artists->mAlbumIndexOffset == 0);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+ // User selects back - navigate back to artists
+ mCollectionData->mContext = ECollectionContextArtists;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtists);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone == 0);
+ QVERIFY(artists->mCurrentAlbumIndex == 0);
+
+ // User selects an artist - case where artist has more than 1 album
+ mCollectionData->mCount = 5;
+ mCollectionData->mContext = ECollectionContextArtistAlbums;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAlbums);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QCOMPARE(artists->mInfoBar->heading(), QString("Title"));
+
+ // User selects Artist's all songs
+ mCollectionData->mContext = ECollectionContextArtistAllSongs;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(artists->mCollectionContext, ECollectionContextArtistAllSongs);
+ QVERIFY(artists->mList != 0);
+ QVERIFY(artists->mInfoBar != 0);
+ QCOMPARE(artists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
}
/*!
- Test setupContainer via setDataModel
+ Test setupContainer via setDataModel for Artists container with no data.
*/
-void TestMpCollectionContainers::testSetupContainers()
+void TestMpCollectionContainers::testSetupContainerArtistsNoData()
{
- mCollectionData->mCount = 1;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
+ mCollectionData->mCount = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar != 0);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAllSongs*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
- mCollectionData->mContext = ECollectionContextArtists;
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+ QVERIFY(artists->mList == 0);
+ QVERIFY(artists->mInfoBar == 0);
+ QVERIFY(artists->mTBone == 0);
+ QVERIFY(artists->mNoMusic != 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbums()
+{
+ mCollectionData->mCount = 5;
+
+ // User selects Albums
+ mCollectionData->mContext = ECollectionContextAlbums;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar == 0);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-
- mCollectionData->mContext = ECollectionContextArtistAlbums;
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+ QVERIFY(albums->mList != 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mTBone == 0);
+ QVERIFY(albums->mNoMusic == 0);
+ QCOMPARE(albums->mList->itemRecycling(), true);
+ QCOMPARE(albums->mList->scrollingStyle(), HbListView::PanOrFlick);
+ QCOMPARE(albums->mList->clampingStyle(), HbListView::BounceBackClamping);
+ QCOMPARE(albums->mList->frictionEnabled(), true);
+ QCOMPARE(albums->mList->longPressEnabled(), true);
+ QCOMPARE(albums->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+ QCOMPARE(albums->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+ QVERIFY(albums->mIndexFeedback->itemView() == albums->mList);
+
+ // User selects an album
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ mCollectionData->mContext = ECollectionContextAlbumsTBone;
+ mCollectionData->mCurrentAlbumAvailable = false;
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar != 0);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-
- mCollectionData->mContext = ECollectionContextArtistSongs;
- mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mInfoBar != 0);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerArtists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerArtists*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerArtists*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextArtists);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbumsTBone);
+ QVERIFY(albums->mList != 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mTBone != 0);
+ QVERIFY(albums->mTBoneListModel != 0);
+ QCOMPARE(albums->mTBone->reflectionsEnabled(), false);
+ QCOMPARE(spy.count(), 1);
+
+ // User selects back - navigate back to albums
mCollectionData->mContext = ECollectionContextAlbums;
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAlbums*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-
- mCollectionData->mContext = ECollectionContextAlbumSongs;
- mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar != 0);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerAlbums*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mIndexFeedback->itemView() == static_cast<MpCollectionContainerAlbums*>(mTest)->mList);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
- mCollectionData->mContext = ECollectionContextPlaylists;
- mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
- mCollectionData->mContext = ECollectionContextPlaylistSongs;
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+ QVERIFY(albums->mList != 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mTBone == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container in Fetcher mode.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbumsFetcher()
+{
+ mCollectionData->mCount = 5;
+
+ // User selects Albums
+ mCollectionData->mContext = ECollectionContextAlbums;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ mTest->setViewMode(MpCommon::FetchView);
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar != 0);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->itemRecycling(), true);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->scrollingStyle(), HbListView::PanOrFlick);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->clampingStyle(), HbListView::BounceBackClamping);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->longPressEnabled(), true);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
- QCOMPARE(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0);
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
- //Test the case when all the songs are removed from a playlist, previous case is precondition...
- mCollectionData->mCount = 0;
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+
+ // User selects an album
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ mCollectionData->mContext = ECollectionContextAlbumsTBone;
+ mCollectionData->mCurrentAlbumAvailable = true;
mTest->setDataModel(mCollectionDataModel);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
- //Test the case when songs get added to empty playlist, previous case is precondition...
- mCollectionData->mCount = 1;
- mTest->setDataModel(mCollectionDataModel);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
-
- //No data
- mTest = 0;
- mCollectionData->mCount = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
- mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAllSongs*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAllSongs);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbumsTBone);
+ QVERIFY(albums->mList != 0);
+ QVERIFY(albums->mInfoBar != 0);
+ QVERIFY(albums->mTBone != 0);
+ QVERIFY(albums->mTBoneListModel != 0);
+ QCOMPARE(albums->mTBone->reflectionsEnabled(), false);
+ // We set mCurrentAlbumAvailable to true, so no signal should emit.
+ QCOMPARE(spy.count(), 0);
+ QCOMPARE(albums->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+ // User selects back - navigate back to albums
mCollectionData->mContext = ECollectionContextAlbums;
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-
- mCollectionData->mContext = ECollectionContextAlbumSongs;
+ QCOMPARE(albums->mCollectionContext, ECollectionContextAlbums);
+ QVERIFY(albums->mList != 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mTBone == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Albums container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerAlbumsNoData()
+{
+ mCollectionData->mCount = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerAlbums*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextAlbums);
-
- mTest = 0;
- mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
- mCollectionData->mContext = ECollectionContextPlaylists;
- mTest->setDataModel(mCollectionDataModel);
-
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
- mCollectionData->mContext = ECollectionContextPlaylistSongs;
- mTest->setDataModel(mCollectionDataModel);
- mCollectionData->mCount = 0;
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mList == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mInfoBar == 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mNoMusic != 0);
- QVERIFY(static_cast<MpCollectionContainerPlaylists*>(mTest)->mIndexFeedback->itemView() == 0 );
- QCOMPARE(mView->mContainerFactory->mCurrentContext, ECollectionContextPlaylists);
-
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+ QVERIFY(albums->mList == 0);
+ QVERIFY(albums->mInfoBar == 0);
+ QVERIFY(albums->mTBone == 0);
+ QVERIFY(albums->mNoMusic != 0);
}
/*!
- Test itemActivated
+ Test setupContainer via setDataModel for Playlists container.
+ */
+void TestMpCollectionContainers::testSetupContainerPlaylists()
+{
+ mCollectionData->mCount = 5;
+
+ // User selects Playlists
+ mCollectionData->mContext = ECollectionContextPlaylists;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+ QVERIFY(playlists->mList != 0);
+ QVERIFY(playlists->mInfoBar == 0);
+ QVERIFY(playlists->mNoMusic == 0);
+ QCOMPARE(playlists->mList->itemRecycling(), true);
+ QCOMPARE(playlists->mList->scrollingStyle(), HbListView::PanOrFlick);
+ QCOMPARE(playlists->mList->clampingStyle(), HbListView::BounceBackClamping);
+ QCOMPARE(playlists->mList->frictionEnabled(), true);
+ QCOMPARE(playlists->mList->longPressEnabled(), true);
+ QCOMPARE(playlists->mList->verticalScrollBarPolicy(), HbScrollArea::ScrollBarAsNeeded);
+ QCOMPARE(playlists->mList->listItemPrototype()->graphicsSize(), HbListViewItem::Thumbnail);
+ QVERIFY(playlists->mIndexFeedback->itemView() == 0 );
+
+ // User selects a playlist
+ mCollectionData->mContext = ECollectionContextPlaylistSongs;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylistSongs);
+ QVERIFY(playlists->mList != 0);
+ QVERIFY(playlists->mInfoBar != 0);
+ QVERIFY(playlists->mNoMusic == 0);
+ QCOMPARE(playlists->mInfoBar->heading(), QString("Title"));
+
+ // User selects back - navigate back to playlists
+ mCollectionData->mContext = ECollectionContextPlaylists;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+ QVERIFY(playlists->mList != 0);
+ QVERIFY(playlists->mInfoBar == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Playlists container in Fetcher mode.
*/
-void TestMpCollectionContainers::testItemActivated()
-{
+void TestMpCollectionContainers::testSetupContainerPlaylistsFetcher()
+{
+ mCollectionData->mCount = 5;
+
+ // User selects Playlists
+ mCollectionData->mContext = ECollectionContextPlaylists;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ mTest->setViewMode(MpCommon::FetchView);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+
+ // User selects a playlist
+ mCollectionData->mContext = ECollectionContextPlaylistSongs;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylistSongs);
+ QVERIFY(playlists->mList != 0);
+ QVERIFY(playlists->mInfoBar != 0);
+ QVERIFY(playlists->mNoMusic == 0);
+ QCOMPARE(playlists->mInfoBar->heading(), hbTrId("txt_mus_subtitle_select_a_song"));
+
+ // User selects back - navigate back to playlists
+ mCollectionData->mContext = ECollectionContextPlaylists;
+ mTest->setDataModel(mCollectionDataModel);
+ QCOMPARE(playlists->mCollectionContext, ECollectionContextPlaylists);
+ QVERIFY(playlists->mList != 0);
+ QVERIFY(playlists->mInfoBar == 0);
+}
+
+/*!
+ Test setupContainer via setDataModel for Playlists container with no data.
+ */
+void TestMpCollectionContainers::testSetupContainerPlaylistsNoData()
+{
+ mCollectionData->mCount = 0;
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
+ mTest->setDataModel(mCollectionDataModel);
+ MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+ QVERIFY(playlists->mList == 0);
+ QVERIFY(playlists->mInfoBar == 0);
+ QVERIFY(playlists->mNoMusic != 0);
+}
+
+/*!
+ Test itemActivated - AllSongs container
+ */
+void TestMpCollectionContainers::testItemActivatedAllSongs()
+{
mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
-
- QSignalSpy spy(mTest, SIGNAL(itemActivated( int )));
+ QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
static_cast<MpCollectionContainerAllSongs*>(mTest)->itemActivated(QModelIndex());
QCOMPARE(spy.count(), 1);
QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
-
- mTest = 0;
+}
+
+/*!
+ Test itemActivated - Artists container.
+ */
+void TestMpCollectionContainers::testItemActivatedArtists()
+{
+ QModelIndex index = QModelIndex();
mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
- QSignalSpy spy2(mTest, SIGNAL(itemActivated( int )));
- static_cast<MpCollectionContainerArtists*>(mTest)->itemActivated(QModelIndex());
+ QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+ artists->itemActivated(index);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+ QCOMPARE(artists->mCurrentArtistIndex, -1);
+
+ artists->mCollectionContext = ECollectionContextArtistAlbums;
+ artists->itemActivated(index);
+ QCOMPARE(spy.count(), 2);
+ QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
+ QCOMPARE(artists->mCurrentAlbumIndex, -1);
+
+ artists->mCollectionContext = ECollectionContextArtistAlbumsTBone;
+ QSignalSpy spy2(mTest, SIGNAL(playAlbumSongs(int, int)));
+ artists->mCurrentAlbumIndex = 1;
+ artists->itemActivated(index);
+ QCOMPARE(spy.count(), 2);
QCOMPARE(spy2.count(), 1);
- QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
-
- mTest = 0;
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), 1);
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(1)), -1);
+
+ artists->setViewMode(MpCommon::FetchView);
+ artists->mCollectionContext = ECollectionContextArtistAlbumsTBone;
+ artists->itemActivated(index);
+ QCOMPARE(spy.count(), 3);
+ QCOMPARE(spy2.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(2).at(0)), -1);
+
+ artists->mCollectionContext = ECollectionContextArtistAllSongs;
+ artists->itemActivated(index);
+ QCOMPARE(spy.count(), 4);
+ QCOMPARE(qvariant_cast<int>(spy.at(3).at(0)), -1);
+}
+
+/*!
+ Test itemActivated - Albums container.
+ */
+void TestMpCollectionContainers::testItemActivatedAlbums()
+{
+ QModelIndex index = QModelIndex();
mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
- QSignalSpy spy3(mTest, SIGNAL(itemActivated( int )));
- static_cast<MpCollectionContainerAlbums*>(mTest)->itemActivated(QModelIndex());
- QCOMPARE(spy3.count(), 1);
- QCOMPARE(qvariant_cast<int>(spy3.at(0).at(0)), -1);
-
- mTest = 0;
+ QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+ albums->itemActivated(index);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+ QCOMPARE(albums->mCurrentAlbumIndex, -1);
+
+ albums->mCollectionContext = ECollectionContextAlbumsTBone;
+ QSignalSpy spy2(mTest, SIGNAL(playAlbumSongs(int, int)));
+ albums->mCurrentAlbumIndex = 1;
+ albums->itemActivated(index);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy2.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), 1);
+ QCOMPARE(qvariant_cast<int>(spy2.at(0).at(1)), -1);
+
+ albums->setViewMode(MpCommon::FetchView);
+ albums->mCollectionContext = ECollectionContextAlbumsTBone;
+ albums->itemActivated(index);
+ QCOMPARE(spy.count(), 2);
+ QCOMPARE(spy2.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
+}
+
+/*!
+ Test itemActivated - Playlists container
+ */
+void TestMpCollectionContainers::testItemActivatedPlaylists()
+{
+ QModelIndex index = QModelIndex();
mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
- QSignalSpy spy4(mTest, SIGNAL(itemActivated( int )));
- static_cast<MpCollectionContainerPlaylists*>(mTest)->itemActivated(QModelIndex());
- QCOMPARE(spy4.count(), 1);
- QCOMPARE(qvariant_cast<int>(spy4.at(0).at(0)), -1);
+ QSignalSpy spy(mTest, SIGNAL(itemActivated(int)));
+ MpCollectionContainerPlaylists *playlists = static_cast<MpCollectionContainerPlaylists*>(mTest);
+
+ playlists->itemActivated(index);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+ QCOMPARE(playlists->mCurrentPlaylistIndex, -1);
+
+ playlists->mCollectionContext = ECollectionContextPlaylistSongs;
+ playlists->itemActivated(index);
+ QCOMPARE(spy.count(), 2);
+ QCOMPARE(qvariant_cast<int>(spy.at(1).at(0)), -1);
}
/*!
Test onLongPressed
- */
+*/
void TestMpCollectionContainers::testOnLongPressed()
{
mTest = mView->mContainerFactory->createContainer(ECollectionContextAllSongs);
QSignalSpy spy(mTest, SIGNAL(itemLongPressed( int, QPointF )));
-
+
HbListView *viewItem = new HbListView();
static_cast<MpCollectionContainerAllSongs*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
QCOMPARE(spy.count(), 1);
QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
-
- mTest = 0;
+
+ mTest = 0;
mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
QSignalSpy spy2(mTest, SIGNAL(itemLongPressed( int, QPointF )));
static_cast<MpCollectionContainerArtists*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
QCOMPARE(spy2.count(), 1);
QCOMPARE(qvariant_cast<int>(spy2.at(0).at(0)), -1);
-
- mTest = 0;
+
+ mTest = 0;
mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
QSignalSpy spy3(mTest, SIGNAL(itemLongPressed( int, QPointF )));
static_cast<MpCollectionContainerAlbums*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
QCOMPARE(spy3.count(), 1);
QCOMPARE(qvariant_cast<int>(spy3.at(0).at(0)), -1);
-
- mTest = 0;
+
+ mTest = 0;
mTest = mView->mContainerFactory->createContainer(ECollectionContextPlaylists);
QSignalSpy spy4(mTest, SIGNAL(itemLongPressed( int, QPointF )));
static_cast<MpCollectionContainerPlaylists*>(mTest)->onLongPressed(viewItem->listItemPrototype(), QPointF());
@@ -455,4 +788,65 @@
QCOMPARE(qvariant_cast<int>(spy4.at(0).at(0)), -1);
}
-// End of file
+
+/*!
+ Test albumCentered - Artists container.
+ */
+void TestMpCollectionContainers::testAlbumCenteredArtists()
+{
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextArtists);
+ mTest->mCollectionData = mCollectionData;
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ MpCollectionContainerArtists *artists = static_cast<MpCollectionContainerArtists*>(mTest);
+
+ mCollectionData->mCurrentAlbumAvailable = false;
+ artists->mAlbumIndexOffset = 0;
+ artists->mCurrentAlbumIndex = 0;
+ artists->albumCentered();
+ QCOMPARE(artists->mCurrentAlbumIndex, -1);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+
+ mCollectionData->mCurrentAlbumAvailable = true;
+ artists->mAlbumIndexOffset = 0;
+ artists->mCurrentAlbumIndex = 0;
+ artists->albumCentered();
+ QCOMPARE(artists->mCurrentAlbumIndex, -1);
+ QCOMPARE(spy.count(), 1);
+
+ // Re-centered on same item
+ artists->mAlbumIndexOffset = 1;
+ artists->mCurrentAlbumIndex = 0;
+ artists->albumCentered();
+ QCOMPARE(spy.count(), 1);
+}
+
+/*!
+ Test albumCentered - Albums container.
+ */
+void TestMpCollectionContainers::testAlbumCenteredAlbums()
+{
+ mTest = mView->mContainerFactory->createContainer(ECollectionContextAlbums);
+ mTest->mCollectionData = mCollectionData;
+ QSignalSpy spy(mTest, SIGNAL(findAlbumSongs(int)));
+ MpCollectionContainerAlbums *albums = static_cast<MpCollectionContainerAlbums*>(mTest);
+
+ mCollectionData->mCurrentAlbumAvailable = false;
+ albums->mCurrentAlbumIndex = 0;
+ albums->albumCentered();
+ QCOMPARE(albums->mCurrentAlbumIndex, -1);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(qvariant_cast<int>(spy.at(0).at(0)), -1);
+
+ mCollectionData->mCurrentAlbumAvailable = true;
+ albums->mCurrentAlbumIndex = 0;
+ albums->albumCentered();
+ QCOMPARE(albums->mCurrentAlbumIndex, -1);
+ QCOMPARE(spy.count(), 1);
+
+ // Re-centered on same item
+ albums->mCurrentAlbumIndex = -1;
+ albums->albumCentered();
+ QCOMPARE(spy.count(), 1);
+}
+