videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 41 229f037ce963
equal deleted inserted replaced
34:bbb98528c666 35:3738fe97f027
    39 int main(int argc, char *argv[])
    39 int main(int argc, char *argv[])
    40 {
    40 {
    41     HbApplication app(argc, argv);
    41     HbApplication app(argc, argv);
    42     HbApplication::setKeypadNavigationEnabled(false);
    42     HbApplication::setKeypadNavigationEnabled(false);
    43     HbMainWindow mainWnd;
    43     HbMainWindow mainWnd;
       
    44     hbInstance->mWindowses.append(&mainWnd);
    44 
    45 
    45     TestHintWidget tv;
    46     TestHintWidget tv;
    46     
    47     
    47     int res;
    48     int res;
    48     if(argc > 1)
    49     if(argc > 1)
    87 //
    88 //
    88 void TestHintWidget::init(bool callInitialize)
    89 void TestHintWidget::init(bool callInitialize)
    89 {
    90 {
    90     mUiLoader = new VideoCollectionUiLoader;
    91     mUiLoader = new VideoCollectionUiLoader;
    91     
    92     
       
    93     HbDocumentLoader::mFindWidgetFails = false;
    92     bool ok(false);
    94     bool ok(false);
    93     bool shouldBeOk(VideoCollectionUiLoaderData::mFindFailure);
    95     mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
    94     
    96     if(!ok)
    95     mObjectList = mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
       
    96     if(!ok && shouldBeOk)
       
    97     {
    97     {
    98         cleanup();
    98         cleanup();
    99         QFAIL("docml loading failed!");
    99         QFAIL("docml loading failed!");
   100     }
   100     }
   101     
   101     
   130 
   130 
   131         delete mUiLoader;
   131         delete mUiLoader;
   132         mUiLoader = 0;
   132         mUiLoader = 0;
   133     }
   133     }
   134 
   134 
   135     int count = mObjectList.count();
       
   136     for (int i = count - 1; i >= 0; i--)
       
   137     {
       
   138         QObject *object = mObjectList.takeAt(i);
       
   139         delete object;
       
   140     }
       
   141     
       
   142     VideoCollectionViewUtilsData::reset();
   135     VideoCollectionViewUtilsData::reset();
   143     VideoCollectionUiLoaderData::reset();    
   136     VideoCollectionUiLoaderData::reset();    
   144 }
   137 }
   145  
   138  
   146 // ---------------------------------------------------------------------------
   139 // ---------------------------------------------------------------------------
   202 //
   195 //
   203 void TestHintWidget::testActivate()
   196 void TestHintWidget::testActivate()
   204 {
   197 {
   205     init(true);
   198     init(true);
   206 
   199 
   207     HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_HINT_LABEL);
       
   208     QVERIFY(hintLabel);
       
   209     
       
   210     mTestObject->setVisible(false);
   200     mTestObject->setVisible(false);
   211     
   201     
   212     // mServiceIconString empty.
   202     // mServiceIconString empty.
   213     mTestObject->mServiceIconString = QString();
   203     mTestObject->mServiceIconString = QString();
   214     mTestObject->activate();
   204     mTestObject->activate();
   215     QVERIFY(mTestObject->mServiceIcon == 0);
   205     QVERIFY(mTestObject->mServiceIcon == 0);
   216     QVERIFY(mTestObject->isVisible() == false);
   206     QVERIFY(mTestObject->isVisible() == false);
       
   207     QVERIFY(mTestObject->mActivated == false);
   217     
   208     
   218     // mServiceIconPressedString empty.
   209     // mServiceIconPressedString empty.
   219     mTestObject->mServiceIconString = "test";
   210     mTestObject->mServiceIconString = "test";
   220     mTestObject->mServiceIconPressedString = QString();
   211     mTestObject->mServiceIconPressedString = QString();
   221     mTestObject->activate();
   212     mTestObject->activate();
   222     QVERIFY(mTestObject->mServiceIcon == 0);
   213     QVERIFY(mTestObject->mServiceIcon == 0);
   223     QVERIFY(mTestObject->isVisible() == false);
   214     QVERIFY(mTestObject->isVisible() == false);
       
   215     QVERIFY(mTestObject->mActivated == false);
   224     
   216     
   225     // successful case.
   217     // successful case.
   226     mTestObject->mServiceIconPressedString = "test2";
   218     mTestObject->mServiceIconPressedString = "test2";
   227     hintLabel->setVisible(false);
   219     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
       
   220     QVERIFY(noVideosLabel);
       
   221     noVideosLabel->setVisible(false);
   228     
   222     
   229     mTestObject->activate();
   223     mTestObject->activate();
   230     QVERIFY(mTestObject->isVisible());
   224     QVERIFY(mTestObject->isVisible());
   231     QVERIFY(mTestObject->mServiceIcon != 0);
   225     QVERIFY(mTestObject->mServiceIcon != 0);
   232     QCOMPARE(mTestObject->mServiceIcon->iconName(), mTestObject->mServiceIconString);
   226     QCOMPARE(mTestObject->mServiceIcon->iconName(), mTestObject->mServiceIconString);
   233     QCOMPARE(mTestObject->mServiceIcon->iconName(QIcon::Normal, QIcon::On), 
   227     QCOMPARE(mTestObject->mServiceIcon->iconName(QIcon::Normal, QIcon::On), 
   234                 mTestObject->mServiceIconPressedString);
   228                 mTestObject->mServiceIconPressedString);
   235     QVERIFY(hintLabel->isVisible()); // checks that updateUiComponents() has been called.
   229     QVERIFY(noVideosLabel->isVisible()); // checks that updateUiComponents() has been called.
       
   230     QVERIFY(mTestObject->mActivated == true);
   236     
   231     
   237     cleanup();
   232     cleanup();
   238 }
   233 }
   239  
   234  
   240 // ---------------------------------------------------------------------------
   235 // ---------------------------------------------------------------------------
   243 //
   238 //
   244 void TestHintWidget::testDeactivate()
   239 void TestHintWidget::testDeactivate()
   245 {
   240 {
   246     init(true);
   241     init(true);
   247     
   242     
       
   243     mTestObject->setVisible(true);
       
   244     mTestObject->mActivated = true;
       
   245     
       
   246     // when serviceButton does not exist
       
   247     mTestObject->mServiceIcon = 0;
       
   248     mTestObject->mAddVideosIcon = 0;
       
   249     HbDocumentLoader::mFindWidgetFails = true;
       
   250     mTestObject->deactivate();
       
   251     QVERIFY(mTestObject->mActivated == false);
       
   252     QVERIFY(mTestObject->isVisible() == false);
       
   253     
       
   254     // when icons are null, but servicebutton has non-null icon.
       
   255     mTestObject->mActivated = true;
       
   256     mTestObject->setVisible(true);
       
   257     HbDocumentLoader::mFindWidgetFails = false;
   248     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   258     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   249     QVERIFY(serviceButton);
   259     QVERIFY(serviceButton);
   250     
       
   251     mTestObject->setVisible(true);
       
   252     
       
   253     serviceButton->setIcon(HbIcon(QIcon(QPixmap(QSize(100,100)))));
   260     serviceButton->setIcon(HbIcon(QIcon(QPixmap(QSize(100,100)))));
   254     mTestObject->mServiceIcon = 0;
       
   255     mTestObject->mAddVideosIcon = 0;
       
   256     QVERIFY(serviceButton->icon().isNull() == false); // make sure test is valid.
   261     QVERIFY(serviceButton->icon().isNull() == false); // make sure test is valid.
   257     
       
   258     mTestObject->deactivate();
   262     mTestObject->deactivate();
   259     QVERIFY(serviceButton->icon().isNull());
   263     QVERIFY(serviceButton->icon().isNull());
   260     QVERIFY(mTestObject->isVisible() == false);
   264     QVERIFY(mTestObject->isVisible() == false);
   261     
   265     
       
   266     // when icons are non-null, but widget is not activated.
   262     mTestObject->setVisible(true);
   267     mTestObject->setVisible(true);
   263     mTestObject->mServiceIcon = new HbIcon;
   268     mTestObject->mServiceIcon = new HbIcon;
   264     mTestObject->mAddVideosIcon = new HbIcon;
   269     mTestObject->mAddVideosIcon = new HbIcon;
   265     
   270     mTestObject->deactivate();
       
   271     QVERIFY(mTestObject->mServiceIcon != 0);
       
   272     QVERIFY(mTestObject->mAddVideosIcon != 0);
       
   273     QVERIFY(mTestObject->isVisible() == true);
       
   274     
       
   275     // when icons are non-null and widget is activated.
       
   276     mTestObject->mActivated = true;
   266     mTestObject->deactivate();
   277     mTestObject->deactivate();
   267     QVERIFY(mTestObject->mServiceIcon == 0);
   278     QVERIFY(mTestObject->mServiceIcon == 0);
   268     QVERIFY(mTestObject->mAddVideosIcon == 0);
   279     QVERIFY(mTestObject->mAddVideosIcon == 0);
   269     QVERIFY(mTestObject->isVisible() == false);
   280     QVERIFY(mTestObject->isVisible() == false);
   270     
   281     
   280     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   291     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   281     mainWnd->setOrientation(Qt::Horizontal);
   292     mainWnd->setOrientation(Qt::Horizontal);
   282     
   293     
   283     init(true);
   294     init(true);
   284     
   295     
       
   296     mTestObject->mServiceIcon = new HbIcon(QIcon(QPixmap(QSize(100,100))));
       
   297     mTestObject->mAddVideosIcon = new HbIcon(QIcon(QPixmap(QSize(50,50))));
       
   298     mTestObject->mActivated = true;
       
   299     
       
   300     HbDocumentLoader::mFindWidgetFails = true;
       
   301     // when a widget cannot be found.
       
   302     mTestObject->setLevel(VideoHintWidget::AllVideos);
       
   303     // no verification possible except that it doesn't crash?
       
   304     
       
   305     HbDocumentLoader::mFindWidgetFails = false;
   285     HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_HINT_LABEL);
   306     HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_HINT_LABEL);
   286     QVERIFY(hintLabel);
   307     QVERIFY(hintLabel);
   287     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   308     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   288     QVERIFY(serviceButton);
   309     QVERIFY(serviceButton);
   289     
       
   290     mTestObject->mServiceIcon = new HbIcon(QIcon(QPixmap(QSize(100,100))));
       
   291     mTestObject->mAddVideosIcon = new HbIcon(QIcon(QPixmap(QSize(50,50))));
       
   292     mTestObject->setVisible(true);
       
   293     
   310     
   294     mainWnd->setOrientation(Qt::Vertical);
   311     mainWnd->setOrientation(Qt::Vertical);
   295     mTestObject->setLevel(VideoHintWidget::AllVideos);
   312     mTestObject->setLevel(VideoHintWidget::AllVideos);
   296     QVERIFY(serviceButton->isVisible() == false);
   313     QVERIFY(serviceButton->isVisible() == false);
   297     QVERIFY(serviceButton->icon().isNull() == false);
   314     QVERIFY(serviceButton->icon().isNull() == false);
   298     QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mServiceIcon->qicon().cacheKey());
   315     QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mServiceIcon->qicon().cacheKey());
   299     QVERIFY(hintLabel->isVisible());
   316     QVERIFY(hintLabel->isVisible());
   300     
   317     
   301     mainWnd->setOrientation(Qt::Horizontal);
   318     mainWnd->setOrientation(Qt::Horizontal);
       
   319     mTestObject->mButtonShown = true;
   302     mTestObject->setLevel(VideoHintWidget::Collection);
   320     mTestObject->setLevel(VideoHintWidget::Collection);
   303     QVERIFY(serviceButton->isVisible());
   321     QVERIFY(serviceButton->isVisible());
   304     QVERIFY(serviceButton->icon().isNull() == false);
   322     QVERIFY(serviceButton->icon().isNull() == false);
   305     QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mAddVideosIcon->qicon().cacheKey());    
   323     QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mAddVideosIcon->qicon().cacheKey());    
   306     QVERIFY(hintLabel->isVisible() == false);
   324     QVERIFY(hintLabel->isVisible() == false);
   307     
   325     
       
   326     mTestObject->mButtonShown = false;
       
   327     mTestObject->setLevel(VideoHintWidget::Collection);
       
   328     QVERIFY(serviceButton->isVisible() == false);
       
   329     
   308     cleanup();
   330     cleanup();
   309 }
   331 }
   310 
   332 
   311 // ---------------------------------------------------------------------------
   333 // ---------------------------------------------------------------------------
   312 // testOrientationChangedSlot
   334 // testOrientationChangedSlot
   317     // NOTE: This also checks that the signals are connected and
   339     // NOTE: This also checks that the signals are connected and
   318     // disconnected correctly.
   340     // disconnected correctly.
   319     
   341     
   320     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   342     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   321     mainWnd->setOrientation(Qt::Horizontal);
   343     mainWnd->setOrientation(Qt::Horizontal);
   322     
   344     connect(this, SIGNAL(testSignal(Qt::Orientation)), mainWnd, SIGNAL(orientationChanged(Qt::Orientation)));
   323     init(true);
   345     
   324     
   346     init(true);
   325     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   347     
   326     QVERIFY(serviceButton);
   348     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
       
   349     QVERIFY(noVideosLabel);
   327 
   350 
   328     mTestObject->mServiceIconString = "dummy";
   351     mTestObject->mServiceIconString = "dummy";
   329     mTestObject->mServiceIconPressedString = "dummy2";
   352     mTestObject->mServiceIconPressedString = "dummy2";
   330     
   353     
   331     // test that updateUiComponents is not called when only initialize has been called,
   354     // test that updateUiComponents is not called when only initialize has been called,
   332     // ie that no activate calls have been made yet.
   355     // ie that no activate calls have been made yet.
       
   356     // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
       
   357     // serviceButton->setVisible does not work as expected.
   333     mTestObject->setVisible(true);
   358     mTestObject->setVisible(true);
   334     serviceButton->setVisible(true);
   359     noVideosLabel->setVisible(true);
   335     mainWnd->setOrientation(Qt::Vertical);
   360     emit testSignal(Qt::Vertical);
   336     QVERIFY(serviceButton->isVisible());
   361     QVERIFY(noVideosLabel->isVisible());
   337     mTestObject->setVisible(false);
   362     mTestObject->setVisible(false);
   338         
   363         
   339     // tests that updateUiComponents is called when widget is visible.
   364     // tests that updateUiComponents is called when widget is visible.
   340     mTestObject->activate();
   365     mTestObject->activate();
   341     serviceButton->setVisible(false);
   366     noVideosLabel->setVisible(false);
   342     mainWnd->setOrientation(Qt::Horizontal);
   367     emit testSignal(Qt::Horizontal);
   343     QVERIFY(serviceButton->isVisible());    
   368     QVERIFY(noVideosLabel->isVisible());    
   344     mTestObject->deactivate();
   369     mTestObject->deactivate();
   345     
   370     
   346     // tests that updateUiComponents is not called when widget is not visible:
   371     // tests that updateUiComponents is not called when widget is not visible:
   347     
   372     // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
   348     // this is needed because othervise childs cannot be set visible, ie the next line does not work as expected.
   373     // serviceButton->setVisible does not work as expected.
   349     mTestObject->setVisible(true);    
   374     mTestObject->setVisible(true);    
   350     serviceButton->setVisible(true);
   375     noVideosLabel->setVisible(true);
   351     mainWnd->setOrientation(Qt::Vertical);
   376     emit testSignal(Qt::Vertical);
   352     QVERIFY(serviceButton->isVisible());
   377     QVERIFY(noVideosLabel->isVisible());
   353     
   378     
   354     cleanup();
   379     cleanup();
   355 }
   380 }
   356 
   381 
   357 // end of file
   382 // end of file