diff -r a76e86df7ccd -r 0e1e938beb1a videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcontent/src/testvideoproxymodelcontent.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/videocollectionwrapper/tsrc/testvideoproxymodelcontent/src/testvideoproxymodelcontent.cpp Fri Sep 17 08:30:05 2010 +0300 @@ -0,0 +1,227 @@ +/** +* 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 VideoProxyModelContent +* +*/ + +#include +#include +#include + +#include "videoproxymodelgeneric.h" + +#define private public +#include "videoproxymodelcontent.h" +#undef private + +#include "videolistdatamodel.h" +#include "filterproxytester.h" +#include "videocollectioncommon.h" +#include "testvideoproxymodelcontent.h" + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- +// +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + + TestVideoProxyModelContent 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\\testVideoProxyModelContent.txt"; + res = QTest::qExec(&tv, 3, pass); + } + + return res; +} + +// --------------------------------------------------------------------------- +// init +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::init() +{ + qRegisterMetaType("TMPXItemId"); + + mTestObject = new FilterProxyTester(); +} + +// --------------------------------------------------------------------------- +// cleanup +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::cleanup() +{ + delete mTestObject; + mTestObject = 0; +} + +// --------------------------------------------------------------------------- +// testConnectSignals +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::testConnectSignals() +{ + // Base class connect returns false. + VideoProxyModelGeneric::mConnectSignalsCallCount = 0; + VideoProxyModelGeneric::mConnectSignalsReturnValue = false; + QVERIFY(mTestObject->callConnectSignals() == false); + QCOMPARE(VideoProxyModelGeneric::mConnectSignalsCallCount, 1); + + // No model. + VideoProxyModelGeneric::mConnectSignalsCallCount = 0; + VideoProxyModelGeneric::mConnectSignalsReturnValue = true; + QVERIFY(mTestObject->callConnectSignals() == false); + QCOMPARE(VideoProxyModelGeneric::mConnectSignalsCallCount, 1); + + // Model exists. + VideoProxyModelGeneric::mConnectSignalsCallCount = 0; + VideoProxyModelGeneric::mConnectSignalsReturnValue = true; + VideoListDataModel *model = new VideoListDataModel(); + mTestObject->mModel = model; + QVERIFY(mTestObject->callConnectSignals() == true); + QCOMPARE(VideoProxyModelGeneric::mConnectSignalsCallCount, 1); +} + +// --------------------------------------------------------------------------- +// testDisconnectSignals +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::testDisconnectSignals() +{ + // No model + VideoProxyModelGeneric::mDisconnectSignalsCallCount = 0; + mTestObject->callDisconnectSignals(); + QCOMPARE(VideoProxyModelGeneric::mDisconnectSignalsCallCount, 1); + + // Model exists. + VideoProxyModelGeneric::mDisconnectSignalsCallCount = 0; + VideoListDataModel *model = new VideoListDataModel(); + mTestObject->mModel = model; + mTestObject->callDisconnectSignals(); + QCOMPARE(VideoProxyModelGeneric::mDisconnectSignalsCallCount, 1); +} + +// --------------------------------------------------------------------------- +// testFilterAcceptsRow +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::testFilterAcceptsRow() +{ + // No source model + VideoListDataModel *model = 0; + mTestObject->mModel = model; + VideoListDataModel::mMediaIdAtIndexReturnValue = TMPXItemId::InvalidId(); + VideoListDataModel::mMediaIdAtIndexCallCount = 0; + VideoListDataModel::mRowCountReturnValue = 0; + QVERIFY(mTestObject->callFilterAcceptsRow(0, QModelIndex()) == false); + QCOMPARE(VideoListDataModel::mMediaIdAtIndexCallCount, 0); + + // Source row < 0 + model = new VideoListDataModel(); + mTestObject->mModel = model; + VideoListDataModel::mMediaIdAtIndexReturnValue = TMPXItemId::InvalidId(); + VideoListDataModel::mMediaIdAtIndexCallCount = 0; + VideoListDataModel::mRowCountReturnValue = 0; + QVERIFY(mTestObject->callFilterAcceptsRow(-1, QModelIndex()) == false); + QCOMPARE(VideoListDataModel::mMediaIdAtIndexCallCount, 0); + + // Source row > model row count + VideoListDataModel::mMediaIdAtIndexReturnValue = TMPXItemId::InvalidId(); + VideoListDataModel::mMediaIdAtIndexCallCount = 0; + VideoListDataModel::mRowCountReturnValue = 0; + QVERIFY(mTestObject->callFilterAcceptsRow(10, QModelIndex()) == false); + QCOMPARE(VideoListDataModel::mMediaIdAtIndexCallCount, 0); + + // Doesn't belong to album + VideoListDataModel::mBelongsToAlbumReturnValue = false; + VideoListDataModel::mMediaIdAtIndexCallCount = 0; + VideoListDataModel::mRowCountReturnValue = 1; + QVERIFY(mTestObject->callFilterAcceptsRow(0, QModelIndex()) == false); + QCOMPARE(VideoListDataModel::mMediaIdAtIndexCallCount, 1); + + // Good case + VideoListDataModel::mBelongsToAlbumReturnValue = true; + VideoListDataModel::mMediaIdAtIndexCallCount = 0; + VideoListDataModel::mRowCountReturnValue = 1; + QVERIFY(mTestObject->callFilterAcceptsRow(0, QModelIndex()) == true); + QCOMPARE(VideoListDataModel::mMediaIdAtIndexCallCount, 1); +} + +// --------------------------------------------------------------------------- +// testGetOpenItem +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::testGetOpenItem() +{ + TMPXItemId returned = TMPXItemId(1, 1); + + // No model + VideoListDataModel::mAlbumInUseReturnValue = TMPXItemId(2, 2); + VideoListDataModel *model = 0; + mTestObject->mModel = model; + returned = mTestObject->getOpenItem(); + QVERIFY(returned == TMPXItemId::InvalidId()); + + // No collection client + returned = TMPXItemId(1, 1); + VideoListDataModel::mAlbumInUseReturnValue = TMPXItemId(2, 2); + model = new VideoListDataModel(); + mTestObject->mModel = model; + mTestObject->mCollectionClient = 0; + returned = mTestObject->getOpenItem(); + QVERIFY(returned == TMPXItemId::InvalidId()); + + // Good case. + returned = TMPXItemId(1, 1); + VideoListDataModel::mAlbumInUseReturnValue = TMPXItemId(2, 2); + mTestObject->mModel = model; + mTestObject->mCollectionClient = 1; + returned = mTestObject->getOpenItem(); + QVERIFY(returned == TMPXItemId(2, 2)); +} + +// --------------------------------------------------------------------------- +// testAlbumChangedSlot +// --------------------------------------------------------------------------- +// +void TestVideoProxyModelContent::testAlbumChangedSlot() +{ + VideoProxyModelGeneric::mLastSortRole = -1; + mTestObject->mWantedSortRole = 5; + mTestObject->mWantedSortOrder = Qt::DescendingOrder; + VideoProxyModelGeneric::mLastSortedOrder = Qt::AscendingOrder; + + VideoListDataModel *model = new VideoListDataModel(); + mTestObject->mModel = model; + mTestObject->callConnectSignals(); + emit model->emitAlbumChanged(); + mTestObject->callDisconnectSignals(); + QCOMPARE(VideoProxyModelGeneric::mInvalidateFilterCallCount, 1); + QVERIFY(VideoProxyModelGeneric::mLastSortedOrder == Qt::DescendingOrder); + QCOMPARE(VideoProxyModelGeneric::mLastSortRole, 5); +} + +// End of file