diff -r 6727c5d0afc7 -r 458d8c8d9580 homescreenapp/widgetplugins/hsclockwidgetplugin/tsrc/t_hsclockwidgetplugin/src/t_hsclockwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/widgetplugins/hsclockwidgetplugin/tsrc/t_hsclockwidgetplugin/src/t_hsclockwidget.cpp Mon Oct 04 00:07:25 2010 +0300 @@ -0,0 +1,198 @@ +/* +* Copyright (c) 2008, 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: test code +* +*/ + + + +#include +#include +#include +#include +#include +#include + +#include "t_hsclockwidget.h" +#include "hsclockwidget.h" +#include "hsanalogclockwidget.h" +#include "hsdigitalclockwidget.h" +#include "hsclockwidgettimer.h" + +#ifdef Q_OS_SYMBIAN +#include // TLocale +#include +#include +#endif //Q_OS_SYMBIAN + +namespace +{ + const char ANALOG[] = "analog"; + const char DIGITAL[] = "digital"; + const char TIME12[] = "TIME12"; + const char TIME24[] = "TIME24"; +} + + +#ifdef Q_OS_SYMBIAN +#define KClockApUid TUid::Uid(0x10005903) +#endif //Q_OS_SYMBIAN + +void TestClockWidget::initTestCase() + { +#ifdef Q_OS_SYMBIAN + TLocale locale; + mClockFormat = locale.ClockFormat(); + mTimeFormat = locale.TimeFormat(); +#endif + } + +void TestClockWidget::cleanupTestCase() + { +#ifdef Q_OS_SYMBIAN + TLocale locale; + locale.SetClockFormat(mClockFormat); + locale.SetTimeFormat(mTimeFormat); + locale.Set(); +#endif + } + +void TestClockWidget::init() + { + QGraphicsWidget *hostWidget = new QGraphicsWidget(); + mClockWidget = new HsClockWidget(hostWidget); + mClockWidget->resize(100,100); + QVERIFY( mClockWidget ); + } + +void TestClockWidget::cleanup() + { + //delete mClockWidget->parentItem(); + delete mClockWidget; + mClockWidget = 0; + + } + +void TestClockWidget::createClockWidget() + { + } + + +void TestClockWidget::toggleAnalogDigital() + { + mClockWidget->onInitialize(); + QString clockType = mClockWidget->mClockType; + + mClockWidget->onClockTapped(); + +#ifndef Q_OS_SYMBIAN + // toggles analog/digital on windows + if (clockType == DIGITAL) { + QCOMPARE( mClockWidget->mClockType, QString(ANALOG)); + } else { + QCOMPARE( mClockWidget->mClockType, QString(DIGITAL)); + } + + clockType = mClockWidget->mClockType; + + mClockWidget->onClockTapped(); + + if (clockType == DIGITAL) { + QCOMPARE( mClockWidget->mClockType, QString(ANALOG)); + } else { + QCOMPARE( mClockWidget->mClockType, QString(DIGITAL)); + } +#else + QCOMPARE( mClockWidget->mClockType, clockType); + QTest::qWait(6000); + TApaTaskList taskList(CEikonEnv::Static()->WsSession()); + TApaTask task = taskList.FindApp(KClockApUid); + if (task.Exists()){ + task.SendToBackground(); + } + else { + QWARN("Clock application start failed"); + } +#endif + } + + +void TestClockWidget::testClockOnInitalize() +{ + mClockWidget->onInitialize(); + QVERIFY(mClockWidget->mWidget); +} + +void TestClockWidget::testClockOnShow() +{ + mClockWidget->onInitialize(); + QVERIFY(mClockWidget->mWidget); + QVERIFY(!HsClockWidgetTimer::instance()->mTimer->isActive()); + mClockWidget->onShow(); + QVERIFY(HsClockWidgetTimer::instance()->mTimer->isActive()); + + QSignalSpy updateSpy(HsClockWidgetTimer::instance()->mTimer,SIGNAL(timeout())); + QEventLoop waitUntilTimeoutSignaled; + QTimer eventLoopTimer; + eventLoopTimer.setInterval(1500); + eventLoopTimer.setSingleShot(true); + connect(HsClockWidgetTimer::instance()->mTimer, SIGNAL(timeout()), + &waitUntilTimeoutSignaled, SLOT(quit())); + connect(&eventLoopTimer, SIGNAL(timeout()), &waitUntilTimeoutSignaled, SLOT(quit())); + eventLoopTimer.start(); + waitUntilTimeoutSignaled.exec(); + + //Verify timeout was received instead of eventLoopTimer has elapsed. + QCOMPARE(updateSpy.count(), 1); + QVERIFY(eventLoopTimer.isActive()); + eventLoopTimer.stop(); + +} + +void TestClockWidget::testClockOnHide() +{ + mClockWidget->onInitialize(); + mClockWidget->onShow(); + mClockWidget->onHide(); +} + +void TestClockWidget::testOnUninitialize() +{ + mClockWidget->onInitialize(); + mClockWidget->onUninitialize(); +} + + +void TestClockWidget::testOnSettingsChanged() +{ + mClockWidget->mClockType = QString(ANALOG); + mClockWidget->mTimeType = QString(TIME12); + + mClockWidget->onInitialize(); + mClockWidget->onShow(); + mClockWidget->onSettingsChanged(QString(DIGITAL), QString(TIME24)); + mClockWidget->onSettingsChanged(QString(DIGITAL), QString(TIME12)); + mClockWidget->onSettingsChanged(QString(ANALOG), QString(TIME24)); + mClockWidget->onSettingsChanged(QString(ANALOG), QString(TIME12)); +} + +void TestClockWidget::testClockShape() +{ + mClockWidget->onInitialize(); + mClockWidget->shape(); +} + +QTEST_MAIN(TestClockWidget) + +// end of file