diff -r 2edacbf5d3f9 -r 7197e789b953 imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp Fri Apr 16 15:16:16 2010 +0300 @@ -0,0 +1,290 @@ +/* +* 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: +* +*/ + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include "thumbnailmanager_p_qt.h" + +class TestThumbnailManager : public QObject +{ + Q_OBJECT + +public: + TestThumbnailManager(): QObject(), wrapper( NULL ), ipixmap( NULL ) {}; + +public slots: + void thumbnailReady( QPixmap , void * , int , int ); + + void thumbnailReady_p( QPixmap , void * , int , int ); + +private slots: + void initTestCase(); + void cleanupTestCase(); + + void createAndDestroy(); + void qualityPreference(); + void thumbnailSize(); + void thumbnailMode(); + + void getThumbnailByName(); + void getThumbnailById(); + void setThumbnail(); + void cancelRequest(); + void changePriority(); + void deleteThumbnailsByName(); + void deleteThumbnailsById(); + + void testThumbnailReadyError(); + void testThumbnailReadyValid(); + +public: + ThumbnailManager* wrapper; + QPixmap* ipixmap; + + int aid; + int aerrorCode; + bool pixmapNull; + +}; + +enum testDataType{ + AllNull, + BitmapValid +}; + +class TestThumbnailData : public MThumbnailData +{ +public: + TestThumbnailData( testDataType type) : bitmap(0), clientData(0) + { + switch( type ){ + case AllNull: + break; + + case BitmapValid: + bitmap = new CFbsBitmap(); + QVERIFY( !bitmap->Create(TSize(26,15),EColor64K) ); + QVERIFY( !bitmap->Load( _L("c:\\tnmwrapper_tsrc.mbm") ) ); + break; + }; + + }; + + ~TestThumbnailData() { + if( bitmap ) + delete bitmap; + if( clientData ) + delete clientData; + }; + + CFbsBitmap* Bitmap() {return bitmap;}; + + CFbsBitmap* DetachBitmap() {return bitmap;}; + + TAny* ClientData(){ return clientData; }; + +public: + CFbsBitmap* bitmap; + TAny* clientData; + +}; + + +// ======== MEMBER FUNCTIONS ======== +void TestThumbnailManager::initTestCase() +{ + wrapper = new ThumbnailManager(); + connect( wrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady( QPixmap , void* , int , int ))); +} + +void TestThumbnailManager::cleanupTestCase() +{ + disconnect( wrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady( QPixmap , void* , int , int ))); + delete wrapper; + wrapper = NULL; + + if( ipixmap ){ + delete ipixmap; + ipixmap = NULL; + } +} + + +void TestThumbnailManager::createAndDestroy() +{ + //empty +} + +void TestThumbnailManager::qualityPreference() +{ + QVERIFY( wrapper->setQualityPreference( ThumbnailManager::OptimizeForQuality ) ); + QVERIFY( wrapper->setQualityPreference( ThumbnailManager::OptimizeForPerformance ) ); + QVERIFY( wrapper->qualityPreference() == ThumbnailManager::OptimizeForPerformance ); +} + +void TestThumbnailManager::thumbnailSize() +{ + QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailSmall ) ); + QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailMedium ) ); + QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailLarge ) ); + QVERIFY( wrapper->setThumbnailSize( QSize( 100, 100 ) ) ); + QVERIFY( wrapper->thumbnailSize() == QSize( 100, 100 ) ); +} + +void TestThumbnailManager::thumbnailMode() +{ + QVERIFY( wrapper->setMode( ThumbnailManager::Default ) ); + QVERIFY( wrapper->setMode( ThumbnailManager::AllowAnySize ) ); + QVERIFY( wrapper->setMode( ThumbnailManager::DoNotCreate ) ); + + QVERIFY( wrapper->setMode( ThumbnailManager::CropToAspectRatio ) ); + QVERIFY( wrapper->mode() == ThumbnailManager::CropToAspectRatio ); +} + +void TestThumbnailManager::getThumbnailByName() +{ + wrapper->setMode( ThumbnailManager::CropToAspectRatio ); + wrapper->setThumbnailSize( QSize( 200, 50 )); + QVERIFY( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ) != -1 ); + QVERIFY( wrapper->getThumbnail( "c:/tnmwrapper_tsrc.png", NULL, -99 ) != -1 ); +} + +void TestThumbnailManager::getThumbnailById() +{ + wrapper->setMode( ThumbnailManager::CropToAspectRatio ); + wrapper->setThumbnailSize( QSize( 200, 50 )); + QVERIFY( wrapper->getThumbnail( 2, NULL, -99 ) != -1 ); +} + +void TestThumbnailManager::setThumbnail() +{ + ipixmap = new QPixmap(); + ipixmap->load( "c:\\tnmwrapper.bmp" ); + wrapper->setMode( ThumbnailManager::CropToAspectRatio ); + wrapper->setThumbnailSize(ThumbnailManager::ThumbnailMedium); + QVERIFY( wrapper->setThumbnail( *ipixmap, "c:\\tnmwrapper_tsrc.png" ) != -1 ); + ipixmap->fill(); + QVERIFY( wrapper->setThumbnail( *ipixmap, "c:\\tnmwrapper_tsrc.png" ) != -1 ); + + //QI,mage + QImage *img = new QImage("c:\\tnmwrapper.bmp"); + QVERIFY( wrapper->setThumbnail( *img, "c:\\tnmwrapper_tsrc.png" ) != -1 ); + img->fill(0); + QVERIFY( wrapper->setThumbnail( *img, "c:\\tnmwrapper_tsrc.png" ) != -1 ); + delete img; +} + +void TestThumbnailManager::cancelRequest() +{ + wrapper->setMode( ThumbnailManager::CropToAspectRatio ); + wrapper->setThumbnailSize( QSize( 200, 50 )); + QVERIFY( wrapper->cancelRequest( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ) ) ); + QVERIFY( !wrapper->cancelRequest( 123 ) ); //test request not found +} + +void TestThumbnailManager::changePriority() +{ + wrapper->setMode( ThumbnailManager::CropToAspectRatio ); + wrapper->setThumbnailSize( QSize( 200, 50 )); + QVERIFY( wrapper->changePriority( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ), -80 ) ); +} + +void TestThumbnailManager::deleteThumbnailsByName() +{ + wrapper->deleteThumbnails( "c:/tnmwrapper_tsrc.png" ); + wrapper->deleteThumbnails( "c:\\tnmwrapper_tsrc.png" ); +} + +void TestThumbnailManager::deleteThumbnailsById() +{ + wrapper->deleteThumbnails( 2 ); +} + +void TestThumbnailManager::thumbnailReady( QPixmap /*pixmap*/, void * /*clientData*/, int /*id*/, int /*errorCode*/ ) +{ + //do nothing, we dont test Thumbnail Manager's functionality, we just use it +} + +void TestThumbnailManager::thumbnailReady_p( QPixmap pixmap, void * /*clientData*/, int id, int errorCode ) +{ + QVERIFY( pixmap.isNull() == pixmapNull ); + QVERIFY( errorCode == aerrorCode ); + QVERIFY( aid == id ); +} + +void TestThumbnailManager::testThumbnailReadyError() +{ + ThumbnailManagerPrivate* wrapper_p = new ThumbnailManagerPrivate(); + + QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )), Qt::DirectConnection ) ); + + //test bytearray not null and thumbnail error + TestThumbnailData tdata1(AllNull); + aid = 12; + aerrorCode = -1; + pixmapNull = true; + wrapper_p->ThumbnailReady( aerrorCode, tdata1, aid ); + + disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady_p( QPixmap , void* , int , int ))); + delete wrapper_p; +} + +void TestThumbnailManager::testThumbnailReadyValid() +{ + ThumbnailManagerPrivate* wrapper_p = new ThumbnailManagerPrivate(); + + QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )), Qt::DirectConnection ) ); + + TestThumbnailData tdata3( BitmapValid ); + aid = 10; + aerrorCode = 0; + pixmapNull = false; + wrapper_p->ThumbnailReady( aerrorCode, tdata3, aid ); + + disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ), + this, SLOT( thumbnailReady_p( QPixmap , void* , int , int ))); + delete wrapper_p; +} + +#ifdef _LOG_TO_C_ + int main (int argc, char* argv[]) + { + QApplication app(argc, argv); + TestThumbnailManager tc; + int c = 3; + char* v[] = {argv[0], "-o", "c:/test.txt"}; + return QTest::qExec(&tc, c, v); + } +#else + QTEST_MAIN(TestThumbnailManager) +#endif + +#include "test_qtnmwrapper.moc" +