--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/tsrc/ut_infowidget/src/ut_infowidget.cpp Wed Jun 23 18:12:20 2010 +0300
@@ -0,0 +1,823 @@
+/*
+* 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 <QString>
+#include <QPainter>
+#include <QEvent>
+#include <QGraphicsWidget>
+#include <QGraphicsSceneMouseEvent>
+#include <HbMarqueeItem>
+#include <HbPushButton>
+#include <HbCheckBox>
+#include <HbEvent>
+#include <HbColorScheme>
+#include <hbframedrawer.h>
+#include "ut_infowidget.h"
+#include "qtestmains60.h"
+
+#define private friend class UT_InfoWidget;private
+#include "infowidget.h"
+
+// mocked dependencies
+#include "infowidgetpreferences.h"
+
+const QString KPreferenceOn("On");
+const QString KPreferenceOff("Off");
+const QString KSpnName("testprovider");
+const QString KMcnName("tnw1: 3233255435");
+const QString KSatText("satdisplaytesttext");
+
+
+// Stub
+void QGraphicsWidget::resize(
+ const QSizeF & size )
+{
+ Q_UNUSED(size);
+}
+
+
+/*!
+ UT_InfoWidget::UT_InfoWidget
+ */
+UT_InfoWidget::UT_InfoWidget()
+ : m_infoWidget(0)
+{
+ m_modelData.setActiveLine(1);
+ m_modelData.setHomeZoneIndicatorType(1);
+ m_modelData.setMcnName(KMcnName);
+ m_modelData.setServiceProviderName(KSpnName);
+ m_modelData.setSatDisplayText(KSatText);
+
+ SmcDefaultValue<const InfoWidgetEngine::ModelData &>::SetL(m_modelData);
+ SmcDefaultValue<QColor>::SetL(m_qcolor);
+ SmcDefaultValue<QGraphicsWidget*>::SetL(&m_qgraphicswidget);
+}
+
+/*!
+ UT_InfoWidget::~UT_InfoWidget
+ */
+UT_InfoWidget::~UT_InfoWidget()
+{
+ delete m_infoWidget;
+}
+
+/*!
+ UT_InfoWidget::init
+ */
+void UT_InfoWidget::init()
+{
+ initialize();
+
+ SmcDefaultValue<QString>::SetL("On");
+ SmcDefaultValue<InfoWidgetLayoutManager::DisplayRole>::SetL(
+ InfoWidgetLayoutManager::InfoDisplay);
+ m_infoWidget = new InfoWidget();
+ SmcDefaultValue<QString>::SetL("");
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::cleanup
+ */
+void UT_InfoWidget::cleanup()
+{
+ reset();
+
+ delete m_infoWidget;
+ m_infoWidget = 0;
+}
+
+/*!
+ UT_InfoWidget::t_boundingRect
+ */
+void UT_InfoWidget::t_boundingRect()
+{
+ m_infoWidget->boundingRect();
+}
+
+/*!
+ UT_InfoWidget::t_shape
+ */
+void UT_InfoWidget::t_shape()
+{
+ m_infoWidget->shape();
+}
+
+
+/*!
+ UT_InfoWidget::t_sizePolicy
+ */
+void UT_InfoWidget::t_sizePolicy()
+{
+ QVERIFY(m_infoWidget->sizePolicy() ==
+ QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+}
+
+/*!
+ UT_InfoWidget::t_setSpnDisplay
+ */
+void UT_InfoWidget::t_setSpnDisplay()
+{
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySpn, KPreferenceOn);
+
+ m_infoWidget->setSpnDisplay(KPreferenceOn);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_setMcnDisplay
+ */
+void UT_InfoWidget::t_setMcnDisplay()
+{
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayMcn, KPreferenceOn);
+
+ m_infoWidget->setMcnDisplay(KPreferenceOn);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_setSatDisplay
+ */
+void UT_InfoWidget::t_setSatDisplay()
+{
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySatText, KPreferenceOn);
+
+ m_infoWidget->setSatDisplay(KPreferenceOn);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_paint
+ */
+void UT_InfoWidget::t_paint()
+{
+ QScopedPointer<QPainter> painter(new QPainter());
+ QStyleOptionGraphicsItem *option = NULL;
+ QWidget *widget = NULL;
+
+ m_infoWidget->paint(painter.data(), option, widget);
+
+ // layout change ongoing while paint requested
+ m_infoWidget->startChanges();
+ m_infoWidget->paint(painter.data(), option, widget);
+}
+
+/*!
+ UT_InfoWidget::t_mousePressEvent
+ */
+void UT_InfoWidget::t_mousePressEvent()
+{
+ QGraphicsSceneMouseEvent event;
+ m_infoWidget->mousePressEvent(&event);
+}
+
+/*!
+ UT_InfoWidget::t_mouseReleaseEvent
+ */
+void UT_InfoWidget::t_mouseReleaseEvent()
+{
+ QGraphicsSceneMouseEvent event;
+
+ // widget clicked while showing info display =>
+ // switch to settings display expected
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole)
+ .returns(InfoWidgetLayoutManager::InfoDisplay);
+ EXPECT(InfoWidgetLayoutManager::layoutSettingsDialog);
+ m_infoWidget->mousePressEvent(&event);
+ m_infoWidget->mouseReleaseEvent(&event);
+
+ // widget clicked while showing settings display =>
+ // no action expected
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole)
+ .returns(InfoWidgetLayoutManager::SettingsDialog);
+ EXPECT(InfoWidgetLayoutManager::layoutSettingsDialog).times(0);
+ m_infoWidget->mousePressEvent(&event);
+ m_infoWidget->mouseReleaseEvent(&event);
+
+ // release event received after dragging widget =>
+ // no action expected
+ EXPECT(InfoWidgetLayoutManager::layoutSettingsDialog).times(0);
+ m_infoWidget->mouseMoveEvent(&event);
+ m_infoWidget->mouseReleaseEvent(&event);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_mouseMoveEvent
+ */
+void UT_InfoWidget::t_mouseMoveEvent()
+{
+
+}
+
+/*!
+ UT_InfoWidget::t_updateInfoDisplay
+ */
+void UT_InfoWidget::t_updateInfoDisplay()
+{
+ HbMarqueeItem spnMarqueeItem;
+ HbMarqueeItem mcnMarqueeItem;
+ HbMarqueeItem satMarqueeItem;
+ QGraphicsWidget* pointerSpnMarqueeItem = qobject_cast<QGraphicsWidget *>(&spnMarqueeItem);
+ QGraphicsWidget* pointerMcnMarqueeItem = qobject_cast<QGraphicsWidget *>(&mcnMarqueeItem);
+ QGraphicsWidget* pointerSatMarqueeItem = qobject_cast<QGraphicsWidget *>(&satMarqueeItem);
+
+ // Precondition:
+ m_infoWidget->m_initialized = true;
+
+ InfoWidgetEngine::ModelData modelData;
+ modelData.setMcnName("testmcn");
+ modelData.setServiceProviderName("testspn");
+ modelData.setSatDisplayText("testsat");
+ const InfoWidgetEngine::ModelData& modelDataConstRef(modelData);
+
+ // Test 1: text data has been initialized to model (in UT_InfoWidget::UT_InfoWidget())
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole).returns(InfoWidgetLayoutManager::InfoDisplay);
+ EXPECT(InfoWidgetEngine::modelData).returns(modelDataConstRef);
+
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSpnMarqueeItem)
+ .returns(pointerSpnMarqueeItem);
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(false);
+
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleMcnMarqueeItem)
+ .returns(pointerSpnMarqueeItem);
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(false);
+
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSatMarqueeItem)
+ .returns(pointerSatMarqueeItem);
+
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(false);
+
+ m_infoWidget->updateInfoDisplay();
+ QVERIFY(m_infoWidget->m_animatingItems.count() == 3);
+
+ QVERIFY(verify());
+
+ // Test 2: empty data, verify items are not appended to m_animatingItems
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole).returns(InfoWidgetLayoutManager::InfoDisplay);
+ EXPECT(InfoWidgetEngine::modelData).returns(modelDataConstRef);
+
+ m_modelData.setServiceProviderName("testspn");
+ m_modelData.setMcnName("testmcn");
+ m_modelData.setSatDisplayText("testsat");
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSpnMarqueeItem)
+ .returns(pointerSpnMarqueeItem);
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(true);
+
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleMcnMarqueeItem)
+ .returns(pointerSpnMarqueeItem);
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(true);
+
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSatMarqueeItem)
+ .returns(pointerSatMarqueeItem);
+ EXPECT(HbMarqueeItem::setText);
+ EXPECT(HbMarqueeItem::setTextColor);
+ EXPECT(QGraphicsWidget::adjustSize);
+ EXPECT(InfoWidgetLayoutManager::textFitsToRect)
+ .returns(true);
+
+ m_infoWidget->updateInfoDisplay();
+ QVERIFY(m_infoWidget->m_animatingItems.count() == 0);
+
+ QVERIFY(verify());
+
+ // Change state:
+ m_infoWidget->m_initialized = false;
+ m_infoWidget->updateInfoDisplay();
+ QVERIFY(m_infoWidget->m_animatingItems.count() == 0);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_readPersistentPreferences
+ */
+void UT_InfoWidget::t_readPersistentPreferences()
+{
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayHomeZone, QString(""));
+
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayMcn, QString(""));
+
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayActiveLine, QString(""));
+
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySatText, QString(""));
+
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySpn, QString(""));
+
+ EXPECT(InfoWidgetPreferences::validate);
+
+ m_infoWidget->readPersistentPreferences();
+
+ QVERIFY(verify());
+
+ // one visible item initially
+ EXPECT(InfoWidgetPreferences::validate).returns(true);
+ EXPECT(InfoWidgetPreferences::storePreferences);
+
+ m_infoWidget->readPersistentPreferences();
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_onInitialize
+ */
+void UT_InfoWidget::t_onInitialize()
+{
+ QGraphicsWidget *contentWidget = NULL;
+
+ // Test onInitialize sequence where
+ // meta-object properties have been
+ // initialized
+ EXPECT(InfoWidgetPreferences::validate)
+ .returns(true);
+ EXPECT(InfoWidgetPreferences::storePreferences)
+ .returns(true);
+ EXPECT(InfoWidgetLayoutManager::contentWidget)
+ .returns(contentWidget);
+
+ m_infoWidget->onInitialize();
+
+ // Test onInitialize sequence where
+ // meta-object properties are
+ // uninitialized
+ EXPECT(InfoWidgetPreferences::validate)
+ .returns(false);
+ EXPECT(InfoWidgetLayoutManager::contentWidget)
+ .returns(contentWidget);
+ m_infoWidget->onInitialize();
+}
+
+/*!
+ UT_InfoWidget::t_onUninitialize
+ */
+void UT_InfoWidget::t_onUninitialize()
+{
+ m_infoWidget->onUninitialize();
+}
+
+/*!
+ UT_InfoWidget::t_onShow
+ */
+void UT_InfoWidget::t_onShow()
+{
+
+ m_infoWidget->m_animationState = InfoWidget::AnimationIdle;
+ EXPECT(InfoWidgetEngine::resume);
+ m_infoWidget->onShow();
+
+ m_infoWidget->m_animationState = InfoWidget::AnimationOngoing;
+ EXPECT(InfoWidgetEngine::resume);
+ m_infoWidget->onShow();
+
+ m_infoWidget->m_animationState = InfoWidget::AnimationStarting;
+ EXPECT(InfoWidgetEngine::resume);
+ m_infoWidget->onShow();
+
+}
+
+/*!
+ UT_InfoWidget::t_onHide
+ */
+void UT_InfoWidget::t_onHide()
+{
+ m_infoWidget->onHide();
+}
+
+/*!
+ UT_InfoWidget::t_readModel
+ */
+void UT_InfoWidget::t_readModel()
+{
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole)
+ .returns(InfoWidgetLayoutManager::InfoDisplay);
+ m_infoWidget->readModel();
+
+ EXPECT(InfoWidgetLayoutManager::currentDisplayRole)
+ .returns(InfoWidgetLayoutManager::SettingsDialog);
+ m_infoWidget->readModel();
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_handleModelError
+ */
+void UT_InfoWidget::t_handleModelError()
+{
+ int operation(0);
+ int errorCode(0);
+ m_infoWidget->handleModelError(operation, errorCode);
+}
+
+void UT_InfoWidget::t_spnDisplaySettingChanged()
+{
+ // user enables home zone setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySpn, KPreferenceOn);
+ int setting(Qt::Checked);
+ m_infoWidget->spnDisplaySettingChanged(setting);
+
+ // user disables home zone setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySpn, KPreferenceOff);
+ setting = Qt::Unchecked;
+ m_infoWidget->spnDisplaySettingChanged(setting);
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_mcnDisplaySettingChanged()
+{
+ // user enables MCN setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayMcn, KPreferenceOn);
+ int setting(Qt::Checked);
+ m_infoWidget->mcnDisplaySettingChanged(setting);
+
+ // user disables MCN setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplayMcn, KPreferenceOff);
+ setting = Qt::Unchecked;
+ m_infoWidget->mcnDisplaySettingChanged(setting);
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_satDisplaySettingChanged()
+{
+ // user enables SAT setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySatText, KPreferenceOn);
+ int setting(Qt::Checked);
+ m_infoWidget->satDisplaySettingChanged(setting);
+
+ // user disables SAT setting
+ EXPECT(InfoWidgetPreferences::setPreference)
+ .with(InfoWidgetPreferences::DisplaySatText, KPreferenceOff);
+ setting = Qt::Unchecked;
+ m_infoWidget->satDisplaySettingChanged(setting);
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_settingsEditingFinished()
+{
+ EXPECT(InfoWidgetPreferences::validate)
+ .returns(true);
+ EXPECT(InfoWidgetPreferences::storePreferences)
+ .returns(false);
+
+ QGraphicsWidget *contentWidget = NULL;
+ EXPECT(InfoWidgetLayoutManager::contentWidget)
+ .returns(contentWidget);
+
+ m_infoWidget->settingsEditingFinished();
+}
+
+void UT_InfoWidget::t_updateItemsVisibility()
+{
+ // all items visible
+ EXPECT(InfoWidgetPreferences::preference)
+ .with(InfoWidgetPreferences::DisplaySpn)
+ .returns(KPreferenceOn);
+ EXPECT(InfoWidgetPreferences::preference)
+ .with(InfoWidgetPreferences::DisplayMcn)
+ .returns(KPreferenceOn);
+ EXPECT(InfoWidgetPreferences::preference)
+ .with(InfoWidgetPreferences::DisplaySatText)
+ .returns(KPreferenceOn);
+ EXPECT(InfoWidgetLayoutManager::setLayoutRows)
+ .with(3);
+
+ m_infoWidget->updateItemsVisibility();
+ QVERIFY(verify());
+
+}
+
+void UT_InfoWidget::t_layoutInfoDisplay()
+{
+ QGraphicsWidget *contentWidget = NULL;
+ EXPECT(InfoWidgetLayoutManager::contentWidget)
+ .returns(contentWidget);
+
+ m_infoWidget->layoutInfoDisplay();
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_layoutSettingsDialog()
+{
+ m_infoWidget->layoutSettingsDialog();
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_initializeSettingsDialogItems()
+{
+ QGraphicsWidget spnCheckBox;
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSpnCheckBox)
+ .returns(&spnCheckBox);
+
+ QGraphicsWidget mcnCheckBox;
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleMcnCheckBox)
+ .returns(&mcnCheckBox);
+
+ QGraphicsWidget satTextCheckBox;
+ EXPECT(InfoWidgetLayoutManager::getWidget)
+ .with(InfoWidgetLayoutManager::RoleSatTextCheckBox)
+ .returns(&satTextCheckBox);
+
+ m_infoWidget->initializeSettingsDialogItems();
+
+ QVERIFY(verify());
+}
+
+void UT_InfoWidget::t_startChanges()
+{
+ m_infoWidget->startChanges();
+}
+
+void UT_InfoWidget::t_endChanges()
+{
+ m_infoWidget->endChanges();
+}
+
+/*!
+ UT_InfoWidget::t_changeEvent
+ */
+void UT_InfoWidget::t_changeEvent()
+{
+ /*
+ * Not work from commmand prompt.
+ */
+ HbEvent event(HbEvent::ThemeChanged);
+ EXPECT(HbWidget::changeEvent).with(&event);
+ m_infoWidget->changeEvent(&event);
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_sizeHint
+ */
+void UT_InfoWidget::t_sizeHint()
+{
+ const QSizeF KMinimumSize(33.5, 160);
+ const QSizeF KPreferredSize(134, 160);
+ const QSizeF KDefaultSizeInfoDisplay(200, 100);
+ const QSizeF KDefaultSizeSettingsDisplay(230, 220);
+ QGraphicsWidget *contentWidget = NULL;
+
+ // Test: initial size after construction
+ Qt::SizeHint sizeHint = Qt::PreferredSize;
+ QSizeF constraint = QSizeF();
+ QVERIFY(KDefaultSizeInfoDisplay == m_infoWidget->sizeHint(
+ sizeHint, constraint));
+
+ EXPECT(InfoWidgetLayoutManager::contentWidget)
+ .returns(contentWidget);
+
+ // Test: size after onInitialize is called
+ // and current display is InfoDisplay
+ m_infoWidget->onInitialize();
+
+ QVERIFY(verify());
+
+ contentWidget = new QGraphicsWidget;
+ contentWidget->setMinimumSize(KMinimumSize);
+ EXPECT(InfoWidgetLayoutManager::contentWidget).
+ returns(contentWidget);
+ EXPECT(InfoWidgetPreferences::visibleItemCount).
+ returns(1);
+
+ // No strict verification.
+ // Data in docml is in "un" format and strict comparison to pixels won't work
+ QVERIFY(KDefaultSizeInfoDisplay != m_infoWidget->sizeHint(sizeHint, constraint));
+
+ QVERIFY(verify());
+
+ delete contentWidget;
+ contentWidget = NULL;
+}
+
+/*!
+ UT_InfoWidget::t_startMarquees
+ */
+void UT_InfoWidget::t_startMarquees()
+{
+ bool started(false);
+ HbMarqueeItem spnMarqueeItem;
+ HbMarqueeItem mcnMarqueeItem;
+ HbMarqueeItem satMarqueeItem;
+
+ // Initialize:
+ m_infoWidget->m_animatingItems.append(&spnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&mcnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&satMarqueeItem);
+
+ // Test 1:
+ m_infoWidget->m_animationState = InfoWidget::AnimationIdle;
+ started = m_infoWidget->startMarquees(InfoWidget::StartNoDelay);
+ QVERIFY(started);
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationOngoing);
+
+ // Test 2:
+ m_infoWidget->m_animationState = InfoWidget::AnimationIdle;
+ started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
+ QVERIFY(started);
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting);
+
+ // Test 3:
+ m_infoWidget->m_animationState = InfoWidget::AnimationStarting;
+ started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
+ QVERIFY(!started);
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting);
+
+ // Test 4:
+ m_infoWidget->m_animationState = InfoWidget::AnimationOngoing;
+ started = m_infoWidget->startMarquees(InfoWidget::StartDelayed);
+ QVERIFY(!started);
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationOngoing);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_stopMarquees
+ */
+void UT_InfoWidget::t_stopMarquees()
+{
+ HbMarqueeItem spnMarqueeItem;
+ HbMarqueeItem mcnMarqueeItem;
+ HbMarqueeItem satMarqueeItem;
+
+ // Initialize:
+ m_infoWidget->m_animatingItems.append(&spnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&mcnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&satMarqueeItem);
+
+ // Test 1:
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ m_infoWidget->m_animationState = InfoWidget::AnimationOngoing;
+ m_infoWidget->stopMarquees();
+
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationIdle);
+ QVERIFY(m_infoWidget->m_animatingItems.count() == 0);
+ QVERIFY(!m_infoWidget->m_animatingItem);
+
+
+ // Test 2:
+ // Re-initialize:
+ m_infoWidget->m_animatingItems.append(&spnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&mcnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&satMarqueeItem);
+
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(true);
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(true);
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(true);
+
+ m_infoWidget->m_animationState = InfoWidget::AnimationOngoing;
+ m_infoWidget->stopMarquees();
+
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationIdle);
+ QVERIFY(m_infoWidget->m_animatingItems.count() == 0);
+ QVERIFY(!m_infoWidget->m_animatingItem);
+
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_marqueeNext
+ */
+void UT_InfoWidget::t_marqueeNext()
+{
+
+ HbMarqueeItem spnMarqueeItem;
+ spnMarqueeItem.setObjectName("id:spnMarqueeItem");
+ HbMarqueeItem mcnMarqueeItem;
+ spnMarqueeItem.setObjectName("id:mcnMarqueeItem");
+ HbMarqueeItem satMarqueeItem;
+ spnMarqueeItem.setObjectName("id:satMarqueeItem");
+
+ // Initialize:
+ m_infoWidget->m_animatingItems.append(&spnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&mcnMarqueeItem);
+ m_infoWidget->m_animatingItems.append(&satMarqueeItem);
+ m_infoWidget->m_animationState = InfoWidget::AnimationOngoing;
+
+ // Test 1: verify loop functionality
+ m_infoWidget->m_animatingItem = &spnMarqueeItem;
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ m_infoWidget->marqueeNext();
+ QVERIFY(m_infoWidget->m_animatingItem == &mcnMarqueeItem);
+
+ // Test 2: verify loop functionality
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ m_infoWidget->marqueeNext();
+ QVERIFY(m_infoWidget->m_animatingItem == &satMarqueeItem);
+
+ // Test 3: verify loop functionality, loop to begin
+ EXPECT(HbMarqueeItem::isAnimating).
+ returns(false);
+ m_infoWidget->marqueeNext();
+ QVERIFY(m_infoWidget->m_animatingItem == &spnMarqueeItem);
+
+ QVERIFY(verify());
+}
+
+/*!
+ UT_InfoWidget::t_timerEvent
+ */
+void UT_InfoWidget::t_timerEvent()
+{
+ // Test 1:
+ QScopedPointer<QTimerEvent> timerEvent(new QTimerEvent(0));
+ m_infoWidget->m_animationState = InfoWidget::AnimationStarting;
+ HbMarqueeItem animatingItem;
+ if (!m_infoWidget->m_animatingItem) {
+ m_infoWidget->m_animatingItem = &animatingItem;
+ }
+
+ m_infoWidget->timerEvent(timerEvent.data());
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationOngoing);
+
+ // Test 2:
+ m_infoWidget->m_animationState = InfoWidget::AnimationStarting;
+ m_infoWidget->m_animatingItem = NULL;
+ m_infoWidget->timerEvent(timerEvent.data());
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationStarting);
+
+ // Test 3:
+ m_infoWidget->m_animationState = InfoWidget::AnimationIdle;
+ QVERIFY(m_infoWidget->m_animationState == InfoWidget::AnimationIdle);
+
+ QVERIFY(verify());
+}
+
+
+QTEST_MAIN_S60(UT_InfoWidget)