videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp
changeset 52 e3cecb93e76a
parent 47 45e72b57a2fd
equal deleted inserted replaced
47:45e72b57a2fd 52:e3cecb93e76a
   103     if(!mTestObject)
   103     if(!mTestObject)
   104     {
   104     {
   105         mTestObject = new VideoHintWidget(mUiLoader);
   105         mTestObject = new VideoHintWidget(mUiLoader);
   106     }
   106     }
   107     
   107     
       
   108     mTestObject->mHintText = "Go get some!";
       
   109     
   108     if (callInitialize)
   110     if (callInitialize)
   109     {
   111     {
   110         QVERIFY(mTestObject->initialize() == 0);
   112         mTestObject->mHintText = "";
       
   113         mTestObject->initialize();
   111     }
   114     }
   112 }
   115 }
   113 
   116 
   114 // ---------------------------------------------------------------------------
   117 // ---------------------------------------------------------------------------
   115 // cleanup
   118 // cleanup
   133     }
   136     }
   134 
   137 
   135     VideoCollectionViewUtilsData::reset();
   138     VideoCollectionViewUtilsData::reset();
   136     VideoCollectionUiLoaderData::reset();    
   139     VideoCollectionUiLoaderData::reset();    
   137 }
   140 }
   138  
   141 
   139 // ---------------------------------------------------------------------------
   142 // ---------------------------------------------------------------------------
   140 // testInitialize
   143 // testInitialize
   141 // ---------------------------------------------------------------------------
   144 // ---------------------------------------------------------------------------
   142 //
   145 //
   143 void TestHintWidget::testInitialize()
   146 void TestHintWidget::testInitialize()
   144 {
   147 {
   145     // getServiceIconStrings fails and returns -1;
   148     init(false);
   146     init(false);
   149 
   147     VideoCollectionViewUtilsData::mGetServiceIconStringsFails = true;
   150     // Fail
   148     QCOMPARE(mTestObject->initialize(), -1);
   151     mTestObject->mHintText = "";
   149     cleanup();
   152     VideoCollectionViewUtilsData::mCenRepStringValues.append(""); 
   150     
   153     mTestObject->initialize();
   151     // succeed
   154     QVERIFY(mTestObject->mHintText.isEmpty());
   152     init(false);
   155 
   153     VideoCollectionViewUtilsData::mGetServiceIconStringsFails = false;
   156     // Succeed
   154     VideoCollectionViewUtilsData::mIconString = "test";
   157     VideoCollectionViewUtilsData::mCenRepStringValues.append("test"); 
   155     VideoCollectionViewUtilsData::mPressedString = "test2";
   158     mTestObject->initialize();
   156     QCOMPARE(mTestObject->initialize(), 0);
   159     QVERIFY(!mTestObject->mHintText.isEmpty());
   157     QCOMPARE(mTestObject->mServiceIconString, VideoCollectionViewUtilsData::mIconString);
   160     
   158     QCOMPARE(mTestObject->mServiceIconPressedString, VideoCollectionViewUtilsData::mPressedString);
       
   159     
       
   160     // second call to initialize.
       
   161     VideoCollectionViewUtilsData::mIconString = "test3";
       
   162     VideoCollectionViewUtilsData::mPressedString = "test4";
       
   163     QCOMPARE(mTestObject->initialize(), 0);
       
   164     QCOMPARE(mTestObject->mServiceIconString, VideoCollectionViewUtilsData::mIconString);
       
   165     QCOMPARE(mTestObject->mServiceIconPressedString, VideoCollectionViewUtilsData::mPressedString);
       
   166     cleanup();
   161     cleanup();
   167 }
   162 }
   168 
   163 
   169 // ---------------------------------------------------------------------------
   164 // ---------------------------------------------------------------------------
   170 // testSetLevel
   165 // testSetLevel
   171 // ---------------------------------------------------------------------------
   166 // ---------------------------------------------------------------------------
   172 //
   167 //
   173 void TestHintWidget::testSetLevel()
   168 void TestHintWidget::testSetLevel()
   174 {
   169 {
   175     init(true);
   170     init(false);
   176     mTestObject->setVisible(false);
   171     mTestObject->setVisible(false);
   177     
   172     
   178     mTestObject->setLevel(VideoHintWidget::Collection);
   173     mTestObject->setLevel(VideoHintWidget::Collection);
   179     QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::Collection);
   174     QCOMPARE(mTestObject->mCurrentLevel, VideoHintWidget::Collection);
   180     
   175     
   193 // testActivate
   188 // testActivate
   194 // ---------------------------------------------------------------------------
   189 // ---------------------------------------------------------------------------
   195 //
   190 //
   196 void TestHintWidget::testActivate()
   191 void TestHintWidget::testActivate()
   197 {
   192 {
   198     init(true);
   193     init(false);
   199 
   194 
   200     mTestObject->setVisible(false);
   195     mTestObject->setVisible(false);
   201     
       
   202     // mServiceIconString empty.
       
   203     mTestObject->mServiceIconString = QString();
       
   204     mTestObject->activate();
       
   205     QVERIFY(mTestObject->mServiceIcon == 0);
       
   206     QVERIFY(mTestObject->isVisible() == true);
       
   207     QVERIFY(mTestObject->mActivated == true);
       
   208     
       
   209     // mServiceIconPressedString empty.
       
   210     mTestObject->mServiceIconString = "test";
       
   211     mTestObject->mServiceIconPressedString = QString();
       
   212     mTestObject->activate();
       
   213     QVERIFY(mTestObject->mServiceIcon == 0);
       
   214     QVERIFY(mTestObject->isVisible() == true);
       
   215     QVERIFY(mTestObject->mActivated == true);
       
   216     
   196     
   217     // successful case.
   197     // successful case.
   218     mTestObject->mActivated = false;
   198     mTestObject->mActivated = false;
   219     mTestObject->mServiceIconString = "qtg_mono_ovistore";
       
   220     mTestObject->mServiceIconPressedString = "qtg_mono_ovistore";
       
   221 
   199 
   222     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
   200     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
   223     QVERIFY(noVideosLabel);
   201     QVERIFY(noVideosLabel);
   224     noVideosLabel->setVisible(false);
   202     noVideosLabel->setVisible(false);
   225     
   203     
   226     mTestObject->activate();
   204     mTestObject->activate();
   227     QVERIFY(mTestObject->isVisible());
   205     QVERIFY(mTestObject->isVisible());
   228     QVERIFY(mTestObject->mServiceIcon != 0);
       
   229     QCOMPARE(mTestObject->mServiceIcon->iconName(), mTestObject->mServiceIconString);
       
   230     QCOMPARE(mTestObject->mServiceIcon->iconName(QIcon::Normal, QIcon::On), 
       
   231                 mTestObject->mServiceIconPressedString);
       
   232     QVERIFY(noVideosLabel->isVisible()); // checks that updateUiComponents() has been called.
   206     QVERIFY(noVideosLabel->isVisible()); // checks that updateUiComponents() has been called.
   233     QVERIFY(mTestObject->mActivated == true);
   207     QVERIFY(mTestObject->mActivated == true);
   234     
   208     
       
   209     // second call
       
   210     noVideosLabel->setVisible(false);
       
   211     mTestObject->activate();
       
   212     QVERIFY(mTestObject->isVisible());    
       
   213     QVERIFY(!noVideosLabel->isVisible()); // shouldn't call updateUiComponents() again.
       
   214     QVERIFY(mTestObject->mActivated == true);
       
   215     
   235     cleanup();
   216     cleanup();
   236 }
   217 }
   237  
   218  
   238 // ---------------------------------------------------------------------------
   219 // ---------------------------------------------------------------------------
   239 // testDeactivate
   220 // testDeactivate
   240 // ---------------------------------------------------------------------------
   221 // ---------------------------------------------------------------------------
   241 //
   222 //
   242 void TestHintWidget::testDeactivate()
   223 void TestHintWidget::testDeactivate()
   243 {
   224 {
   244     init(true);
   225     init(false);
   245     
   226     
   246     mTestObject->setVisible(true);
   227     mTestObject->setVisible(true);
   247     mTestObject->mActivated = true;
   228     mTestObject->mActivated = true;
   248     
   229     
   249     // when serviceButton does not exist
   230     // when serviceButton does not exist
   250     mTestObject->mServiceIcon = 0;
       
   251     HbDocumentLoader::mFindWidgetFails = true;
   231     HbDocumentLoader::mFindWidgetFails = true;
   252     mTestObject->deactivate();
   232     mTestObject->deactivate();
   253     QVERIFY(mTestObject->mActivated == false);
   233     QVERIFY(mTestObject->mActivated == false);
   254     QVERIFY(mTestObject->isVisible() == false);
   234     QVERIFY(mTestObject->isVisible() == false);
   255     
   235     
   256     // when icons are null, but servicebutton has non-null icon.
   236     // service button exists
       
   237     mTestObject->setVisible(true);
   257     mTestObject->mActivated = true;
   238     mTestObject->mActivated = true;
       
   239     HbDocumentLoader::mFindWidgetFails = false;
       
   240     mTestObject->deactivate();
       
   241     QVERIFY(mTestObject->mActivated == false);
       
   242     QVERIFY(mTestObject->isVisible() == false);
       
   243     
       
   244     // second call. widget is not active.
   258     mTestObject->setVisible(true);
   245     mTestObject->setVisible(true);
       
   246     mTestObject->deactivate();
       
   247     QVERIFY(mTestObject->mActivated == false);
       
   248     QVERIFY(mTestObject->isVisible());
       
   249     
       
   250     cleanup();
       
   251 }
       
   252 
       
   253 // ---------------------------------------------------------------------------
       
   254 // testUpdateUiComponents
       
   255 // ---------------------------------------------------------------------------
       
   256 //
       
   257 void TestHintWidget::testUpdateUiComponents()
       
   258 {
       
   259     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
       
   260     
       
   261     init(false);
       
   262     
       
   263     // when a widget cannot be found.
       
   264     mTestObject->mActivated = true;
       
   265     mTestObject->mButtonShown = true;
       
   266     HbDocumentLoader::mFindWidgetFails = true;
       
   267     mTestObject->setLevel(VideoHintWidget::AllVideos);
       
   268     // no verification possible except that it doesn't crash
       
   269     
   259     HbDocumentLoader::mFindWidgetFails = false;
   270     HbDocumentLoader::mFindWidgetFails = false;
   260     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   271     HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
   261     QVERIFY(serviceButton);
       
   262     serviceButton->setIcon(HbIcon(QIcon(QPixmap(QSize(100,100)))));
       
   263     QVERIFY(serviceButton->icon().isNull() == false); // make sure test is valid.
       
   264     mTestObject->deactivate();
       
   265     QVERIFY(serviceButton->icon().isNull());
       
   266     QVERIFY(mTestObject->isVisible() == false);
       
   267     
       
   268     // when icons are non-null, but widget is not activated.
       
   269     mTestObject->setVisible(true);
       
   270     mTestObject->mServiceIcon = new HbIcon;
       
   271     mTestObject->deactivate();
       
   272     QVERIFY(mTestObject->mServiceIcon != 0);
       
   273     QVERIFY(mTestObject->isVisible() == true);
       
   274     
       
   275     // when icons are non-null and widget is activated.
       
   276     mTestObject->mActivated = true;
       
   277     mTestObject->deactivate();
       
   278     QVERIFY(mTestObject->mServiceIcon == 0);
       
   279     QVERIFY(mTestObject->isVisible() == false);
       
   280     
       
   281     cleanup();
       
   282 }
       
   283 
       
   284 // ---------------------------------------------------------------------------
       
   285 // testUpdateUiComponents
       
   286 // ---------------------------------------------------------------------------
       
   287 //
       
   288 void TestHintWidget::testUpdateUiComponents()
       
   289 {
       
   290     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
       
   291     mainWnd->setOrientation(Qt::Horizontal);
       
   292     
       
   293     init(true);
       
   294     
       
   295     mTestObject->mServiceIcon = new HbIcon(QIcon(QPixmap(QSize(100,100))));
       
   296     mTestObject->mActivated = true;
       
   297     
       
   298     HbDocumentLoader::mFindWidgetFails = true;
       
   299     // when a widget cannot be found.
       
   300     mTestObject->setLevel(VideoHintWidget::AllVideos);
       
   301     // no verification possible except that it doesn't crash?
       
   302     
       
   303     HbDocumentLoader::mFindWidgetFails = false;
       
   304     HbLabel *hintLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_HINT_LABEL);
       
   305     QVERIFY(hintLabel);
   272     QVERIFY(hintLabel);
   306     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   273     HbPushButton *serviceButton = mUiLoader->findWidget<HbPushButton>(DOCML_NAME_HINT_BUTTON);
   307     QVERIFY(serviceButton);
   274     QVERIFY(serviceButton);
   308     
   275     
   309     mainWnd->setOrientation(Qt::Vertical);
   276     // current level is all videos
   310     mTestObject->setLevel(VideoHintWidget::AllVideos);
   277     serviceButton->setVisible(false);
       
   278     mTestObject->setLevel(VideoHintWidget::AllVideos);
       
   279     QVERIFY(hintLabel->isVisible());
       
   280     QVERIFY(serviceButton->isVisible());
       
   281     
       
   282     // current level is not all videos
       
   283     serviceButton->setVisible(true);
       
   284     mTestObject->setLevel(VideoHintWidget::Collection);
       
   285     QVERIFY(hintLabel->isVisible());
   311     QVERIFY(serviceButton->isVisible() == false);
   286     QVERIFY(serviceButton->isVisible() == false);
   312     QVERIFY(serviceButton->icon().isNull() == false);
   287 
   313     QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mServiceIcon->qicon().cacheKey());
   288     // no hint text
       
   289     serviceButton->setVisible(true);
       
   290     mTestObject->mHintText = "";
       
   291     mTestObject->setLevel(VideoHintWidget::AllVideos);
   314     QVERIFY(hintLabel->isVisible());
   292     QVERIFY(hintLabel->isVisible());
   315     
       
   316     mainWnd->setOrientation(Qt::Horizontal);
       
   317     mTestObject->mButtonShown = true;
       
   318     mTestObject->setLevel(VideoHintWidget::Collection);
       
   319     QVERIFY(!serviceButton->isVisible());
       
   320     QVERIFY(serviceButton->icon().isNull() == false);
       
   321     QVERIFY(hintLabel->isVisible() == false);
       
   322     
       
   323     mTestObject->mButtonShown = false;
       
   324     mTestObject->setLevel(VideoHintWidget::Collection);
       
   325     QVERIFY(serviceButton->isVisible() == false);
   293     QVERIFY(serviceButton->isVisible() == false);
   326     
   294     
   327     cleanup();
   295     cleanup();
   328 }
   296 }
   329 
   297 
   338     
   306     
   339     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   307     HbMainWindow *mainWnd = hbInstance->allMainWindows()[0];
   340     mainWnd->setOrientation(Qt::Horizontal);
   308     mainWnd->setOrientation(Qt::Horizontal);
   341     connect(this, SIGNAL(testSignal(Qt::Orientation)), mainWnd, SIGNAL(orientationChanged(Qt::Orientation)));
   309     connect(this, SIGNAL(testSignal(Qt::Orientation)), mainWnd, SIGNAL(orientationChanged(Qt::Orientation)));
   342     
   310     
   343     init(true);
   311     init(false);
   344     
   312     
   345     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
   313     HbLabel *noVideosLabel = mUiLoader->findWidget<HbLabel>(DOCML_NAME_NO_VIDEOS_LABEL);
   346     QVERIFY(noVideosLabel);
   314     QVERIFY(noVideosLabel);
   347 
   315 
   348     mTestObject->mServiceIconString = "dummy";
       
   349     mTestObject->mServiceIconPressedString = "dummy2";
       
   350     
       
   351     // test that updateUiComponents is not called when only initialize has been called,
   316     // test that updateUiComponents is not called when only initialize has been called,
   352     // ie that no activate calls have been made yet.
   317     // ie that no activate calls have been made yet.
   353     // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
   318     // mTestObject->setVisible is needed because othervise childs cannot be set visible, ie the 
   354     // serviceButton->setVisible does not work as expected.
   319     // serviceButton->setVisible does not work as expected.
   355     mTestObject->setVisible(true);
   320     mTestObject->setVisible(true);