phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 30 ebdbd102c78a
parent 46 bc5a64e5bc3c
equal deleted inserted replaced
40:bab96b7ed1a4 51:f39ed5e045e0
    22 #include <hbmainwindow.h>
    22 #include <hbmainwindow.h>
    23 #include <hbaction.h>
    23 #include <hbaction.h>
    24 #include <hbmainwindow.h>
    24 #include <hbmainwindow.h>
    25 #include <hbinstance.h>
    25 #include <hbinstance.h>
    26 #include <hbstyle.h>
    26 #include <hbstyle.h>
       
    27 #include <hbiconitem.h>
    27 
    28 
    28 #include "bubbletest.h"
    29 #include "bubbletest.h"
    29 #include "bubbleimagewidget.h"
    30 #include "bubbleimagewidget.h"
    30 #include "bubbleimagemanager.h"
    31 #include "bubbleimagemanager.h"
    31 
    32 
    35 
    36 
    36 private slots:
    37 private slots:
    37     void initTestCase();
    38     void initTestCase();
    38     void cleanupTestCase();
    39     void cleanupTestCase();
    39 
    40 
    40     void testPixmap();
    41     void testSetImage();
    41     void testWidePixmap();
    42 
    42     void testDefaultAvatar();
    43     void testSetKeepSquareShape();
       
    44 
       
    45     void testSizeHint();
    43 
    46 
    44 private:
    47 private:
    45     QString fileNameWithPath(const QString& fileName);    
    48     QString fileNameWithPath(const QString& fileName);    
    46 
    49 
    47 private:
    50 private:
    48     BubbleImageWidget* mImage;
    51     BubbleImageWidget* mImage;
    49     HbMainWindow* mMainWindow;
    52     HbMainWindow* mMainWindow;
    50     BubbleImageManager* mImageManager;
    53     BubbleImageManager* mImageManager;
       
    54     HbIconItem* mAvatar;
    51 };
    55 };
    52 
       
    53 QString ut_BubbleImageWidget::fileNameWithPath(const QString& fileName)
       
    54 {
       
    55 #ifdef __WINS__
       
    56     return "c:/data/images/" + fileName;
       
    57 #else
       
    58     return ":/data/" + fileName;
       
    59 #endif
       
    60 }
       
    61 
    56 
    62 void ut_BubbleImageWidget::initTestCase()
    57 void ut_BubbleImageWidget::initTestCase()
    63 {
    58 {
    64     mMainWindow = new HbMainWindow();
    59     mMainWindow = new HbMainWindow();
    65     mImageManager = new BubbleImageManager();
    60     mImageManager = new BubbleImageManager();
    66     mImage = new BubbleImageWidget(*mImageManager);
    61     mImage = new BubbleImageWidget(*mImageManager);
    67     mMainWindow->addView(mImage);
    62     mMainWindow->addView(mImage);
    68     mMainWindow->show();
    63     mMainWindow->show();
       
    64 
       
    65     mAvatar = qgraphicsitem_cast<HbIconItem*>(
       
    66             static_cast<HbWidget*>(mImage)->primitive("default_avatar"));
       
    67     QVERIFY(mAvatar);
       
    68     QVERIFY(mAvatar->alignment()==Qt::AlignCenter);
       
    69     QVERIFY(mAvatar->aspectRatioMode()==Qt::KeepAspectRatioByExpanding);
    69 }
    70 }
    70 
    71 
    71 void ut_BubbleImageWidget::cleanupTestCase()
    72 void ut_BubbleImageWidget::cleanupTestCase()
    72 {
    73 {
    73     delete mMainWindow;
    74     delete mMainWindow;
    74     delete mImageManager;
    75     delete mImageManager;
    75 }
    76 }
    76 
    77 
    77 void ut_BubbleImageWidget::testPixmap()
    78 void ut_BubbleImageWidget::testSetImage()
    78 {    
    79 {
    79     mImage->hide();
    80     mImage->setImage("");
    80     mImage->setImage(fileNameWithPath("pixmap.png"));
    81     QVERIFY(mAvatar->iconName()=="qtg_large_avatar");
       
    82     QVERIFY(mAvatar->isVisible());
       
    83 
       
    84     QSignalSpy spy( mImageManager, SIGNAL(pixmapReady(QString)));
       
    85     mImage->setImage(":/data/pixmap.png");
       
    86     QVERIFY(mAvatar->isNull());
       
    87     QVERIFY(!mAvatar->isVisible());
       
    88     QVERIFY(spy.count()==1);
       
    89     QList<QVariant> arguments = spy.takeFirst();
       
    90     QVERIFY(arguments.at(0).toString()==":/data/pixmap.png");
       
    91 
    81     mImage->show();
    92     mImage->show();
    82     // set same image again
    93     QTest::qWait(100);
    83     QTest::qWait(500);
       
    84     // there is now way to verify using public API
       
    85 }
    94 }
    86 
    95 
    87 void ut_BubbleImageWidget::testWidePixmap()
    96 void ut_BubbleImageWidget::testSetKeepSquareShape()
    88 {
    97 {
    89     mImage->hide();
    98     mImage->setKeepSquareShape(true);
    90     mImage->setImage(fileNameWithPath("pixmap_wide.png"));
    99     QVERIFY(mImage->keepSquareShape()==true);
    91     mImage->show();
   100     QVERIFY(mImage->sizePolicy().verticalPolicy()==QSizePolicy::Expanding);
    92     QTest::qWait(500);
   101     QVERIFY(mImage->sizePolicy().horizontalPolicy()==QSizePolicy::Fixed);
    93     // there is now way to verify using public API
   102     mImage->setKeepSquareShape(false);
       
   103     QVERIFY(mImage->keepSquareShape()==false);
       
   104     QVERIFY(mImage->sizePolicy().verticalPolicy()==QSizePolicy::Expanding);
       
   105     QVERIFY(mImage->sizePolicy().horizontalPolicy()==QSizePolicy::Expanding);
    94 }
   106 }
    95 
   107 
    96 void ut_BubbleImageWidget::testDefaultAvatar()
   108 void ut_BubbleImageWidget::testSizeHint()
    97 {
   109 {
    98     mImage->hide();
   110     mImage->setKeepSquareShape(true);
    99     mImage->setImage("");
   111     QSizeF hint = mImage->preferredSize();
   100     mImage->show();
   112     // ..
   101     QTest::qWait(500);
       
   102     // there is now way to verify using public API
       
   103 }
   113 }
   104 
   114 
   105 BUBBLE_TEST_MAIN(ut_BubbleImageWidget)
   115 BUBBLE_TEST_MAIN(ut_BubbleImageWidget)
   106 #include "ut_bubbleimagewidget.moc"
   116 #include "ut_bubbleimagewidget.moc"