diff -r 48e74db5d516 -r bbb98528c666 videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp --- a/videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp Thu Apr 01 23:13:36 2010 +0300 +++ b/videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp Thu Apr 01 23:22:15 2010 +0300 @@ -22,13 +22,16 @@ #include #include #include +#include +#include #include #include #include #include -#include #include +#include +#include "videodetailslabel.h" #include "hbmessagebox.h" #include "thumbnailmanager_qt.h" #include "videocollectioncommon.h" @@ -44,28 +47,23 @@ const char *TEST_VIDEO_DETAILS_VIEW = "videofiledetailsview"; const char *TEST_VIDEO_DETAILS_WIDGET = "mContent"; - const char *TEST_VIDEO_DETAILS_TITLE = "mLblTitle"; -const char *TEST_VIDEO_DETAILS_ITEM = "mLblDetail"; -const char *TEST_VIDEO_DETAILS_BUTTON_PLAY = "mBtnPlay"; -const char* const VIDEO_DETAILS_BUTTON_ATTACH = "mBtnAttach"; -const char *TEST_VIDEO_DETAILS_MENUACTION_SHARE = "mOptionsShare"; +const char *TEST_VIDEO_DETAILS_LISTWIDGET ="mDetailsList"; +const char* const VIDEO_DETAILS_THUMBNAIL = "mDetailsLabel"; +const char* const VIDEO_DETAILS_BUTTON = "mButton"; const char *TEST_VIDEO_DETAILS_MENUACTION_DELETE = "mOptionsDelete"; -const char *TEST_VIDEO_DETAILS_SCROLLAREA = "mDetailScrollArea"; - // --------------------------------------------------------------------------- // initTestCase // --------------------------------------------------------------------------- // void TestVideoFileDetails::initTestCase() { - mWrapper = VideoCollectionWrapper::instance(); mDummyModel = 0; mDummyModel = new VideoSortFilterProxyModel(); - connect(this, SIGNAL(shortDetailsReady(int)), mDummyModel, SIGNAL(shortDetailsReady(int))); - connect(this, SIGNAL(fullDetailsReady(int)), mDummyModel, SIGNAL(fullDetailsReady(int))); + connect(this, SIGNAL(shortDetailsReady(TMPXItemId)), mDummyModel, SIGNAL(shortDetailsReady(TMPXItemId))); + connect(this, SIGNAL(fullDetailsReady(TMPXItemId)), mDummyModel, SIGNAL(fullDetailsReady(TMPXItemId))); connect(this, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)), mDummyModel, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&))); @@ -73,7 +71,7 @@ connect(this, SIGNAL(rowsRemoved(const QModelIndex&, int, int)), mDummyModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int))); - mWrapper->setModel(mDummyModel); + VideoCollectionWrapper::instance().setModel(mDummyModel); } // --------------------------------------------------------------------------- @@ -90,8 +88,6 @@ mDummyModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int))); delete mDummyModel; mDummyModel = 0; delete mPlugin; mPlugin = 0; - mWrapper->decreaseReferenceCount(); - QCOMPARE(mWrapper->mReferenceCount, 0); } // --------------------------------------------------------------------------- @@ -140,7 +136,7 @@ // Helper function that populates a qmap with dummy data. // --------------------------------------------------------------------------- // -QMap TestVideoFileDetails::createDummyMetadata(int ratingStartCount) +QMap TestVideoFileDetails::createDummyMetadata() { using namespace VideoCollectionCommon; @@ -160,10 +156,6 @@ map[VideoDetailLabelKeys[i]] = txt; } } - if(ratingStartCount > -1) - { - map[MetaKeyStarRating] = ratingStartCount; - } return map; } @@ -175,76 +167,37 @@ { init(); - HbScrollArea* area = findWidget(TEST_VIDEO_DETAILS_SCROLLAREA); - - // won't scroll without these - area->contentWidget()->adjustSize(); - area->setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAutoHide); - - area->scrollContentsTo(QPointF(0, 200)); - - QSignalSpy spy(area, SIGNAL(scrollPositionChanged(const QPointF))); - activateView(); QVERIFY( mPlugin->getView() != 0 ); QVERIFY( mPlugin->viewPlugin() == mPlugin ); - QCOMPARE( mPlugin->mVideoIndex, -1 ); - - verifyOrientation(); + QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() ); // verify that actions are currently disabled. - HbPushButton* playBtn = findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY); - HbAction* shareAction = findObject(TEST_VIDEO_DETAILS_MENUACTION_SHARE); + HbStackedWidget* thumbWidget = findWidget(VIDEO_DETAILS_THUMBNAIL); + VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0); HbAction* deleteAction = findObject(TEST_VIDEO_DETAILS_MENUACTION_DELETE); - QVERIFY( playBtn != 0 ); - QVERIFY( shareAction != 0 ); + HbPushButton* button = findWidget(VIDEO_DETAILS_BUTTON); + + QVERIFY( button != 0 ); + QVERIFY( thumbLabel != 0 ); QVERIFY( deleteAction != 0 ); - QVERIFY( playBtn->isEnabled() ); - QVERIFY( shareAction->isEnabled() ); QVERIFY( deleteAction->isEnabled() ); - // verify that the scroll area has been scrolled to the top. - QCOMPARE( spy.count(), 1 ); - QPointF scrollPoint = spy.takeFirst().at(0).toPointF(); - QCOMPARE( scrollPoint, QPointF(0, 0) ); - QVERIFY(mPlugin->mActivated); // second activation should not affect activateView(); QVERIFY(mPlugin->mActivated); - QVERIFY( playBtn != 0 ); - QVERIFY( shareAction != 0 ); + QVERIFY( button != 0 ); + QVERIFY( thumbLabel != 0 ); QVERIFY( deleteAction != 0 ); - QVERIFY( playBtn->isEnabled() ); - QVERIFY( shareAction->isEnabled() ); QVERIFY( deleteAction->isEnabled() ); - cleanup(); } // --------------------------------------------------------------------------- -// Verifies that correct orientation is loaded from xml -// --------------------------------------------------------------------------- -// -inline void TestVideoFileDetails::verifyOrientation() -{ - HbWidget* info = findWidget(TEST_VIDEO_DETAILS_SCROLLAREA); - - // this verifies that we have correct orientation loaded from the xml. - if (hbInstance->allMainWindows().at(0)->orientation() == Qt::Vertical) - { - QVERIFY( info->pos().x() < 300 ); - QVERIFY( info->pos().x() > 0 ); - } else { - QVERIFY( info->pos().x() > 300 ); - QVERIFY( info->pos().x() < 640 ); - } -} - -// --------------------------------------------------------------------------- // Slot: create view // --------------------------------------------------------------------------- // @@ -267,7 +220,7 @@ QVERIFY( mPlugin->mVideoServices == 0); // testing the special case where the model is null. cleanup(); - mWrapper->setModel(0); + VideoCollectionWrapper::instance().setModel(0); init(); QVERIFY( mPlugin->mModel == 0 ); QVERIFY( mPlugin->mIsService == false); @@ -276,7 +229,7 @@ // then it needs to be added here. // restoring the proper model. - mWrapper->setModel(mDummyModel); + VideoCollectionWrapper::instance().setModel(mDummyModel); cleanup(); } @@ -327,10 +280,10 @@ activateView(); mPlugin->deactivateView(); QVERIFY( mPlugin->mActivated == false ); - QCOMPARE( mPlugin->mVideoIndex, -1 ); + QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() ); mPlugin->deactivateView(); QVERIFY( mPlugin->mActivated == false ); - QCOMPARE( mPlugin->mVideoIndex, -1 ); + QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() ); cleanup(); } @@ -371,8 +324,6 @@ // give fw some time to update content QTest::qWait(100); - verifyOrientation(); - cleanup(); } @@ -431,7 +382,7 @@ // void TestVideoFileDetails::testShortDetailsReadySlot() { - const int testIndex = 5; + TMPXItemId testIndex(5,0); QStringList display; display.append("first row"); display.append("second row"); @@ -445,10 +396,9 @@ // no data emit shortDetailsReady(testIndex); - QCOMPARE( mPlugin->mVideoIndex, testIndex ); + QCOMPARE( mPlugin->mVideoId, testIndex ); QVERIFY( mPlugin->mTitleAnim->text().isEmpty() ); QCOMPARE( mPlugin->mThumbnailManager->mRequests.count(), 0 ); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->primitive(HbStyle::P_PushButton_background)->isVisible() == false ); mDummyModel->setData(Qt::DisplayRole, display); mDummyModel->setData(VideoCollectionCommon::KeyFilePath, filepath); @@ -457,39 +407,36 @@ ThumbnailManager *tmpTnManager = mPlugin->mThumbnailManager; mPlugin->mThumbnailManager = 0; emit shortDetailsReady(testIndex); - QCOMPARE( mPlugin->mVideoIndex, testIndex ); + QCOMPARE( mPlugin->mVideoId, testIndex ); QCOMPARE( mPlugin->mTitleAnim->text(), display.at(0) ); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->primitive(HbStyle::P_PushButton_background)->isVisible() == false ); mPlugin->mThumbnailManager = tmpTnManager; // data exists emit shortDetailsReady(testIndex); - QCOMPARE( mDummyModel->lastIndex().row(), testIndex ); + QCOMPARE( mPlugin->mVideoId, testIndex ); + QCOMPARE( mDummyModel->lastId(), testIndex ); QCOMPARE( mPlugin->mTitleAnim->text(), display.at(0) ); QVERIFY( ThumbnailManager::mRequests.contains(0) ); ThumbnailManager::TnRequest request = ThumbnailManager::mRequests[0]; QCOMPARE( request.name, filepath ); // 20 == priorityHight in this case QCOMPARE( request.priority, 5000 ); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->primitive(HbStyle::P_PushButton_background)->isVisible() == false ); mDummyModel->setData(VideoCollectionCommon::KeyMetaData, createDummyMetadata() ); emit fullDetailsReady(testIndex); emit shortDetailsReady(testIndex); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->primitive(HbStyle::P_PushButton_background)->isVisible() == false ); int detailCount = sizeof(VideoCollectionCommon::VideoDetailLabelKeys) / sizeof(int); - for(int i = 1; i<=detailCount; i++) { - HbLabel* detail = findWidget(TEST_VIDEO_DETAILS_ITEM + QString::number(i)); - QVERIFY( detail->text().isEmpty() ); - } + + HbListWidget* list = findWidget(TEST_VIDEO_DETAILS_LISTWIDGET); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->icon().isNull() ); - - cleanup(); + QVERIFY(list); + QVERIFY(list->count() == 0); + + cleanup(); } // --------------------------------------------------------------------------- @@ -498,62 +445,59 @@ // void TestVideoFileDetails::testFullDetailsReadySlot() { - const int testIndex = 6; + TMPXItemId testIndex(6,0); init(); activateView(); int detailCount = sizeof(VideoCollectionCommon::VideoDetailLabelKeys) / sizeof(int); - for(int i = 1; i<=detailCount; i++) { - HbLabel* detail = findWidget(TEST_VIDEO_DETAILS_ITEM + QString::number(i)); - if(detail == 0) - { - QFAIL(QString("Found a null label at %1, check that the xml is " - "correct, and that the resource files have been regenerated (by running abld " - "reallyclean before build)").arg(TEST_VIDEO_DETAILS_ITEM + QString::number(i)). - toStdString().data()); - } - } + + HbListWidget* list = findWidget(TEST_VIDEO_DETAILS_LISTWIDGET); + QVERIFY(list); + QVERIFY(list->count() == 0); mDummyModel->setData(VideoCollectionCommon::KeyMetaData, createDummyMetadata() ); emit fullDetailsReady(testIndex); // verify that actions are currently enabled. - HbPushButton* playBtn = findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY); - HbAction* shareAction = findObject(TEST_VIDEO_DETAILS_MENUACTION_SHARE); + HbStackedWidget* thumbWidget = findWidget(VIDEO_DETAILS_THUMBNAIL); + VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0); HbAction* deleteAction = findObject(TEST_VIDEO_DETAILS_MENUACTION_DELETE); - QVERIFY( playBtn != 0 ); - QVERIFY( shareAction != 0 ); + QVERIFY( thumbLabel != 0 ); QVERIFY( deleteAction != 0 ); - QVERIFY( playBtn->isEnabled() ); - QVERIFY( shareAction->isEnabled() ); QVERIFY( deleteAction->isEnabled() ); - for(int i = 0; icount() == detailCount); + + for(int i = 0; i(TEST_VIDEO_DETAILS_ITEM + QString::number(i+1)); + HbListWidgetItem* detail = list->item(i); QVERIFY( detail != 0 ); QVERIFY( detail->text().contains(expected) ); } // for coverity sake, retest without star-rating mDummyModel->reset(); - mDummyModel->setData(VideoCollectionCommon::KeyMetaData, createDummyMetadata(1) ); + mDummyModel->setData(VideoCollectionCommon::KeyMetaData, createDummyMetadata() ); emit fullDetailsReady(testIndex); + + int ii = 0; for(int i = 0; i(TEST_VIDEO_DETAILS_ITEM + QString::number(i+1)); + HbListWidgetItem* detail = list->item(ii); QVERIFY( detail != 0 ); QVERIFY( detail->text().contains(expected) ); } + ++ii; } - + cleanup(); } @@ -563,7 +507,7 @@ // void TestVideoFileDetails::testStartPlaybackSlot() { - const int testIndex = 6; + TMPXItemId testIndex(6,0); mDummyModel->reset(); init(); activateView(); @@ -571,22 +515,23 @@ // Note that if the details view has not received signal in it's // fullDetailsReadySlot, the button is disabled and should not do anything. - HbPushButton* playBtn = findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY); - QVERIFY( playBtn != 0 ); - playBtn->click(); + HbStackedWidget* thumbWidget = findWidget(VIDEO_DETAILS_THUMBNAIL); + VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0); + QVERIFY( thumbLabel != 0 ); + thumbLabel->click(); - QCOMPARE( mDummyModel->startPlaybackIndex(), -1 ); + QCOMPARE( mDummyModel->startPlaybackIndex(), TMPXItemId::InvalidId() ); emit fullDetailsReady(testIndex); - mPlugin->mVideoIndex = testIndex; + mPlugin->mVideoId = testIndex; - playBtn->click(); + thumbLabel->click(); QCOMPARE( mDummyModel->startPlaybackIndex(), testIndex ); // invalid index - mPlugin->mVideoIndex = -1; - playBtn->click(); + mPlugin->mVideoId = TMPXItemId::InvalidId(); + thumbLabel->click(); // startplayback index has not changed since previous QCOMPARE( mDummyModel->startPlaybackIndex(), testIndex ); @@ -616,8 +561,8 @@ QVERIFY( deleteAction != 0 ); deleteAction->trigger(); QCOMPARE( mDummyModel->dataAccessCount(), 0 ); - mPlugin->mVideoIndex = 0; - + mPlugin->mVideoId = (0,0); + mDummyModel->setDataReturnInvalid(true); QModelIndex expected = mDummyModel->index(0, 0); deleteAction->trigger(); @@ -626,7 +571,7 @@ QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted. mDummyModel->setDataReturnInvalid(false); - mPlugin->mVideoIndex = 0; + mPlugin->mVideoId = (0,0); expected = mDummyModel->index(0, 0); deleteAction->trigger(); QCOMPARE( mDummyModel->dataAccessCount(), 2 ); @@ -674,6 +619,7 @@ void TestVideoFileDetails::testRowsRemovedSlot() { const int testIndex = 9; + TMPXItemId testID(9,0); init(); connect(mPlugin, SIGNAL(command(int)), this, SLOT(handleCommand(int))); @@ -687,8 +633,9 @@ QCOMPARE( mCommandReceived, false ); QCOMPARE( mReceivedCommand, -1 ); - emit fullDetailsReady(testIndex); - mPlugin->mVideoIndex = testIndex; + emit fullDetailsReady(testID); + mPlugin->mVideoId = testID; + mPlugin->mDeletedIndex = testIndex; emit rowsRemoved(QModelIndex(), testIndex+1, testIndex-1); QCOMPARE( mCommandReceived, false ); @@ -754,7 +701,7 @@ // void TestVideoFileDetails::testThumbnailReadySlot() { - int testIndex = 9; + TMPXItemId testIndex(9,0); QStringList display; display.append("first row"); display.append("second row"); @@ -771,13 +718,15 @@ mPlugin->mThumbnailManager->mThumbnailReadyError = -1; mPlugin->mThumbnailManager->emitThumbnailReady(0); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->icon().qicon().isNull() == false ); - + HbStackedWidget* thumbWidget = findWidget(VIDEO_DETAILS_THUMBNAIL); + VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0); + QVERIFY( thumbLabel->icon().qicon().isNull() == false ); + mPlugin->mThumbnailManager->mThumbnailReadyError = 0; emit shortDetailsReady(testIndex); mPlugin->mThumbnailManager->emitThumbnailReady(0); - QVERIFY( findWidget(TEST_VIDEO_DETAILS_BUTTON_PLAY)->icon().qicon().isNull() == false ); + QVERIFY( thumbLabel->icon().qicon().isNull() == false ); cleanup(); }