diff -r dec420019252 -r cf5481c2bc0b videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/src/testvideocollectionclient.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/videocollectionwrapper/tsrc/testvideocollectionclient/src/testvideocollectionclient.cpp Fri Apr 16 14:59:52 2010 +0300 @@ -0,0 +1,623 @@ + +/** +* Copyright (c) 2009 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: tester for methods in CVideoCollectionWrapperPrivate +* +*/ + + +// INCLUDES + +#include "testvideocollectionclient.h" +#include "videocollectioncommon.h" +#include "stubcollectionsignalreceiver.h" +#include "videocollectionlistener.h" + +#define private public +#include "videocollectionclient.h" +#undef private + + + +Q_DECLARE_METATYPE(QList) + +// ----------------------------------------------------------------------------- +// main +// ----------------------------------------------------------------------------- +// +int main(int argc, char *argv[]) +{ + TestVideoCollectionClient tv; + + int res; + if(argc > 1) + { + res = QTest::qExec(&tv, argc, argv); + } + else + { + char *pass[3]; + pass[0] = argv[0]; + pass[1] = "-o"; + pass[2] = "c:\\data\\testvideocollectionclient.txt"; + res = QTest::qExec(&tv, 3, pass); + } + + return res; +} + +Q_DECLARE_METATYPE(QList) + +// ----------------------------------------------------------------------------- +// init +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::init() +{ + mTestObject = new VideoCollectionClient(); + mSignalReceiver = new StubSignalReceiver(); +} + +// ----------------------------------------------------------------------------- +// cleanup +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::cleanup() +{ + delete mTestObject; + mTestObject = 0; +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testInitializeCollUtilityExists() +{ + MMPXCollectionUtility *tmpUtility = new MMPXCollectionUtility(); + mTestObject->mCollectionUtility = tmpUtility; + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + QVERIFY(mTestObject->mCollectionUtility != 0); + QVERIFY(mTestObject->mCollectionListener != 0); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testInitializeCollListenerExist() +{ + VideoCollectionListener *tmpListener = new VideoCollectionListener(*mTestObject, *mSignalReceiver); + mTestObject->mCollectionListener = tmpListener; + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + QVERIFY(mTestObject->mCollectionUtility != 0); + QVERIFY(mTestObject->mCollectionListener != 0); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testInitializeUtilCreateFail() +{ + MMPXCollectionUtility::setNewLLeave(true); + QVERIFY(mTestObject->initialize(mSignalReceiver) < 0); + QVERIFY(mTestObject->mCollectionUtility == 0); + QVERIFY(mTestObject->mCollectionListener == 0); + MMPXCollectionUtility::setNewLLeave(false); +} + +// ----------------------------------------------------------------------------- +// testInitializeNullReceiverCreateFail +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testInitializeNullReceiverCreateFail() +{ + QVERIFY(mTestObject->initialize(0) < 0); + QVERIFY(mTestObject->mCollectionUtility == 0); + QVERIFY(mTestObject->mCollectionListener == 0); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testInitializeSucceed() +{ + MMPXCollectionUtility::setNewLLeave(false); + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + // none exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + QVERIFY(mTestObject->mCollectionUtility != 0); + QVERIFY(mTestObject->mCollectionListener != 0); + + // both items exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + QVERIFY(mTestObject->mCollectionUtility != 0); + QVERIFY(mTestObject->mCollectionListener != 0); + + MMPXCollectionUtility::resetCloseCounter(); + QPointer listener = mTestObject->mCollectionListener; + + cleanup(); + + QVERIFY(MMPXCollectionUtility::getCloseCounter() == 1); + QVERIFY(listener == 0); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testCollectionLevel() +{ + // no collection utility + QVERIFY(mTestObject->getCollectionLevel() == -1); + + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + + // path level not setted + QVERIFY(mTestObject->getCollectionLevel() == -1); + + // succeeds + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelCategory; + QVERIFY(mTestObject->getCollectionLevel() == VideoCollectionCommon::ELevelCategory); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testGetOpenStatus() +{ + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionNotOpen); + + mTestObject->setOpenStatus(100); + + QVERIFY(mTestObject->getOpenStatus() == 100); +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testSetOpenStatus() +{ + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionNotOpen); + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionNotOpen); + + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionOpened); + + mTestObject->setOpenStatus(100); + QVERIFY(mTestObject->getOpenStatus() == 100); + +} + +// ----------------------------------------------------------------------------- +// testInitializeCollUtilityExists +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testStartOpenCollection() +{ + // no collection utility + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == -1); + + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == -1); + + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + // open status setted allready + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpening); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpening); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == 0); + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == 0); + + // open status and level setted allready + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpening); + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelVideos; + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelCategory; + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpening); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == 0); + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == 0); + + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionNotOpen); + + // startOpenCollectionL -leaves + MMPXCollection::setOpenLPathLeave(true); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) < 0); + + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) < 0); + + MMPXCollection::setOpenLPathLeave(false); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionOpening); + TMPXItemId categoryId; + mTestObject->getCategoryId(categoryId); + QVERIFY(categoryId.iId1 == KVcxMvcCategoryIdAll); + QVERIFY(categoryId.iId2 == 1); + + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelCategory) == 0); + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionOpening); + mTestObject->getCategoryId(categoryId); + QVERIFY(categoryId == TMPXItemId::InvalidId()); + + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + QVERIFY(mTestObject->startOpenCollection(VideoCollectionCommon::ELevelVideos) == 0); + QVERIFY(mTestObject->getOpenStatus() == VideoCollectionClient::ECollectionOpening); + +} + +// ----------------------------------------------------------------------------- +// testStartOpenCurrentState +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testStartOpenCurrentState() +{ + // no collection utility + QVERIFY(mTestObject->startOpenCurrentState() == -1); + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionNotOpen); + QVERIFY(mTestObject->startOpenCurrentState() == -1); + + // collection not opened + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + QVERIFY(mTestObject->startOpenCurrentState() == -1); + + // OpenL -leaves + mTestObject->setOpenStatus(VideoCollectionClient::ECollectionOpened); + MMPXCollection::setOpenLLeave(true); + QVERIFY(mTestObject->startOpenCurrentState() < 0); + + // succeed + MMPXCollection::setOpenLLeave(false); + QVERIFY(mTestObject->startOpenCurrentState() == 0); + +} + +// ----------------------------------------------------------------------------- +// testDeleteVideos +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testDeleteVideos() +{ + // no collection utility + QVERIFY(mTestObject->deleteVideos(0) == -1); + QList ids; + QVERIFY(mTestObject->deleteVideos(&ids) == -1); + + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + // empty list + QVERIFY(mTestObject->deleteVideos(&ids) < 0); + + // one item + ids.append(TMPXItemId(1,0)); + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->deleteVideos(&ids) < 0); + MMPXCollection::setCommandLLeave(false); + QVERIFY(mTestObject->deleteVideos(&ids) == 0); + + // more than one + ids.append(TMPXItemId(2,0)); + ids.append(TMPXItemId(3,0)); + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->deleteVideos(&ids) < 0); + MMPXCollection::setCommandLLeave(false); + QVERIFY(mTestObject->deleteVideos(&ids) == 0); + +} + +// ----------------------------------------------------------------------------- +// testOpenCategory +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testOpenCategory() +{ + TMPXItemId id(0,0); + // no collection utility + QVERIFY(mTestObject->openItem(id) == -1); + + // collection exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + + MMPXCollection::setOpenLPathLeave(true); + QVERIFY(mTestObject->openItem(id)< 0); + + MMPXCollection::setOpenLPathLeave(false); + + + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelCategory; + QVERIFY(mTestObject->openItem(id) == 0); + +} + +// ----------------------------------------------------------------------------- +// testOpenVideo +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testOpenVideo() +{ + TMPXItemId id(0,0); + // no collection utility + QVERIFY(mTestObject->openItem(id) == -1); + + // collection exists: media type KVcxMvcMediaTypeVideo + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + MMPXCollection::setOpenLPathLeave(true); + QVERIFY(mTestObject->openItem(id)< 0); + MMPXCollection::setOpenLPathLeave(false); + QVERIFY(mTestObject->openItem(id) == 0); + + // collection exists: media type != KVcxMvcMediaTypeVideo + id.iId2 = 2; + MMPXCollection::setOpenLPathLeave(true); + QVERIFY(mTestObject->openItem(id)< 0); + MMPXCollection::setOpenLPathLeave(false); + QVERIFY(mTestObject->openItem(id) == 0); +} + +// ----------------------------------------------------------------------------- +// testFetchMpxMediaByMpxId +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testFetchMpxMediaByMpxId() +{ + // no collection utility + TMPXItemId id; + QVERIFY(mTestObject->fetchMpxMediaByMpxId(id) == -1); + + // collection exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->fetchMpxMediaByMpxId(id) < 0); + + MMPXCollection::setCommandLLeave(false); + QVERIFY(mTestObject->fetchMpxMediaByMpxId(id) == 0); + +} + +// ----------------------------------------------------------------------------- +// testGetVideoDetails +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testGetVideoDetails() +{ + // no collection utility + TMPXItemId id(0,0); + QVERIFY(mTestObject->getVideoDetails(id) == -1); + + // collection exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->getVideoDetails(id) < 0); + + MMPXCollection::setCommandLLeave(false); + QVERIFY(mTestObject->getVideoDetails(id) == 0); + +} + +// ----------------------------------------------------------------------------- +// testRemoveAlbums +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testRemoveAlbums() +{ + TMPXItemId id(1,1); + QList albums; + + // no collectionutility + QVERIFY(mTestObject->removeAlbums(albums) == -1); + + // collection exists + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + + // command leaves, no items + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->removeAlbums(albums) < 0); + + // command leaves items exists + albums.append(TMPXItemId(1,2)); + albums.append(TMPXItemId(1,2)); + QVERIFY(mTestObject->removeAlbums(albums) < 0); + + // command does not leave, no items + albums.clear(); + MMPXCollection::setCommandLLeave(false); + QVERIFY(mTestObject->removeAlbums(albums) < 0); + + // command does not leave, items exist, both albums and non abums + albums.append(TMPXItemId(1,2)); + albums.append(TMPXItemId(2,0)); + albums.append(TMPXItemId(2,2)); + QVERIFY(mTestObject->removeAlbums(albums) == 0); + + // command does not leave, items exist, only non abums + albums.clear(); + albums.append(TMPXItemId(1,0)); + albums.append(TMPXItemId(2,0)); + albums.append(TMPXItemId(3,0)); + QVERIFY(mTestObject->removeAlbums(albums) < 0); + +} + +// ----------------------------------------------------------------------------- +// testAddNewCollection +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testAddNewCollection() +{ + QString name(""); + // no collection utility + TMPXItemId id = TMPXItemId(1,1); + id = mTestObject->addNewAlbum(name); + QVERIFY(id == TMPXItemId::InvalidId()); + id = TMPXItemId(1,1); + + // empty title + mTestObject->initialize(mSignalReceiver); + id = mTestObject->addNewAlbum(name); + QVERIFY(id == TMPXItemId::InvalidId()); + id = TMPXItemId(1,1); + name = "TestAlbum"; + + // cmd not supported + CMPXMedia::mIsSupported = false; + id = mTestObject->addNewAlbum(name); + QVERIFY(id == TMPXItemId::InvalidId()); + CMPXMedia::mIsSupported = true; + id = TMPXItemId(1,1); + + // id getting leaves + CMPXMedia::mValueTObjectLeaves = true; + id = mTestObject->addNewAlbum(name); + QVERIFY(id == TMPXItemId::InvalidId()); + CMPXMedia::mValueTObjectLeaves = false; + id = TMPXItemId(1,1); + + // succeed + CMPXMedia::mIdFromValueTObject = id; + id = TMPXItemId::InvalidId(); + id = mTestObject->addNewAlbum(name); + QVERIFY(id == CMPXMedia::mIdFromValueTObject); +} + + +// ----------------------------------------------------------------------------- +// testAddItemsInAlbum +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testAddItemsInAlbum() +{ + TMPXItemId albumId = TMPXItemId(1,2); + QList mediaIds; + + // no collectionutility + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + + albumId = TMPXItemId::InvalidId(); + mTestObject->initialize(mSignalReceiver); + // invalid album id + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + + albumId = TMPXItemId(1,0); + // media type not album + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + + // command leaves + albumId = TMPXItemId(1,2); + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + MMPXCollection::setCommandLLeave(false); + + // empty list + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + + mediaIds.append(TMPXItemId(1,0)); + mediaIds.append(TMPXItemId(2,2)); + mediaIds.append(TMPXItemId(2,0)); + // list contains items, both videos and non-videos + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) == 0); + + // list contains only non-videos + mediaIds.clear(); + mediaIds.append(TMPXItemId(1,2)); + mediaIds.append(TMPXItemId(2,2)); + mediaIds.append(TMPXItemId(2,1)); + + QVERIFY(mTestObject->addItemsInAlbum(albumId, mediaIds) < 0); + +} + +// ----------------------------------------------------------------------------- +// testRemoveItemsFromAlbum +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testRemoveItemsFromAlbum() +{ + TMPXItemId albumId = TMPXItemId(1,2); + QList mediaIds; + + // no collectionutility + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + + albumId = TMPXItemId::InvalidId(); + mTestObject->initialize(mSignalReceiver); + // invalid album id + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + + albumId = TMPXItemId(1,0); + // media type not album + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + + // command leaves + albumId = TMPXItemId(1,2); + MMPXCollection::setCommandLLeave(true); + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + MMPXCollection::setCommandLLeave(false); + + // empty list + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + + mediaIds.append(TMPXItemId(1,0)); + mediaIds.append(TMPXItemId(2,2)); + mediaIds.append(TMPXItemId(2,0)); + + // list contains items, both videos and non-videos + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) == 0); + + // list contains only non-videos + mediaIds.clear(); + mediaIds.append(TMPXItemId(1,2)); + mediaIds.append(TMPXItemId(2,2)); + mediaIds.append(TMPXItemId(2,1)); + + QVERIFY(mTestObject->removeItemsFromAlbum(albumId, mediaIds) < 0); + +} + +// ----------------------------------------------------------------------------- +// testBack +// ----------------------------------------------------------------------------- +// +void TestVideoCollectionClient::testBack() +{ + + CMPXCollectionPath::setLevel(3); + // not initialized + QVERIFY(mTestObject->back() == -1); + + QVERIFY(mTestObject->initialize(mSignalReceiver) == 0); + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelVideos; + MMPXCollection::setBackLLeave(true); + QVERIFY(mTestObject->back()< 0); + MMPXCollection::setBackLLeave(false); + QVERIFY(mTestObject->back() == 0); + + mTestObject->mCollectionPathLevel = VideoCollectionCommon::ELevelCategory; + QVERIFY(mTestObject->back() == 0); +} + +// End of file +